AnyGPT

AnyGPT

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

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

AnyGPT多模态语言模型离散序列建模模态转换大语言模型Github开源项目

"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>

<p align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/fec539df-6ab3-4857-9f32-f26150a14b30.png" width="16%"> <br> </p>

简介

我们推出了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}
}

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多