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守則用於任何非法,有害,暴力,種族主義或性目的。嚴格禁止人們從事任何可能違反這些準則的活動。該代碼的任何潛在商業用途均應得到作者的批准。