AI VIDEO BRIEFING

LLM 파인튜닝 입문: CPT·LoRA·데이터 전처리로 작은 모델을 도메인에 맞추는 법

1억 3500만 파라미터 모델을 논문 도메인에 맞춰 연속 사전학습(CPT)하는 과정을 데이터 전처리, LoRA vs 전체 파인튜닝, 평가 지표, 과적합 대응까지 실험 중심으로 정리했습니다.

작은 언어 모델을 특정 도메인에 길들이기: CPT 파인튜닝 실험 노트 영상 대표 이미지

핵심 메시지

  • 연속 사전학습(CPT)의 목표는 일반 데이터로 학습된 베이스 모델을 특정 도메인(여기서는 최근 arXiv 논문)에 맞게 끌어올리는 것이며, 그 과정에서 영화·노래 같은 일반 지식을 일부 잊어도 괜찮다.
  • 이 영상의 핵심 가치는 Unsloth 코드 최적화가 아니라 '어떻게 실험을 설계하고, 데이터셋을 준비하며, 모델을 평가할 것인가'라는 사고방식에 있다.
  • 데이터가 컨텍스트보다 짧으면 packing, 길면 truncating을 쓰며, max length·batch size·learning rate·gradient accumulation·gradient clipping이 학습 속도와 안정성을 함께 좌우한다.
  • 전체 파인튜닝은 LoRA보다 한 에포크가 약 5배 느리고 학습률도 낮춰야 해 효율이 떨어졌고, 결국 LoRA(그리고 rank를 키울 때의 rsLoRA)가 실용적 선택이었다.
  • 성능을 끌어올린 결정적 요인은 모델이 아니라 데이터였다 — 논문 수 늘리기, 기존 scientific papers 데이터셋 섞기, 참고문헌 제거 같은 정제가 결과를 크게 개선했다.

쉽게 이해하기

발표자는 프런티어 랩의 거대 모델 대신 작은 로컬 모델을 직접 파인튜닝하려는 동기를 짚는다. 좁은 작업을 자동화하거나, SaaS에서 서버 왕복 지연 없이 클라이언트 기기에 모델을 바로 배포해 빠른 응답을 주고 싶을 때다. 그는 CPT, 인스트럭션 튜닝, 강화학습 등 파인튜닝 단계를 다루는 시리즈를 예고하며, Unsloth와 Hugging Face를 쓰되 데이터셋 준비·정제와 응답 평가, 실험 설계에 특히 무게를 두겠다고 밝힌다.

실험에는 Hugging Face에서 찾은 가장 작은 축인 1억 3500만 파라미터의 small LLM 135M을 골랐다. 빠른 반복을 위해서다. 데이터셋은 직접 작성한 파이썬 스크립트로 arXiv API를 통해 2024~2025년 LLM·컴퓨터 비전·강화학습 논문을 받아 PDF를 텍스트로 파싱한 것으로, 처음엔 25편만으로 시작해 파이프라인을 검증한 뒤 점차 늘려갔다. 목표는 모델이 이 논문들을 더 잘 이해하게 만드는 것이며, 그 과정의 일반 지식 망각은 감수한다.

본격 학습 전 그는 세 가지 질문을 던진다. 데이터를 모델 컨텍스트에 맞게 어떻게 준비할 것인가, 전체 네트워크를 학습할 것인가 아니면 LoRA 같은 파라미터 효율적 파인튜닝을 할 것인가, 모델을 어떻게 평가할 것인가. 데이터 전처리에서는 시퀀스가 컨텍스트보다 짧으면 여러 예시를 한 행에 EOS 토큰으로 이어 붙이는 packing을, arXiv 논문처럼 길어서 넘치면 truncating을 쓴다. 최종 모델은 시퀀스 길이 1024로 학습했고, 실제 배포라면 4~8배 늘릴 것이라고 덧붙인다.

하이퍼파라미터의 상호작용도 설명한다. max length는 어텐션이 O(n²)이라 컴퓨트를 제곱으로 키우는 가장 중요한 변수이고, batch size는 학습 안정성에 영향을 주며, 작은 GPU에서는 gradient accumulation으로 유효 배치 크기를 키운다(예: 16×8=128). gradient clipping은 가중치가 너무 빨리 바뀌지 않게 막는 안정장치다. 평가는 네 지표를 썼다 — 교차 엔트로피 손실, 재현율 중심의 ROUGE, 정밀도 중심의 BLEU, 임베딩 코사인 유사도로 의미를 보는 BERTScore. 과적합 방지를 위해 20%를 검증셋으로 떼고 조기 종료와 best 모델 저장을 구현했다.

실험 결과 전체 파인튜닝은 한 에포크가 LoRA보다 약 5배 느리고 학습률도 낮춰야 해(파국적 망각 방지) 비효율적이었다. LoRA로 방향을 잡고 rank 8·16·32를 시도했지만 25편 데이터로는 너무 빨리 과적합했다. 그래서 논문을 200편으로 늘리고, 그래도 부족하자 Hugging Face의 scientific papers(arXiv split) 데이터셋을 interleave로 20% 섞었으며, 정규식으로 참고문헌·서지 정보를 제거하는 정제까지 더하자 결과가 크게 좋아졌다. 마지막엔 rank를 키울 때 스케일링 병목을 1/√R로 푸는 rsLoRA로 전환해 가장 좋은 모델을 얻었고, 이 전 과정이 카파시가 말한 자동 연구 루프처럼 '작고 반복적인 개선'으로 이뤄진다고 강조한다.

주요 인사이트

  • CPT의 본질은 일반 베이스 모델을 특정 도메인으로 좁히는 것이며, 도메인 전문성을 얻는 대가로 일반 지식 일부를 잃는 트레이드오프를 의식적으로 받아들인다.
  • 코드 자체는 Unsloth 노트북에서 그대로 가져올 수 있으니, 진짜 실력은 실험을 어떻게 설계하고 데이터를 어떻게 준비·평가하느냐에서 갈린다.
  • max length는 어텐션의 제곱 복잡도 때문에 GPU 한계를 직접 결정하는 가장 민감한 하이퍼파라미터이고, gradient accumulation은 작은 GPU에서 큰 유효 배치를 흉내 내는 우회로다.
  • 과적합이면 모델 복잡도를 줄이거나(LoRA rank 축소) 데이터를 늘리는 것이 ML의 기본 원칙이며, 이 영상에서는 데이터를 늘리고 정제한 쪽이 가장 큰 성능 개선을 가져왔다.
  • rsLoRA는 표준 LoRA가 rank R로 나누며 생기는 수익 체감을 1/√R로 바꿔, rank를 키울 때 실제 성능 향상을 얻게 해 준다.

자주 묻는 질문

CPT(연속 사전학습)란 무엇인가요?

일반 데이터셋으로 학습된 베이스 모델을 특정 도메인 데이터로 추가 학습해 그 분야에 맞게 끌어올리는 과정입니다. 영상에서는 최근 arXiv 논문을 도메인으로 삼았고, 그 과정에서 일반 지식 일부를 잊는 것은 감수합니다.

전체 파인튜닝과 LoRA 중 무엇이 더 나았나요?

전체 파인튜닝은 한 에포크가 LoRA보다 약 5배 느리고 파국적 망각을 막기 위해 학습률도 낮춰야 해 효율이 떨어졌습니다. 그래서 발표자는 LoRA를 택했고, rank를 키울 때는 rsLoRA로 전환했습니다.

모델 성능을 평가하는 데 어떤 지표를 썼나요?

다음 단어 예측 손실인 교차 엔트로피 손실, 재현율 중심의 ROUGE, 정밀도 중심의 BLEU, 그리고 임베딩 코사인 유사도로 의미를 비교하는 BERTScore 네 가지를 사용했습니다.

과적합이 생겼을 때 어떻게 대응했나요?

논문 수를 25편에서 200편으로 늘리고, Hugging Face의 scientific papers 데이터셋을 20% 섞고, 참고문헌·서지 정보를 정규식으로 제거하는 데이터 정제를 했습니다. 모델 복잡도를 줄이거나 데이터를 늘리는 것이 기본 원칙입니다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식