プロジェクトクレジット|カワウソの紙| Otterhd Paper | Mimic-It論文
チェックポイント:
中国本土の誰のために:|
免責事項:コードが完全に磨かれてリファクタリングされていない場合がありますが、コードを使用して調査をサポートするため、すべてのオープンソーリングコードがテストおよび実行可能です。ご質問がある場合は、お気軽に問題を開いてください。私たちは、コードの品質を向上させるための提案とPRを熱心に楽しみにしています。
[2023-11]:8つのベンチマークでのGPT4Vの評価をサポート。 Otterhd-8Bを測定し、Fuyu-8Bから改善しました。詳細については、Otterhdをチェックアウトしてください。
datasets :
- name : magnifierbench
split : test
prompt : Answer with the option's letter from the given choices directly.
api_key : [Your API Key] # GPT4 or GPT3.5 to evaluate the answers and ground truth.
debug : true # put debug=true will save the model response in log file.
- name : mme
split : test
debug : true
- name : mmbench
split : test
debug : true
models :
- name : gpt4v
api_key : [Your API Key] # to call GPT4V model.
IMAGE_TEXT : # Group name should be in [IMAGE_TEXT, TEXT_ONLY, IMAGE_TEXT_IN_CONTEXT]
LADD : # Dataset name can be assigned at any name you want
mimicit_path : azure_storage/json/LA/LADD_instructions.json # Path of the instruction json file
images_path : azure_storage/Parquets/LA.parquet # Path of the image parquet file
num_samples : -1 # Number of samples you want to use, -1 means use all samples, if not set, default is -1.
M3IT_CAPTIONING :
mimicit_path : azure_storage/json/M3IT/captioning/coco/coco_instructions.json
images_path : azure_storage/Parquets/coco.parquet
num_samples : 20000
[2023-08]
[2023-07]:複数のインターリーブ画像テキスト/ビデオ命令チューニングのための模倣データセットを整理します。
[2023-06]
frame tensors
間違ったvision_x
に誤って片付けられていないビデオ推論に関連するバグを修正します。
sys.path.append("../..")
正しく調整して、モデルを起動するためにotter.modeling_otter
にアクセスしてください。
大規模な言語モデル(LLM)は、広範なテキストデータのトレーニング前に、多くのタスクの少数/ゼロショット学習者として、例外的な普遍的な適性を実証しています。これらのLLMの中で、GPT-3は重要な機能を備えた顕著なモデルとして際立っています。さらに、GPT-3のバリエーション、すなわちinstantGPTとChatGPTは、指示の調整のおかげで、複雑な現実世界のタスクを実行するための自然言語の指示を解釈するのに効果的であることが証明されています。
Flamingoモデルの上流のインターリーブ形式の形式の動機付けにより、私たちは提示しますか? Otter、OpenFlamingo(DeepMind's Flamingoのオープンソースバージョン)に基づくマルチモーダルモデル。私たちは、提案されているmi - m odal i n- c ontext i nstruction t uning( mimic-it )データセットで、カワウソ内の命令を調整してトレーターを訓練します。 Otterは、画像とビデオの両方で、命令にフォローするおよびコンテキスト内の学習能力を改善します。
mimic-itを有効にして、ヘイのようなあなたの質問に答えることができるサービスが提供できるエゴセントリックビジュアルアシスタントモデルの適用を可能にします。私はテーブルに鍵を残したと思いますか? 。 Mimic-ITの力を活用して、AI駆動型の視覚アシスタントの可能性を最大限に発揮し、インタラクティブなビジョン言語タスクを新たな高みに引き上げます。
また、複数の言語で高品質の命令応答ペアを生成するための自動化されたパイプラインであるSyphusも紹介します。 Llavaが提案したフレームワークに基づいて、ChatGptを利用して視覚コンテンツに基づいて命令応答ペアを生成します。生成された命令応答ペアの品質を確保するために、当社のパイプラインには、システムメッセージ、視覚的な注釈、およびコンテキスト内の例がCHATGPTのプロンプトとして組み込まれています。
詳細については、mimic-itデータセットを確認してください。
Otterは、キャプションや命令応答ペアに対応する画像など、対応するメディア上の言語モデルを条件付けするOpenFlamingoモデルに基づいて、マルチモーダルのコンテキスト命令チューニングをサポートするように設計されています。
約280万人のコンテキスト命令応答ペアで模倣データセットでカワウソを訓練します。これらは、さまざまなタスクを容易にするためにまとまりのあるテンプレートに構造化されています。 Otterは、ビデオ入力(フレームは元のFlamingoの実装として配置されます)と複数の画像入力をコンテキスト内の例としてサポートします。これは、最初のマルチモーダル命令調整モデルです。
次のテンプレートには、 User
とGPT
ロールラベルを使用してシームレスなユーザーアシスタントインタラクションを可能にするために、画像、ユーザーの指示、モデル生成応答が含まれます。
prompt = f"<image>User: { instruction } GPT:<answer> { response } <endofchunk>"
Mimic-ITデータセットでOtterモデルをトレーニングすると、LAおよびSDタスクで示されているように、さまざまな能力を獲得できます。 LAタスクで訓練されたこのモデルは、例外的なシーンの理解、推論能力、およびマルチラウンドの会話機能を示しています。
# multi-round of conversation
prompt = f"<image>User: { first_instruction } GPT:<answer> { first_response } <endofchunk>User: { second_instruction } GPT:<answer>"
視覚言語内のコンテキストの例を整理するという概念に関して、LA-T2Tタスクのトレーニング後に、カワウソモデルの獲得能力をここで実証します。整理された入力データ形式は次のとおりです。
# Multiple in-context example with similar instructions
prompt = f"<image>User: { ict_first_instruction } GPT: <answer> { ict_first_response } <|endofchunk|><image>User: { ict_second_instruction } GPT: <answer> { ict_second_response } <|endofchunk|><image>User: { query_instruction } GPT: <answer>"
詳細については、他のタスクについては、論文の付録を参照してください。
conda env create -f environment.yml
を介してインストールできます。特に、 transformers>=4.28.0
確認するために、 accelerate>=0.18.0
。環境を構成した後、使用できますか?フラミンゴモデル /?オッターモデルとして?ほんの数行でフェイスモデルを抱きしめます!ワンクリックしてからモデル構成/重みが自動的にダウンロードされます。詳細については、Huggingface Otter/Flamingoを参照してください。
OtterはOpenFlamingoに基づいて訓練されています。 Luodian/Otter-9B-InitまたはLuodian/Otter-MPT7B-Initで変換された重量を使用する必要がある場合があります。それらは、それぞれOpenFlamingo-llama7b-V1およびOpenFlamingo-MPT7B-V2から変換され、Otterのダウンストリーム命令チューニングのために<answer>
トークンを追加しました。
また、訓練されたカワウソのウェイトを使用して、トレーニングから始めて、カワウソの重量で見てみましょう。画像/命令/トレーニングJSONファイルを準備するために、Mimic-ITを参照できます。
export PYTHONPATH=.
RUN_NAME= " Otter_MPT7B "
GPU=8
WORKERS= $(( ${GPU} * 2 ))
echo " Using ${GPU} GPUs and ${WORKERS} workers "
echo " Running ${RUN_NAME} "
accelerate launch --config_file=./pipeline/accelerate_configs/accelerate_config_zero3.yaml
--num_processes= ${GPU}
pipeline/train/instruction_following.py
--pretrained_model_name_or_path=luodian/OTTER-MPT7B-Init
--model_name=otter
--instruction_format=simple
--training_data_yaml=./shared_scripts/Demo_Data.yaml
--batch_size=8
--num_epochs=3
--report_to_wandb
--wandb_entity=ntu-slab
--external_save_dir=./checkpoints
--run_name= ${RUN_NAME}
--wandb_project=Otter_MPTV
--workers= ${WORKERS}
--lr_scheduler=cosine
--learning_rate=2e-5
--warmup_steps_ratio=0.01
--save_hf_model
--max_seq_len=1024
このリポジトリが便利だと思った場合は、引用を検討してください。
@article{li2023otter,
title={Otter: A Multi-Modal Model with In-Context Instruction Tuning},
author={Li, Bo and Zhang, Yuanhan and Chen, Liangyu and Wang, Jinghao and Yang, Jingkang and Liu, Ziwei},
journal={arXiv preprint arXiv:2305.03726},
year={2023}
}
@article{li2023mimicit,
title={MIMIC-IT: Multi-Modal In-Context Instruction Tuning},
author={Bo Li and Yuanhan Zhang and Liangyu Chen and Jinghao Wang and Fanyi Pu and Jingkang Yang and Chunyuan Li and Ziwei Liu},
year={2023},
eprint={2306.05425},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
Jack Hesselは、アドバイスとサポート、およびOpenFlamingoチームのオープンソースコミュニティへの多大な貢献について感謝します。
この素晴らしいアーキテクチャの作業に対するフラミンゴとオープンフラミンゴチームへの巨大な称賛。