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.jpgtext|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 可以使用相同的目标函数训练所有媒体,从而无需单独的专业模型即可实现零样本跨模态生成和对话。
相关
- 项目
- 项目
- 项目
- 项目