Project Icon

AnyGPT

基于离散序列建模的多模态语言模型

AnyGPT是一款基于离散序列建模的多模态语言模型,能够统一处理语音、文本、图像和音乐等多种模态。该模型通过将不同模态数据转换为统一的离散表示,实现了模态间的转换和自由对话。AnyGPT包含基础模型和聊天模型两个版本,前者实现了四种模态的对齐,后者基于AnyInstruct数据集训练,支持灵活的多模态交互。

"AnyGPT:基于离散序列建模的统一多模态大语言模型"论文官方仓库

<a href='https://junzhan2000.github.io/AnyGPT.github.io/'><img src='https://img.shields.io/badge/项目-主页-绿色'>``</a> <a href='https://arxiv.org/pdf/2402.12226.pdf'><img src='https://img.shields.io/badge/论文-Arxiv-红色'>``</a>


简介

我们推出了AnyGPT,这是一个任意模态间转换的多模态语言模型,它利用离散表示统一处理语音、文本、图像和音乐等各种模态。基础模型对这四种模态进行对齐,实现不同模态与文本之间的相互转换。此外,我们基于各种生成模型构建了AnyInstruct数据集,其中包含任意模态间转换的指令。在该数据集上训练后,我们的对话模型能够进行自由的多模态对话,可以随意插入多模态数据。

AnyGPT提出了一种生成式训练方案,将所有模态数据转换为统一的离散表示,使用下一个标记预测任务在大语言模型(LLM)上进行统一训练。从"压缩即智能"的角度来看:当分词器的质量足够高,且LLM的困惑度(PPL)足够低时,就有可能将互联网上大量的多模态数据压缩到同一个模型中,从而产生纯文本LLM所不具备的能力。 演示示例可在项目主页查看。

示例演示

视频标题

开源清单

  • 基础模型
  • 对话模型
  • 推理代码
  • 指令数据集

推理

安装

git clone https://github.com/OpenMOSS/AnyGPT.git
cd AnyGPT
conda create --name AnyGPT python=3.9
conda activate AnyGPT
pip install -r requirements.txt

模型权重

SpeechTokenizer用于语音的分词和重构,Soundstorm负责补全副语言信息,SEED-tokenizer用于图像分词。

用于重构图像的unCLIP SD-UNet模型权重和用于音乐分词和重构的Encodec-32k模型权重将自动下载。

基础模型命令行推理

python anygpt/src/infer/cli_infer_base_model.py \
--model-name-or-path "path/to/AnyGPT-7B-base" \
--image-tokenizer-path 'path/to/model' \
--speech-tokenizer-path "path/to/model" \
--speech-tokenizer-config "path/to/config" \
--soundstorm-path "path/to/model" \
--output-dir "infer_output/base" 

例如

python anygpt/src/infer/cli_infer_base_model.py \
--model-name-or-path models/anygpt/base \
--image-tokenizer-path models/seed-tokenizer-2/seed_quantizer.pt \
--speech-tokenizer-path models/speechtokenizer/ckpt.dev \
--speech-tokenizer-config models/speechtokenizer/config.json \
--soundstorm-path models/soundstorm/speechtokenizer_soundstorm_mls.pt \
--output-dir "infer_output/base" 

交互

基础模型可以执行各种任务,包括文本生成图像、图像描述、自动语音识别(ASR)、零样本文本转语音(TTS)、文本生成音乐和音乐描述。

我们可以按照特定的指令格式进行推理。

  • 文本生成图像
    • text|image|{caption}
    • 示例: text|image|一个繁忙的中世纪集市场景,摊贩在五颜六色的帐篷下售卖奇异商品
  • 图像描述
    • image|text|{caption}
    • 示例: image|text|static/infer/image/cat.jpg
  • TTS(随机声音)
    • text|speech|{speech content}
    • 示例: text|speech|我可以被囚禁在果壳之中,却仍自以为是无限宇宙之王。
  • 零样本TTS
    • text|speech|{speech content}|{voice prompt}
    • 示例: text|speech|我可以被囚禁在果壳之中,却仍自以为是无限宇宙之王。|static/infer/speech/voice_prompt3.wav
  • ASR
    • speech|text|{speech file path}
    • 示例:speech|text|AnyGPT/static/infer/speech/voice_prompt2.wav
  • 文本生成音乐
    • text|music|{caption}
    • 示例: text|music|具有独立摇滚风格,带有独特元素,营造梦幻、舒缓的氛围
  • 音乐描述
    • music|text|{music file path}
    • 示例:music|text|static/infer/music/features an indie rock sound with distinct element.wav

注意事项

对于不同的任务,我们使用了不同的语言模型解码策略。图像、语音和音乐生成的解码配置文件分别位于config/image_generate_config.jsonconfig/speech_generate_config.jsonconfig/music_generate_config.json中。其他模态到文本的解码配置文件位于config/text_generate_config.json中。你可以直接修改或添加参数来改变解码策略。

由于数据和训练资源的限制,模型的生成可能仍不稳定。你可以多次生成或尝试不同的解码策略。

语音和音乐响应将保存为.wav文件,图像响应将保存为jpg文件。文件名将是提示和时间的组合。这些文件的路径将在响应中指明。

对话模型命令行推理

python anygpt/src/infer/cli_infer_chat_model.py 
\ --model-name-or-path 'path/to/model'
\ --image-tokenizer-path 'path/to/model'
\ --speech-tokenizer-path 'path/to/model'
\ --speech-tokenizer-config 'path/to/config'
\ --soundstorm-path 'path/to/model'
\ --output-dir "infer_output/chat"

例如

python anygpt/src/infer/cli_infer_chat_model.py 
\ --model-name-or-path models/anygpt/chat
\ --image-tokenizer-path models/seed-tokenizer-2/seed_quantizer.pt 
\ --speech-tokenizer-path models/speechtokenizer/ckpt.dev 
\ --speech-tokenizer-config models/speechtokenizer/config.json 
\ --soundstorm-path models/soundstorm/speechtokenizer_soundstorm_mls.pt 
\ --output-dir "infer_output/chat"

指令格式

interleaved|{文本指令}|{模态}|{图像路径}|{语音提示}|{语音指令}|{音乐路径}

其中 文本指令 是输入的文本命令,语音指令 是输入的语音命令;只需要指定其中一个。

图像路径音乐路径 分别是输入图像和音乐的路径。语音提示 是指定模型回复的语气;如果不指定,则使用随机语气。

模态 指的是输出模态的类型,可以选择为语音、图像或音乐;否则被视为文本。这只会影响模型使用config目录下的哪个解码配置文件(这是因为模型的训练受限,导致不同模态的解码策略不同)。也可以逐个token解码,在生成模态的起始token时修改解码策略为对应模态。

示例

  • interleaved||image|||static/infer/speech/instruction/Can you draw me a picture of a sunny beach.wav
  • interleaved||music|||static/infer/speech/instruction/Give me a similar style of music.wav

要清除对话历史,请输入 |clear

预训练和SFT

请参考 scripts/stage1_pretrain.shscripts/stage2_sft.sh

我们提供了训练数据样本以供参考。训练格式的组织包括data/pretrain中的预训练数据和data/instruction中的指令数据。 对于不同任务的提示,请参考task_prompts,如纯文本对话、语音命令文本回复、文本命令语音回复,以及各种任务的特殊提示。您需要根据任务模板提前将多模态数据处理成多轮对话格式。 我们在命令数据中以语音对话为例,对应使用"Speech-Instruction"和"Speech-Response"中的task_prompts:

[
    {
        "role": "user",
        "message": "<sosp><🗣️1><🗣️1><🗣️1><eosp> 请确认用户的语音输入,创建一个文本回复"
    },
    {
        "role": "assistant",
        "message": "<-Ins-> 你好,你好吗\n <-Res-> 我很好,谢谢 <sosp><🗣️2><🗣️2><🗣️2><eosp>"
    }
]

致谢

许可证

AnyGPT 根据LLaMA2的原始许可证发布。

引用

如果您在研究或应用中发现AnyGPT和AnyInstruct有用,请kindly引用:

@article{zhan2024anygpt,
  title={AnyGPT: Unified Multimodal LLM with Discrete Sequence Modeling},
  author={Zhan, Jun and Dai, Junqi and Ye, Jiasheng and Zhou, Yunhua and Zhang, Dong and Liu, Zhigeng and Zhang, Xin and Yuan, Ruibin and Zhang, Ge and Li, Linyang and others},
  journal={arXiv preprint arXiv:2402.12226},
  year={2024}
}
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号