4단계: 딥러닝 및 신경망

대규모 언어 모델을 처음부터 구축하는 완벽한 튜토리얼입니다. PyTorch를 통해 GPT 아키텍처를 단계별로 구현하며, 사전 훈련, 미세 조정 및 배포의 전체 프로세스를 포함합니다.

LLMTransformerPyTorchGitHubTextFreeEnglish

LLMs-from-scratch 강의 상세 소개

프로젝트 개요

LLMs-from-scratch는 Sebastian Raschka가 만든 포괄적인 학습 자료로, 거대 언어 모델(LLM)을 밑바닥부터 구축하는 방법을 가르치는 것을 목표로 합니다. 이 프로젝트는 『Build a Large Language Model (From Scratch)』 서적의 공식 코드 저장소입니다.

핵심 특징

📚 학습 목표

  • 거대 언어 모델의 작동 원리를 내부부터 이해합니다.
  • 코딩을 통해 단계별로 자신만의 LLM을 구축합니다.
  • ChatGPT와 유사한 기본 모델의 학습 및 개발 방법을 배웁니다.
  • 사전 학습된 모델 가중치를 로드하고 미세 조정하는 기술을 습득합니다.

🎯 교육 방법

  • 밑바닥부터 코딩: 외부 LLM 라이브러리에 의존하지 않고 PyTorch를 사용하여 처음부터 구현합니다.
  • 단계별 학습: 각 단계마다 명확한 텍스트, 다이어그램 및 예시 설명이 제공됩니다.
  • 실용성 강조: 작지만 완벽하게 작동하는 교육용 모델을 만듭니다.
  • 풍부한 보조 자료: 17시간 15분 분량의 비디오 강의가 포함되어 있습니다.

강의 구성

챕터별 내용

챕터 1: 거대 언어 모델 이해하기 (Understanding large language models)

  • LLM 기본 개념 소개
  • 모델 아키텍처 개요

챕터 2: 텍스트 데이터 다루기 (Working with text data)

  • 주요 코드: ch02.ipynb, dataloader.ipynb
  • 텍스트 전처리 및 데이터 로딩
  • 연습 문제 해답: exercise-solutions.ipynb

챕터 3: 어텐션 메커니즘 코딩하기 (Coding attention mechanisms)

  • 주요 코드: ch03.ipynb, multihead-attention.ipynb
  • 셀프 어텐션 메커니즘 구현
  • 멀티 헤드 어텐션 메커니즘 상세 설명

챕터 4: GPT 모델 밑바닥부터 구현하기 (Implementing a GPT model from scratch)

  • 주요 코드: ch04.ipynb, gpt.py
  • 완전한 GPT 아키텍처 구현
  • 모델 구성 요소 상세 설명

챕터 5: 레이블 없는 데이터로 사전 학습하기 (Pretraining on unlabeled data)

  • 주요 코드: ch05.ipynb, gpt_train.py, gpt_generate.py
  • 사전 학습 프로세스
  • 텍스트 생성 구현

챕터 6: 분류 작업을 위한 미세 조정 (Finetuning for classification)

  • 주요 코드: ch06.ipynb, gpt_class_finetune.py
  • 특정 분류 작업을 위한 모델 조정
  • 미세 조정 기술 및 전략

챕터 7: 지시 따르기 위한 미세 조정 (Finetuning to follow instructions)

  • 주요 코드: ch07.ipynb, gpt_instruction_finetuning.py
  • 지시 미세 조정 방법
  • 모델 평가: ollama_evaluate.py

부록 내용

부록 A: PyTorch 소개

  • 코드: code-part1.ipynb, code-part2.ipynb
  • 분산 데이터 병렬 학습: DDP-script.py
  • PyTorch 기본 사항 빠른 시작

부록 B-E

  • 부록 B: 참고 자료 및 추가 읽을거리
  • 부록 C: 연습 문제 해답 요약
  • 부록 D: 추가 기능 추가
  • 부록 E: 파라미터 효율적인 미세 조정

보너스 자료 (Bonus Materials)

챕터 5 추가 자료

  • 대체 가중치 로딩 방법: 다양한 모델 가중치 로딩 기술
  • 프로젝트 구텐베르크 데이터셋 사전 학습: 대규모 텍스트 코퍼스에서 학습
  • 학습 루프 최적화: 다양한 개선 기능 추가
  • 학습률 스케줄러: 학습 프로세스 최적화
  • 하이퍼파라미터 튜닝: 사전 학습 하이퍼파라미터 최적화
  • 사용자 인터페이스 구축: 사전 학습된 LLM과 상호작용하는 UI
  • 모델 변환:
    • GPT를 Llama로 변환
    • Llama 3.2 밑바닥부터 구현
    • Qwen3 밀집형 및 MoE(혼합 전문가 모델)
    • Gemma 3 밑바닥부터 구현
  • 메모리 효율적인 가중치 로딩: 모델 로딩 최적화
  • Tiktoken BPE 토크나이저 확장: 새로운 토큰 추가
  • PyTorch 성능 최적화 팁: LLM 학습 가속화

챕터 6 추가 자료

  • 분류 미세 조정의 고급 기술

챕터 7 추가 자료

  • 데이터셋 도구: 근사치 중복 찾기 및 수동태 항목 생성
  • 응답 평가: OpenAI API 및 Ollama를 사용하여 지시 응답 평가
  • 데이터셋 생성: 지시 미세 조정을 위한 데이터셋 생성
  • 데이터셋 개선: 지시 미세 조정 데이터셋 품질 향상
  • 선호도 데이터셋 생성: Llama 3.1 70B 및 Ollama 사용
  • DPO(직접 선호도 최적화) 정렬: DPO 구현
  • 사용자 인터페이스: 지시 미세 조정된 GPT 모델과 상호작용

추론 모델 자료 (reasoning-from-scratch 저장소에서)

  • Qwen3 기본
  • 모델 평가 방법

기술 요구 사항

사전 지식

  • 필수: Python 프로그래밍에 대한 탄탄한 기초
  • 도움됨: 심층 신경망 기본 지식
  • 도움됨: PyTorch 기초 (부록 A에서 빠른 시작 제공)

하드웨어 요구 사항

  • 💻 일반 노트북으로 충분: 주요 챕터 코드는 일반 노트북에서 실행되도록 설계되었습니다.
  • 🚀 자동 GPU 가속: 사용 가능한 경우 코드가 자동으로 GPU를 사용합니다.
  • 전용 하드웨어 불필요: 광범위한 학습자가 학습할 수 있도록 보장합니다.

소프트웨어 환경

  • Python 3.x
  • PyTorch
  • 기타 의존성은 setup 디렉토리 참조

보조 자료

비디오 강의

  • 📹 17시간 15분 분량의 전체 비디오 강의
  • 챕터별 코딩 시연
  • 독립적인 학습 자료 또는 서적과 함께 사용 가능
  • Manning 플랫폼: Master and Build Large Language Models

후속 서적

『Build A Reasoning Model (From Scratch)』

  • 속편으로 간주될 수 있습니다.
  • 사전 학습된 모델부터 시작합니다.
  • 다양한 추론 방법 구현:
    • 추론 시간 확장
    • 강화 학습
    • 증류 기술
  • 모델 추론 능력 향상
  • GitHub 저장소: reasoning-from-scratch

테스트 자료

무료 170페이지 PDF: 『Test Yourself On Build a Large Language Model (From Scratch)』

  • 각 챕터당 약 30개의 퀴즈 문제 및 해답
  • 이해도 테스트에 도움
  • Manning 웹사이트에서 무료 다운로드

연습 문제 해답

  • 각 챕터에 여러 연습 문제 포함
  • 해답은 부록 C에 요약되어 있습니다.
  • 해당 코드 노트북은 각 챕터 폴더에 있습니다.
    • 예시: ./ch02/01_main-chapter-code/exercise-solutions.ipynb

프로젝트 다운로드

다운로드 방법

방법 1: ZIP 파일 직접 다운로드

# GitHub 페이지에서 Download ZIP 버튼 클릭

방법 2: Git 클론

git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git

코드 구성

  • 각 챕터는 독립적인 폴더를 가집니다: ch02/, ch03/, 등
  • 주요 코드는 01_main-chapter-code/ 하위 폴더에 있습니다.
  • 추가 자료는 해당 번호가 매겨진 폴더에 있습니다.

학습 경로 제안

사고 모델

이 책은 다루는 모든 내용을 요약한 명확한 마인드맵을 제공합니다:

  1. LLM 기본 이해
  2. 텍스트 데이터 처리
  3. 어텐션 메커니즘
  4. GPT 아키텍처 구현
  5. 사전 학습 기술
  6. 미세 조정 방법
  7. 실제 응용 배포

학습 권장 사항

  1. 초보자: 챕터 1부터 시작하여 순서대로 학습하고 각 챕터의 연습 문제를 완료합니다.
  2. 기초 지식 보유자: 익숙한 챕터는 건너뛰고 특정 주제에 집중할 수 있습니다.
  3. 실무자: 보너스 자료를 사용하여 고급 주제를 탐색합니다.
  4. 연구자: 인용 형식을 참조하여 연구에 이 자료를 인용합니다.

커뮤니티 및 지원

피드백 채널

  • 💬 Manning Forum: 공식 포럼
  • 💭 GitHub Discussions: 토론 공간
  • 🤝 모든 형태의 피드백, 질문 및 아이디어 교환을 환영합니다.

기여 안내

  • 인쇄된 서적에 해당하므로 주요 챕터 코드는 일관성을 유지합니다.
  • 현재 주요 챕터 내용을 확장하는 기여는 받지 않습니다.
  • 실제 서적 내용과의 일관성을 보장하여 원활한 학습 경험을 제공합니다.

인용 정보

Chicago 형식

Raschka, Sebastian. Build A Large Language Model (From Scratch). Manning, 2024. ISBN: 978-1633437166.

BibTeX 형식

@book{build-llms-from-scratch-book,
  author = {Sebastian Raschka},
  title = {Build A Large Language Model (From Scratch)},
  publisher = {Manning},
  year = {2024},
  isbn = {978-1633437166},
  url = {https://www.manning.com/books/build-a-large-language-model-from-scratch},
  github = {https://github.com/rasbt/LLMs-from-scratch}
}

주요 링크

요약

이것은 다음과 같은 사람들에게 적합한 포괄적이고 체계적인 LLM 학습 자료입니다:

  • 🎓 LLM 작동 원리를 깊이 이해하고자 하는 학습자
  • 👨‍💻 GPT와 같은 모델을 직접 구현해보고 싶은 개발자
  • 🔬 NLP 및 딥러닝 연구에 종사하는 연구원
  • 🚀 AI 및 머신러닝에 관심 있는 기술 애호가

이 프로젝트를 통해 거대 언어 모델을 밑바닥부터 구축하고, 학습시키고, 미세 조정하는 완전한 능력을 얻게 될 것입니다.