일반 소개
MiniMind-V는 사용자가 단 2600만 개의 파라미터로 1시간 이내에 경량 시각 언어 모델(VLM)을 훈련할 수 있도록 설계된 오픈 소스 프로젝트로, GitHub에서 호스팅되고 있습니다. 이 프로젝트는 이미지 및 텍스트 공동 처리를 지원하는 새로운 시각 코더 및 특징 투영 모듈인 MiniMind 언어 모델을 기반으로 합니다. 이 프로젝트는 데이터 세트 정리부터 모델 추론까지 완전한 코드를 제공하며, 단일 GPU(예: NVIDIA 3090)의 경우 훈련 비용이 1.3위안 정도입니다. MiniMind-V는 50줄 미만의 코드 변경으로 단순성과 사용 편의성을 강조하므로 개발자가 시각 언어 모델을 구축하는 과정을 실험하고 학습하기에 적합한 도구입니다.

기능 목록
- 2,600만 개의 파라미터 시각 언어 모델에 대한 완전한 학습 코드를 제공하여 단일 GPU에서 빠른 학습을 지원합니다.
- CLIP 비주얼 코더를 사용하여 224x224픽셀 이미지를 처리하여 196개의 비주얼 토큰을 생성했습니다.
- 대화, 이미지 설명 또는 Q&A를 위한 텍스트와 결합된 단일 및 다중 이미지 입력을 지원합니다.
- 데이터 세트 정리, 사전 교육 및 감독형 미세 조정(SFT)을 위한 전체 프로세스 스크립트가 포함되어 있습니다.
- 파이토치 네이티브 구현을 제공하고, 멀티 카드 가속을 지원하며, 호환성이 높습니다.
- 모델 가중치 다운로드가 포함되어 있으며, 허깅 페이스 및 모델스코프 플랫폼을 지원합니다.
- 모델 효과를 쉽게 테스트할 수 있는 웹 인터페이스와 명령줄 추론을 제공합니다.
- 훈련 중 손실과 성과를 기록할 수 있는 wandb 도구를 지원합니다.
도움말 사용
MiniMind-V 사용 과정에는 환경 구성, 데이터 준비, 모델 훈련 및 효과 테스트가 포함됩니다. 각 단계는 사용자가 빠르게 시작할 수 있도록 아래에 자세히 설명되어 있습니다.
환경 구성
MiniMind-V를 사용하려면 Python 환경과 GPU 지원이 필요합니다. 설치 단계는 다음과 같습니다:
- 코드 복제
터미널에서 다음 명령을 실행하여 프로젝트 코드를 다운로드합니다:git clone https://github.com/jingyaogong/minimind-v cd minimind-v
- 종속성 설치
프로젝트 제안requirements.txt
파일에 필요한 라이브러리가 포함되어 있습니다. 다음 명령을 실행합니다:pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
Python 3.9 이상을 권장합니다. PyTorch가 CUDA를 지원하는지 확인합니다(GPU가 있는 경우). 다음 코드를 실행하여 확인할 수 있습니다:
import torch print(torch.cuda.is_available())
수출
True
GPU를 사용할 수 있음을 나타냅니다. - 클립 모델 다운로드
MiniMind-V는 CLIP 모델(clip-vit-base-patch16
)를 시각적 코더로 사용합니다. 다음 명령을 실행하여./model/vision_model
::git clone https://huggingface.co/openai/clip-vit-base-patch16 ./model/vision_model
ModelScope에서도 다운로드할 수 있습니다:
git clone https://www.modelscope.cn/models/openai-mirror/clip-vit-base-patch16 ./model/vision_model
- 기본 언어 모델 가중치 다운로드
미니마인드-V는 미니마인드 언어 모델을 기반으로 하며, 언어 모델 가중치를 다운로드해야 합니다../out
카탈로그. 예시:wget https://huggingface.co/jingyaogong/MiniMind2-V-PyTorch/blob/main/lm_512.pth -P ./out
또는 다운로드
lm_768.pth
모델 구성에 따라 다릅니다.
데이터 준비
MiniMind-V는 약 5GB의 저장 공간에 약 57만 개의 사전 학습 이미지와 30만 개의 명령 미세 조정 데이터를 사용하며, 절차는 다음과 같습니다:
- 데이터 집합 카탈로그 만들기
프로젝트 루트 디렉터리에서./dataset
폴더:mkdir dataset
- 데이터 세트 다운로드
허깅 페이스 또는 모델스코프에서 데이터 세트를 다운로드합니다.*.jsonl
Q&A 데이터 및*images
사진 데이터:- 포옹하는 얼굴: https://huggingface.co/datasets/jingyaogong/minimind-v_dataset
- 모델 범위: https://www.modelscope.cn/datasets/gongjy/minimind-v_dataset
이미지 데이터를 다운로드하여 다음 주소로 압축을 풉니다../dataset
::
unzip pretrain_images.zip -d ./dataset unzip sft_images.zip -d ./dataset
- 유효성 검사 데이터 세트
보안./dataset
다음 파일이 포함되어 있습니다:pretrain_vlm_data.jsonl
사전 교육 데이터, 약 570,000개 항목.sft_vlm_data.jsonl
단일 수치 미세 조정 데이터, 약 30만 개의 항목.sft_vlm_data_multi.jsonl
멀티맵 미세 조정 데이터, 약 13,600개 항목.- 이미지 폴더: 사전 교육 및 미세 조정을 위한 이미지 파일이 들어 있습니다.
모델 교육
MiniMind-V 훈련은 사전 훈련과 감독 미세 조정으로 나뉘며, 단일 또는 다중 카드 가속을 지원합니다.
- 구성 매개변수
컴파일러./model/LMConfig.py
를 클릭하고 모델 매개변수를 설정합니다. 예시:- 미니어처:
dim=512
,n_layers=8
- 중간 모델:
dim=768
,n_layers=16
이러한 매개 변수는 모델 크기와 성능을 결정합니다.
- 미니어처:
- 사전 교육
사전 교육 스크립트를 실행하여 이미지 설명 기능을 학습하세요:python train_pretrain_vlm.py --epochs 4
출력 가중치는 다음과 같이 저장됩니다.
./out/pretrain_vlm_512.pth
(또는768.pth
CLIP 모델이 고정됨) 단일 NVIDIA 3090은 CLIP 모델을 고정하고 언어 모델의 투영 레이어와 마지막 레이어만 학습하는 데 약 1시간이 걸립니다. - 감독형 미세 조정(SFT)
사전 학습된 가중치를 사용하여 미세 조정하여 대화 기능을 최적화합니다:python train_sft_vlm.py --epochs 4
출력 가중치는 다음과 같이 저장됩니다.
./out/sft_vlm_512.pth
. 이 단계에서는 모든 매개변수를 사용하여 투영 레이어와 언어 모델을 학습합니다. - 도카 교육(선택 사항)
그래픽 카드가 N개인 경우 다음 명령을 사용하여 가속하세요:torchrun --nproc_per_node N train_pretrain_vlm.py --epochs 4
상호 호환성
train_pretrain_vlm.py
다른 교육 스크립트의 경우(예train_sft_vlm.py
). - 교육 모니터링
교육 손실은 wandb를 사용하여 기록할 수 있습니다:python train_pretrain_vlm.py --epochs 4 --use_wandb
wandb 공식 웹사이트에서 실시간 데이터를 확인하세요.
효과 테스트
학습이 완료되면 모델의 이미지 대화 기능을 테스트할 수 있습니다.
- 명령줄 추론
다음 명령을 실행하여 모델을 로드합니다:python eval_vlm.py --load 1 --model_mode 1
--load 1
: 포옹하는 얼굴에서 트랜스포머 형식 모델을 로드합니다.--load 0
: 출발지./out
파이토치 가중치를 로드합니다.--model_mode 1
미세 조정된 모델 테스트;0
사전 학습된 모델을 테스트합니다.
- 웹 인터페이스 테스트
웹 인터페이스를 시작합니다:python web_demo_vlm.py
인터뷰
http://localhost:8000
를 클릭하고 이미지를 업로드하고 테스트할 텍스트를 입력합니다. - 입력 형식
MiniMind-V는 196@@@
자리 표시자는 이미지를 나타냅니다. 예시:@@@...@@@\n这张图片是什么内容?
다중 이미지 입력의 예입니다:
@@@...@@@\n第一张图是什么?\n@@@...@@@\n第二张图是什么?
- 사전 트레이닝 웨이트 다운로드
트레이닝을 하지 않는 경우 공식 웨이트를 직접 다운로드할 수 있습니다:
주의
- 권장 비디오 메모리 24GB(예: RTX 3090). 비디오 메모리가 부족한 경우 배치 크기를 줄이세요(
batch_size
). - 데이터 집합 경로가 올바른지 확인합니다.
*.jsonl
에 이미지 파일을 배치해야 하며./dataset
. - 훈련 중에 CLIP 모델을 고정하면 산술 요구 사항이 줄어듭니다.
- 다중 이미지 대화는 효과가 제한적이므로 단일 이미지 시나리오를 우선적으로 테스트하는 것이 좋습니다.
애플리케이션 시나리오
- AI 알고리즘 학습
MiniMind-V는 학생들이 크로스 모달 모델링 원리를 이해하기에 적합한 간결한 시각적 언어 모델링 코드를 제공합니다. 사용자는 코드를 수정하여 다양한 매개변수 또는 데이터 세트를 실험할 수 있습니다. - 신속한 프로토타이핑
가볍고 효율적이며 PC나 임베디드 시스템과 같은 저컴퓨팅 장치에 적합한 MiniMind-V를 기반으로 이미지 대화 애플리케이션을 프로토타이핑할 수 있습니다. 가볍고 효율적이어서 PC나 임베디드 시스템과 같은 저전력 디바이스에 적합합니다. - 교육 및 트레이닝 도구
대학에서는 AI 강좌에서 MiniMind-V를 사용하여 모델 학습의 전체 과정을 보여줄 수 있습니다. 코드는 명확하게 주석 처리되어 있어 강의실 실습에 적합합니다. - 저렴한 비용의 실험
프로젝트 교육 비용이 저렴하여 예산이 제한된 팀에서 고성능 서버 없이도 멀티모달 모델의 효과를 테스트하기에 적합합니다.
QA
- 미니마인드-V는 어떤 크기의 이미지를 지원하나요?
기본 처리 이미지는 224x224픽셀 이미지이며, CLIP 모델에 따라 제한됩니다. 데이터 세트 이미지는 공간 절약을 위해 128x128로 압축될 수 있습니다. 향후 더 큰 해상도의 CLIP 모델이 시도될 수 있습니다. - 교육 시간은 얼마나 걸리나요?
단일 NVIDIA 3090에서 사전 훈련 1단계는 약 1시간이 소요되며, 미세 조정은 조금 더 빠릅니다. 정확한 시간은 하드웨어와 데이터 양에 따라 다릅니다. - 사전 교육 없이 바로 미세 조정할 수 있나요?
Can. 공식 사전 트레이닝 웨이트를 직접 다운로드하여 실행하세요.train_sft_vlm.py
미세 조정. - 어떤 언어가 지원되나요?
주로 중국어와 영어를 지원하며, 데이터 세트에 따라 효과가 달라집니다. 사용자는 미세 조정을 통해 다른 언어로 확장할 수 있습니다. - 다중 이미지 대화는 얼마나 잘 작동하나요?
현재 다중 이미지 대화 기능은 제한되어 있으므로 단일 이미지 시나리오를 우선적으로 사용하는 것이 좋습니다. 향후 더 큰 모델과 데이터 세트로 개선될 수 있습니다.
© 저작권 정책
이 글은 저작권이 있으며 무단으로 복제해서는 안 됩니다.
관련 문서
댓글 없음...