LLM 엔지니어링4장 · LLM 을 완성하는 3단계와 Hugging Face3 / 23← 이전목차다음 →MetaContents

4장. LLM 을 완성하는 3단계와 Hugging Face

LLM 을 완성하는 3단계

3장에서 챗봇 모델에 질문을 넣으면 답이 나왔습니다. 그런데 처음부터 그랬을까요? 갓 사전학습을 마친 모델은 질문을 받으면 답하는 대신 질문을 이어 쓰거나 되풀이합니다. 답하는 법은 그 뒤의 단계에서 따로 배웁니다. 의사가 교과서만 읽고는 환자를 볼 수 없는 것과 같습니다.

사전학습, 미세조정(SFT), 정렬의 세 단계를 이은 흐름도

1번 사전학습은 라벨 없는 많은 글로 다음 토큰 맞히기를 배워 언어와 지식을 쌓는 단계이고, 여기서 나온 모델이 기본 모델입니다. 2번 미세조정은 질문과 모범 답의 쌍으로 답하는 법을 익히는 단계입니다. 3번 정렬은 두 답 가운데 사람이 고른 쪽으로 성향을 맞추는 단계로, 2번과 3번을 거친 모델이 지시 모델입니다. 여기서 교과서 공부가 사전학습, 수련 실습이 미세조정, 응대 평가가 정렬입니다.

세 단계 견주기

단계데이터데이터 양(대략)배우는 것이 과정에서
사전학습라벨 없는 글수천억~수십조 토큰언어, 지식, 글의 흐름4장 실습 5(작게)
미세조정(SFT)질문과 모범 답의 쌍수천~수십만 쌍질문에 답하는 꼴과 말투4장 실습 6, 5장
정렬같은 질문에 대한 두 답과 사람의 선택수천~수십만 쌍더 도움 되고 안전한 쪽5장 DPO

비용은 사전학습이 압도적으로 큽니다. 그래서 회사 대부분은 사전학습을 직접 하지 않고, 남이 공개한 기본 모델이나 지시 모델을 받아 2단계부터 합니다. 3장의 "전이 학습" 패턴입니다.

모델 이름으로 단계 읽기

Hub 의 모델 이름에는 보통 단계가 드러납니다.

이름의 끝뜻예
아무것도 없음, -Base사전학습만 한 기본 모델Qwen/Qwen2.5-0.5B
-Instruct, -Chat, -it미세조정과 정렬을 거친 지시 모델Qwen/Qwen2.5-0.5B-Instruct
Python
# 모델 이름의 끝을 보고 기본 모델인지 지시 모델인지 가려 본다
names = ["Qwen/Qwen2.5-0.5B", "Qwen/Qwen2.5-0.5B-Instruct", "google/gemma-2-2b-it"]
for name in names:
    kind = "지시 모델" if name.lower().endswith(("instruct", "chat", "-it")) else "기본 모델"
    print(name, "→", kind)

앞의 것은 기본 모델, 뒤의 둘은 지시 모델로 나옵니다. 이름은 관례일 뿐이라 확실한 것은 모델 카드에서 확인합니다.

코드에 나오는 함수

코드쉬운 뜻
name.lower()글자를 모두 소문자로 바꾼다. Instruct 와 instruct 를 같은 것으로 보려고 쓴다
.endswith(("instruct", "chat", "-it"))글이 괄호 속 끝말 가운데 하나로 끝나면 True 를 돌려준다. 끝말을 여러 개 견줄 때는 이렇게 튜플로 묶어 준다
A if 조건 else B조건이 맞으면 A, 아니면 B 를 고른다. 여기서는 "지시 모델"과 "기본 모델" 가운데 하나를 고른다

이 코드가 뜻하는 것

가게에서 상품 이름 끝의 "리필용", "대용량" 같은 꼬리말만 보고 어떤 상품인지 어림하는 것과 같습니다. 이 코드는 모델 이름의 꼬리말만 보고 그 모델이 몇 단계까지 거쳤는지 어림합니다.

줄하는 일쉽게 말하면
names = [...]견줄 모델 이름 셋을 적는다진열대의 상품 이름표 세 장
name.lower().endswith(...)소문자로 바꾼 이름이 instruct, chat, -it 로 끝나는지 본다이름표 끝에 "답변용" 꼬리말이 붙었는지 본다
kind = ... if ... else ...꼬리말이 있으면 지시 모델, 없으면 기본 모델로 적는다꼬리말이 있으면 2·3단계까지 거친 상품으로 분류한다
print(name, "→", kind)이름과 분류를 한 줄씩 찍는다분류 결과를 이름표 옆에 적는다

결과로 Qwen/Qwen2.5-0.5B 는 기본 모델, 나머지 둘은 지시 모델로 나뉩니다. 이 판정은 이름만 본 어림이므로, 이름 규칙을 따르지 않는 모델은 틀리게 분류될 수 있습니다.

주의할 점

  • 대화형 서비스에는 지시 모델을 씁니다. 기본 모델에 질문을 넣으면 실습 2처럼 질문을 되풀이하기 쉽습니다.
  • 우리 분야의 글로 이어 사전학습을 하고 싶다면 기본 모델에서 시작하고, 말투나 답의 꼴을 바꾸고 싶다면 지시 모델에서 시작하는 것이 보통입니다.
← 이전 절4장 · 용어 짚고 가기다음 절 →4장 · 사전학습