DLLXW/baby-llama2-chinese
用于从头预训练+SFT一个小参数量的中文LLaMa2的仓库;24G单卡即可运行得到一个具备简单中文问答能力的chat-llama2.
해결하는 문제
이 프로젝트는 중국어 Llama2 스타일의 언어 모델을 구축하기 위한 완전하고 소규모의 파이프라인을 제공합니다. 데이터 수집 및 사전 훈련에서부터 감독된 미세조정(SFT)까지 모델의 전체 생애 주기를 커버하는 관리 가능한 코드베이스를 제공함으로써, 초보자가 LLM 분야에 진입하는 장벽을 낮추는 것을 목표로 합니다.
작동 방식
이 프로젝트는 파라미터 수가 92M에서 218M 사이인 소규모 모델을 구현하고, 개발의 각 단계에 대한 스크립트를 제공합니다.
- 데이터 전처리: 고품질 중국어 코퍼스를 정제하는 도구(짧은 텍스트 필터링, Minhash/Simhash 중복 제거)와 ChatGLM2-6B 토크나이저를 사용하여 데이터를 토큰화하여 저장 공간을 절약합니다.
- 사전 훈련: 대규모 중국어 데이터셋(최대 634억 토큰)에서 기반 모델을 훈련하여 기본적인 텍스트 완성 능력을 개발합니다.
- 감독된 미세조정(SFT): 기반 모델을 챗 기능을 갖춘 어시스턴트로 전환하는 완전한 미세조정 프로세스를 제공하며, 일반 대화 및 의료 분야와 같은 특정 분야에 특화된 지원을 제공합니다.
- 추론:
infer.py라는 통합 진입점은 CUDA, MPS, CPU 등 다양한 하드웨어에서 사전 훈련 및 SFT 가중치를 모두 지원합니다.
대상 사용자
- 소비자용 하드웨어(예: NVIDIA RTX 3090)에서 실제 프로젝트를 실행하며 전체 훈련 파이프라인을 배우고 싶은 LLM 초보자.
- 소규모이고 도메인 특화된(예: 의료) 중국어 언어 모델을 훈련하고 싶은 개발자.
주요 특징
- 엔드투엔드 파이프라인: 하나의 리포지토리에서 사전 훈련, SFT, 추론을 모두 커버합니다.
- 최적화된 토크나이제이션: 64k 어휘 크기를 사용하여
uint16에 맞추어 데이터 저장 공간을int32대비 절반으로 줄였습니다. - 도메인 적응: 일반 기반 모델에서 전문적인 MedicalChat 모델로의 전환을 시연합니다.
- 데이터 정제 툴킷: Minhash 및 Simhash 중복 제거 기능을 내장하여 학습 데이터 품질을 향상시킵니다.
관련
- Dispatch
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트