DLLXW/baby-llama2-chinese

用于从头预训练+SFT一个小参数量的中文LLaMa2的仓库;24G单卡即可运行得到一个具备简单中文问答能力的chat-llama2.

해결하는 문제

이 프로젝트는 중국어 Llama2 스타일의 언어 모델을 구축하기 위한 완전하고 소규모의 파이프라인을 제공합니다. 데이터 수집 및 사전 훈련에서부터 감독된 미세조정(SFT)까지 모델의 전체 생애 주기를 커버하는 관리 가능한 코드베이스를 제공함으로써, 초보자가 LLM 분야에 진입하는 장벽을 낮추는 것을 목표로 합니다.

작동 방식

이 프로젝트는 파라미터 수가 92M에서 218M 사이인 소규모 모델을 구현하고, 개발의 각 단계에 대한 스크립트를 제공합니다.

  1. 데이터 전처리: 고품질 중국어 코퍼스를 정제하는 도구(짧은 텍스트 필터링, Minhash/Simhash 중복 제거)와 ChatGLM2-6B 토크나이저를 사용하여 데이터를 토큰화하여 저장 공간을 절약합니다.
  2. 사전 훈련: 대규모 중국어 데이터셋(최대 634억 토큰)에서 기반 모델을 훈련하여 기본적인 텍스트 완성 능력을 개발합니다.
  3. 감독된 미세조정(SFT): 기반 모델을 챗 기능을 갖춘 어시스턴트로 전환하는 완전한 미세조정 프로세스를 제공하며, 일반 대화 및 의료 분야와 같은 특정 분야에 특화된 지원을 제공합니다.
  4. 추론: infer.py라는 통합 진입점은 CUDA, MPS, CPU 등 다양한 하드웨어에서 사전 훈련 및 SFT 가중치를 모두 지원합니다.

대상 사용자

  • 소비자용 하드웨어(예: NVIDIA RTX 3090)에서 실제 프로젝트를 실행하며 전체 훈련 파이프라인을 배우고 싶은 LLM 초보자.
  • 소규모이고 도메인 특화된(예: 의료) 중국어 언어 모델을 훈련하고 싶은 개발자.

주요 특징

  • 엔드투엔드 파이프라인: 하나의 리포지토리에서 사전 훈련, SFT, 추론을 모두 커버합니다.
  • 최적화된 토크나이제이션: 64k 어휘 크기를 사용하여 uint16에 맞추어 데이터 저장 공간을 int32 대비 절반으로 줄였습니다.
  • 도메인 적응: 일반 기반 모델에서 전문적인 MedicalChat 모델로의 전환을 시연합니다.
  • 데이터 정제 툴킷: Minhash 및 Simhash 중복 제거 기능을 내장하여 학습 데이터 품질을 향상시킵니다.

관련

  • Dispatch
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트