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

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

Project Cover

Kimi

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

Project Cover

阿里绘蛙

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

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

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