LLM은 실제로 어떻게 구축되는가 — 그리고 대부분의 '작동 원리' 글이 너무 일찍 끝나는 이유
요약
본 글은 LLM이 트랜스포머와 어텐션만으로 구축되지 않으며, 실제 성능에 결정적인 영향을 미치는 데이터 파이프라인과 사후 학습 과정을 심층적으로 다룹니다. 특히 고품질 데이터를 선별하고 혼합하는 사전 학습 과정의 복잡성과 SFT/RLHF가 지식보다 형식과 페르소나를 가르친다는 점을 강조합니다.
핵심 포인트
- LLM 성능은 아키텍처보다 데이터 파이프라인에 크게 의존한다.
- 사전 학습 단계는 크롤링, 필터링, 중복 제거 등 복잡한 과정을 거친다.
- SFT(Supervised Fine-Tuning)는 지식 습득보다는 형식과 페르소나를 가르치는 과정이다.
- 모델의 규모 예측은 '파라미터당 약 20 토큰'이라는 Chinchilla의 교훈을 따른다.
대부분의 'LLM 작동 원리' 설명글은 트랜스포머(transformers)와 어텐션(attention)에서 끝난다.
모델이 실제로 얼마나 좋은지를 결정하는 부분 — 즉 데이터 파이프라인, 사후 학습 방식(post-training recipe), 평가 설정, 시스템 작업 — 은 보통 한 문장으로 처리된다. 이 주제에 대한 많은 강연을 들은 후, 신뢰할 수 있는 참고 자료가 필요하여 Yann Dubois의 Stanford CS229 게스트 강의(Building Large Language Models, 2024년 여름)를 작고 타임스탬프가 찍힌 참고 자료로 만들었다.
현재는 설치 가능한 에이전트 스킬(agent skill)이지만, 이 지도 자체만으로도 유용하다. 여기 있다.
다섯 가지 구성 요소와 실제로 최적화하는 주체
| 구성 요소 | 결정하는 것 | 추진하는 주체 |
|---|---|---|
| 아키텍처 (Architecture) | 용량과 형태 (capacity and shape) | 학계 (academia) |
| ... |
강의에서 나온 불편한 결론은 다음과 같다: 아키텍처는 학문적 관심이 쏠리는 곳이며, 실제적인 영향력(practical leverage)이 있는 곳은 아니다.
사전 학습 (Pretraining): 인터넷 압축하기
'그냥 인터넷으로 학습시키라'는 말은 실제 작업을 가리고 있다. 실제 파이프라인은 다음과 같다:
- 크롤링 (Crawl) — Common Crawl: 약 250B 페이지, 약 1 PB.
- 추출 (Extract) — HTML을 텍스트로 변환한다. 무작위 페이지는 메뉴, 푸터(footer), 잘린 문장들이다.
- 필터링 (Filter) — NSFW, 유해 콘텐츠, PII를 제거한다. 블랙리스트와 작은 분류기(classifiers)들을 사용한다.
- 중복 제거 (Dedupe) — 상용구(boilerplate), 여러 URL에 걸쳐 반복되는 페이지, 수천 번 반복되는 단락 등을 제거한다.
- 휴리스틱 (Heuristics) — 특이한 토큰 분포, 이상한 단어 길이, 너무 짧거나 너무 긴 경우를 처리한다.
- 모델 기반 필터링 (Model-based filtering) — Wikipedia에서 링크된 사이트와 무작위 웹사이트에 대해 분류기를 학습시키고, 전자를 선호한다.
- 혼합 (Mix) — 코드와 책의 가중치를 높이고(up-weight), 엔터테인먼트 콘텐츠의 가중치는 낮춘다(down-weight). 코드를 더 많이 사용하는 것이 추론 능력에 측정 가능한 도움을 준다.
- 최종 단계 (Final phase) — 학습률이 감소하는 고품질 데이터로, 효과적으로 Wikipedia급 텍스트에 과적합(overfitting)된다.
팀 구성도 주목할 만하다: Llama 팀에서는 데이터 관련 인력이 약 15명으로, 모델링 분야보다 많고 GPU보다 CPU가 더 많다.
규모의 법칙(On scale): 손실 함수는 파라미터, 데이터, 컴퓨팅에 따라 거듭제곱 법칙을 따르며, 이것이 작은 규모의 실험으로도 큰 규모를 예측할 수 있는 이유입니다. Chinchilla가 얻은 교훈은 파라미터당 약 20 토큰이라는 것입니다. 이전 모델들은 일반적으로 데이터 부족(data-starved) 상태였습니다.
사후 학습: 자동 완성에서 어시스턴트로
SFT는 사람이 작성한 이상적인 답변에 대한 다음 토큰 예측 훈련입니다. 핵심 통찰은 이것이 지식(knowledge)이 아니라 **형식과 페르소나(format and persona)**를 가르친다는 것입니다. LIMA는 2,000개에서 32,000개의 예시로 규모를 확장했지만 품질 변화는 거의 없었습니다. 또한 이 과정은 모델에게 무지함을 인정하는 대신 그럴듯해 보이는 답변을 생성하도록 가르치는데, 이것이 환각(hallucination)의 일부가 되는 원인 중 하나입니다.
RLHF는 시연(demonstrations)을 선호도(preferences)로 대체합니다. 두 개의 답변을 보여주고 인간에게 어느 것이 더 좋은지 물어본 다음, 보상 모델(reward model)(Bradley–Terry)을 훈련하고 PPO를 사용하여 정책을 최적화하며, 이때 보상을 과도하게 최적화하는 것에 대한 페널티가 추가됩니다. 이진 보상은 너무 희소하여, '얼마나' 차이로 승리했는지보다 '어떤' 답변이 승리했는지만 학습합니다.
DPO는 RL 루프를 건너뜁니다: 선호하는 답변의 가능성을 높이고, 선호하지 않는 답변의 가능성을 낮춥니다. 표준 가정 하에서 최적값은 PPO와 일치하며, 구현이 훨씬 간단하기 때문에 현재 오픈 소스 분야의 기본(default) 방법론이 되었습니다.
경제학적인 측면이 생각보다 더 중요합니다: 인간들은 이진 선호도 작업에서 자신과 동의하는 경우가 약 66%에 불과하고, 인간 라벨링은 1,000개 예시당 대략 $300을 비용으로 하며, LLM 라벨러는 인간 다수 의견과의 일치도가 높으면서도 약 50배 저렴합니다. 주목해야 할 편향(bias)은 다음과 같습니다: 라벨러들이 더 긴 답변을 선호하기 때문에, 그들의 선호도로 훈련된 모델들은 장황해집니다. 이것이 ChatGPT가 말이 많아지는 이유입니다.
평가에서 주장이 조용히 무너진다
- **PPO와 DPO는 비교할 수 없는 검증 손실(Validation loss)**을 가집니다. 이는 목표 함수(objective)가 다르기 때문입니다.
- Perplexity는 PPO 이후로는 의미를 잃습니다. 모델이 텍스트에 대한 분포(distribution over text)라기보다는 정책(policy)이기 때문입니다.
- Chatbot Arena가 가장 신뢰할 수 있는 지표이지만, 느리고 비싸며 기술 사용자에게 편향되어 있습니다.
- LLM-as-judge는 10달러 미만, 3분 이내에 Arena와 약 98%의 상관관계를 보입니다. 다만 길이(length)와 자체 계열 모델의 스타일에 대한 알려진 편향성은 존재합니다.
따라서 어떤 벤치마크 수치를 믿기 전에 세 가지 질문을 던지십시오: 어떤 벤치마크로, 누구를 상대로, 무엇에 의해 평가했는가.
시스템(Systems): 아무도 트윗하지 않는 부분
혼합 정밀도(Mixed precision) (가중치는 32비트로 저장하고, 계산은 16비트로 수행하며, 업데이트는 32비트로 수행)와 연산자 융합(operator fusion) (torch.compile을 사용하면 데이터를 연산별로 한 번씩 GPU 메모리를 통과시키는 대신 한 번에 처리하여 학습 속도가 약 2배 빨라집니다). 화려하지 않지만, 때로는 학습 실행이 완료되느냐 마느냐를 가르는 차이를 만듭니다.
저는 이 모든 것을 각 주장별 타임스탬프 인덱스가 포함된 스킬 파일로 정리했습니다. 따라서 제 요약 내용을 신뢰하기보다 직접 검증할 수 있습니다: github.com/lizhao888/llm-building-map (MIT).
단도직입적으로 유의사항을 말씀드립니다: 이 내용은 2024년 강의에서 나온 비공식적인 노트이며, 발표자가 사용했던 완곡한 표현(hedges)은 사실로 격상되기보다는 그대로 보존되었습니다. 또한, 최신 방법론들(긴 컨텍스트, 추론 모델, 합성 데이터 파이프라인)은 명시적으로 범위를 벗어납니다. 필드가 이미 나아간 부분이 있다면 언제든지 수정을 환영합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기