llm.c - raw C/CUDA 로 LLM 훈련하기
(github.com/karpathy)- Andrej Karpathy가 순수 C/CUDA로 만든 간단한 LLM 훈련 코드
- PyTorch/cPython이 필요없음
- 1000 라인 정도의 파일 한개로 GPT-2(CPU,fp32)를 훈련 가능
- 첫 번째 작동 사례로 GPT-2를 선택한 이유는 최신 스택이 최초로 결합된 LLM의 할아버지이기 때문
- 즉시 컴파일 및 실행되며 PyTorch 레퍼런스 구현과 정확히 일치
- 현재 작업중인 내용
- 훨씬 더 빠르고 아마도 PyTorch에 가까워질 직접 CUDA 구현
- SIMD 명령어, x86의 AVX2 / ARM의 NEON (예 : Apple Silicon)으로 CPU 버전 속도 향상
- 보다 현대적인 아키텍처(예: Llama2, Gemma 등)
Hacker News 의견
-
프로젝트에 대한 감탄과 함께 현재 CUDA 부분은 아직 구현되지 않았음을 지적함. GPU 코드가 저장소에 아직 없음.
프로젝트가 더 안정화되면, 이를 구축하는 방법에 대한 자세한 비디오가 제작될 예정임을 기대함.
-
JAX로 구현된 nano GPT를 본 후, 이제 C/CUDA로 구현된 것을 보고 싶어함. Mojo에서 nano GPT가 가능한지 궁금함. Python이 다른 언어에 비해 많은 편리한 기능을 가지고 있음을 인정함.
-
CUDA 직접 구현이 PyTorch보다 훨씬 빠를 것이라는 기대감을 표현함. GPU-RAM 가격을 고려할 때, CPU 속도 향상이 얼마나 될지 궁금함. RTX 시리즈에 SO-DIMM 슬롯을 추가하여 필요에 따라 RAM을 확장할 수 있는지 기술적 문제가 있는지 질문함.
-
GPT-2를 시계열 데이터에 적용하는 방법에 대한 예시가 있는지, 특히 공변량(covariates)을 포함한 경우에 대해 질문함. LLM이 이전 토큰에서 다음 토큰을 예측하는 것과 시계열 예측이 유사하다고 생각함.
-
자신의 llm.f90 프로젝트에서 이름을 따왔을 것이라고 생각함. Karpathy의 llama2.c를 기반으로 하고 다른 아키텍처를 지원하도록 이름을 변경함. 아마도 우연일 것임.
-
Lex가 Andre와 대화했을 때, Andre는 문제에 대해 긍정적으로 집착하며 "이것은 반드시 존재해야 한다"고 말했다고 함. 이 프로젝트가 그러한 결과물 중 하나일 것임.
-
처음부터 시작한다면, 이 코드가 무엇을 하는지, 어떻게 읽어야 하는지 이해를 쌓기 위해 어떤 자료를 참고해야 하는지에 대한 질문. LLM에 대한 지식이 매우 제한적이며, LLM 분야에서 간결한 변수 이름이 표준인지 궁금함.
-
이 프로젝트를 설명하고 테스트 훈련을 실행하는 방법에 대한 튜토리얼을 만들어주면 좋겠다는 의견. 개인 하드웨어에서 "실제" 모델을 훈련하는 것은 현실적이지 않지만, 실용적인 학습 경험이 필요함.
-
CUDA가 AI 수행을 위한 유일한 옵션으로 여전히 자리 잡고 있는지, 아니면 AMD/Intel/기타 AI 수행 방법에 대한 지원이 증가하고 있는지에 대한 궁금증을 표현함.