AI VIDEO BRIEFING
LLM 개발 3단계 정리 — 아키텍처 구축, 사전학습, 파인튜닝의 원리
대형 언어모델은 어떻게 만들어질까. 데이터 준비와 토큰화, 다음 단어 예측, GPT 계열 아키텍처, 사전학습으로 만드는 파운데이션 모델, 그리고 분류·지시·선호 파인튜닝까지 개발 3단계를 개념적으로 정리했다.

핵심 메시지
쉽게 이해하기
발표자는 자신의 책 '밑바닥부터 만드는 대형 언어모델'의 그림을 활용해 LLM 개발을 개념적으로 설명한다. 먼저 LLM을 쓰는 세 가지 방식(공개 API 서비스, 로컬 실행, 자체 서버 배포 후 API)을 짚은 뒤, 오늘의 주제는 그 모델을 '처음에 어떻게 만드는가'라고 밝힌다.
1단계 구축에서는 아키텍처보다 데이터를 먼저 본다. LLM이 무엇을 입력받는지 이해하는 것이 작동 원리 이해에 가깝기 때문이다. LLM은 다음 단어를 예측하도록 학습되며, 문장에서 한 단어씩 가린 채 그 다음 단어를 맞히게 하는 식으로 데이터셋을 구성한다. 실제로는 효율을 위해 고정 길이 입력을 배치로 묶는다.
단어가 아니라 '토큰' 단위로 처리한다는 점도 설명한다. 입력 텍스트는 토큰화되어 토큰 ID로 바뀌고, GPT는 BPE 토크나이저(라마는 SentencePiece 계열)를 써서 모르는 단어도 더 잘게 쪼개 처리한다. 학습 데이터는 GPT-3의 약 5천억 토큰에서 라마3의 15조 토큰으로 점점 커졌고, 최근에는 저작권 소송 우려로 데이터 출처를 잘 공개하지 않는 추세다.
아키텍처는 마스크드 멀티헤드 어텐션, 피드포워드 층, 위치 임베딩, 정규화 층으로 이뤄진 트랜스포머 블록의 반복이다. GPT-2의 1억2400만~15억 파라미터 모델 차이는 주로 이 블록을 12~48번 반복하는 횟수와 어텐션 헤드 수, 임베딩 차원에 있다. 라마2는 레이어 노름 대신 RMS 노름, 절대 위치 임베딩 대신 RoPE를 쓰는 등 비교적 작은 변화만 준다.
마지막으로 파인튜닝을 다룬다. 스팸/햄 같은 분류는 출력층만 어휘 크기(약 5만)에서 클래스 수(2)로 바꿔 학습하며, 모든 층을 갱신하지 않고 마지막 몇 층만 갱신해도 충분하고 더 빠르다. 챗봇은 지시 데이터셋으로 지시 파인튜닝하고, 그 위에 응답을 더 기술적/친절하게 또는 안전하게 다듬는 선호 파인튜닝을 얹는다. 평가로는 MMLU, AlpacaEval, LMSys 챗봇 아레나 등을 소개하며, 어느 하나만으로는 충분하지 않다고 강조한다.
주요 인사이트
- LLM의 작동을 이해하려면 데이터부터 봐야 한다. 모델이 무엇을 입력받고 무엇을 예측하는지 알면 아키텍처 이해에 한결 가까워진다.
- 여러 단어 출력도 결국 매 단계 '한 토큰 예측'의 반복이다. 챗GPT가 글을 한 단어씩 흘리듯 보여주는 것은 이 생성 방식을 드러내는 단서다.
- 마이크로소프트의 Phi 모델은 데이터를 무조건 늘리기보다, 덜 중요한 정보를 줄여 추론 능력을 위한 용량을 남기자는 가설을 제시한다.
- 많은 실무 과제는 챗봇이 아니라 분류 문제다. 문서 분류, 이메일 정리, 고객 감정 분석, 이탈 예측 등은 더 저렴하고 단순한 분류 파인튜닝으로 풀 수 있다.
- MMLU 같은 객관식 점수는 유용하지만 암기 측정에 가깝다. AlpacaEval, 챗봇 아레나 등 여러 평가를 함께 봐야 모델의 실제 능력을 가늠할 수 있다.
자주 묻는 질문
LLM 개발의 세 단계는 무엇인가?
첫째 구축 단계에서 데이터 준비·토큰화와 어텐션 메커니즘, 전체 아키텍처를 코딩한다. 둘째 사전학습 단계에서 데이터로 모델을 학습해 파운데이션(기반) 모델을 만든다. 셋째 파인튜닝 단계에서 분류기, 챗봇(지시 파인튜닝), 그리고 응답을 다듬는 선호 파인튜닝 등으로 특정 용도에 맞춘다.
모델을 더 크게 만든다는 것은 구체적으로 무엇을 바꾸는 것인가?
핵심은 트랜스포머 블록을 더 많이 반복하는 것이다. 예컨대 GPT-2의 작은 모델과 큰 모델의 차이는 주로 블록 반복 횟수(12~48회)와 멀티헤드 어텐션의 헤드 수, 임베딩 차원에 있다. 같은 요소를 복제해 깊이를 늘릴 뿐 구조 자체는 크게 다르지 않다.
분류 파인튜닝에서는 모든 층을 다시 학습해야 하나?
그렇지 않다. 출력층을 어휘 크기에서 클래스 수로 바꾼 뒤, 모든 층을 갱신하지 않고 마지막 몇 층(예: 마지막 두 트랜스포머 블록과 출력층)만 갱신해도 성능이 충분히 나오고, 전체를 학습하는 것보다 약 두 배 빠르다고 발표자는 실험으로 보여준다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗