NanoGPT 재현하기
PyTorchKR
LLM 모델에 관심이 있는 개발자라면, GPT-2 모델을 처음부터 구현해보는 것에도 관심이 있을 것입니다. 이번에 Andrej Karpathy(안드레이 카파시갓파시)가 공개한 이 프로젝트는 단순히 GPT-2 모델을 재현하는 것에 그치지 않고, 이를 단계별로 따라갈 수 있도록 깔끔하게 정리된 Commit들과 YouTube 강의를 통해 많은 것을 배울 수 있을 것으로 기대합니다.
소개
Andrej Karpathy의 nanoGPT를 처음부터 재현한 프로젝트입니다. Git 커밋은 단계별로 깨끗하게 유지되어 있어, 커밋 히스토리를 통해 모델이 어떻게 구축되는지 쉽게 따라갈 수 있습니다. 이를 통해 우리는 GPT-2 (124M) 모델을 재현할 수 있으며, 더 나아가 충분한 시간과 자원이 있다면 GPT-3 모델도 재현할 수 있습니다.
GPT-2 모델은 2019년에 출시되었으며, 현재는 약 1시간과 $10 정도의 비용으로 재현할 수 있습니다. 이 프로젝트는 인터넷 문서로 훈련된 단순한 언어 모델로, ChatGPT와 같은 대화형 AI를 다루지는 않습니다. ChatGPT와 같은 모델을 만들기 위한 후속 튜닝 과정은 추후에 다룰 예정입니다.
GPT-2와 GPT-3 모델은 둘 다 인터넷 문서로 훈련된 언어 모델입니다. GPT-2는 1억 2천 4백만 개의 매개변수를 가지고 있으며, GPT-3는 훨씬 더 큰 규모로 1,750억 개의 매개변수를 가지고 있습니다. 이 두 모델의 주요 차이점은 매개변수의 수와 그로 인한 성능 차이입니다. GPT-2는 더 작은 모델이지만, 여전히 강력한 성능을 보여주며, GPT-3는 훨씬 더 복잡한 문맥을 이해하고 생성할 수 있습니다.
주요 기능
-
단계별 구현: 프로젝트의 각 단계를 Git 커밋으로 기록하여, 각 단계의 변화를 쉽게 따라갈 수 있습니다.
-
동영상 강의: Andrej Karpathy의 YouTube 강의를 통해 각 단계별 설명을 들을 수 있습니다.
-
모델 재현: GPT-2 (124M) 모델을 처음부터 재현할 수 있습니다.
-
확장 가능성: 충분한 자원과 시간으로 GPT-3 모델도 재현할 수 있습니다.
사용 방법
이 프로젝트를 사용하려면, 먼저 클라우드 GPU 박스를 사용하는 것이 좋습니다. Andrej Karpathy는 Lambda를 추천합니다. 프로젝트를 시작하려면, 아래의 단계를 따르세요:
-
저장소를 복제(clone)합니다:
git clone https://github.com/karpathy/build-nanogpt cd build-nanogpt
-
필요한 패키지를 설치합니다:
pip install -r requirements.txt
-
train_gpt2.py
스크립트를 실행하여 모델을 학습합니다:python train_gpt2.py
학습이 완료되면, 모델이 생성하는 텍스트를 확인할 수 있습니다. 예를 들어, 10억 토큰으로 학습된 모델은 다음과 같은 텍스트를 생성합니다:
Hello, I'm a language model, and my goal is to make English as easy and fun as possible for everyone, and to find out the different grammar rules
40억 토큰으로 학습한 모델은 더 복잡한 텍스트를 생성할 수 있습니다:
Hello, I'm a language model, a model of computer science, and it's a way (in mathematics) to program computer programs to do things like write
라이센스
이 프로젝트는 MIT 라이센스로 공개 및 배포되고 있습니다.
참고
build-nanoGPT 저장소
YouTube 강의
nanoGPT GitHub 저장소
더 읽어보기
-
GPT-3 논문: [2005.14165] Language Models are Few-Shot Learners
-
minibpe: 작고, 깔끔하고, 학습용으로 적합한 BPE(Byte Pair Encoding) 코드 (feat. Andrej Karpathy)
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래쪽에 좋아요를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~