차세대 GPT : 모든 다중 모드 LLMShengqiong Wu, Hao Fei*, Leigang Qu, Wei Ji 및 Tat-Seng Chua. (*서신)
ICML 2024, 구강 종이
Next ++ Research Center, 싱가포르 국립 대학 컴퓨팅 학교
이 저장소는 입력을 인식하고 텍스트, 이미지, 비디오 및 오디오 및 그 이상의 임의의 조합 (모든-마다)에서 출력을 생성하는 첫 번째 엔드 투 엔드 MM-LLM 인 Next-GPT 의 코드, 데이터 및 모델 가중치를 호스팅합니다.
언급 : 우리는 이전의 오래된 코드베이스를 차세대 GPT-Lagacy로 포장합니다. 모든 교육 및 튜닝 절차는이 새로운 코드베이스를 참조하십시오.
7b_tiva_v0 에서 차세대 GPT 코드를 릴리스합니다. 여기서 우리는 차세대에서 생성 된 예제를 보여줍니다. 더 많은 예를 보려면 웹 페이지 또는 온라인 라이브 데모를 친절하게 방문하십시오.
차세대 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차세대 GPT는 우수한 기존 모델을 기반으로 교육을받습니다. 검문소를 준비하려면 지침을 따르십시오.
ImageBind 는 통합 이미지/비디오/오디오 인코더입니다. 미리 훈련 된 체크 포인트는 여기에서 huge 버전으로 다운로드 할 수 있습니다. 그 후, imagebind_huge.pth 파일을 [.pretrain_ckpt/imagebind]에 넣습니다.Vicuna : [여기]에서 사전에 사기꾼 비쿠나를 준비하십시오. 그런 다음 미리 훈련 된 모델을 [./pretrain_ckpt/vicuna-7b-v1.5/]에 넣습니다.Image Diffusion 이미지를 생성하는 데 사용됩니다. Next-Gpt는 버전 v2 와 함께 안정적인 확산을 사용합니다.Audio Diffusion . Next-Gpt는 버전 l-full 과 함께 Audioldm을 사용합니다. ( 자동으로 다운로드됩니다 )Video Diffusion . 우리는 v2_576w 버전으로 0을 사용합니다. ( 자동으로 다운로드됩니다 )모델 교육에 사용 된 다음 데이터 세트를
다운로드
CC3M 그런 다음 데이터를 [./data/t-x_pair_data/cc3m]에 넣습니다.WebVid [명령어]를 참조하십시오. 파일은 [./data/t-x_pair_data/webvid]에 저장해야합니다.AudioCap , [명령어]를 참조하십시오. [./data/t-x_pair_data/audiocap]에 데이터를 저장하십시오.b) 지시 데이터
t+xt
LLaVA 시각적 명령 데이터 의 llava 여기에서 다운로드 한 다음 [./data/it_data/t+x-t_data/llava]에 넣습니다.Alpaca 여기에서 다운로드 한 다음 [./data/it_data/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_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 될 수있는 양식;먼저, 전체 모듈의 기본 시스템 설정 및 DataSet 구성 NextGpt/DataSet/Catalog.py는 기본 구성 파일 [Training_utils.py]을 참조하십시오. 전체 차세대 교육 훈련에는 3 단계 :
1 단계 : 인코딩 측 LLM 중심 다중 모드 정렬이 포함됩니다. 이 단계는 ImageBind, LLM, 출력 프로젝션 레이어를 동결하면서 입력 투영 계층을 훈련시킵니다.
# Encoding-side LLM-centric Multimodal Alignment bash scripts/pretrain_enc.sh2 단계 : 디코딩 측면 명령어를 따르는 정렬. 이 단계는 ImageBind, LLM, 입력 프로젝션 레이어를 동결시키면서 출력 프로젝션 레이어를 훈련시킵니다.
# Encoding-side LLM-centric Multimodal Alignment bash scripts/pretrain_enc.sh3 단계 : 지시 조정. 이 단계 명령-튜닝 1) LORA를 통한 LLM , 2) 입력 투영 계층 및 3) 명령 데이터 세트의 출력 투영 계층 .
# Encoding-side LLM-centric Multimodal Alignment bash scripts/pretrain_enc.sh, 미리 훈련 된 차세대 GPT 시스템을로드합니다.
1 단계 : Frozen parameters 로드합니다. 미리 훈련 된 체크 포인트 준비 3.1을 참조하십시오.
2 단계 : Tunable parameters 로드. 다음 GPT 시스템을 ./checkpoints/nextgpt-v1.5-7B에 넣으십시오. 당신은 1) 훈련 된 매개 변수를 사용하거나 2) Huggingface에서 우리의 체크 포인트를 다운로드 할 수 있습니다.
체크 포인트 로딩이 완료되면
python predict.pypython predict.py자신의 데이터 세트를 정의 할 수 있습니다. base_dataset.py를 참조한 다음 target 및 parameters 포함하여 Catalog.py에 데이터 세트 catalog 추가하십시오.
Training_utils.py에서 모델, 데이터 및 교육 매개 변수를 사전 정의 할 수 있습니다. 자신의 모델을 미세 조정하려면 Finetune.sh를 참조하십시오.
질문이나 피드백에
연구 또는 응용 프로그램에 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의 영감을 부분적으로 그립니다.
길, 코디, 비디오 롤라, llava 및 minigpt-4. 그들의 멋진 작품에 감사드립니다.
이 저장소가 BSD 3-Clause 라이센스 아래에 있음을 알게됩니다. Next-Gpt는 비상업적 사용을위한 연구 프로젝트입니다. 불법, 유해, 폭력, 인종 차별 주의자 또는 성적인 목적에 대해 차세대 판정 코드를 사용해서는 안됩니다. 하나는 이러한 지침을 잠재적으로 위반할 활동에 참여하는 데 엄격히 금지되어 있습니다. 이 코드의 잠재적 인 상업적 사용은 저자가 승인해야합니다.