はじめに
Ovis(Open VISion)は、アリババの国際デジタル商取引グループのAIDC-AIチームによって開発され、GitHubでホストされているオープンソースのマルチモーダル大規模言語モデル(MLLM)で、革新的な構造埋め込みアライメント技術を使用して、視覚データとテキストデータを効率的にマージし、画像、テキスト、ビデオなどのマルチモーダル入力をサポートし、対応する出力コンテンツを生成します。2025年3月現在、Ovisは、優れた小型化性能、強化された推論能力、高解像度の画像やビデオを処理する能力を提供するOvis2ファミリー(1B~34Bパラメータスケール)を発表している。開発者や研究者を対象としたこのプロジェクトは、詳細なドキュメントとコードを提供し、オープンソースコラボレーションを重視し、すでにコミュニティで支持を得ている。
機能一覧
- マルチモーダル入力サポート画像、テキスト、ビデオなどの複数の入力タイプを処理します。
- ビジュアルテキストアライメント画像や動画の内容に正確にマッチしたテキスト説明を生成します。
- 高解像度画像処理高解像度の画像をサポートし、ディテールを保持するために最適化されています。
- ビデオとマルチグラフ分析ビデオフレームシーケンスや複数画像のシーケンシャル処理に対応。
- 推理力の強化指導のチューニングとDPOトレーニングで論理的推論力を高める。
- 多言語OCRサポート多言語画像テキストの認識と処理
- 複数のモデル・オプション1Bから34Bまで、さまざまなハードウェアに対応するモデルを用意しています。
- 定量版サポート例えば、GPTQ-Int4モデルなど。
- グラディオ・インターフェースの統合直感的なウェブインターフェースを提供します。
ヘルプの使用
設置プロセス
Ovisのインストールは、以下に詳述するように、特定のPython環境とライブラリに依存している:
- 環境準備
- GitとAnacondaがインストールされていることを確認する。
- Ovisリポジトリをクローンする:
git clone git@github.com:AIDC-AI/Ovis.git
- 仮想環境を作成し、起動する:
conda create -n ovis python=3.10 -y conda ovis をアクティブにする
- 依存するインストール
- プロジェクト・カタログにアクセスする:
オビス
- 依存関係をインストールする
要件.txt
):pip install -r requirements.txt
- Ovisパッケージをインストールする:
pip install -e .
- (オプション)アクセラレーションライブラリ(Flash Attentionなど)のインストール:
pip install flash-attn==2.7.0.post2 --build-isolationなし
- プロジェクト・カタログにアクセスする:
- 環境バリデーション
- PyTorchのバージョンを確認する(2.4.0推奨):
python -c "import torch; print(torch.__version__)"
- PyTorchのバージョンを確認する(2.4.0推奨):
オヴィスの使い方
Ovisは、コマンドライン推論とGradioインターフェイス操作の両方をサポートしています:
コマンドライン推論
- モデルとインプットの準備
- Hugging Faceからモデルをダウンロードする(例:Ovis2-8B):
git clone https://huggingface.co/AIDC-AI/Ovis2-8B
- 画像などの入力ファイルの準備
例.jpg
というプロンプトが表示される。
- Hugging Faceからモデルをダウンロードする(例:Ovis2-8B):
- 走り推理
- スクリプトの作成
run_ovis.py
::インポートトーチ from PIL import Image from transformers import AutoModelForCausalLM #負荷モデル model = AutoModelForCausalLM.from_pretrained( "AIDC-AI/Ovis2-8B"、 torch_dtype=torch.bfloat16、 multimodal_max_length=32768、 trust_remote_code=真 ).cuda() # トークナイザを取得 text_tokenizer = model.get_text_tokenizer() visual_tokenizer = model.get_visual_tokenizer() # 入力処理 image = Image.open("example.jpg") text = "この画像を説明する" query = f"n{text}" prompt, input_ids, pixel_values = model.preprocess_inputs(query, [image]) attention_mask = torch.ne(input_ids, text_tokenizer.pad_token_id) # 出力の生成 torch.inference_mode()を使う: output_ids = model.generate( input_ids.unsqueeze(0).cuda()、 pixel_values=[pixel_values.cuda()]、 attention_mask=attention_mask.unsqueeze(0).cuda()、 max_new_tokens=1024 ) output = text_tokenizer.decode(output_ids[0], skip_special_tokens=True) print("出力結果: ", output)
- スクリプトを実行する:
python run_ovis.py
- スクリプトの作成
- 結果を見る
- 出力例:「青空を背景に草原に佇む犬の写真です。
グラディオ・インターフェースの操作
- サービス開始
- オビスのカタログから実行する:
python ovis/serve/server.py --model_path AIDC-AI/Ovis2-8B --port 8000
- ロード待ち、アクセス中
http://127.0.0.1:8000
.
- オビスのカタログから実行する:
- インターフェース操作
- インターフェイスに写真をアップロードする。
- この写真には何が写っていますか?.
- Submit(送信)」をクリックすると、生成された結果が表示されます。
注目の機能
高解像度画像処理
- 手続き高解像度の画像をアップロードすると、モデルが自動的に分割されます(最大分割数9)。
- 取る作品分析や地図解釈などの作業に適している。
- 推奨ハードウェアOSに新たに追加された16GBのグラフィックメモリは、スムーズな動作を保証する。
ビデオとマルチグラフ分析
- 手続き::
- 以下のようなビデオフレームや複数の画像を用意する。
[Image.open("frame1.jpg"), Image.open("frame2.jpg")]。
. - の推論コードを修正する。
ピクセル値
パラメータは複数の画像のリストです。
- 以下のようなビデオフレームや複数の画像を用意する。
- 取るビデオクリップまたは連続画像のシーケンスを分析します。
- サンプル出力1つ目のフレームは道路、2つ目は歩行者」。
多言語OCRサポート
- 手続き多言語のテキストを含む画像をアップロードし、プロンプト「画像からテキストを抽出」を入力します。
- 取る文書のスキャン、画像テキストの翻訳。
- 結果の例中国語と英語が混在したテキストを抽出し、説明文を生成します。
推理力の強化
- 手続き写真には何人写っていますか?順を追って説明してください。
- 取る:: 教育、データ分析業務。
- サンプル出力最初のステップは左側にいる一人の人物を観察することで、2番目のステップは右側にいるもう一人の人物を観察することです」。
ほら
- ハードウェア要件Ovis2-1Bでは4GBのビデオメモリが必要ですが、Ovis2-34Bでは48GB以上のマルチGPUを推奨しています。
- モデルの互換性主流のLLM(例:Qwen2.5)とViT(例:aimv2)をサポート。
- コミュニティ・フィードバックGitHubのIssuesに投稿できます。
Ovis2 画像逆伝播プロンプト・ワード・ワンクリック・インストーラー
Ovis2-4BおよびOvis2-2Bモデルをベースとする。
クォーク:https://pan.quark.cn/s/23095bb34e7c
百度:https://pan.baidu.com/s/12fWAbshwKY8OYcCcv_5Pkg?pwd=2727
パスワードを解凍して、jian27で見つけてください。