프로젝트 소개
## 스크래치에서 LLM 학습하기
이 저장소는 Fareed Khan이 작성한 대규모 언어 모델(LLM) 학습을 위한 간결하고 엔드투엔드(end-to-end) 방식의 방법을 제공합니다. 'Attention is All You Need' 논문의 트랜스포머 아키텍처를 기반으로 하며, `trl`, `peft`, `transformers`와 같은 외부 라이브러리 없이 순수 PyTorch로 모든 알고리즘을 직접 구현하여 학생, 개발자, 연구자가 접근할 수 있도록 설계되었습니다.
### 핵심 파이프라인
저장소는 LLM 학습의 전체 여정을 안내합니다:
```
원시 텍스트 -> 토큰 -> 트랜스포머 -> 다음 토큰 손실 -> 베이스 모델
베이스 모델 -> SFT -> 보상 모델 -> {PPO, DPO} -> GRPO -> 평가 및 채팅
```
### 주요 기능
- **스크래치 구현**: 모든 모델과 알고리즘이 PyTorch로 손수 작성되어 내부 메커니즘에 대한 깊은 이해를 제공합니다.
- **단계별 가이드**: README와 코드가 논리적 경로에 따라 구성되어 있으며, 명확한 설명과 코드 블록을 포함합니다.
- **다양한 학습 단계**: 사전학습, 지도 미세 조정(SFT), 보상 모델 학습, 그리고 DPO, PPO, GRPO와 같은 고급 강화 학습 방법을 다룹니다.
- **실용적이고 유연함**: 제한된 하드웨어에서도 더 큰 모델을 훈련할 수 있도록 AMP, 그래디언트 체크포인트, 그래디언트 누적 등의 메모리 절약 기능을 선택적으로 제공합니다.
- **포괄적인 도구**: 데이터 준비, 훈련, 평가를 위한 스크립트와 모니터링을 위한 Streamlit 제어 패널을 포함합니다.
### 코드 구조
저장소는 명확한 모듈로 구성되어 있습니다:
- `src/models/`: MLP, 어텐션, 블록 등 작고 재사용 가능한 컴포넌트로 구성된 트랜스포머 모델을 포함합니다.
- `src/post_training/`: SFT, 보상 모델, PPO, DPO, GRPO, 평가 및 추론을 구현합니다.
- `scripts/`: 파이프라인 각 단계를 위한 실행 가능한 스크립트를 포함합니다.
- `config/` 및 `configs/`: 모델 하이퍼파라미터 및 훈련 설정을 위한 구성 파일(Python 및 JSON)입니다.
- `data_loader/`: 다양한 데이터 유형을 위한 배치 반복기입니다.
- `ui/`: 모델과 상호 작용하고 모니터링하기 위한 Streamlit 제어 패널입니다.
- `docs/`: 이론과 다이어그램을 포함한 문서 사이트입니다.
### 시작하기
1. **복제 및 설치**: 저장소를 복제하고 `pip install -e .`로 편집 가능한 모드로 설치합니다. 특정 기능(훈련, UI, 문서)을 위한 옵션 확장 기능이 제공됩니다.
2. **데이터 준비**: The Pile(사전학습용), Alpaca, Dolly, GSM8K(지시어 튜닝용), Anthropic HH-RLHF(선호도 학습용)와 같은 데이터셋을 토큰화하기 위해 제공되는 스크립트를 사용합니다.
3. **모델 빌드 및 훈련**: `scripts/train_transformer.py`를 사용하여 작은 13M 파라미터 모델로 시작하거나, 분산 훈련 및 그래디언트 누적과 같은 기능을 갖춘 더 큰 모델을 위해 `scripts/pretrain_base.py`를 사용합니다.
4. **사후 훈련 및 사용**: SFT로 베이스 모델을 미세 조정하고, 보상 모델을 훈련한 후 DPO나 PPO와 같은 RLHF 기법을 적용하여 인간의 선호도에 맞게 모델을 정렬합니다. 마지막으로 평가 및 채팅 스크립트를 사용하여 모델을 검토하고 상호 작용합니다.
### 예시 출력
다음은 훈련된 13M 파라미터 모델이 생성한 텍스트의 예시입니다:
```
In ***1978, The park was returned to the factory-plate that
the public share to the lower of the electronic fence that
follow from the Station's cities. The Canal of ancient Western
nations were confined to the city spot. The villages were directly
linked to cities in China that revolt that the US budget and in
Odambinais is uncertain and fortune established in rural areas.
```
### 문서
저장소에는 README에 제공된 링크에서 확인할 수 있는 더 자세한 이론, 다이어그램 및 설명을 포함한 문서 사이트가 포함되어 있습니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.