RAFT: RAG 기법을 활용한 LLM 검색 증강형 미세조정(RAG + FineTuning)

:pytorch:PyTorchKR:kr:

RAFT(Retrieval Augmented FineTuning, 검색-증강 미세조정/파인튜닝)은 LLM(대규모 언어 모델)이 특정 도메인의 지식을 보다 효과적으로 활용할 수 있도록 하는 새로운 학습 레시피를 소개합니다. 이 연구는 LLM을 법률이나 의료와 같은 특정 분야의 전문적인 지식들을 이해하고 상호 작용하도록 미세조정(FineTuning)할 수 있는 좋은 시작점이 될 것 같습니다. :pray:

RAFT: 언어 모델에 도메인 특화 RAG 적용하기 (RAFT: Adapting Language Model to Domain Specific RAG)

연구 개요

Retrieval Augmented FineTuning(RAFT, 검색-증강 파인튜닝)는 LLM이 시의적절하거나 특화된 정보를 효율적이고 효과적으로 추가하는 최적화 방안에 초점을 맞춘 연구입니다. 기존의 단순한 파인 튜닝이나 프롬프트 기반 방법과는 달리, RAFT는 더 정교한 전략을 제안합니다. 예를 들어, RAFT는 모델이 검색된 문서 집합에서 질문에 도움이 되지 않는 문서를 무시하도록 학습시킵니다. 이를 통해 모델의 사실 정확성 뿐만 아니라 관련 소스 자료의 논리와 내용을 따르는 응답을 장려함으로써 모델의 추론 능력을 향상시킬 수 있게 됩니다.

RAG(검색-증강 생성)는 언어 모델의 생성 능력과 정보 검색 능력을 결합한 기술로, 언어 모델이 사용자 질의에 대해 응답하기 전 외부 문서나 데이터를 검색한 결과를 활용하여 더 정확한 답변을 생성할 수 있도록 하는 기법입니다. (참고: 대규모 언어 모델을 위한 검색-증강 생성(RAG) 기술 현황 - 1/2편 ) RAFT는 이러한 RAG 기법을 파인튜닝에 적용한 것으로, 특정 도메인에 특화된 LLM을 파인튜닝할 때 도움이 되는 기법입니다.


RAFT와 기존의 파인튜닝(FT), RAG를 일종의 Closed-Book과 Open-Book 시험으로 비유하며 설명할 수 있습니다.

미세조정(FT, Fine-Tuning) - Closed-Book

미세 조정은 기존에 학습된 모델을 특정 작업이나 도메인에 맞게 추가적으로 학습시키는 과정입니다. 이를 "Closed-Book" 시험에 비유할 수 있습니다. Closed-Book 시험에서는 학생들이 시험 도중에 책이나 외부 자료를 참조할 수 없으며, 모든 답변은 학생이 머릿속에 저장해 둔 지식을 바탕으로 해야 합니다. 마찬가지로, 미세 조정을 거친 모델은 사전 학습 과정에서 습득한 지식을 바탕으로, 추가적인 학습 없이 새로운 작업에 대한 답변을 생성해야 합니다. 여기서는 외부 정보에 실시간으로 접근하는 것이 아니라, 모델이 이미 학습한 정보를 활용하는 것입니다.

RAG (Retrieval-Augmented Generation) - Open-Book with Manual Search

RAG는 주어진 질문에 대해 외부 데이터 소스에서 정보를 검색한 후, 그 정보를 바탕으로 답변을 생성하는 과정입니다. 이는 "Open-Book with Manual Search" 시험에 비유될 수 있습니다. 이런 시험에서 학생들은 참고자료나 책을 사용할 수 있지만, 필요한 정보를 찾기 위해 직접 책을 뒤적여야 합니다. RAG에서 모델은 질문에 대한 답변을 생성하기 위해 먼저 관련 정보를 검색 저장소에서 찾아야 하며, 이후 검색된 정보를 기반으로 답변을 합성합니다. 여기서 중요한 것은 모델이 적절한 정보를 검색하고 이를 활용하여 새로운 답변을 생성하는 능력입니다.

RAFT (Retrieval Augmented FineTuning) - Open-Book with Intelligent Assistant

RAFT는 RAG를 한 단계 더 발전시킨 방법으로, 모델이 더 효율적으로 외부 정보를 검색하고, 그 정보를 바탕으로 더 정확한 답변을 생성하도록 합니다. 이는 "Open-Book with Intelligent Assistant" 시험에 비유할 수 있습니다. 이 시나리오에서 학생들은 시험 동안 책과 외부 자료를 자유롭게 사용할 수 있을 뿐만 아니라, 정보 검색을 돕는 지능형 보조 도구(예: 스마트 검색 시스템)도 사용할 수 있습니다. RAFT에서 모델은 외부 정보를 검색할 때, 단순히 관련 정보를 찾는 것을 넘어서, 주어진 질문에 가장 관련성이 높은 정보를 식별하고, 그 정보를 바탕으로 더 정교한 답변을 생성합니다. 여기서 모델은 외부 정보를 더 효과적으로 활용하여, 질문에 대한 더 깊이 있고 정확한 답변을 제공할 수 있는 능력을 갖춥니다.

RAFT 기법 소개

RAFT 기법의 전체적인 설명

RAFT는 LLM이 도메인 특화 질문을 더 잘 처리할 수 있도록 하는 전략적인 검색 증강 학습의 적응을 소개합니다. 이 때, 두 가지 주요한 접근 방식을 활용합니다:

선택적 정보 검색

먼저, RAFT는 모델을 질문에 관련된 문서만을 집중적으로 살펴보고, 나머지 문서들은 '무시'하도록 가르치는 데 중점을 둡니다. 즉, 대상 문서들을 식별하고, 관련 없는 문서를 무시함으로써 모델의 주의와 추론이 가장 관련성 높은 데이터에 엄격하게 맞춰지도록 하여, 관련도가 높은 문서와 관련이 없는 문서를 구분하지 않는 방법보다 큰 발전을 이루었습니다.

RAFT가 학습 과정에서 데이터를 활용할 때는 다음과 같이 전체 데이터의 일부(P%)와 나머지((1 − P)%)를 나누는 방식을 사용합니다:

일부(P%) 데이터: 전체 데이터의 일부(P%)에 대해서는, 질문(Q)과 가장 관련성이 높은 문서(D*) 뿐만 아니라, 다른 관련 문서(D1, D2, ..., Dk)도 포함하여 학습 데이터로 사용합니다. 그리고 이를 바탕으로 정답(A*)을 예측하는 것이 목표입니다. 이 접근법은 모델이 가장 관련성 높은 정보뿐만 아니라, 추가적인 문서에서 정보를 추출하고 종합하는 능력을 학습할 수 있게 합니다.

나머지((1 − P)%) 데이터: 나머지 ((1 − P)%)의 데이터에 대해서는, 첫 번째 문서(D1)를 포함한 모든 관련 문서(D1, D2, ..., Dk)와 질문(Q)을 사용하여 학습을 진행합니다. 이 때, 질문에 대답하기 위해 필요한 가장 관련성이 높은 문서 D*는 특별히 강조되지 않으며, 모든 문서가 동등하게 처리됩니다. 이 방식은 모델이 다양한 정보 소스로부터 학습하고, 단 하나의 문서에만 의존하지 않는 균형 잡힌 학습을 촉진합니다.

이러한 내용을 수식으로표현하면 다음과 같습니다:

• P% of data: Q + D∗ + D2 + . . . + Dk → A∗
• (1 − P)% of data: Q + D1 + D2 + . . . + Dk → A∗

이러한 접근 방식은 모델이 문서의 관련성을 판단하고, 다양한 정보 소스로부터 중요한 정보를 추출하여 학습하는 능력을 개발하는 데 도움을 줍니다. RAFT와 같은 시스템에서는 이러한 방식으로 학습 데이터를 다루어 모델이 보다 정확하고 심층적인 답변을 생성할 수 있도록 합니다.

관련 정보 인용

단순히 관련 문서를 식별하는 것을 넘어, RAFT는 모델이 이 문서들 중에서 질문에 답하는 데 도움이 되는 정확한 문장을 인용하도록 학습시킵니다. 이렇게 관련도가 높은 문서들로부터 특정 구절을 정확하게 인용할 수 있도록 하여, 응답의 사실성(정확성)을 향상시키고, 대상 문서에 대한 더 깊은 이해를 바탕으로 논리적인 답변을 구성할 수 있게 됩니다.

예를 들어, Gorilla APIBench 데이터셋과 같이 이미 답변에 추론이 포함되어 있는 데이터를 활용합니다. 이러한 상세한 추론 답변은 원본 맥락에서의 인용문을 ###begin_quote######end_quote###와 같은 키워드에 포함하여 인용문을 바탕으로 답변(결론)에 어떻게 도달했는지를 포함합니다. 이를 통해 모델은 단순히 정보를 반복하는 것이 아니라, 인용문과 관련한 지식을 활용하여 논리적(Chain-of-Thoughts)으로 결론에 이르는 과정을 학습하게 됩니다.

정리하면, RAFT 학습 시에 인용문을 사용함으로써 모델은 답변의 근거를 명확하게 밝히고, 해당 답변이 어떻게 도출되었는지를 학습할 수 있습니다. 이는 모델의 답변이 단순한 추측이나 일반적인 지식에만 기반한 것이 아니라, 구체적인 데이터나 사실에 근거한다는 것을 확인시켜 줍니다. 또한, 이 과정에서 사고의 연쇄(Chain-of-Thoughts) 접근 방식을 사용하면서 모델이 복잡한 질문에 대해 더 깊이 있는 답변을 생성할 수 있도록 돕습니다.

위 그림은 LLM에게 주어진 질문, 문맥, 그리고 답변을 기반으로 논리적인 추론을 제공하도록 요청합니다. 여기서 모델은 질문("The Oberoi family is part of a hotel company that has a head office in what city?")에 대한 문맥 정보를 분석하여, 두 개의 인용문을 활용해 답변을 도출합니다.

  1. 첫 번째 인용문은 Oberoi 가족이 호텔 사업에 관련된 인도 가문이며, Oberoi Group과 관련이 있음을 밝힙니다.
  2. 두 번째 인용문은 Oberoi Group이 델리에 본사를 둔 호텔 회사임을 명시합니다.

이를 통해 모델은 논리적인 추론 과정을 거쳐 "델리(Delhi)"가 올바른 답변임을 결론지을 수 있습니다. 이 과정은 ##Reason: {reason} ##Answer: {answer} 형식을 사용하여 구조화됩니다.

이러한 접근 방식은 LLM이 자신의 추론 과정과 답변을 평가하고, 오류를 식별하여 스스로를 개선할 수 있는 능력을 갖추도록 합니다. 또한, 정확한 문맥 정보를 바탕으로 논리적 추론을 수행함으로써, 모델의 추론 능력을 향상시킵니다.

결과적으로, 모델이 단순히 정답을 맞히는 것을 넘어서, 왜 그 답변이 올바른지를 이해하고 설명할 수 있게 함으로써, 모델의 투명성과 신뢰성을 높이는 데 기여합니다. RAFT에서 ‘GenerateExplanation’ 단계는 모델이 더 정확하고 신뢰할 수 있는 답변을 생성하는 데 중요한 역할을 하며, 이는 최종 사용자에게 더 큰 가치를 제공합니다.

결과 정리

RAFT는 PubMed, HotpotQA, 그리고 Gorilla 데이터셋을 포함한 다양한 데이터셋에서 테스트되었으며, 도메인 특화 설정에서 LLM의 성능을 일관되게 개선하는 것으로 나타났습니다. 이 방법은 전통적인 파인 튜닝 및 RAG 접근 방식을 능가하는 성능을 보여주었으며, 응답의 사실 정확성뿐만 아니라 논리적이고 일관된 응답 생성 능력에서도 나아짐을 보였습니다.

RAFT는 특히 도메인 특화 지식을 통합하고 활용하는 새로운 방법론의 필요성을 강조합니다. 이는 정보가 빠르게 변화하는 오늘날의 환경에서 특히 중요한 점입니다. 예를 들어, 최신 의학 연구 결과나 급변하는 기술 트렌드에 대한 정확한 정보를 제공하는 능력은 많은 분야에서 LLM의 활용 가치를 크게 향상시킬 수 있습니다.

더 읽어보기

RAFT 논문

RAFT에 대한 소개 글

https://gorilla.cs.berkeley.edu/blogs/9_raft.html

RAFT에 대한 Microsoft의 블로그 글

https://techcommunity.microsoft.com/t5/ai-ai-platform-blog/raft-a-new-way-to-teach-llms

Gorilla에 포함된 RAFT 코드




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있으니 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:kr:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:gift: 아래:arrow_lower_right:쪽에 좋아요:heart:를 눌러주시면 힘이 됩니다~ :star_struck: