LLMs from Scratch – Practical Engineering from Base Model to PPO RLHF
- 이 강좌는 PyTorch만을 사용하여 LLM을 처음부터 구축하는 방법을 다룹니다. 💻
- 핵심 트랜스포머 아키텍처 구현부터 시작하여 작은 언어 모델을 학습합니다. 📚
- RO 혼합 전문가 레이어 및 혼합 정밀도 학습과 같은 프로덕션 준비 개선 사항으로 모델을 현대화하고 확장합니다. 🚀
- 지도 학습 미세 조정 및 보상 모델 구축을 통해 전체 정렬 단계를 진행합니다. 🎯
- PPO를 사용하여 인간 피드백으로부터 강화 학습으로 모델을 정렬합니다. 🤖
- 코스 종료 시 자신만의 LLM을 구축하고 사용자 정의하는 데 필요한 실무 경험을 얻을 수 있습니다. 🛠️
- 이 코스는 이론보다는 코드에 중점을 둡니다. 💡
- 1부에서는 핵심 트랜스포머 아키텍처를 구현합니다. 🏗️
- 2부에서는 작은 텍스트 파일에서 작은 LLM을 학습합니다. 📝
- 3부에서는 RMS 정규화, RoPE, SwiGLU, KV 캐시, 슬라이딩 윈도우 주의 등을 포함하여 바닐라 트랜스포머 아키텍처를 현대화합니다. ⚙️
- 4부에서는 바이트 레벨에서 BPE 인코딩 토큰화로 확장하고, 기울기 누적, 혼합 정밀도 학습, 체크포인트 로깅을 추가합니다. 📈
- 5부에서는 혼합 전문가에 대한 이론, 라우팅, 게이팅, 안정성 트릭 및 하이브리드 덴스 플러스 블록을 탐구합니다. 🧮
- 6부에서는 지시 데이터 세트, 프롬프트 및 응답 형식 지정, 출력 평가를 다룹니다. 💬
- 7부에서는 쌍별 선호도 데이터 세트를 사용하여 보상 모델을 구현하고 Bradley-Terry 및 마진 랭킹 손실과 같은 몇 가지 손실 함수를 탐구합니다. 💰
- 8부에서는 PPO를 사용하여 RHF를 통해 모든 것을 통합하고, 정책에 값 헤드를 추가하고, 보상 모델로 완료 점수를 매기고, KL 페널티 목표를 최적화합니다. 🤝
- 각 부분은 실행, 조정 및 확장할 수 있는 모듈식 주석 처리된 코드를 제공합니다. 🔑
- 1부에서는 트랜스포머 아키텍처, 인코더 및 디코더에 중점을 둡니다. 🔍
- 입력은 먼저 토큰화된 다음 임베딩 단계를 거치고, 임베딩은 위치 인코딩 단계를 거칩니다. 🔢
- 마스크된 다중 헤드 주의는 Q, K, V로 분할됩니다. 👁️
- Q, K, V는 선형 레이어를 거쳐 스케일 점곱 주의를 거칩니다. ⚖️
- 다중 헤드 주의의 출력은 스킵 연결을 통해 이전 입력에 추가되고 정규화됩니다. 🔗
- 전체 블록은 트랜스포머의 레이어라고 하며, 더 큰 네트워크를 구현하기 위해 원하는 만큼 많은 레이어를 쌓을 수 있습니다. 🧱
- orchestrator.py는 각 부분의 진입점입니다. 🚪