본문 바로가기

AI

Fine-tuning For RAG

728x90

RAFT: Adapting Language Model to Domain Specific RAG

  • UC Berkeley 논문
  • 사용자의 질문과 연관된 문서와 정답과 연관이 없는 문서를 섞어서 검색 결과로 가정하고 데이터셋을 구축
  • 이 때 연관이 없는 문서들을 negative documents라고 하며 학습에 도움을 주게 된다.
  • 이는 Fine-tuning 시 답변과 관련 없는 정보를 식별하는 능력을 향상시키기 때문이다.

 

  • 파인 튜닝 전, 후 LLAMA2의 RAG 성능 차이는 매우 크게 나는 것을 볼 수 있음
  • LLAMA2-7B를 파인 튜닝한 것이 GPT-3.5 에 RAG 를 한 것보다 성능이 더 좋음

 

 

  • 원문을 인용하여 답변하게 하면 성능 Up
  • 원문을 인용해야 하므로 할루시네이션 억제
  • 일종의 Chain of Thought 프롬프트 엔지니어링
  • Fine-tuning 시에도 원문 인용을 강제하면 좋다.

 


RAG-optimized model

 

 Cohere 의 RAG-optimized model

  • 이미 RAG에 대해서 학습이 되어진 채로 공개된 RAG 특화 모델들이 존재함
  • 해당 모델들이 사용한 RAG 프롬프트를 참고하면, RAG 를 Fine-tuning 할 때 어떤 프롬프트를 사용하면 될 지 힌ㅌ를 얻을 수 있다.
  • 예로 Cohere (RAG를 주력 기능으로 삼고 있음) 에서 나온 Command R, Command R+ 가 이에 해당된다.

 

Cohere의 RAG Prompt

다음은 Cohere 에서 사용하고 있는 RAG Prompt 이다.

 

다음은 Cohere 에서 사용하고 있는 RAG Prompt 이다

 

Orion-14B-RAG

  • Orion 의 경우, 다양한 태스크에 맞춰서 Fine-tuning 된 모델들을 공개
  • 이 중 RAG에 특화된 모델이 존재함

 

  • 다음은 Orion에서 사용하고 있는 RAG Prompt 이다.

 

답변 예시

  • 답변 작성 시 출처를 반드시 명기하도록 하여 답변 성능을 높이고 신뢰성을 높인다.

 

GPT-4의 웹 검색 답변 예시

  • 답변 작성 시 출처를 반드시 명기하도록 하여 답변 성능을 높이고 신뢰성을 높인다.

 

RAG를 위한 파인 튜닝 가이드: 출처 or 인용

 

  • 방법1: Orion Prompt 방식과 같이 출처를 뒤에 명시적으로 남기도록 더라도 실제로 RAG 성능이 오르는 것을 확인할 수 있음. 또한, 이 방식은 평가셋이 존재할 때 실제 정답 문서를 인용했는지를 확인해서 RAG의 정량적인 평가를 할 수 있다는 장점 또한 존재함.

 

  • 방법2: RAFT 논문 방식의 **quote** 인용이나 Cohere 방식의 <co:문서 번호></co:문서 번호> 방식을 사용하는 것 또한 뛰어난 성능을 얻을 수 있음. 이는 모델이 인용을 하도록 강제하므로서
    억지로 지어내는 이야기를 애초에 답변에 쓸 수 없도록 강제하는 효과가 있음.
    Cohere 방식과 같이 인용 시 문서 번호를 기재한다면 방법1과 마찬가지로 평가셋이 존재할 때 정답 문서를 인용했는지를 확인해서 RAG의 정량적인 평가를 할 수 있다는 장점 또한 존재함.

 

RAG 를 위한 파인 튜닝 데이터셋 제작 방법

  • 10B 이내의 모델은 매우 민감. RAG 파인튜닝을 한다면 다음과 같은 사항들을 반드시 명심해야 함 (진짜진짜 매우매우 중요)
  • GPT-4 API와 같은 강력한 모델 API로 방법 1 또는 방법 2 등 원하는 방향으로 답변을 작성하도록 하고 레이블로 사용
  • 질문과 상관없는 문서가 검색되었을 때를 가정하여 Negative Sample 을 반드시 잘 구축할 것.
    • Negative Sample 은 RAG로 입문한 분들에게 생소할지 몰라도 NLP 엔지니어분들에게는 매우 친숙한 개념이다. 따라서 검색하면 어떤 의미인지 많이 나오니 공부해야함
    • 일반적으로 임베딩 모델이나 BM-25 를 사용하여 질문에 대해서 실제 검색 문서를 검색하여 구축하는 경우가 많다
    • 참고하면 좋은 논문 : https://arxiv.org/abs/2407.15831
 

NV-Retriever: Improving text embedding models with effective hard-negative mining

Text embedding models have been popular for information retrieval applications such as semantic search and Question-Answering systems based on Retrieval-Augmented Generation (RAG). Those models are typically Transformer models that are fine-tuned with cont

arxiv.org

 

아래의 모든 유형의 데이터가 반드시 학습 데이터에 포함되어져 있어야 함.

  • 단답을 유도하는 구체적이고 지엽적인 질문 ex) 12월 12일에 세미나가 열린 장소의 이름은 무엇인가?
  • 단답이 아닐 수 있는 넓은 의미의 질문 ex) 세미나의 주제는?
  • 명사구 형태로 끝나는 질문 (영어에도 대응할 것이라면 영어 질문 or 영어 검색 결과) ex) 12월 12일에 세미나가 열린 장소.
  • 검색 결과가 1개일 때, 2개일 때 ... n개일 때
  • 검색 결과에 질문에 대한 답이 전혀 없을 때
  • 답변 시 검색 결과 중 1개의 문서만 인용하는 경우
  • 답변 시 검색 결과 중 다수의 문서를 인용하는 경우

RAG를 위한 파인 튜닝 데이터셋

 

iamjoon/klue-mrc-ko-rag-dataset · Datasets at Hugging Face

[ "블리자드 엔터테인먼트(Blizzard Entertainment, Inc.)의 인기 디지털 카드 게임 하스스톤(Hearthstone®) e스포츠를 대표하는 세계 최고의 선수들 여덟 명이 챔피언의 전당에 이름을 올리기 위해 벌이는

huggingface.co

 

데이터 만드는 예시 (GPT-4와 프롬프트 엔지니어링)

  • 단, 한 번의 호출로 GPT-4 가 데이터 5개를 동시에 만들고 스스로 검증하고 통과까지 시키는 예시이다.

 

 

728x90