주요 컨텐츠로 이동

LLM 미세 조정을 위한 실용 가이드

LLM 미세 조정이 작동하는 방식, RAG 대비 사용 시점, 지도 학습 미세 조정부터 PEFT 및 LoRA까지 올바른 방법을 선택하는 방법을 알아보세요.

작성자: Databricks 직원

  • LLM 미세 조정은 사전 훈련된 모델을 작업별 데이터셋에 맞게 조정하여 정확도를 높이고, 환각 현상을 줄이며, 기본 모델에는 없는 도메인별 지식을 반영하는 출력을 생성하는 프로세스입니다.
  • LoRA 및 QLoRA와 같은 파라미터 효율적 미세 조정(PEFT) 방법을 사용하면 전체 미세 조정에 드는 컴퓨팅 비용의 일부만으로 대규모 언어 모델을 미세 조정할 수 있으며, 전문적인 기능을 습득하면서 일반적인 언어 이해력을 유지할 수 있습니다.
  • 미세 조정과 검색 증강 생성(RAG)은 상호 보완적인 기술입니다. 미세 조정은 스타일 및 작업별 성능을 위해 모델 동작을 영구적으로 변경하는 반면, RAG는 추론 시 최신 독점 지식에 동적으로 액세스할 수 있도록 합니다.

이 가이드는 특정 작업, 도메인 또는 애플리케이션에 맞게 대규모 언어 모델을 조정해야 하는 ML 엔지니어, 데이터 과학자 및 AI 실무자를 위해 작성되었습니다. 실제 프로덕션 결정을 내릴 수 있을 만큼 충분한 깊이로 LLM 미세 조정의 전체 수명 주기(미세 조정 여부 결정부터 데이터 준비, 방법 선택, 교육 고려 사항, 배포까지)를 다룹니다.

아래 섹션에서는 모든 미세 조정 프로젝트에서 가장 중요한 결정 사항을 다룹니다. 즉, 미세 조정이 프롬프트 엔지니어링보다 뛰어난 경우, 지도 미세 조정, 전체 미세 조정 및 매개변수 효율적 접근 방식 중에서 선택하는 방법, 프로덕션에서 모델 성능 저하 위험을 줄이는 모범 사례는 무엇인지 알아봅니다.

미세 조정 및 AI 모델 개요

LLM 미세 조정은 특정 작업에 대한 성능을 향상시키기 위해 더 작고 작업별 데이터 세트에서 사전 훈련된 모델의 교육을 계속하는 프로세스입니다. 엄청난 컴퓨팅 및 데이터 리소스가 필요한 새 모델을 처음부터 구축하는 대신, 미세 조정은 사전 훈련된 모델에 이미 인코딩된 일반 언어 이해를 활용하고 이를 더 집중된 목표로 전환합니다.

핵심 이점은 효율성입니다. 미세 조정을 통해 조직은 모델의 동작과 출력 품질을 사용자 지정할 수 있습니다. 목표가 분류 작업에 대한 모델 성능 향상, 콘텐츠 생성을 위한 모델 출력의 일관성 향상, 사용자 지정 데이터를 사용한 도메인별 지식 습득인지 여부에 관계없이 전체 사전 훈련의 인프라 투자 없이 가능합니다. 엔터프라이🗜️ 팀의 경우 이는 프로덕션까지의 시간 단축, 전문화된 작업에 대한 추론 지연 시간 감소, 모델이 생성하는 것과 생성하지 않는 것에 대한 더 나은 제어를 의미합니다. 도메인에 맞게 조정된 모델은 해당 도메인의 작업에서 일반 모델보다 일관되게 우수한 성능을 발휘하며, 특히 용어, 톤 또는 추론 패턴이 일반 인터넷 텍스트와 크게 다른 경우 더욱 그렇습니다.

고려해야 할 주요 절충점은 데이터 요구 사항, 컴퓨팅 비용 및 치명적 망각의 위험입니다. 치명적 망각은 훈련 중에 미세 조정 도메인 외부의 작업에 대한 모델의 능력이 저하되는 현상입니다. 올바른 미세 조정 기술을 선택하는 것이 이러한 절충점을 관리하는 주요 수단이며, 올바른 선택은 작업, 사용 가능한 미세 조정 데이터 및 훈련에 사용할 수 있는 리소스에 따라 달라집니다.

LLM 수명 주기 및 LLM 미세 조정 시기

미세 조정 프로젝트를 시작하기 전에 팀은 명확한 프로젝트 비전을 정의해야 합니다. 모델이 습득해야 하는 특정 기능은 무엇이며, 성공은 어떻게 보이며, 훈련을 지원할 수 있는 데이터는 무엇입니까? 모델을 프롬프트만 사용하는 대신 미세 조정하기로 한 결정은 항상 기본 모델이 현재 제공하는 것과 프로덕션에 필요한 것 사이의 구체적인 격차를 기반으로 해야 합니다.

프롬프트 엔지니어링과 미세 조정 간의 결정

가장 중요한 첫 번째 결정은 작업에 미세 조정이 필요한지 여부입니다. 프롬프트 엔지니어링—모델의 출력을 안내하는 프롬프트 또는 프롬프트 템플릿 설계—은 더 빠르고 저렴하며 되돌릴 수 있습니다. 처음에 미세 조정이 필요해 보이는 많은 작업은 잘 만들어진 프롬프트나 인컨텍스트로 제공되는 몇 가지 예제(퓨샷 학습이라고 하는 기술)로 해결할 수 있습니다. 프롬프트 엔지니어링을 통해 사용할 수 있는 표현력은 기본 모델의 기능에 의해 제한되지만, 많은 엔터프라이🗜️ 사용 사례의 경우 해당 제약은 구속력이 없습니다.

미세 조정은 프롬프트 엔지니어링이 몇 가지 예제를 사용하더라도 원하는 출력 품질을 일관되게 달성하지 못하는 경우, 작업에 기본 모델에 없는 도메인별 지식이나 용어가 필요한 경우, 지연 시간 또는 비용 고려 사항이 대규모 범용 모델보다 소규모 미세 조정 모델을 선호하는 경우, 또는 조직이 모델 동작을 엄격하게 제어해야 하는 경우(예: 고객 대면 애플리케이션에서 모델이 주제에서 벗어난 응답을 생성하는 것을 방지하기 위해) 추구할 가치가 있습니다.

미세 조정 모델의 이점을 얻는 사용 사례

미세 조정 모델이 일관되게 가치를 제공하는 사용 사례에는 다음이 포함됩니다. 독점 문서 참조하는 정확하고 브랜드에 맞는 응답이 필요한 고객 서비스 애플리케이션, 조직별 패턴 또는 API를 따라야 하는 코드 생성 작업, 정확한 도메인별 지식과 추론이 중요한 의료 또는 법률 애플리케이션, 일반 훈련 데이터 분포와 다른 일관된 목소리가 필요한 콘텐츠 생성 워크플로. 각 경우에 모델의 출력은 기본 모델의 원래 훈련 데이터에 존재하지 않는 지식 또는 동작 패턴을 반영해야 합니다.

미세 조정 프로세스: 엔드투엔드 단계

미세 조정 프로세스는 선택한 방법에 관계없이 일관된 패턴을 따릅니다. 팀은 문제 범위 지정 및 데이터 수집으로 시작하여 기본 모델 선택 및 미세 조정 방법 선택을 진행하고, 반복적인 평가를 통해 훈련을 실행하고, 배포 및 모니터링으로 마무리합니다. 훈련 프로세스의 각 단계는 작업이 시작되기 전에 계획되어야 합니다. 훈련 중의 반응적 조정은 비용이 많이 들고 최적의 결과를 거의 생성하지 못합니다.

컴퓨팅 및 예산 할당은 조기에 결정되어야 합니다. 대규모 모델의 전체 미세 조정에는 옵티마이저 상태 및 기울기 누적을 위한 상당한 GPU 메모리가 필요합니다. 매개변수 효율적인 방법은 이 요구 사항을 크게 줄입니다. 훈련 전에 성공 지표(벤치마크 점수, 작업별 정확도 임계값, 지연 시간 요구 사항)를 정의하면 명확한 중지 조건이 제공되고 팀이 임의로 검색하는 대신 하이퍼파라미터의 최적 구성을 식별하는 데 도움이 됩니다. 대부분의 미세 조정 프로젝트는 단일 전면 시도보다는 점진적인 데이터 또는 하이퍼파라미터 개선을 통한 여러 훈련 실행으로 이점을 얻습니다.

데이터 준비

데이터 준비는 LLM 미세 조정에서 가장 시간이 많이 걸리는 단계이며 최종 모델 품질에 가장 직접적인 책임이 있는 요인입니다. 고품질 예제의 더 작은 데이터 세트가 노이즈가 있는 데이터의 더 큰 데이터 세트보다 일관되게 우수하다는 원칙은 미세 조정 문헌에서 잘 확립되어 있으며 도메인에 걸쳐 적용됩니다.

미세 조정 데이터는 프롬프트-완성 쌍으로 형식화된 구조화된 데이터, 구조화되지 않은 텍스트 문서, 코드 샘플 또는 지침-응답 세트 등 여러 형태를 취할 수 있습니다. 훈련 중에 모델에 제공되는 입력 데이터는 모델이 프로덕션에서 접하게 될 실제 입력 분포를 반영해야 합니다. 이는 예상되는 쿼리의 전체 범위를 다루는 예제를 큐레이션하고(가장 일반적인 예제만 포함하는 것이 아니라) 모델이 학습해야 하는 독점 데이터 또는 도메인별 어휘를 포함하는 것을 의미합니다.

데이터 세트 항목 정리 및 정규화에는 중복 제거, 형식 불일치 수정 및 저품질 예제 필터링이 포함됩니다. 일관된 형식은 특히 중요합니다. 훈련 예제는 시스템 프롬프트, 구분 기호 및 예상 출력 구조를 포함하여 모델이 프로덕션에서 사용될 방식과 정확히 일치해야 합니다. 훈련 형식과 추론 형식 간의 편차는 품질 저하의 일반적인 원인이며, 사후에 진단하기 어렵고 방지하기 쉽습니다.

훈련, 검증 및 테스트 분할을 생성하면 모델이 훈련 세트를 암기하는 대신 새 데이터에 일반화됩니다. 검증 세트는 조기 중지 결정을 주도합니다. 훈련 중에 검증 손실이 평탄화되거나 상승하면 과적합 전에 중지하면 사전 훈련 중에 습득한 일반 언어 이해를 보존할 수 있습니다. 레이블 지정 규칙, 소스 설명 및 버전 추적을 포함한 데이터 출처 문서는 재현성을 지원하고 후속 훈련 실행을 더 쉽게 관리할 수 있도록 합니다.

기본 모델 및 대상 미세 조정 모델 선택

기본 모델 선택은 미세 조정 프로세스의 모든 다운스트림 결정을 형성합니다. 대상 작업과 이미 밀접하게 일치하는 사전 훈련된 모델은 필요한 미세 조정 양을 최소화하여 컴퓨팅 비용과 과적합 위험을 모두 줄입니다. 실제 평가 접근 방식은 전체 미세 조정 실행을 커밋하기 전에 대상 작업 예제 샘플에서 후보 기본 모델을 실행하는 것입니다. 기준선 성능은 얼마나 많은 조정 작업이 필요한지 보여줍니다.

모델 크기는 주요 선택 기준입니다. 더 큰 모델은 일반적으로 복잡한 작업에서 더 높은 정확도를 달성하지만 훈련 중에 더 많은 메모리를 요구하고 더 높은 추론 지연 시간을 생성합니다. 지연 시간 제약이 엄격한 경우(예: 실시간 고객 대면 애플리케이션) 작업별 데이터로 미세 조정된 소규모 모델은 좁은 대상 분포에서 유사한 정확도로 더 낮은 지연 시간을 결합하여 대규모 범용 모델보다 우수한 성능을 발휘하는 경우가 많습니다. 일반 사전 훈련된 모델에서 시작할지 아니면 이미 미세 조정된 모델(예: 지침 따르기 모델)에서 시작할지는 대상 작업이 기본 모델에 아직 없는 지침 따르기 동작을 포함하는지에 따라 달라집니다.

LLM 미세 조정 방법

미세 조정 기술 환경에는 지도 미세 조정, 지침 미세 조정, 전체 미세 조정 및 매개변수 효율적 미세 조정(PEFT) 방법이 포함됩니다. 표준 미세 조정은 특정 작업에 대한 레이블이 지정된 훈련 데이터 세트에서 모델의 가중치를 업데이트합니다. 이는 대부분의 프로덕션 프로젝트에 가장 일반적인 접근 방식입니다. 순차 미세 조정은 여러 관련 작업에 대해 모델을 단계별로 조정하여 이 패턴을 확장합니다. 각 훈련 실행은 이전 실행에서 설정한 것을 기반으로 합니다. 다중 작업 학습은 다른 접근 방식을 취하여 여러 작업을 동시에 훈련하므로 단일 미세 조정 모델이 별도의 배포 없이 다른 작업을 처리할 수 있습니다.

각 접근 방식은 표현력, 계산 비용, 기본 모델의 일반 기능 저하 위험 간의 서로 다른 절충점을 수반합니다. 올바른 선택은 사용 가능한 학습 데이터의 양과 품질, 대상 작업의 복잡성, 학습 및 서비스에 사용할 수 있는 리소스에 따라 달라집니다.

Instruction Fine Tuning

Instruction fine tuning은 사전 학습된 언어 모델을 자연어 지침을 따르도록 조정하는 것으로, 지침-응답 쌍 데이터셋으로 학습시킵니다. 이 기술은 최신 채팅 모델의 특징인 대화형, 지침 따르기 동작을 담당합니다. 학습 데이터셋은 지침과 원하는 출력으로 구성된 예시로 구성됩니다. 모델은 단순히 텍스트를 계속 이어가는 것이 아니라 지침을 적절한 응답으로 매핑하는 방법을 학습합니다.

고품질 지침-응답 쌍을 만드는 것이 instruction fine tuning의 주요 품질 결정 요인입니다. 데이터셋 전체에서 일관된 구문, 형식 및 길이 규칙을 사용하는 지침 템플릿을 표준화하면 노이즈가 줄어들고 모델이 의도된 매핑을 명확하게 학습하는 데 도움이 됩니다. 지침 길이의 균형을 맞추는 것도 중요합니다. 너무 간결한 지침은 모델이 작업을 이해하는 데 충분한 컨텍스트를 제공하지 못할 수 있으며, 지나치게 장황한 지침은 모델이 핵심 목표를 파악하기 어렵게 만들 수 있습니다. Instruction fine tuning은 고객 대면 또는 대화 기반 애플리케이션을 대상으로 하는 대부분의 LLM fine tuning 프로젝트의 기반이며, 맞춤형 상호 작용이 필요한 경우에 사용됩니다.

Supervised Fine Tuning (SFT)

Supervised fine tuning은 레이블이 지정된 프롬프트-응답 쌍을 사용하여 모델의 가중치를 업데이트하는 fine-tuning 프로세스입니다. 모델은 입력 프롬프트가 주어졌을 때 레이블이 지정된 출력을 생성하도록 학습되며, 손실은 레이블이 지정된 응답에 대해 계산됩니다. SFT는 대부분의 작업별 fine-tuning 프로젝트에 대한 표준 접근 방식이며, 대부분의 실무자가 별다른 설명 없이 "fine tuning"이라는 용어를 사용할 때 참조하는 방법입니다.

학습 전반에 걸쳐 보류된 예시에 대해 검증하는 것은 supervised fine tuning에 필수적입니다. 모델은 인간의 선호도 또는 작업별 정확성 기준을 반영하는 레이블이 지정된 데이터를 기반으로 업데이트되므로, 검증 세트는 학습 데이터와 동일한 품질 분포를 나타내야 합니다. 손실 함수를 조정하면(예: 인간 선호도 패턴에 맞추기 위해 특정 응답 유형에 더 높은 가중치를 부여) fine-tuning 목표와 실제 성능 요구 사항 간의 정렬을 더욱 개선할 수 있습니다.

Full Fine Tuning

Full fine tuning은 학습 프로세스 중에 모든 모델 가중치에 대한 그래디언트 업데이트를 허용하여 전체 모델을 업데이트합니다. 이는 가장 표현력이 풍부한 접근 방식입니다. 전체 모델을 수정함으로써 팀은 대상 작업에서 성능을 최대한 향상시킬 수 있습니다. Full fine tuning은 제약이 덜한 접근 방식으로는 불가능한 방식으로 모델의 동작과 언어 스타일을 영구적으로 변경할 수 있습니다.

Full fine tuning의 비용은 모델 크기에 따라 증가합니다. 대규모 모델의 경우 옵티마이저 상태, 활성화 및 모델 가중치를 동시에 저장하기에 충분한 GPU 메모리를 프로비저닝하려면 상당한 인프라 투자가 필요합니다. 학습 중에 모델 체크포인트를 자주 스냅샷하는 것이 필수적입니다. 학습이 잘못되거나 모델이 과적합되기 시작하면 체크포인트를 통해 처음부터 다시 시작하지 않고도 좋은 상태를 복구할 수 있습니다. 리소스 요구 사항에도 불구하고, 작업이 심층적인 동작 변경을 요구하고 이를 지원할 충분한 고품질 학습 데이터가 있는 경우 full fine tuning은 여전히 올바른 선택입니다.

Parameter-Efficient Fine Tuning

Parameter-efficient fine tuning(PEFT)은 계산 리소스 및 스토리지 요구 사항을 최소화하면서 대규모 사전 학습 모델을 특정 작업에 맞게 조정하도록 설계된 기술 모음입니다. PEFT 방법은 전체 모델을 업데이트하는 대신, 원본 모델의 대부분 가중치를 고정하고 학습 중에 업데이트할 특정 모델 구성 요소(일반적으로 새로 도입된 어댑터 레이어)만 노출합니다. 결과적으로 full fine tuning보다 훨씬 적은 메모리와 컴퓨팅을 요구하면서도 종종 유사한 작업 성능을 달성하는 fine-tuned 모델이 생성됩니다.

어댑터를 기본 모델과 별도로 저장하는 것은 PEFT의 주요 운영상의 이점입니다. 단일 기본 모델은 추론 시 다른 어댑터를 전환하여 여러 fine-tuned 변형을 지원할 수 있으므로, 전체 모델을 복제하지 않고도 다른 작업 또는 다른 사용자 세그먼트에 대한 다른 작업을 서비스하는 것이 실용적입니다. PEFT 방법은 고정된 원본 모델 가중치에 인코딩된 일반 언어 이해를 보존하면서 어댑터 매개변수로의 업데이트를 제한하여 치명적인 망각의 위험을 줄입니다.

보고서

기업을 위한 에이전틱 AI 플레이북

Efficient Fine Tuning PEFT: LoRA and QLoRA

Low Rank Adaptation(LoRA)은 현재 가장 널리 사용되는 PEFT 방법입니다. LoRA는 트랜스포머 아키텍처의 어텐션 레이어에 저랭크 분해 모듈을 적용하여 원본 모델 가중치를 고정한 상태에서 소수의 학습 가능한 매개변수를 도입합니다. 어댑터 행렬의 랭크가 수정하는 전체 가중치 행렬보다 훨씬 낮기 때문에, LoRA는 full fine tuning에 비해 학습 가능한 매개변수 수를 크게 줄입니다(종종 몇 자릿수 이상).

QLoRA는 가중치 양자화와 결합하여 LoRA를 확장하며, 학습 전에 기본 모델을 4비트 정밀도로 줄입니다. 이는 메모리 사용량을 극적으로 줄여 단일 GPU 또는 소규모 클러스터에서 매우 큰 모델을 fine-tuning할 수 있게 합니다. LoRA 및 QLoRA의 어댑터 크기 및 스토리지 절감 효과는 상당합니다. 이러한 방법을 사용하여 구축된 프로덕션 등급의 fine-tuned 모델은 종종 완전히 fine-tuned된 모델의 비용의 일부로 저장하고 서비스할 수 있습니다. 기본 모델 크기에 대한 어댑터 크기의 백분율을 측정하고 방법 간의 추론 비용을 비교하는 것은 방법 선택 결정의 표준 부분입니다. 프로덕션에서 LLM을 fine-tuning하려는 대부분의 팀에게는 최적의 결과를 위해 full fine tuning을 고려하기 전에 LoRA로 시작하는 것이 좋습니다.

Training Considerations and Context Window

몇 가지 하이퍼파라미터가 fine-tuning 품질에 큰 영향을 미칩니다. 배치 크기는 그래디언트 업데이트의 안정성에 영향을 미칩니다. 더 큰 배치는 그래디언트 추정치의 분산을 줄이지만 더 많은 메모리가 필요하며, 더 작은 배치는 일반화를 개선하는 유익한 노이즈를 도입할 수 있습니다. 학습률은 가장 민감한 하이퍼파라미터입니다. 낮은 학습률을 사용하면 모델 가중치에 이미 인코딩된 사전 학습된 지식의 중단을 방지할 수 있습니다. 일반적인 fine-tuning 학습률 범위는 10⁻⁵에서 10⁻⁴이며, 종종 워밍업 단계와 감소 스케줄과 함께 적용됩니다. 학습률, 배치 크기 및 학습 에포크 수의 최적 구성을 식별하려면 일반적으로 전체 학습 실행을 커밋하기 전에 후보 값에 대한 짧은 스윕을 수행해야 합니다.

컨텍스트 창 관리는 중요하지만 때때로 간과되는 학습 고려 사항입니다. 컨텍스트 창은 모델이 추론 시 처리할 수 있는 최대 입력 데이터 양을 정의합니다. 컨텍스트 창을 초과하는 학습 예시는 잘릴 수 있으며, 잘린 정보가 대상 작업에 중요하면 모델 품질이 저하될 수 있습니다. 팀은 토큰화 후 학습 예시가 컨텍스트 창에 맞는지 확인하고, 배포된 모델이 효과적인 학습 분포보다 긴 입력에 직면하는 경우를 식별하기 위해 추론 중 컨텍스트 창 사용량을 모니터링해야 합니다.

Code Generation and Specialized Use Cases

코드 생성은 가장 가치 있고 잘 정의된 fine-tuning 사용 사례 중 하나입니다. 조직별 코드베이스, 내부 API 또는 독점 라이브러리에 대해 fine-tuned된 모델은 공개 코드 리포지토리에 대해 학습된 범용 모델이 알지 못하는 패턴, 규칙 및 명명 규칙을 학습합니다. 코드 생성 fine-tuning을 위한 학습 데이터는 모델이 로컬 패턴과 함께 종단 간 코드 구조를 학습하도록 보장하기 위해 독립적인 스니펫이 아닌 완전하고 구문적으로 유효한 코드 샘플의 대표적인 예시를 포함해야 합니다.

학습 데이터의 일부로 생성된 코드에 대한 형식 테스트(올바른 들여쓰기, 독스트링 규칙 및 유형 주석 스타일을 보여주는 예시)를 포함하면, 후처리 없이 조직 표준을 충족하는 출력을 생성하는 모델의 능력이 향상됩니다. fine-tuning 데이터셋에 단위 테스트 스타일 검증 예시를 추가하면(모델에 함수와 예상 테스트 케이스가 모두 표시됨), 프로덕션에서 생성된 코드의 품질과 정확성을 더욱 향상시킬 수 있습니다. 코드 생성 외에도 유사한 원칙이 다른 전문 사용 사례에 적용됩니다. 의료 노트 생성, 법률 문서 요약 및 고객 서비스 응답 초안 작성은 모두 프로덕션 입력의 실제 분포를 반영하는 도메인별 fine-tuning 데이터셋의 이점을 얻습니다.

Evaluation, Deployment, and Monitoring for Fine Tuned Models

Fine-tuned 모델을 평가하려면 자동화된 벤치마크와 인간 검토가 모두 필요합니다. 검증 세트에 대한 자동화된 평가는 학습 중에 빠르고 재현 가능한 신호를 제공하지만, 벤치마크 점수는 인간 평가자가 안정적으로 감지하는 방식으로 실제 품질과 달라질 수 있습니다. 출력 품질이 사용자 경험에 직접적인 영향을 미치는 애플리케이션(고객 서비스, 콘텐츠 생성, 의료 지원)의 경우, 프로덕션 배포 전에 대표 샘플에 대한 인간 평가가 필수적인 최종 관문입니다.

훈련된 모델의 배포는 일반적으로 대규모 모델의 경우 모델 샤딩(model sharding) 또는 PEFT 기반 모델의 경우 어댑터 로딩(adapter loading)을 포함합니다. 후자는 배포를 단순화합니다. 기본 모델은 한 번 로드되고 어댑터는 다른 작업이나 사용자 세그먼트에 맞게 핫 스와핑(hot-swapping)됩니다. 지속적인 모니터링을 설정하면 프로덕션 사용량이 발전함에 따라 배포된 모델이 최적의 성능을 유지하도록 보장합니다. 시간이 지남에 따라 입력 분포가 변경되면 출력 품질 지표를 추적하는 것이 드리프트(drift)를 감지하는 주요 메커니즘입니다. 정의된 주기마다 최신 데이터로 재훈련하는 것이 최적의 성능을 유지하는 표준 접근 방식입니다. 주기적으로 새로 고쳐지지 않는 배포된 모델은 프로덕션 입력이 원래 훈련 분포에서 벗어남에 따라 점진적으로 성능이 저하됩니다.

RAG vs. 파인튜닝: 방법 비교

검색 증강 생성(RAG)과 LLM 파인튜닝은 특정 사용 사례에 대한 모델 성능을 개선하기 위한 두 가지 상호 보완적인 접근 방식이지만, 서로 다른 문제를 해결합니다. 검색 증강 생성은 외부 지식 소스(예: 벡터 데이터베이스 또는 문서 저장소)에서 관련 컨텍스트를 검색하여 사용자의 프롬프트와 결합한 다음, 증강된 프롬프트를 모델로 보내는 방식으로 작동합니다. 대조적으로, 파인튜닝은 모델의 파라미터를 직접 수정하여 업데이트된 가중치가 원하는 지식이나 동작을 인코딩하도록 합니다.

실질적인 차이는 사용 사례 선택에 중요합니다. RAG는 모델에 필요한 정보가 자주 변경되는 경우(예: 고객 지원 문서, 내부 지식 기반, 규제 지침)에 더 나은 선택입니다. 왜냐하면 모델을 수정하지 않고도 지식 저장소를 업데이트할 수 있기 때문입니다. 파인튜닝은 대상 작업이 모델이 새로운 언어 스타일을 학습하거나, 도메인별 규칙을 따르거나, 기본 모델이 생성하는 것과 구조적으로 다른 출력을 생성해야 할 때 더 나은 선택입니다. 파인튜닝은 RAG가 할 수 없는 방식으로 모델의 동작을 영구적으로 변경합니다.

RAG와 파인튜닝은 상호 배타적이지 않습니다. RAG 파이프라인에 통합된 파인튜닝된 모델은 도메인에 맞게 조정된 동작과 최신 외부 지식에 대한 동적 액세스를 결합합니다. Databricks Vector Search는 파인튜닝된 모델과 Mosaic AI를 통해 배포된 모델과 원활하게 통합되는 자동 업데이트 벡터 데이터베이스를 지원하므로 단일 프로덕션 시스템에서 두 가지 방법을 쉽게 결합할 수 있습니다. 예를 들어, 도메인별 검색을 위해 임베딩 모델을 파인튜닝하면 RAG 시스템에서 검색된 컨텍스트의 품질을 의미 있게 향상시킬 수 있습니다.

파인튜닝 도구, 프레임워크 및 환경

파인튜닝 생태계는 조직의 요구 사항에 따라 몇 가지 강력한 옵션을 제공합니다. Hugging Face Transformers 라이브러리와 관련 훈련 유틸리티(Trainer, PEFT, TRL)는 사용자 정의 파인튜닝 작업에 대한 지배적인 오픈 소스 선택입니다. OpenAI와 같은 제공업체의 관리형 파인튜닝 API는 훈련 프로세스에 대한 유연성을 줄이는 대신 인프라 계층을 단순화합니다. 클라우드 GPU 제공업체는 온프레미스 하드웨어를 관리하지 않고도 대규모 파인튜닝 실행에 필요한 컴퓨팅을 쉽게 프로비저닝할 수 있도록 합니다. Databricks의 Mosaic AI Training은 데이터 관리, 훈련 오케스트레이션, 모델 서빙 및 실험 추적을 통합된 거버넌스 모델 하에서 결합하여 LLM 파인튜닝을 위한 엔드투엔드 환경을 제공합니다.

Databricks에 깊이 통합된 오픈 소스 모델 수명 주기 관리 플랫폼인 MLflow는 실험 로깅, 모델 버전 관리 및 평가 프레임워크 설정을 처리하여 파인튜닝 실행을 비교하고 어떤 구성이 어떤 결과를 생성했는지 추적하는 것을 쉽게 만듭니다. 파인튜닝된 모델, 어댑터 관리 및 평가 파이프라인과의 통합 패턴은 MLflow 설명서를 참조하십시오. 파인튜닝할 위치를 선택하는 것은 궁극적으로 인프라만큼이나 데이터 거버넌스에 관한 문제입니다. 독점 데이터에 대한 엄격한 요구 사항이 있는 조직은 훈련 데이터를 외부 관리 서비스로 전송하는 대신 자체 환경 내에 유지하는 플랫폼을 선호할 것입니다.

LLM 파인튜닝 시 모범 사례 및 일반적인 함정

과적합(overfitting) 방지는 대규모 언어 모델 파인튜닝에서 가장 일반적인 기술적 과제입니다. 가장 좋은 방어책은 데이터 증강(대상 분포를 반영하는 추가 훈련 예제 생성), 훈련 가능한 파라미터 수를 제한하는 PEFT 방법, 검증 손실을 기반으로 한 조기 중단입니다. 훈련 데이터에 과적합된 모델은 프로덕션 입력에 일반화하지 못하며, 프로덕션에서 모델의 출력 품질을 주의 깊게 모니터링하지 않으면 감지하기 어려운 매우 자신감 있는 잘못된 출력을 생성하는 경우가 많습니다.

치명적인 망각(catastrophic forgetting)은 파인튜닝에 고유한 또 다른 주요 위험입니다. 모델이 좁은 작업별 데이터셋에 대해 너무 공격적으로 업데이트되면 원래 모델이 훈련 전에 처리했던 광범위한 작업에 대해 잘 수행하는 능력을 잃을 수 있습니다. 파라미터 효율적인 파인튜닝 방법이 주요 완화책입니다. 기본 모델의 대부분 가중치를 고정하고 어댑터 파라미터만 업데이트함으로써 PEFT는 작업별 기능을 습득하면서 일반 언어 이해를 보존합니다. 훈련 실행(하이퍼파라미터, 데이터셋 버전, 평가 결과)을 문서화하면 재현성을 지원하고 후속 반복에서 문제를 진단하고 수정하는 것을 더 쉽게 만듭니다.

낮은 학습률을 일관되게 사용하는 것은 사전 훈련된 지식의 중단을 방지합니다. 일반적인 파인튜닝 학습률 범위인 10⁻⁵ ~ 10⁻⁴는 많은 도메인과 모델 제품군에 걸친 축적된 경험적 증거를 반영합니다. 마찬가지로, 고품질의 다양한 예제를 포함하는 훈련 데이터셋(작은 데이터셋이라도)을 사용하는 것은 노이즈가 많거나 일관성이 없는 샘플을 포함하는 더 큰 데이터셋으로 훈련하는 것보다 일관되게 더 나은 성능을 보입니다. 이 두 가지 원칙을 함께 고려하면 실제 파인튜닝 실패의 대부분을 설명할 수 있습니다.

LLM 파인튜닝 단계별 체크리스트

다음 체크리스트는 잘 구조화된 LLM 파인튜닝 프로젝트의 주요 결정 지점과 조치를 요약합니다.

  1. 먼저, 대상 작업과 성공 지표를 정확하게 정의합니다. 모델이 무엇을 해야 하며, 잘 수행하고 있는지 어떻게 알 수 있을까요?
  2. 둘째, 샘플 작업 입력에서 사전 훈련된 모델 후보를 평가하고 대상 작업에 가장 좋은 기준선을 제공하는 모델을 선택하여 적절한 기본 모델을 선택합니다.
  3. 셋째, 파인튜닝 데이터를 훈련, 검증 및 테스트 세트로 준비하고 분할합니다. 형식 일관성을 확인하고, 레이블 지정 규칙을 문서화하고, 저품질 예제를 필터링합니다.
  4. 넷째, 사용 가능한 컴퓨팅, 데이터 볼륨 및 필요한 동작 변경 정도에 따라 파인튜닝 방법을 선택합니다. 대부분의 경우 PEFT 방법을 사용하고, 깊은 동작 변경이 필요하고 충분한 데이터가 있는 경우 전체 파인튜닝을 사용합니다.
  5. 다섯째, 보수적인 하이퍼파라미터로 초기 훈련을 실행하고, 검증 손실을 지속적으로 모니터링하고, 체크포인트를 자주 스냅샷합니다.
  6. 여섯째, 사전 정의된 성공 지표에 대해 결과를 검증하고 반복합니다. 데이터, 하이퍼파라미터 또는 방법을 조정하여 모델이 성능 임계값을 충족할 때까지 반복합니다.
  7. 검증 후, 선택한 방법에 적합한 아키텍처를 사용하여 배포하고 프로덕션 드리프트에 대한 지속적인 모니터링을 설정합니다.

파인튜닝된 배포에 대한 결론 및 다음 단계

LLM 파인튜닝은 일반 목적의 사전 훈련된 모델에서 특정 엔터프라이즈 애플리케이션의 정확성, 스타일 및 동작 요구 사항을 일관되게 충족하는 모델로 가는 실용적인 경로를 제공합니다. 권장 워크플로(가장 낮은 복잡성의 접근 방식(프롬프트 엔지니어링)으로 시작하여 필요한 경우 파인튜닝으로 진행하고, 기본 모델 품질을 보존하기 위해 파라미터 효율적인 방법을 선호)는 낭비되는 노력을 최소화하고 과적합 또는 치명적인 망각으로 인한 프로덕션 실패 위험을 줄입니다. 파인튜닝은 일반 모델 동작과 조직이 최적의 결과를 달성하기 위해 필요한 전문화된 기능 간의 격차를 해소하는 데 도움이 됩니다.

대부분의 팀에게 올바른 다음 단계는 파일럿입니다. 잘 정의되고 가치가 높은 사용 사례와 적절한 훈련 데이터를 선택하고, LoRA 또는 QLoRA와 같은 PEFT 방법을 선택하고, 보유된 테스트 세트에서 파인튜닝된 모델과 기본 모델을 비교하는 구조화된 평가를 실행합니다. 성공적인 파일럿은 자신감을 구축하고, 데이터 및 인프라 파이프라인을 검증하며, 추가 사용 사례에 복제할 수 있는 템플릿을 제공합니다. 검색 증강 생성 및 프롬프트 엔지니어링과 파인튜닝의 조합은 Databricks가 엔드투엔드로 지원하는 엔터프라이즈 AI 개발을 위한 유연하고 프로덕션 테스트를 거친 도구 키트를 제공합니다.

자주 묻는 질문

LLM 파인튜닝이란 무엇인가요?

LLM 파인튜닝은 사전 훈련된 대규모 언어 모델을 더 작고 작업별 데이터셋으로 계속 훈련하는 프로세스입니다. 처음부터 새로운 모델을 훈련하는 대신, 파인튜닝은 모델의 일부 또는 전체 가중치를 업데이트하여 특정 작업 또는 특정 도메인 내에서 모델의 성능을 향상시킵니다. 결과는 일반 언어 이해를 유지하면서 대상 작업에 대한 전문화된 기능을 습득한 파인튜닝된 모델입니다.

파인튜닝과 검색 증강 생성(RAG)의 차이점은 무엇인가요?

파인튜닝은 모델의 파라미터를 직접 수정하는 반면, 검색 증강 생성(RAG)은 추론 시 외부 지식 소스에서 검색된 컨텍스트로 모델의 프롬프트를 보강합니다. 파인튜닝은 지속적인 행동 변화가 필요한 작업에 더 적합하며, RAG는 자주 업데이트되거나 독점적인 정보에 액세스해야 하는 작업에 더 적합합니다. 두 접근 방식은 상호 보완적이며 종종 프로덕션 시스템에서 결합됩니다.

파라미터 효율적 파인튜닝(PEFT)이란 무엇인가요?

파라미터 효율적 파인튜닝(PEFT)은 모든 모델 가중치를 업데이트하는 대신, 파라미터의 작은 부분집합, 일반적으로 특정 모델 구성 요소를 대상으로 하는 새로 도입된 어댑터 레이어만 업데이트하여 대규모 언어 모델을 특정 작업에 맞게 조정하는 방법 세트를 말합니다. LoRA 및 QLoRA와 같은 PEFT 방법은 많은 작업에서 전체 파인튜닝과 유사한 성능을 달성하면서 파인튜닝의 컴퓨팅 및 메모리 요구 사항을 크게 줄입니다.

파인튜닝 시 치명적 망각이란 무엇인가요?

치명적 망각은 제한된 파인튜닝 데이터셋에서 너무 공격적으로 업데이트된 모델이 원래 모델이 훈련 전에 처리했던 광범위한 작업에서 잘 수행하는 능력을 잃을 때 발생합니다. 파라미터 효율적 파인튜닝 방법은 기본 모델의 대부분 가중치를 변경하지 않고 어댑터 파라미터만 업데이트하기 때문에 주요 완화책입니다. 낮은 학습률과 조기 중단을 사용하는 것도 이 위험을 줄입니다.

전체 파인튜닝 대 PEFT는 언제 사용해야 하나요?

전체 파인튜닝은 대상 작업이 어댑터 파라미터만 업데이트하여 달성할 수 없는 깊은 행동 변화를 요구하고, 모든 모델 가중치에 대한 업데이트를 지원할 만큼 충분히 고품질의 훈련 데이터가 있을 때 적합합니다. LoRA와 같은 PEFT 방법은 대부분의 파인튜닝 프로젝트에 더 나은 기본 선택입니다. 컴퓨팅 비용의 일부만으로 대부분의 작업에서 유사한 성능을 달성하며, 전체 파인튜닝보다 일반 언어 이해를 더 안정적으로 보존합니다. PEFT 방법이 불충분하다는 것이 입증된 경우에만 전체 파인튜닝으로 전환하는 것은 훈련 비용을 관리하면서 최적의 성능을 유지하기 위한 권장 접근 방식입니다.

(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)

최신 게시물을 이메일로 받아보세요

블로그를 구독하고 최신 게시물을 이메일로 받아보세요.