OpenMOSS/AnyGPT

A unified multimodal language model based on discrete sequence modeling

AnyGPT – 統一的多模態語言模型

是什麼 – AnyGPT 是一個開源的大規模語言模型,能夠讀取和生成 文字、語音、影像和音樂。它透過將所有模態轉換為共享的離散標記流,再訓練標準的下一個標記預測器(基於 LLaMA-2 的 Transformer)。此程式碼庫包含:

  • 一個 基礎模型,對齊四種模態,可用於單回合任務(例如:文字→影像、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
  • 聊天模型 – 使用 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 可以使用相同目標函數訓練所有媒體,進而無需獨立的專業模型即可實現零樣本跨模態生成與對話。

相關

  • 專案
  • 專案
  • 專案
  • 專案