트렌드깃허브 · 쇼핑에서 뜬 것, 매일 07:30 · English

깃허브 · 2026년 11월 8일 기준 · 깃허브에서 보기 →

FareedKhan-dev/train-llm-from-scratch

데이터부터 텍스트 생성까지 LLM 학습 과정

7일 동안 별 +88

노트북 CPU에서 10분 만에 언어 모델을 학습시켜 짧은 이야기를 생성해 보는 방법

GPU가 없는 노트북에서도 10분 안에 작은 언어 모델을 학습시켜 짧은 이야기를 만들어 볼 수 있습니다. 텍스트를 숫자로 바꾸고 다음 단어를 예측하는 기본 원리부터 시작해, 최신 오픈소스 모델에 쓰이는 구조와 강화 학습 기법까지 모든 코드를 PyTorch로 직접 구현했습니다. 복잡한 라이브러리 대신 핵심 알고리즘을 하나씩 짚어주어, 모델 내부가 어떻게 작동하는지 명확히 이해할 수 있게 합니다.

라이브러리 없이 직접 구현한 학습 파이프라인

이 저장소는 transformers나 trl 같은 고수준 라이브러리를 사용하지 않고, 모든 알고리즘을 순수 PyTorch로 작성했습니다. 데이터 전처리부터 모델 구조, 최적화, 추론까지 각 단계의 코드가 분리되어 있어 특정 부분을 수정하거나 확장하기 쉽습니다. 특히 2017년 원본 Transformer 구조와 2023년 이후의 최신 모델 구조(RoPE, RMSNorm, SwiGLU 등)를 모두 지원하여, 학습용 모델과 실제 배포용 모델의 차이를 직접 비교해 볼 수 있습니다. 학습 과정은 원시 텍스트를 토큰으로 변환하고, 기본 모델을 학습시킨 뒤, 지시 학습(SFT)과 보상 모델, PPO, DPO, GRPO 등 후학습 단계를 거쳐 최종 어시스턴트 모델로 완성하는 흐름을 따릅니다.

노트북에서 데이터센터까지, 환경에 따른 학습 전략

GPU가 없는 환경에서는 CPU만으로 369K 파라미터의 초소형 모델을 5분 내외로 학습할 수 있는 'tiny' 프리셋을 제공합니다. 이는 BPE 토크나이저를 직접 학습하고 작은 어휘를 사용해 임베딩 테이블 크기를 줄인 결과입니다. 더 큰 모델은 GPU 메모리 용량에 따라 학습 가능 크기가 달라지며, README에는 A100부터 RTX 4060까지 다양한 GPU의 메모리 용량과 학습 가능한 최대 모델 크기(예: 1B~8B)가 표로 정리되어 있습니다. 메모리가 부족할 경우 --amp나 --grad-checkpointing 같은 옵션을 활성화해 메모리 사용량을 크게 줄일 수 있습니다. 또한 scripts/benchmark.py를 실행하면 현재 하드웨어에서 각 프리셋의 학습 속도를 미리 측정해 볼 수 있어, 장시간 학습에 들어가기 전 성능을 확인할 수 있습니다.

학습 단계별 데이터 준비와 손실 함수 설계

모델이 학습하는 데이터는 목적에 따라 네 가지 흐름으로 나뉩니다. 사전 학습용 텍스트는 HDF5 파일로 저장되고, 지시 학습용 데이터는 어시스턴트의 답변 부분만 학습되도록 마스크가 적용됩니다. 선호도 데이터는 보상 모델과 DPO 학습에 사용되며, 강화 학습용 프롬프트는 정답이 포함된 형태로 저장됩니다. 특히 대화 형식에서는 사용자와 어시스턴트의 역할을 구분하는 마커를 텍스트로 명시하고, 어시스턴트가 말한 부분에만 손실 함수가 적용되도록 설계했습니다. 수학 문제 해결을 위한 강화 학습에서는 추론 과정을 think 태그 안에, 최종 답을 answer 태그 안에 넣도록 유도하여, 정답의 정확성과 형식의 적절성을 동시에 평가하는 보상 함수를 적용합니다.

실행 전 확인해야 할 사항과 학습 난이도

이 저장소를 활용하려면 객체 지향 프로그래밍, 신경망 기본 개념, PyTorch 사용법에 대한 기초 지식이 필요합니다. README는 학생, 개발자, 연구자 등 대상에 따라 읽을 부분을 제안하며, 모든 코드 블록에는 예상 출력이 함께 제공되어 학습 효과를 바로 확인할 수 있습니다. 최신 모델 구조와 후학습 기법이 포함되어 있어 단순한 튜토리얼을 넘어 실제 연구나 개발에 적용 가능한 수준의 내용을 다루지만, 모든 코드가 직접 구현되어 있어 디버깅이나 수정이 필요한 경우 상당한 시간과 노력이 들 수 있습니다. 특정 GPU 모델의 학습 가능 크기는 참고용이며, 실제 환경에서는 메모리 관리 옵션을 적절히 조정해야 합니다.

AI가 이 저장소의 README를 읽고 2026년 10월 7일에 쓴 글입니다. 사실관계는 깃허브 원문이 기준입니다.

숫자로 본 저장소

2026년 11월 8일 기준으로 깃허브에서 읽은 숫자입니다.

언어
Python
주제 태그
gemini · large-language-models · llm · openai · training · transformers
별
13,167
7일 동안 늘어난 별
+88
기여자
14
포크
1,827
커밋
175
마지막 커밋
2026년 10월 2일
열린 이슈
1
열린 PR
1

함께 보면 좋은 저장소

깃허브에서 보기 → · 홈페이지