직접 만든 LLM 추론 엔진에 6시간 영상과 85쪽 손글씨 노트까지
Hours of YouTube and 85 handtyped pages of notes on LLM Inference – Start here
Llama 3.2 1B를 C++와 CUDA로 처음부터 추론하는 작은 엔진을 만들며, 프롬프트가 토큰으로 생성되기까지의 전 과정을 다룬다. safetensors 가중치 로딩, BPE 토크나이저, 임베딩·RMSNorm·RoPE·GQA·SwiGLU 커널, KV 캐시, 정적·연속 배칭, paged attention까지 구현했고, 6시간 이상의 YouTube 튜토리얼과 AI 없이 직접 쓴 85쪽 손글씨 노트를 함께 제공한다.
이 PDF의 모든 글은 AI 작성 없이 내가 직접 작성했다.
HN 토론
12- ericreg92
이 슬라이드들은 분명히 LLM이 생성한 거다.
- samirswr
AI 추론에 대해 완전 초보자들을 가르치기 위해 6시간이 넘는 영상을 찍고 85페이지가 넘는 노트를 손으로 썼다.
지난 2개월 동안 풀타임 SWE 인턴으로 일하면서, 퇴근 후에 갈아 넣어 이 영상 시리즈를 만들었다. 나는 여러 가지 중에서도 코딩을 초보자 대상 유튜브 영상으로 배웠다. 그런데 AI가 부상하면서 그런 영상은 덜 보이게 됐고, 그래서 나는 그걸 바꾸고 싶었다.
이건 . 여기에 많은 고민과 고려가 들어갔고, 내 노트는 전부 내가 직접 쓴 것이다. 투명성을 위해 말하자면, 사소한 버그 수정, readme 업데이트 같은 걸 제외하면 거의 모든 코드도 내가 직접 작성했다. 각 영상과 관련된 추가 노트는 AI가 생성한 것이지만, 주요 노트는 모두 내가 쓴 것이다.
이 시리즈는 C++와 CUDA로 작은 Llama 3.2 1B 추론 엔진을 만드는 과정을 안내하며, LLM에 프롬프트를 보냈을 때 무슨 일이 일어나는지부터 시작한다.
다루는 내용:
텍스트가 토큰이 되고, 토큰이 임베딩이 되는 방법.
모델 가중치를 GPU 메모리에 로드하기.
CUDA 기초, 직접 GPU 커널 작성하기, cuBLAS를 이용한 행렬 곱셈.
트랜스포머 단계별 설명: RMSNorm, RoPE, 어텐션, SwiGLU 피드포워드 네트워크.
Prefill과 decode: 프롬프트 처리하고 토큰 하나씩 응답 생성하기.
KV 캐싱과 그것이 반복 계산을 어떻게 절약하는지.
여러 요청을 처리하기 위한 정적 및 연속 배칭.
GPU에서 캐시된 데이터를 관리하고 읽기 위한 Paged KV 캐싱과 paged attention.
GitHub 저장소는 여기 […]
- samirswr
마음에 들었다면 연결해요! : https://www.linkedin.com/in/samir-sarwar-swe/