OpenMOSS/AnyGPT
A unified multimodal language model based on discrete sequence modeling
AnyGPT – 統合型マルチモーダル言語モデル
何であるか – AnyGPT は、テキスト、音声、画像、音楽を読み取り・生成できるオープンソースの大規模言語モデルです。すべてのモダリティを共有される離散トークンストリームに変換し、標準の次トークン予測器(LLaMA-2ベースのトランスフォーマー)で学習します。リポジトリには以下のものが含まれます:
- ベースモデル:4つのモダリティを統合し、単一ターンタスク(例:テキスト→画像、ASR、TTS、テキスト→音楽など)に使用可能
- チャットモデル:AnyInstruct データセットでファインチューニングされ、マルチターンのマルチモーダル会話に適しています
- 両モデル用の推論スクリプト
- AnyInstruct 指示データセット(HuggingFaceにホスト):任意のモダリティ変換用のプロンプトを含む
主なコンポーネント
- SpeechTokenizer + SoundStorm:音声のトークン化/再構成
- SEED-tokenizer:画像のトークン化
- unCLIP SD-UNet(自動ダウンロード):画像デコード
- Encodec-32k:音楽のトークン化/再構成
導入方法
# リポジトリをクローンして環境をセットアップ
git clone https://github.com/OpenMOSS/AnyGPT.git && cd AnyGPT
conda create -n AnyGPT python=3.9 && conda activate AnyGPT
pip install -r requirements.txt
HuggingFaceからモデルチェックポイント(ベース、チャット、音声モジュール、SEEDトークナイザー)をダウンロードし、CLIスクリプトが期待する場所に配置してください。
推論の実行
- ベースモデル –
cli_infer_base_model.pyを使用し、モデルおよび各種トークナイザーのパスを指定します。プロンプトは単純なmodality|modality|payload構文に従います。例:text|image|夕焼けの未来都市image|text|path/to/pic.jpgtext|speech|こんにちは世界speech|text|path/to/audio.wav
- チャットモデル – 1ターン内でテキスト、画像、音声、音楽を混合できるインタリーブドな指示形式で
cli_infer_chat_model.pyを使用します。
データセット – AnyInstruct データセット(🤗 fnlp/AnyInstruct)は、すべての変換方向をカバーするマルチモーダルの指示-応答ペアを含んでいます。SFT(指示チューニング)段階で使用されます。
ライセンス – コードとモデルは、MetaのLLaMA-2と同じライセンスでリリースされています(リンクされたライセンスページを参照)。
引用
@article{zhan2024anygpt,
title={AnyGPT: Unified Multimodal LLM with Discrete Sequence Modeling},
author={Zhan, Jun and others},
journal={arXiv preprint arXiv:2402.12226},
year={2024}
}
なぜ重要か – 画像、音声、音楽を離散トークンストリームに変換することで、AnyGPTは、同じ目的関数ですべてのメディアを学習できる単一のLLMを実現し、専用の専門モデルなしにゼロショットのクロスモーダル生成と会話が可能になることを示しています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト