Next-GPT:任何一对一的多模式LLMShengqiong Wu,Hao Fei*,Leigang Qu,Wei Ji和Tat-Seng Chua。 (*一致 )
ICML 2024,口头纸
新加坡国立大学计算学院的下一个++研究中心
该存储库托管了Next-GPT的代码,数据和模型权重,Next-GPT是第一个端到端的MM-LLM,它可以感知输入并以任意组合(任何对任何)文本,图像,视频和音频及其他方式生成输出。
指出:我们将以前的旧代码库包裹在下一-GPT范围内。请参阅此新代码库以获取所有培训和调整程序。
7b_tiva_v0中发布Next-GPT的代码。 在这里,我们展示了Next-GPT生成的示例。有关更多示例,请访问网页或在线实时演示。
Next-GPT建立在现有的预训练的LLM,多模式编码器和SOTA扩散模型之上,并具有足够的端到端指令调整。

有关更多技术细节,请参考该论文。
. |-- NExT-GPT-Lagacy # the previous version of the model |-- assets |-- checkpoints # save the pretraining and tuning checkpoints |-- data | |-- IT_data | | |-- MosIT_data | | |-- T+X-T_data # text+[image/audio/video] to text instruction data | | `-- T-T+X_data # synthesized text to text+[image/audio/video] instruction data | |-- T_X_pair_data # text-autio pairs data | | |-- audiocap | | |-- cc3m | | `-- webvid | |-- embed | `-- prepare_data.py |-- figures |-- merge_lora_weights.py |-- nextgpt | |-- __init__.py | |-- constants.py | |-- conversation.py | |-- dataset | | |-- __init__.py | | |-- audio_processor.py | | |-- base_dataset.py | | |-- catalog.py | | |-- concat_dataset.py | | |-- dataset_utils.py | | `-- sampler.py | |-- mm_utils.py | |-- model | | |-- __init__.py | | |-- apply_delta.py | | |-- builder.py | | |-- consolidate.py | | |-- language_model | | |-- make_delta.py | | |-- multimodal_decoder | | |-- multimodal_encoder | | |-- multimodal_projector | | |-- nextgpt_arch.py | | `-- utils.py | `-- utils.py |-- scripts | |-- finetune.sh | |-- pretrain_dec.sh | |-- pretrain_enc.sh | |-- zero2.json | |-- zero3.json | `-- zero3_offload.json |-- LICENSE.md |-- README.md |-- nextgpt_trainer.py |-- predict.py |-- preprocess_embeddings.py |-- requirements.txt |-- train.py |-- train_mem.py `-- training_utils.py请首先克隆回购并安装所需的环境,这可以通过运行以下命令来完成:
conda env create -n nextgpt python=3.8 conda activate nextgpt # CUDA 12.1 conda install pytorch==2.1.2 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.6 -c pytorch -c nvidia git clone https://github.com/NExT-GPT/NExT-GPT.git cd NExT-GPT pip install -r requirements.txt根据以下出色的现有模型,
请按照说明准备检查点。
ImageBind是统一的图像/视频/音频编码器。可以从此处下载预先训练的检查点,其中版本huge 。之后,将imagebind_huge.pth文件放在[.pretrain_ckpt/imageBind]上。Vicuna :从[此处]准备验证的Vicuna。然后将预训练的模型放在[./pretrain_ckpt/vicuna-7b-v1.5/]上。Image Diffusion用于生成图像。 Next-GPT使用v2版本的稳定扩散。 (将自动下载)Audio Diffusion 。 Next-GPT使用l-full版本使用AudiOLDM。 (将自动下载)Video Diffusion 。我们使用v2_576w版本的零镜。 (将自动下载)请下载用于模型培训的以下数据集:
a)TX对数据
CC3M文本图像对,请遵循此说明[此处]。然后将数据放在[./data/t-x_pair_data/cc3m]中。WebVid of Text-Video对,请参见[指令]。该文件应保存在[./data/t-x_pair_data/webvid]上。AudioCap对的有影响力,请参见[指令]。将数据保存在[./data/t-x_pair_data/audiocap]中。b)指令数据
t+x
LLaVA的视觉说明数据,从这里下载,然后将其放在[./data/it_data/t+x+x-t+x-t_data/llava]中。Alpaca ,从这里下载,然后将其放在[./data/it_data/t+x-t+x-t_data/alpaca/]上。VideoChat ,在此处下载视频说明数据,然后将其放在[./data/it_data/t+x-t_data/videochat/]上。旁注:下载数据集后,请运行prepare_data.py以预处理数据集。
T-X+T(T2M)
T-X+T指令数据集(T2M)保存在[./data/it_data/t-t+x +x_Data]上。MOSIT
,我们最大程度地减少了信号令牌和标题表示之间的距离。为了节省时间和内存的成本,我们使用各自扩散模型中的文本编码器预先计算图像,音频和视频字幕的文本嵌入。
请在下一个GPT的以下培训之前运行此命令,其中生产的embedding文件将保存在[./data/embed]上。
cd ./code/ python preprocess_embeddings.py ../data/T-X_pair_data/cc3m/cc3m_generation.json image ../data/embed/ stabilityai/stable-diffusion-2参数注:
image , video和audio ;首先,
整个Next-GPT训练涉及3个步骤:
步骤1 :以LLM为中心的多模式对齐。该阶段在冷冻图像bind,llm,输出投影层时训练输入投影层。
# Encoding-side LLM-centric Multimodal Alignment bash scripts/pretrain_enc.sh步骤2 :解码侧指令遵循对齐。该阶段在冻结图像bind,llm,输入投影层的同时训练输出投影层。
# Encoding-side LLM-centric Multimodal Alignment bash scripts/pretrain_enc.sh第3步:指令调整。此阶段指令调度1)通过LORA,2)输入投影层和3)指令数据集上的输出投影层。
# Encoding-side LLM-centric Multimodal Alignment bash scripts/pretrain_enc.sh,加载预先训练的Next-GPT系统。
步骤1 :加载Frozen parameters 。请参阅3.1准备预训练的检查点。
步骤2 :加载Tunable parameters 。请在./checkpoints/nextgpt-v1.5-7b上放置下一个GPT系统。您可以1)使用经过训练的参数,或者2)从Huggingface下载我们的检查点。
在完成检查点加载后
python predict.pypython predict.py您可以定义自己的数据集,请参阅base_dataset.py,然后在Catalog.py中添加数据catalog ,包括target和parameters 。
您可以预先定义triagn_utils.py中的模型,数据和培训参数。请参阅Finetune.sh以进行微调。
任何问题或反馈,请随时与Shengqiong Wu和Hao Fei联系。
如果您发现Nextgpt在您的研究或应用程序中有用,请引用:
@inproceedings{wu24next, title={{NE}x{T}-{GPT}: Any-to-Any Multimodal {LLM}}, author={Wu, Shengqiong and Fei, Hao and Qu, Leigang and Ji, Wei and Chua, Tat-Seng}, booktitle={Proceedings of the International Conference on Machine Learning}, pages = {53366--53397}, year={2024} }是我们的框架和代码存储库,Vicuna,ImageBind,稳定扩散,AudiOldm和Zeroscope的基础。我们还从Pandagpt中部分汲取灵感,
Gill,Codi,Video-Lalama,Llava和Minigpt-4。感谢他们的精彩作品。
此存储库是根据BSD 3条款许可证的。 Next-GPT是一个仅用于非商业用途的研究项目。一个人不得将Next-GPT守则用于任何非法,有害,暴力,种族主义或性目的。严格禁止人们从事任何可能违反这些准则的活动。该代码的任何潜在商业用途均应得到作者的批准。