그 책을 정말 재미있게 봤음. 실제 내부 구조를 이해하고, 모든 계산의 동작 예제를 보고 싶은 사람에게 좋음
태어난 날부터 계속 해오고 있음. 시작은 힘들었지만 점점 나아지는 중
사실 주로 물리 모델을 학습해 왔고, 거기에 LLM이 붙어 있는 셈임
fast.ai가 비교적 새로웠던 시절에 ULMFiT로 해본 적 있음. 아마 BERT가 최신 최고 성능이던 때였고, 기본 모델을 학습한 뒤 헤드로 특화할 수 있는 구조였음
기본 모델에는 Wikipedia 전체를 쓰고, firehose로 모아둔 몇 GB짜리 트윗을 추가로 사용함. 게임 개발용 컴퓨터 20대가 있는 랩을 쓸 수 있었고, 대략 GTX 2080급이었던 듯함. 토큰화된 Wikipedia 한 번 학습에 반나절 정도 걸려서, 각 컴퓨터에 서로 다른 설정을 돌려 하이퍼파라미터 튜닝을 하고 다음 날에는 가장 좋은 결과를 출발점으로 삼았음. 다음 날 아침 출근해서 결과 확인하는 게 늘 재미있었음
엔지니어링은 끔찍하고 즉흥적이었지만 많이 배웠음. 결과는 그럭저럭이었고 트윗 분류를 했지만, 이걸 진지하게 하려면 얼마나 많은 GPU 성능과 엔지니어링 난제가 필요한지 감이 생겼음. 생성의 잠재력은 완전히 이해하지 못했지만, 궁금해서 만들어본 트윗들을 보며 한참 웃기도 했음
페이지에 nanoGPT와의 관계가 설명되어 있음
“nanoGPT는 GPT-2(1억 2400만 매개변수) 재현을 목표로 하고 많은 내용을 다룬다. 이 프로젝트는 핵심만 남기고, 노트북에서 1시간 안에 학습되는 약 1,000만 매개변수 모델로 축소한다…”는 식임
맞음, 잘못 본 것임
맥락을 보태면, 그는 MLX 개발자 중 한 명이고 실력 있는 머신러닝 연구자임
출처가 궁금함. 그건 맞지 않는 것 같음
“GPT 학습 파이프라인의 모든 조각을 직접 작성하며 각 구성요소가 무엇을 하고 왜 필요한지 이해하는 실습 워크숍”이라고 되어 있는데, 의존성에 torch가 보이니 텐서와 역전파는 직접 구현하지 않고 당연한 것으로 가져오는 듯함. 그래도 “처음부터” 만든다고 할 수 있을까 싶음
비슷한 걸 Rust로 해봤고 AI 도움도 받았지만, 의존성 없이 표준 라이브러리만 쓰도록 제한했음. 그 결과 텐서 설계, 커널 개념, 단순 경사하강 최적화기, 직접 만든 JSON 파서, rayon 비슷한 CPU 데이터 병렬 추상화 등 훨씬 많은 걸 구현해야 했음. 전부 연결해서 돌아갔을 때 꽤 재미있었음. 매우 느렸지만 작동은 했음
PyTorch를 쓰는 걸 더 이상 “처음부터”라고 볼 수 있는지 잘 모르겠음. 표준 라이브러리까지 피하라는 식의 극단적인 얘기는 아니지만, 목적에 딱 맞는 라이브러리를 가져오는 시점에서는 “처음부터”처럼 느껴지지 않음
일리는 있지만, 대부분의 머신러닝 쪽 사람들에게는 PyTorch가 사실상 표준 라이브러리임
“처음부터 LM 학습하기”가 더 맞을 듯함. “Large”라고 부를 만큼 큰 모델을 만들 기계가 있을지는 의문임
일반적인 한도의 신용카드가 있다면 HuggingFace나 Mistral Forge 같은 네오클라우드 제공업체에서 충분한 자원을 빌릴 수 있을 것임
그럴 가치가 있다는 말은 아니지만, 학습하려고 직접 GPU를 살 필요는 없음
단일 3090에서도 16억 매개변수 모델을 처음부터 끝까지 학습할 수 있음. 꽤 큰 모델임
내게도 RAM 반 테라바이트가 있음! DDR4이긴 하지만 어쨌든 RAM임
48개 프로세서 코어도 붙어 있음! AVX512는 지원 안 하지만 계산은 할 수 있음
LLM을 충분히 학습할 수 있을 것임. 아니면 적어도 우리 가족이 할 수 있을 듯함… 아이가 이어받아 프로젝트를 계속해야 할 수도 있음
진지하게 말하면, 핵심을 놓쳤거나 불필요하게 꼬투리를 잡는 것이거나, 아니면 틀린 것 같음. 이건 개념을 배우는 데 관한 것이고 나머지는 대체로 부차적임
꼬투리이거나 틀렸다는 쪽에서 보자면, “large” 언어 모델의 문서화된 기준선이 무엇인가? GPT-2는 당시에도 지금도 “large” 언어 모델로 불렸고, 매개변수는 15억 개였음. 요즘은 그 정도를 학습할 수 있는 소비자용 GPU를 대략 400달러에 구할 수 있음
Hacker News 의견들
이 자료가 흥미롭다면 Stanford의 CS336 수업도 강력 추천함. 같은 커리큘럼을 훨씬 깊게 다루고, 스케일링 법칙 같은 이론적 직관과 커널 최적화/프로파일링 같은 시스템 관점도 소개함
물론 과제를 직접 해야 함: https://cs336.stanford.edu/
홍보를 좀 하자면, 머신러닝 작동 원리를 처음부터 설명하는 Jupyter 노트북 시리즈가 있음
https://github.com/nickyreinert/DeepLearning-with-PyTorch-fr...
그리고 당연히 LLM을 처음부터 만드는 방법도 다룸
https://github.com/nickyreinert/basic-llm-with-pytorch/blob/...
마침 Sebastian Raschka의 저장소/책/강좌인 Build a Large Language Model (From Scratch) 를 막 시작했음. 어떤 학습 자료를 쓸지 골라야 하는 건 좋은 고민일지도 모름
[0] https://github.com/rasbt/LLMs-from-scratch
[1] https://www.manning.com/books/build-a-large-language-model-f...
[2] https://magazine.sebastianraschka.com/p/coding-llms-from-the...
태어난 날부터 계속 해오고 있음. 시작은 힘들었지만 점점 나아지는 중
fast.ai가 비교적 새로웠던 시절에 ULMFiT로 해본 적 있음. 아마 BERT가 최신 최고 성능이던 때였고, 기본 모델을 학습한 뒤 헤드로 특화할 수 있는 구조였음
기본 모델에는 Wikipedia 전체를 쓰고, firehose로 모아둔 몇 GB짜리 트윗을 추가로 사용함. 게임 개발용 컴퓨터 20대가 있는 랩을 쓸 수 있었고, 대략 GTX 2080급이었던 듯함. 토큰화된 Wikipedia 한 번 학습에 반나절 정도 걸려서, 각 컴퓨터에 서로 다른 설정을 돌려 하이퍼파라미터 튜닝을 하고 다음 날에는 가장 좋은 결과를 출발점으로 삼았음. 다음 날 아침 출근해서 결과 확인하는 게 늘 재미있었음
엔지니어링은 끔찍하고 즉흥적이었지만 많이 배웠음. 결과는 그럭저럭이었고 트윗 분류를 했지만, 이걸 진지하게 하려면 얼마나 많은 GPU 성능과 엔지니어링 난제가 필요한지 감이 생겼음. 생성의 잠재력은 완전히 이해하지 못했지만, 궁금해서 만들어본 트윗들을 보며 한참 웃기도 했음
이건 Andrej Karpathy의 이 영상(https://youtu.be/kCc8FmEb1nY)을 글 형태로 거의 그대로 옮긴 것처럼 보이는데, 내가 잘못 본 건가?
“nanoGPT는 GPT-2(1억 2400만 매개변수) 재현을 목표로 하고 많은 내용을 다룬다. 이 프로젝트는 핵심만 남기고, 노트북에서 1시간 안에 학습되는 약 1,000만 매개변수 모델로 축소한다…”는 식임
맥락을 보태면, 그는 MLX 개발자 중 한 명이고 실력 있는 머신러닝 연구자임
“GPT 학습 파이프라인의 모든 조각을 직접 작성하며 각 구성요소가 무엇을 하고 왜 필요한지 이해하는 실습 워크숍”이라고 되어 있는데, 의존성에 torch가 보이니 텐서와 역전파는 직접 구현하지 않고 당연한 것으로 가져오는 듯함. 그래도 “처음부터” 만든다고 할 수 있을까 싶음
비슷한 걸 Rust로 해봤고 AI 도움도 받았지만, 의존성 없이 표준 라이브러리만 쓰도록 제한했음. 그 결과 텐서 설계, 커널 개념, 단순 경사하강 최적화기, 직접 만든 JSON 파서, rayon 비슷한 CPU 데이터 병렬 추상화 등 훨씬 많은 걸 구현해야 했음. 전부 연결해서 돌아갔을 때 꽤 재미있었음. 매우 느렸지만 작동은 했음
PyTorch를 쓰는 걸 더 이상 “처음부터”라고 볼 수 있는지 잘 모르겠음. 표준 라이브러리까지 피하라는 식의 극단적인 얘기는 아니지만, 목적에 딱 맞는 라이브러리를 가져오는 시점에서는 “처음부터”처럼 느껴지지 않음
“처음부터 LM 학습하기”가 더 맞을 듯함. “Large”라고 부를 만큼 큰 모델을 만들 기계가 있을지는 의문임
그럴 가치가 있다는 말은 아니지만, 학습하려고 직접 GPU를 살 필요는 없음
48개 프로세서 코어도 붙어 있음! AVX512는 지원 안 하지만 계산은 할 수 있음
LLM을 충분히 학습할 수 있을 것임. 아니면 적어도 우리 가족이 할 수 있을 듯함… 아이가 이어받아 프로젝트를 계속해야 할 수도 있음
진지하게 말하면, 핵심을 놓쳤거나 불필요하게 꼬투리를 잡는 것이거나, 아니면 틀린 것 같음. 이건 개념을 배우는 데 관한 것이고 나머지는 대체로 부차적임
꼬투리이거나 틀렸다는 쪽에서 보자면, “large” 언어 모델의 문서화된 기준선이 무엇인가? GPT-2는 당시에도 지금도 “large” 언어 모델로 불렸고, 매개변수는 15억 개였음. 요즘은 그 정도를 학습할 수 있는 소비자용 GPU를 대략 400달러에 구할 수 있음