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.jpg
    • text|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を実現し、専用の専門モデルなしにゼロショットのクロスモーダル生成と会話が可能になることを示しています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト