파인튜닝으로 모델 성능 끌어올리기

파인튜닝으로 모델 성능 끌어올리기 (Fine-tuning)

모델 파인튜닝이란 일련의 데이터로 모델 자체를 업데이트해 출력 품질을 높이는 작업이에요. 단순히 출력 품질만 좋아지는 게 아니라 환각을 줄이고, 데이터를 더 포괄적으로 암기하며, 지연시간과 비용까지 낮출 수도 있어요. LlamaIndex의 핵심은 원래 인컨텍스트 러닝·검색 증강(retrieval augmentation) — 즉 모델을 학습시키지 않고 추론 모드로 쓰는 것 — 이지만, 파인튜닝은 검색 증강을 다양한 방식으로 보완할 수 있어요.

출처: 공식문서

파인튜닝의 이점

임베딩 파인튜닝

  • 학습 데이터 분포 위에서 임베딩 모델이 더 의미 있는 표현을 만들 수 있게 돼요 → 더 나은 검색 성능으로 이어져요.

LLM 파인튜닝

  • 주어진 데이터셋 위에서 스타일을 학습하게 할 수 있어요
  • 학습 데이터에 잘 표현되지 않은 DSL(예: SQL)을 학습하게 할 수 있어요
  • 프롬프트 엔지니어링만으론 고치기 어려운 환각·오류를 교정할 수 있어요
  • 더 좋은 모델(예: GPT-4)을 더 단순·저렴한 모델(예: gpt-3.5, Llama 2)로 증류(distill)할 수 있어요

LlamaIndex와의 통합

현재 세 가지 핵심 통합이 있어요.

  • 더 나은 검색 성능을 위한 임베딩 파인튜닝
  • 더 나은 text-to-SQL을 위한 Llama 2 파인튜닝
  • gpt-4를 증류하기 위한 gpt-3.5-turbo 파인튜닝

임베딩 파인튜닝

비정형 텍스트 말뭉치 위에서 모델 자체(여기선 bge)를 파인튜닝하거나, 블랙박스 임베딩 위에 어댑터를 파인튜닝하는 방법을 단계별 가이드로 제공해요. 과정은 다음과 같아요.

  1. LlamaIndex로 비정형 컨텍스트 위에 합성 질문/답변 데이터셋 생성
  2. 모델 파인튜닝
  3. 모델 평가

파인튜닝을 하면 검색 평가 지표가 5~10% 향상돼요. 이렇게 파인튜닝한 모델을 RAG 애플리케이션에 그대로 꽂아 쓸 수 있죠.

LLM 파인튜닝

GPT-3.5를 파인튜닝해 GPT-4 증류하기

OpenAI 파인튜닝 엔드포인트로 gpt-3.5-turbo를 RAG/에이전트용 GPT-4 응답을 내도록 파인튜닝하는 여러 가이드가 있어요. GPT-4로 비정형 컨텍스트에서 질문을 자동 생성하고, GPT-4 쿼리 엔진 흐름으로 "ground-truth" 답변을 만든 뒤, OpenAIFineTuningHandler 콜백이 질문/답변을 데이터셋으로 자동 로깅해요. 파인튜닝 작업을 돌려 증류 모델을 얻으면 Ragas로 평가해 naive GPT-3.5 워크플로우와 벤치마킹할 수 있어요.

더 나은 구조화 출력을 위한 파인튜닝

파인튜닝의 또 다른 활용은 모델이 구조화 데이터를 더 잘 출력하게 만드는 거예요. OpenAI와 Llama2 모두 가능해요.

더 나은 text-to-SQL을 위한 Llama 2 파인튜닝

text-to-SQL 데이터셋으로 Llama 2를 파인튜닝한 뒤, LlamaIndex 추상화로 어떤 SQL 데이터베이스에 대해 구조화 분석에 사용하는 방법을 보여줘요. 스택은 sql-create-context(학습 데이터), OpenLLaMa(베이스 모델), PEFT(파인튜닝), Modal(클라우드 컴퓨트), LlamaIndex(추론 추상화)로 구성돼요.

평가자(Evaluator) 파인튜닝

GPT-4 판사(judge)를 GPT-3.5 판사로 증류하는 것을 목표로 해요. 최근 연구에서 GPT-4 판사가 인간 평가자와 높은 수준의 일치를 보인다는 것이 관찰됐는데, GPT-3.5 판사를 파인튜닝하면 더 낮은 비용으로 GPT-4 수준(그리고 인간과의 일치도)에 도달할 수 있죠.

리랭킹용 크로스 인코더 파인튜닝

크로스 인코더를 파인튜닝하면 내 개인 데이터 위에서 리랭킹 성능을 개선할 수 있어요. 리랭킹은 고급 검색의 핵심 단계로, 여러 소스에서 검색된 노드들을 별도 모델로 재정렬해 가장 관련 높은 노드가 앞에 오게 하는 거예요. sentence-transformers 패키지로 QASPER 데이터셋 기반 데이터에 크로스 인코더를 파인튜닝해요.

Cohere 커스텀 리랭커

CohereAI로 커스텀 리랭커를 학습시키면 내 개인 데이터 위에서 리랭킹 성능을 개선할 수 있어요. 초기 검색 단계에서 검색된 노드를 별도 모델로 재구성해 가장 관련 높은 노드가 우선되어 앞에 오게 하는 게 목표예요. cohere 커스텀 리랭커 학습 모듈로 도메인·특정 데이터에 리랭커를 만들어 검색 성능을 높여요.

더 알아보기