coredot.today
4B를 Flash로 가르치기 — 육하원칙 추출, 선생님 답 1,623개로 로컬 모델을 키우다
블로그로 돌아가기
지식 증류LoRAMLX파인튜닝Qwen3육하원칙5W1H정보 추출Gemini로컬 LLM애플 실리콘한국어 NLP실측 벤치마크

4B를 Flash로 가르치기 — 육하원칙 추출, 선생님 답 1,623개로 로컬 모델을 키우다

이 시리즈의 첫 글에서 클라우드 Gemini 3.8 Flash는 육하원칙 추출 0.86, 로컬 9B는 0.69였습니다. 그 0.16을 지식 증류로 좁혀 보려고 Flash에게 기사 1,709건의 답을 쓰게 하고(5.6달러), 그 답으로 Qwen3 4B를 맥 한 대에서 LoRA로 가르쳤습니다. 결과는 실패였습니다. 아무것도 가르치지 않은 Qwen3 4B 2507이 이미 9B와 같은 0.686이었고, 1,623개를 다 본 학생은 0.656으로 오히려 내려갔습니다. 학생은 선생님의 판단보다 버릇을 먼저 배웠습니다. 예제 200개 지점에서는 이유가 없는 기사 44건 중 42건에 이유를 지어냈고, 끝까지 배운 뒤에도 학습 전(0건)보다 많은 12건을 지어냈습니다. Flash와 Flash-Lite가 함께 채운 이유만 남긴 '보수적 교재'는 버릇을 고치고 같은 예제 수에서 점수를 0.04 올렸지만, 학습 전 모델은 넘지 못했습니다. 교훈은 하나입니다. 증류보다 먼저, 같은 크기의 최신 모델을 정의서만으로 재 보세요. 학습 곡선·칸별 비교·버릇 상속·전후 비교·손익분기 위젯 5개.

코어닷투데이2026-10-1419분

클라우드 선생님의 필기를 노트북 학생이 받아 적는다크게 보기

들어가며: 0.16을 좁힐 수 있나

이 시리즈의 첫 글에서 뉴스 기사 72건의 육하원칙을 꺼내는 24가지 방법을 비교했습니다. 클라우드의 Gemini 3.8 Flash가 0.86, 로컬에서 돌린 Qwen3.5 9B가 0.69였습니다. 두 번째 글에서 판사 여섯에게 다시 채점시켰더니, 이 격차는 자의 착시가 아니라 진짜였습니다. 세 판사 중앙값으로도 0.16이었습니다.

기사를 밖으로 내보낼 수 없는 팀에게 0.16은 큰 숫자입니다. 그런데 이 격차를 좁히는 고전적인 방법이 있습니다. 선생님 모델의 답으로 학생 모델을 가르치는 것, 지식 증류입니다. 이 시리즈에서 여러 번 다룬 판정 모델 tev1이 바로 그렇게 만들어졌습니다. Qwen3.5 4B에 약 17달러어치 예제 3만7천 개로 LoRA를 입혀서요.

이 글은 같은 일을 육하원칙 추출에 해 봅니다. Flash에게 기사 1,700여 건의 육하원칙을 쓰게 하고(라벨 비용 5.6달러), 그 답으로 4B 모델을 맥 한 대에서 가르친 뒤, 지난 글들과 같은 72건에서 잽니다. 질문은 셋입니다. 학생은 몇 개를 보고 얼마나 따라오는가. 학생은 선생님의 나쁜 버릇까지 배우는가. 그래서 이게 클라우드를 부르는 것보다 이득인가.

1부. 설계: 선생님, 교재, 학생, 시험

역할무엇세부
선생님Gemini 3.8 Flash (사고 꺼짐)첫 글의 정의서 그대로. 기사 1,709건 중 형식이 맞는 1,703건의 답을 받음. 5.6달러
교재연합뉴스 RSS 2026년 10월 8~14일 709건(대부분 13일) + 네이버 뉴스 요약 데이터셋 학습 분할 1,000건(2022년)평가 72건과 겹치는 기사는 뺐음. 80건은 검증용으로 따로 둠
보수적 교재같은 기사, Flash의 '왜·어떻게'를 Flash-Lite도 채웠을 때만 남김'왜'를 비운 비율 41% → 59% (정답셋은 61%)
학생Qwen3 4B Instruct 2507LoRA (랭크 16, 전 층), 학습률 1e-4, 배치 4, 1에폭. MLX, M1 Ultra 맥 한 대
시험첫 글의 기사 72건, 432칸글자 F1, 그리고 Claude Sonnet 5.5·GPT-5.4 mini 판사의 평균

선생님은 첫 글에서 가장 나았던 Gemini 3.8 Flash입니다. 정의서는 첫 글의 것을 한 글자도 바꾸지 않았고, 근거 문장 번호까지 함께 쓰게 했습니다. 학생은 선생님의 출력 JSON을 그대로 따라 쓰도록 배웁니다. 입력(정의서와 본문)은 손실 계산에서 가리고 답 부분만 배웁니다.

교재를 하나 더 만들었습니다. 첫 글에서 Flash의 가장 큰 약점은 '왜'를 지어내는 버릇이었습니다(이유가 없는 기사의 34~36%). 학생이 선생님을 따라 배우면 이 버릇도 배울 것입니다. 그래서 Flash가 쓴 '왜'와 '어떻게' 중 Flash-Lite도 함께 무언가를 쓴 경우만 남기고 나머지는 비운 보수적 교재를 따로 만들었습니다. 두 선생님 모두 이유가 있다고 본 경우만 이유로 치는 것입니다. 이 교재에서 '왜'를 비운 기사는 41%에서 59%로 늘어, 정답셋의 61%에 가까워졌습니다. '어떻게'는 52%에서 78%로 늘어 정답셋(63%)보다 오히려 보수적이 됐습니다.

채점은 두 번째 글의 지침을 따랐습니다. 학생이 Gemini의 말투를 배울수록 Gemini 판사는 점수를 더 줄 것이므로, 판사는 Claude와 GPT만 썼습니다.

학생을 바꾼 이유: Qwen3.5 4B는 맥에서 너무 느렸다

원래 학생은 tev1의 바탕 모델이자 첫 글의 기준선인 Qwen3.5 4B였습니다. 그런데 MLX로 LoRA 학습을 걸자 예제 하나에 약 25초가 걸렸습니다. 1에폭에 11시간입니다. Qwen3.5는 선형 어텐션 계열 층을 섞은 구조인데, 이 층의 역전파가 이 맥에서 빠르게 돌지 않았습니다. 일반 어텐션만 쓰는 Qwen3 4B는 같은 설정에서 예제당 약 5초였습니다. 그래서 학생을 Qwen3 4B Instruct 2507로 바꿨습니다. 크기는 같고, 첫 글의 Qwen3.5 4B 결과는 기준선으로 함께 싣습니다.

선생님의 버릇까지 따라 하는 학생크게 보기

2부. 결과: 학생은 학습 전보다 못했다

먼저 결론입니다. 증류는 실패했습니다. 선생님 답 1,623개를 다 본 학생은 시험에서 학습 전보다 낮은 점수를 받았습니다.

모델글자 F1Claude·GPT 판사'왜' 지어냄 / 비움
Qwen3 4B · 학습 전0.6860.7220 / 27
학생 · 200개0.4430.46542 / 1
학생 · 400개0.5150.52225 / 8
학생 · 800개0.6130.64310 / 11
학생 · 1,200개0.6670.68314 / 6
학생 · 1,623개0.6560.67512 / 5
학생 · 보수적 교재 800개0.6560.6753 / 19
Qwen3.5 4B · 학습 안 함 (첫 글)0.6540.6860 / 27
Qwen3.5 9B · 학습 안 함 (첫 글)0.6850.7177 / 12
선생님 · Gemini 3.8 Flash0.8600.87516 / 0

세 가지가 겹쳤습니다.

첫째, 출발점이 생각보다 높았습니다. 아무것도 가르치지 않은 Qwen3 4B Instruct 2507이 글자 F1 0.686, 판사 점수 0.722를 받았습니다. 첫 글에서 같은 크기의 Qwen3.5 4B(0.654)보다 높고, 두 배 큰 Qwen3.5 9B(0.685)와 같습니다. 2025년 7월에 나온 이 모델은 정의서를 꽤 잘 따랐고, 특히 '왜'는 한 번도, '어떻게'는 단 한 번 지어냈을 뿐입니다. 대신 이유가 있는 기사 28건 중 27건에서 '왜'를 비웠습니다. 극단적으로 조심스러운 학생이었던 셈입니다.

둘째, 학생은 선생님의 버릇을 먼저 배웠습니다. 학습 곡선의 첫 점(예제 200개)에서 점수가 0.44로 떨어졌습니다. 이 시점의 학생은 이유가 없는 기사 44건 중 42건에 이유를 지어냈습니다. 선생님 답의 '모양', 즉 여섯 칸을 모두 채운 JSON을 먼저 배우고, 언제 비워야 하는지는 나중에 배운 것입니다. 1,623개를 다 본 뒤에도 '왜'를 지어낸 기사가 12건으로, 학습 전(0건)보다 많습니다. 선생님 자신이 이 시험에서 16건을 지어냈다는 것을 생각하면, 학생은 선생님의 장점보다 버릇을 더 충실하게 옮겼습니다.

셋째, 학생은 선생님을 충분히 닮지 못했습니다. 시험 기사 72건에서 학생의 답이 선생님의 답과 얼마나 같은지를 글자 F1로 재면, 학습 전 0.60에서 학습 후 0.65로 0.05 올랐을 뿐입니다. 선생님의 판단, 예를 들어 헤드라인이 가리키는 사건을 고르는 눈이나 '어디서'를 데이트라인과 구분하는 습관은 1에폭 1,600개로는 거의 옮겨지지 않았습니다. 혹시 시험 기사가 교재와 달라서일까 싶어, 교재와 같은 분포에서 따로 떼어 둔 검증 기사 80건으로도 쟀습니다. 선생님과의 일치는 학습 전 0.58에서 학습 후 0.66으로, 역시 0.08 오르는 데 그쳤습니다. 분포의 문제가 아니라 1에폭 1,600개로는 애초에 많이 닮지 못한 것입니다.

3부. 보수적인 선생님은 버릇을 고쳤지만 점수는 그대로였다

보수적 교재(Flash와 Flash-Lite가 함께 채운 '왜·어떻게'만 남긴 것)로 같은 800개를 가르친 학생은 '왜'를 지어낸 기사가 3건, '어떻게'는 0건이었습니다. 같은 800개를 원래 교재로 배운 학생(10건, 33건)보다 훨씬 조심스럽습니다. 버릇은 고쳐졌습니다.

점수도 나아졌습니다. 같은 800개를 본 원래 학생은 글자 F1 0.613이었는데 보수적인 학생은 0.656으로, 두 배를 본 원래 학생(1,623개, 0.656)과 같은 자리에 올랐습니다. 다만 그 자리는 여전히 학습 전(0.686)보다 아래입니다. 지어내지 않는 대신 비웠기 때문입니다. 이유가 있는 기사 28건 중 19건을, 방법이 있는 기사 27건은 전부 비웠습니다. 학습 전 모델이 하던 '극단적으로 조심스러운' 행동으로 돌아간 셈입니다. 지어냄과 비움은 맞바꾸는 관계이고, 학습 데이터에서 한쪽을 깎으면 다른 쪽이 늘어납니다.

4부. 그래도 계산은 해 두자: 돈과 시간

학생이 학습 전 모델을 못 이겼으니 이 절은 가정의 계산입니다. 그래도 증류를 고민하는 팀이 자기 숫자를 넣어 볼 수 있도록 남깁니다.

항목값
선생님 라벨 1,709건5.6달러 (입력 191만·출력 37만 토큰)
학습 (1,623개 1에폭)약 1시간 55분, M1 Ultra 맥 한 대
학습 전 4B 추론 (기사당, 다른 작업 없음)4.8초
학생 추론 (기사당, 다른 작업 없음)7.4 (사건 한 줄 요약과 근거 번호까지 쓰느라 출력이 김)초
선생님 Flash API (기사당)3.6초, 약 0.0033달러

인터넷 없이 노트북에서 기사를 분류하는 작은 모델크게 보기

기사 1만 건을 Flash로 처리하면 약 33달러입니다. 맥 한 대에서 4B로 처리하면 전기료만 들지만 학습 전 4B로 약 13시간이 걸립니다. 하루 수천 건 규모까지는 돈의 차이가 크지 않습니다. 로컬을 고르는 이유는 비용이 아니라 대개 데이터를 밖으로 보낼 수 없다는 제약이고, 그 제약 아래에서는 학습 전 Qwen3 4B 2507이 이미 9B와 같은 점수를 낸다는 것이 이 글의 더 쓸모 있는 발견입니다.

5부. 증류가 통하려면

이번 실패에서 거꾸로 읽어 낼 수 있는 조건은 이렇습니다.

1
학생보다 확실히 나은 선생님
선생님(0.86)과 학습 전 학생(0.69)의 차이는 0.17이었지만, 그 차이의 상당 부분은 '헤드라인 사건을 고르는 판단'이었습니다. 판단은 1,600개로 옮겨지지 않았고, 옮겨진 것은 모양과 버릇이었습니다. 판단을 옮기려면 예제가 훨씬 많거나, 선생님이 판단의 근거(어느 문장이 헤드라인 사건인가)를 함께 써 줘야 합니다.
2
선생님의 약점을 먼저 걸러 낸 교재
보수적 교재는 지어내는 버릇을 고쳤고, 같은 예제 수에서 점수도 0.04 올렸습니다. 교재를 거르는 데 첫 글의 부재 검문(판정 모델)이나 다수결을 쓰면, 학생에게 '없음'을 가르칠 수 있습니다. 다만 너무 많이 비우면 학생이 다시 소심해집니다.
3
학습 전 모델부터 재기
이 실험의 가장 큰 교훈은 출발점입니다. Qwen3 4B 2507을 학습 없이 정의서만으로 쓰면 9B와 같은 0.69가 나왔습니다. 증류를 시작하기 전에, 같은 크기의 최신 모델 여럿을 정의서만으로 먼저 재 보세요. 학습이 필요 없을 수도 있습니다.

6부. 한계

  • 학습은 한 가지 설정으로만 했습니다. LoRA 랭크 16, 학습률 1e-4, 1에폭입니다. 학습률을 낮추거나, 층 일부만 학습하거나, 예제를 1만 개로 늘리면 결과가 달라질 수 있습니다. 예제 200개 지점의 급락은 학습률이 높았다는 신호일 수 있습니다.
  • 학생을 바꿨습니다. 원래 계획한 Qwen3.5 4B는 이 맥에서 학습이 너무 느려 Qwen3 4B로 바꿨습니다. 같은 크기지만 다른 모델입니다.
  • 교재의 절반 이상이 2022년 경제·IT 기사입니다. 시험은 2026년 연합뉴스 중심입니다. 분포 차이가 결과를 깎았을 수 있습니다. 다만 교재와 같은 분포의 검증 기사에서도 선생님과의 일치가 0.08만 올랐으므로, 분포 차이가 주원인은 아닙니다.
  • 보수적 학생은 800개만 봤습니다. 시간 때문에 원래 학생의 800개 지점과 비교했습니다.
  • 추론 시간의 일부는 다른 작업과 GPU를 나눠 쓴 상태에서 쟀습니다. 표의 추론 시간은 따로 잰 값입니다.
  • 출력 형식 오류는 관대하게 고쳐 읽었습니다. 학생은 기사의 따옴표를 그대로 옮겨 JSON을 깨뜨리는 일이 있었고(200개 지점에서 72건 중 12건), 칸 단위로 다시 읽어 살렸습니다. 끝내 읽지 못한 답은 빈칸으로 셌습니다.

맺으며: 선생님을 부르기 전에 학생부터 재라

이 글은 "4B를 Flash로 가르쳐 0.16을 좁힌다"는 계획으로 시작했고, 학생이 학습 전보다 못한 결과로 끝났습니다. 학생은 선생님의 판단보다 버릇을 먼저 배웠고, 그 버릇을 걸러 낸 교재는 버릇을 고쳤지만 판단까지 가르치지는 못했습니다.

실패에서 남은 쓸모 있는 사실은 하나입니다. 같은 4B라도 어떤 모델이냐에 따라 출발점이 0.65에서 0.69까지 달랐고, 0.69는 첫 글의 9B와 같습니다. 데이터를 밖으로 보낼 수 없는 팀에게 첫 번째 일은 학습이 아니라 모델 고르기입니다. 이 시리즈의 다음 글은 그렇게 꺼낸 육하원칙을 들고 기사들을 사건 단위로 묶습니다.

출처