MiniMind-V: 2600만 개의 파라메트릭 시각 언어 모델에 대한 1시간 교육

최신 AI 리소스4 개월 전에 게시 됨 AI 공유 서클
1.2K 00

일반 소개

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

MiniMind-V:1小时训练26M参数视觉语言模型

 

기능 목록

  • 2,600만 개의 파라미터 시각 언어 모델에 대한 완전한 학습 코드를 제공하여 단일 GPU에서 빠른 학습을 지원합니다.
  • CLIP 비주얼 코더를 사용하여 224x224픽셀 이미지를 처리하여 196개의 비주얼 토큰을 생성했습니다.
  • 대화, 이미지 설명 또는 Q&A를 위한 텍스트와 결합된 단일 및 다중 이미지 입력을 지원합니다.
  • 데이터 세트 정리, 사전 교육 및 감독형 미세 조정(SFT)을 위한 전체 프로세스 스크립트가 포함되어 있습니다.
  • 파이토치 네이티브 구현을 제공하고, 멀티 카드 가속을 지원하며, 호환성이 높습니다.
  • 모델 가중치 다운로드가 포함되어 있으며, 허깅 페이스 및 모델스코프 플랫폼을 지원합니다.
  • 모델 효과를 쉽게 테스트할 수 있는 웹 인터페이스와 명령줄 추론을 제공합니다.
  • 훈련 중 손실과 성과를 기록할 수 있는 wandb 도구를 지원합니다.

 

도움말 사용

MiniMind-V 사용 과정에는 환경 구성, 데이터 준비, 모델 훈련 및 효과 테스트가 포함됩니다. 각 단계는 사용자가 빠르게 시작할 수 있도록 아래에 자세히 설명되어 있습니다.

환경 구성

MiniMind-V를 사용하려면 Python 환경과 GPU 지원이 필요합니다. 설치 단계는 다음과 같습니다:

  1. 코드 복제
    터미널에서 다음 명령을 실행하여 프로젝트 코드를 다운로드합니다:

    git clone https://github.com/jingyaogong/minimind-v
    cd minimind-v
    
  2. 종속성 설치
    프로젝트 제안 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를 사용할 수 있음을 나타냅니다.

  3. 클립 모델 다운로드
    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
    
  4. 기본 언어 모델 가중치 다운로드
    미니마인드-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만 개의 명령 미세 조정 데이터를 사용하며, 절차는 다음과 같습니다:

  1. 데이터 집합 카탈로그 만들기
    프로젝트 루트 디렉터리에서 ./dataset 폴더:

    mkdir dataset
    
  2. 데이터 세트 다운로드
    허깅 페이스 또는 모델스코프에서 데이터 세트를 다운로드합니다. *.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
    
  3. 유효성 검사 데이터 세트
    보안 ./dataset 다음 파일이 포함되어 있습니다:

    • pretrain_vlm_data.jsonl사전 교육 데이터, 약 570,000개 항목.
    • sft_vlm_data.jsonl단일 수치 미세 조정 데이터, 약 30만 개의 항목.
    • sft_vlm_data_multi.jsonl멀티맵 미세 조정 데이터, 약 13,600개 항목.
    • 이미지 폴더: 사전 교육 및 미세 조정을 위한 이미지 파일이 들어 있습니다.

모델 교육

MiniMind-V 훈련은 사전 훈련과 감독 미세 조정으로 나뉘며, 단일 또는 다중 카드 가속을 지원합니다.

  1. 구성 매개변수
    컴파일러 ./model/LMConfig.py를 클릭하고 모델 매개변수를 설정합니다. 예시:

    • 미니어처:dim=512n_layers=8
    • 중간 모델:dim=768n_layers=16
      이러한 매개 변수는 모델 크기와 성능을 결정합니다.
  2. 사전 교육
    사전 교육 스크립트를 실행하여 이미지 설명 기능을 학습하세요:

    python train_pretrain_vlm.py --epochs 4
    

    출력 가중치는 다음과 같이 저장됩니다. ./out/pretrain_vlm_512.pth(또는 768.pthCLIP 모델이 고정됨) 단일 NVIDIA 3090은 CLIP 모델을 고정하고 언어 모델의 투영 레이어와 마지막 레이어만 학습하는 데 약 1시간이 걸립니다.

  3. 감독형 미세 조정(SFT)
    사전 학습된 가중치를 사용하여 미세 조정하여 대화 기능을 최적화합니다:

    python train_sft_vlm.py --epochs 4
    

    출력 가중치는 다음과 같이 저장됩니다. ./out/sft_vlm_512.pth. 이 단계에서는 모든 매개변수를 사용하여 투영 레이어와 언어 모델을 학습합니다.

  4. 도카 교육(선택 사항)
    그래픽 카드가 N개인 경우 다음 명령을 사용하여 가속하세요:

    torchrun --nproc_per_node N train_pretrain_vlm.py --epochs 4
    

    상호 호환성 train_pretrain_vlm.py 다른 교육 스크립트의 경우(예 train_sft_vlm.py).

  5. 교육 모니터링
    교육 손실은 wandb를 사용하여 기록할 수 있습니다:

    python train_pretrain_vlm.py --epochs 4 --use_wandb
    

    wandb 공식 웹사이트에서 실시간 데이터를 확인하세요.

효과 테스트

학습이 완료되면 모델의 이미지 대화 기능을 테스트할 수 있습니다.

  1. 명령줄 추론
    다음 명령을 실행하여 모델을 로드합니다:

    python eval_vlm.py --load 1 --model_mode 1
    
    • --load 1: 포옹하는 얼굴에서 트랜스포머 형식 모델을 로드합니다.
    • --load 0: 출발지 ./out 파이토치 가중치를 로드합니다.
    • --model_mode 1미세 조정된 모델 테스트;0 사전 학습된 모델을 테스트합니다.
  2. 웹 인터페이스 테스트
    웹 인터페이스를 시작합니다:

    python web_demo_vlm.py
    

    인터뷰 http://localhost:8000를 클릭하고 이미지를 업로드하고 테스트할 텍스트를 입력합니다.

  3. 입력 형식
    MiniMind-V는 196 @@@ 자리 표시자는 이미지를 나타냅니다. 예시:

    @@@...@@@\n这张图片是什么内容?
    

    다중 이미지 입력의 예입니다:

    @@@...@@@\n第一张图是什么?\n@@@...@@@\n第二张图是什么?
    
  4. 사전 트레이닝 웨이트 다운로드
    트레이닝을 하지 않는 경우 공식 웨이트를 직접 다운로드할 수 있습니다:

주의

  • 권장 비디오 메모리 24GB(예: RTX 3090). 비디오 메모리가 부족한 경우 배치 크기를 줄이세요(batch_size).
  • 데이터 집합 경로가 올바른지 확인합니다.*.jsonl 에 이미지 파일을 배치해야 하며 ./dataset.
  • 훈련 중에 CLIP 모델을 고정하면 산술 요구 사항이 줄어듭니다.
  • 다중 이미지 대화는 효과가 제한적이므로 단일 이미지 시나리오를 우선적으로 테스트하는 것이 좋습니다.

 

애플리케이션 시나리오

  1. AI 알고리즘 학습
    MiniMind-V는 학생들이 크로스 모달 모델링 원리를 이해하기에 적합한 간결한 시각적 언어 모델링 코드를 제공합니다. 사용자는 코드를 수정하여 다양한 매개변수 또는 데이터 세트를 실험할 수 있습니다.
  2. 신속한 프로토타이핑
    가볍고 효율적이며 PC나 임베디드 시스템과 같은 저컴퓨팅 장치에 적합한 MiniMind-V를 기반으로 이미지 대화 애플리케이션을 프로토타이핑할 수 있습니다. 가볍고 효율적이어서 PC나 임베디드 시스템과 같은 저전력 디바이스에 적합합니다.
  3. 교육 및 트레이닝 도구
    대학에서는 AI 강좌에서 MiniMind-V를 사용하여 모델 학습의 전체 과정을 보여줄 수 있습니다. 코드는 명확하게 주석 처리되어 있어 강의실 실습에 적합합니다.
  4. 저렴한 비용의 실험
    프로젝트 교육 비용이 저렴하여 예산이 제한된 팀에서 고성능 서버 없이도 멀티모달 모델의 효과를 테스트하기에 적합합니다.

 

QA

  1. 미니마인드-V는 어떤 크기의 이미지를 지원하나요?
    기본 처리 이미지는 224x224픽셀 이미지이며, CLIP 모델에 따라 제한됩니다. 데이터 세트 이미지는 공간 절약을 위해 128x128로 압축될 수 있습니다. 향후 더 큰 해상도의 CLIP 모델이 시도될 수 있습니다.
  2. 교육 시간은 얼마나 걸리나요?
    단일 NVIDIA 3090에서 사전 훈련 1단계는 약 1시간이 소요되며, 미세 조정은 조금 더 빠릅니다. 정확한 시간은 하드웨어와 데이터 양에 따라 다릅니다.
  3. 사전 교육 없이 바로 미세 조정할 수 있나요?
    Can. 공식 사전 트레이닝 웨이트를 직접 다운로드하여 실행하세요. train_sft_vlm.py 미세 조정.
  4. 어떤 언어가 지원되나요?
    주로 중국어와 영어를 지원하며, 데이터 세트에 따라 효과가 달라집니다. 사용자는 미세 조정을 통해 다른 언어로 확장할 수 있습니다.
  5. 다중 이미지 대화는 얼마나 잘 작동하나요?
    현재 다중 이미지 대화 기능은 제한되어 있으므로 단일 이미지 시나리오를 우선적으로 사용하는 것이 좋습니다. 향후 더 큰 모델과 데이터 세트로 개선될 수 있습니다.
© 저작권 정책
AiPPT

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...