AI VIDEO BRIEFING

LLM 파인튜닝 완전 가이드: Unsloth·QLoRA·GGUF 실전

왜·언제 LLM을 파인튜닝하는지, 대형 모델의 학습 단계, QLoRA의 원리, 그리고 Unsloth로 ASCII 아트·챗봇·추론 모델을 만들고 GGUF로 로컬 실행하는 전 과정을 정리했다.

Unsloth로 내 LLM 파인튜닝하기: QLoRA부터 로컬 실행까지 영상 대표 이미지

핵심 메시지

  • 파인튜닝은 새 지식 추가, 과제 성능 향상, 개성 부여, 로컬 모델 활용 등 프롬프트만으로 어려운 행동을 학습시키는 방법이다.
  • 대형 모델은 사전학습 → 지도 파인튜닝 → 정렬(RLHF) → 추론(GRPO) 단계를 거치며, 개인은 QLoRA로 이를 효율적으로 흉내 낼 수 있다.
  • QLoRA는 전체 가중치 대신 저랭크 어댑터만 학습하고 베이스 모델을 4비트로 양자화해, 평범한 GPU에서도 파인튜닝을 가능하게 한다.
  • 학습한 모델은 GGUF로 변환해 Ollama나 llama.cpp로 로컬 실행하며, Open WebUI로 ChatGPT 같은 인터페이스를 붙일 수 있다.

쉽게 이해하기

영상은 지난 1년간 익힌 LLM 파인튜닝 노하우를 이론과 실습으로 정리한다. 먼저 '왜 파인튜닝하는가'를 짚는다. ChatGPT가 모르는 분야(의료·법률 문서, 산업 기계 매뉴얼, 회사 기밀)나 게임 NPC 대사처럼 공개 데이터에 없는 지식을 더하고, 과제 성능을 끌어올리며, ASCII 아트 생성 같은 새 용도나 재미있는 개성을 부여하고, 프라이버시·비용 때문에 로컬 모델을 쓸 때 작은 모델의 한계를 보완하기 위해서다. '아름답게' 또는 '웃기게' 같은 행동은 프롬프트로 지시하기 거의 불가능하므로, 그 행동의 예시로 직접 학습시키는 수밖에 없다.

RAG와의 관계도 정리한다. 자주 바뀌는 지식베이스 질의응답에는 RAG가 낫지만, RAG 품질은 검색 정확도에 좌우된다. 발표자는 둘을 결합하는 것이 최선이라고 본다. RAG로 변하는 지식을 수용하고, 파인튜닝으로 도메인 용어 학습·특정 질문 거부·오답 개선·개성 부여를 맡기며, 검색이 실패할 때의 폴백으로도 쓰는 식이다.

대형 제공사의 학습 과정도 단계별로 보여준다. 트랜스포머 디코더를 무작위 가중치로 초기화한 뒤, 웹(Common Crawl)·깃허브·위키백과·책·논문 같은 비정형 데이터로 다음 토큰을 예측하게 하는 사전학습으로 언어 이해와 배경지식을 얻는다. 이후 지도 파인튜닝(지시 따르기·대화, 예: Alpaca 데이터셋), 정렬 단계(선호/거부 응답으로 DPO·PPO·RLOO 같은 강화학습), 그리고 최근 등장한 추론 모델 단계(시연 데이터 없이 보상 함수로 GRPO 학습)를 거친다. Llama 3는 16K H100 GPU로 학습됐는데, H100 한 장이 약 3만 달러라 개인에게는 비현실적이다.

그래서 핵심은 QLoRA다. LoRA는 모델의 실제 가중치 대신 저랭크 행렬(어댑터)만 학습하고, 추론 시 베이스 가중치 위에 더한다. 예시처럼 25개 가중치를 다 학습하는 대신 10개만 조정하는 식이다. 여기에 Q(양자화)를 더해 베이스 모델 가중치를 16비트 대신 4비트로 표현하면 데이터·메모리 요구가 더 줄어든다. 모델은 허깅페이스에서 구하며 Gemma(구글)·Llama(메타)·Mistral·Deepseek 등 선택지가 많다. 단일 최강 모델은 없고 용도에 따라 실험이 필요하다. 변형도 base(사전학습만), instruct/chat(지도 파인튜닝 완료), 멀티모달(비전), GGUF(추론 전용, 학습 불가)로 나뉘므로 용도에 맞게 골라야 한다.

실습에서는 세 가지를 만든다. 첫째, ASCII 아트 생성 모델은 양자화가 결과를 망쳐 일반 LoRA로 학습한다. 둘째, 폴 그레이엄처럼 답하는 챗봇은 QLoRA로 학습하는데, 데이터셋을 LLM으로 질문·답변을 생성해 구축하고 모델별 chat template을 반드시 동일하게 적용해야 한다. 셋째, GRPO로 추론 모델을 만들어 'strawberry에 r이 몇 개인가' 같은 질문에 추론 토큰을 내며 답하게 한다. 무료 T4 GPU를 주는 Google Colab이나 월 30달러 크레딧을 주는 Modal에서 돌릴 수 있다. 학습한 가중치는 GGUF로 변환하는데, 토크나이저와 모델을 함께 담아 CPU에서도 실행 가능하다. 어댑터와 베이스를 따로 두거나 병합할 수 있고, Q4_K_M 같은 4비트 양자화로 VRAM에 맞춘다. 마지막으로 Ollama나 llama.cpp로 추론하고, Open WebUI를 붙이면 ChatGPT 같은 화면에서 내 로컬 모델과 대화할 수 있다.

주요 인사이트

  • '아름답게'·'웃기게'처럼 프롬프트로 규정하기 어려운 행동은 예시 데이터로 학습시키는 파인튜닝이 사실상 유일한 길이다.
  • RAG와 파인튜닝은 양자택일이 아니라, 변하는 지식은 RAG로 도메인 적응·개성은 파인튜닝으로 결합할 때 가장 강력하다.
  • QLoRA는 저랭크 어댑터 학습 + 4비트 양자화로 평범한 GPU에서도 고품질 파인튜닝을 가능하게 한 핵심 기법이다.
  • 에폭을 너무 늘리면 학습셋을 그대로 외워 일반화에 실패하므로, 보통 1~3 에폭 수준에서 멈추는 것이 권장된다.

자주 묻는 질문

RAG가 있는데 굳이 파인튜닝이 필요한가요?

자주 바뀌는 지식베이스 질의응답에는 RAG가 적합하지만, 도메인 용어 학습·특정 질문 거부·오답 개선·개성 부여, 그리고 검색 실패 시 폴백에는 파인튜닝이 유리합니다. 영상은 둘을 결합하는 것이 최선이라고 봅니다.

QLoRA는 일반 LoRA와 무엇이 다른가요?

LoRA는 전체 가중치 대신 저랭크 행렬(어댑터)만 학습하는 기법이고, QLoRA는 거기에 베이스 모델을 4비트로 양자화하는 것을 더한 방식입니다. 덕분에 메모리·데이터 요구가 줄어 더 작은 GPU에서도 학습할 수 있습니다.

학습한 모델을 로컬에서 어떻게 실행하나요?

토크나이저와 모델을 함께 담는 GGUF 형식으로 변환하면 GPU 없이 CPU에서도 실행할 수 있습니다. Q4_K_M 같은 4비트 양자화로 VRAM에 맞춘 뒤 Ollama나 llama.cpp로 추론하고, Open WebUI를 붙여 ChatGPT 같은 화면으로 쓸 수 있습니다.

원문과 출처

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

YouTube 원본 영상 보기 ↗

관련 AI 소식