はじめに
InternVLは、上海人工知能研究所(OpenGVLab)によって開発され、GitHubでホストされているオープンソースのマルチモーダルビッグモデルプロジェクトです。InternVLの目標は、視覚認識、クロスモーダル検索、マルチモーダル対話などの幅広いタスクに対して、商用モデル(GPT-4oなど)に匹敵するオープンソースの代替モデルを構築することです。このプロジェクトは、強力な視覚エンコーダ、動的な高解像度サポート、効率的な学習戦略で知られており、モデルサイズは1Bから78Bのパラメータで、エッジデバイスから高性能サーバーまで幅広いアプリケーションシナリオに適しています。コード、モデル、データセットはMITライセンスの下で公開されており、研究者や開発者は自由に使用し、改良することが奨励されている。
機能一覧
- マルチモーダル対話画像、ビデオ、テキスト入力をサポートし、チャット、Q&A、タスク指示のための自然言語応答を生成します。
- 画像処理4K解像度までの画像を動的に処理し、画像分類、セグメンテーション、オブジェクト検出をサポートします。
- ビデオ理解ゼロサンプルビデオ分類とテキスト-ビデオ検索のためのビデオコンテンツの分析。
- 文書解像度複雑な文書を扱い、OCR、フォーム認識、DocVQAなどのタスクのための文書クイズを専門としています。
- 多言語サポート110以上の言語生成タスクをサポートする多言語テキストエンコーダを内蔵。
- 効率的な推論LMDeployによる簡素化された推論プロセスを提供し、複数画像と長いコンテキストの処理をサポートします。
- データセットのオープン性ShareGPT-4oのような画像、映像、音声を含む大規模なマルチモーダルデータセットを提供。
ヘルプの使用
設置プロセス
InternVLをローカルで使用するには、Python環境を設定し、関連する依存関係をインストールする必要があります。以下は詳細なインストール手順です:
- クローン倉庫
ターミナルで以下のコマンドを実行し、InternVLのソースコードを取得する:git clone https://github.com/OpenGVLab/InternVL.git cd InternVL
- 仮想環境の構築
condaでPython 3.9の環境を作り、アクティベートする:conda create -n internvl python=3.9 -y conda activate internvl
- 依存関係のインストール
デフォルトでは、マルチモーダル対話と画像処理に必要なライブラリが含まれています:pip install -r requirements.txt
追加機能(画像セグメンテーションや分類など)が必要な場合は、特定の依存関係を手動でインストールできます:
pip install -r requirements/segmentation.txt pip install -r requirements/classification.txt
- フラッシュ・アテンションを設置する(オプション)
モデル推論を高速化するために、Flash-Attentionのインストールを推奨する:pip install flash-attn==2.3.6 --no-build-isolation
あるいはソースからコンパイルする:
git clone https://github.com/Dao-AILab/flash-attention.git cd flash-attention git checkout v2.3.6 python setup.py install
- MMDeployのインストール(オプション)
モデルを本番環境にデプロイする必要がある場合は、MMDeployをインストールしてください:pip install -U openmim mim install mmdeploy
使用方法
InternVLは、コマンドライン推論、APIサービス、インタラクティブなデモンストレーションなど、複数の使用方法を提供します。以下は、InternVL2_5-8Bモデルを例に、主要機能の操作フローを紹介します:
1.マルチモーダル対話
InternVL は画像入力とテキスト入力の両方のダイアログをサポートしている。以下は LMDeploy を用いた推論の例である:
- モデルと画像の準備モデルがダウンロードされていることを確認してください。
OpenGVLab/InternVL2_5-8B
など)を用意する。tiger.jpeg
). - 走り推理画像の内容を記述した以下のPythonコードを実行する:
from lmdeploy import pipeline, TurbomindEngineConfig from lmdeploy.vl import load_image model = 'OpenGVLab/InternVL2_5-8B' image = load_image('https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/tests/data/tiger.jpeg') pipe = pipeline(model, backend_config=TurbomindEngineConfig(session_len=8192)) response = pipe(('描述这张图片', image)) print(response.text)
- 結局例えば、"The picture is of a standing tiger with green grass in the background "のように。
2.マルチ画像処理
InternVLは複数の画像の同時処理をサポートしており、比較や包括的な分析に適しています:
- コード例::
from lmdeploy.vl.constants import IMAGE_TOKEN image_urls = [ 'https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/demo/resources/human-pose.jpg', 'https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/demo/resources/det.jpg' ] images = [load_image(url) for url in image_urls] prompt = f'Image-1: {IMAGE_TOKEN}\nImage-2: {IMAGE_TOKEN}\n描述这两张图片' response = pipe((prompt, images)) print(response.text)
- 結局モデルはそれぞれの画像の内容を個別に記述し、場合によっては画像間の関係を要約する。
3.文書解析
InternVLは文書クイズ(DocVQA)とフォーム認識タスクで優れた性能を発揮する。動作の流れは以下の通りである:
- ドキュメント画像の準備テキスト、表、グラフを含む画像をアップロードします。
- 質問をする表からデータを抽出する」「文書の内容を要約する」などのプロンプトを使用します。
- コード例::
image = load_image('document.jpg') response = pipe(('提取图片中表格的内容', image)) print(response.text)
- 結局このモデルは、テーブルやドキュメントの構造化データの要約を返します。
4.APIサービスの展開
InternVL は、本番環境への LMDeploy による RESTful API のデプロイをサポートしている:
- サービス開始::
lmdeploy serve api_server OpenGVLab/InternVL2_5-8B --server-port 23333
- APIへのアクセスリクエストを送信するには、OpenAI互換のインターフェースを使用します。
curl
またはPythonクライアントコールモデル。
5.オンライン・プレゼンテーション
OpenGVLabは、オンライン・デモンストレーション・プラットフォーム(https://internvl.opengvlab.com/
インストールは必要ない:
- ウェブサイトにアクセスし、画像やビデオをアップロードし、質問を入力する。
- このモデルはリアルタイムで結果を返すので、迅速なテストに適している。
注目の機能操作
- ダイナミックな高解像度InternVLは自動的に画像を448x448のチャンクに分割し、最大4Kの解像度をサポートします。画像をアップロードするだけで、手動でリサイズする必要はありません。
- ビデオ理解ビデオファイルをアップロードし、プロンプト(「ビデオの内容を要約してください」など)と組み合わせると、モデルは主要なフレームを分析し、説明を生成する。
- 多言語生成プロンプトで言語を指定すると(例:「フランス語で答えてください」)、モデルは対応する言語の回答を生成します。
ほら
- 十分なGPUメモリを確保してください(8Bモデルには約16GBのGPUメモリが必要です)。
- 複数の画像や長い動画を処理する場合、コンテキストウィンドウを大きくする (
session_len=16384
). - 互換性の問題を避けるために、依存するバージョンをチェックする。
アプリケーションシナリオ
- 学術研究
研究者はInternVLを使用して、科学的なダイアグラムを分析したり、実験画像を処理したり、論文から表形式のデータを解析したりします。このモデルの高精度OCRと文書理解機能は、データ抽出の効率を劇的に向上させます。 - 教材
教師や生徒はInternVLを使って、歴史的な絵の解釈や地理的な図の分析など、画像に関連した宿題の問題を解きます。このモデルの多言語サポートは、国際化された教育シナリオに適しています。 - エンタープライズ・ドキュメント・プロセッシング
組織はInternVLを使用して、スキャンした文書、契約書、請求書の処理を自動化し、重要な情報を抽出してレポートを作成し、人件費を節約します。 - コンテンツ制作
コンテンツ制作者は、InternVLを使用してビデオ映像を分析し、スクリプトや字幕を生成することで、クリエイティブの効率を向上させます。 - インテリジェントなカスタマーサービス
カスタマーサービスシステムはInternVLを統合し、ユーザーがアップロードした画像(製品の故障写真など)を処理し、問題を迅速に診断し、解決策を提供します。
品質保証
- InternVLはどのようなモデルサイズをサポートしていますか?
InternVLは、1Bから78Bまで、さまざまなデバイスに適したパラメーターのモデルを提供しています。 1Bモデルはエッジデバイスに適しており、78BモデルはGPT-4oに匹敵する性能を持っています。 - 高解像度の画像はどのように扱っていますか?
このモデルは自動的に画像を448x448のチャンクに分割し、4K解像度をサポートします。前処理なしで画像を直接アップロードできます。 - ビデオ解析に対応していますか?
はい、InternVLはゼロサンプルのビデオ分類とテキスト-ビデオ検索をサポートしています。ビデオをアップロードし、プロンプトの単語を入力するだけです。 - モデルはオープンソースですか?
InternVLは完全にオープンソースであり、コードとモデルの重みはMITライセンスのもとGitHubで入手できる。 - 推理のスピードを最適化するには?
Flash-Attentionをインストールし、GPUアクセラレーションを使用する。調整session_len
パラメータを使用する。