[κ°•μ˜λ…ΈνŠΈ] RAG From Scratch : RAG for long context LLMs

Posted by Euisuk's Dev Log on September 14, 2024

[κ°•μ˜λ…ΈνŠΈ] RAG From Scratch : RAG for long context LLMs

원본 κ²Œμ‹œκΈ€: https://velog.io/@euisuk-chung/RAGλŠ”-μ •λ§λ‘œ-λλ‚¬μ„κΉŒ

RAG for long context LLMs

Introduction

졜근 LLM(Long Large Models)의 κΈ‰κ²©ν•œ λ°œμ „μœΌλ‘œ 인해 κ±°λŒ€ν•œ μ–‘μ˜ 데이터λ₯Ό ν•œ λ²ˆμ— μ²˜λ¦¬ν•  수 μžˆλŠ” κ°€λŠ₯성이 열리고 μžˆμŠ΅λ‹ˆλ‹€. 특히, 100만 토큰 μ΄μƒμ˜ 정보λ₯Ό ν•œ λ²ˆμ— μ²˜λ¦¬ν•  수 μžˆλŠ” λͺ¨λΈλ“€μ΄ λ“±μž₯ν•˜λ©΄μ„œ, κ³Όμ—° RAG(Retrieval-Augmented Generation) μ‹œμŠ€ν…œμ΄ μ—¬μ „νžˆ ν•„μš”ν•œμ§€μ— λŒ€ν•œ 의문이 컀지고 μžˆμŠ΅λ‹ˆλ‹€.

ν•˜μ§€λ§Œ, λ‹¨μˆœνžˆ 데이터λ₯Ό λͺ¨λΈμ˜ context window에 λͺ¨λ‘ λ„£λŠ” 것이 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμ„κΉŒμš”? 이 κΈ€μ—μ„œλŠ” LangChain의 Lanceκ°€ μ„€λͺ…ν•œ RAG의 ν˜„μž¬ μƒνƒœμ™€ μž₯λ¬Έ LLM이 κ°€μ Έμ˜€λŠ” μƒˆλ‘œμš΄ 도전과 κΈ°νšŒμ— λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. (ν•΄λ‹Ή 글은 μ•„λž˜ Youtube μ˜μƒ 자료λ₯Ό 곡뢀 후에 μ •λ¦¬ν•˜μ˜€μŠ΅λ‹ˆλ‹€.)

Background: RAGλž€ 무엇인가?

RAGλŠ” κ°„λ‹¨νžˆ 말해, λŒ€ν˜• μ–Έμ–΄ λͺ¨λΈ(LLM)이 μ™ΈλΆ€ λ°μ΄ν„°λ² μ΄μŠ€λ‚˜ λ¬Έμ„œμ—μ„œ ν•„μš”ν•œ 정보λ₯Ό 검색(Retrieval)ν•˜κ³  이λ₯Ό λ°”νƒ•μœΌλ‘œ 응닡을 생성(Generation)ν•˜λŠ” κ³Όμ •μž…λ‹ˆλ‹€.

RAGλŠ” λ‹€μŒκ³Ό 같은 흐름을 λ”°λ¦…λ‹ˆλ‹€:

  1. λ¬Έμ„œ 인덱싱: 정보λ₯Ό κ°€μ§„ λ¬Έμ„œλ₯Ό 미리 μΈλ±μ‹±ν•©λ‹ˆλ‹€.

  2. λ¬Έμ„œ 검색: μ§ˆλ¬Έμ— λ§žλŠ” λ¬Έμ„œλ₯Ό κ²€μƒ‰ν•©λ‹ˆλ‹€. μ΄λ•Œ 보톡 semantic similarityλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

  3. LLM ν™œμš©: κ²€μƒ‰λœ λ¬Έμ„œλ₯Ό 기반으둜 LLM이 응닡을 μƒμ„±ν•©λ‹ˆλ‹€.

μž₯λ¬Έ LLM은 RAGλ₯Ό λŒ€μ²΄ν•  수 μžˆμ„κΉŒ?

μ˜€λŠ˜λ‚  Claude 3λ‚˜ GPT-4 같은 μ΅œμ‹  λͺ¨λΈλ“€μ€ μ΅œλŒ€ 100만 토큰 μ΄μƒμ˜ 데이터λ₯Ό ν•œ λ²ˆμ— μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 말은 수백 νŽ˜μ΄μ§€μ˜ λ¬Έμ„œλ₯Ό ν•œκΊΌλ²ˆμ— λͺ¨λΈμ— 넣을 수 μžˆλ‹€λŠ” λœ»μž…λ‹ˆλ‹€. κ·Έλ ‡λ‹€λ©΄ μ΄λ ‡κ²Œ λ§Žμ€ 데이터λ₯Ό ν•œ λ²ˆμ— μ²˜λ¦¬ν•  수 μžˆλŠ” λͺ¨λΈμ΄ RAG μ‹œμŠ€ν…œμ„ λŒ€μ²΄ν•  수 μžˆμ„κΉŒμš”?

LanceλŠ” 이 μ§ˆλ¬Έμ— λ‹΅ν•˜κΈ° μœ„ν•΄ λͺ‡ κ°€μ§€ μ‹€ν—˜μ„ μ„€κ³„ν–ˆμŠ΅λ‹ˆλ‹€.

μ‹€ν—˜: Needle in a Haystack ν…ŒμŠ€νŠΈ

Needle in a Haystack(건초 λ”λ―Έμ—μ„œ λ°”λŠ˜ μ°ΎκΈ°) ν…ŒμŠ€νŠΈλŠ” λŒ€κ·œλͺ¨ λ¬Έλ§₯μ—μ„œ νŠΉμ • 정보λ₯Ό μ–Όλ§ˆλ‚˜ 잘 μ°Ύμ•„λ‚Ό 수 μžˆλŠ”μ§€λ₯Ό μΈ‘μ •ν•˜λŠ” μ‹€ν—˜μž…λ‹ˆλ‹€. μ‹€ν—˜μ˜ λͺ©ν‘œλŠ” μž₯λ¬Έ LLM이 μ—¬λŸ¬ 정보 쑰각(Needles)을 μ–Όλ§ˆλ‚˜ 잘 κ²€μƒ‰ν•˜κ³  μΆ”λ‘ ν•  수 μžˆλŠ”μ§€λ₯Ό μ•Œμ•„λ³΄λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€.

LanceλŠ” 이 ν…ŒμŠ€νŠΈλ₯Ό μœ„ν•΄ β€œν”Όμž μž¬λ£Œβ€λ₯Ό μ΄μš©ν–ˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, β€œλ¬΄ν™”κ³Ό(figs), ν”„λ‘œμŠˆν† (prosciutto), μ—Όμ†Œ 치즈(goat cheese)” 같은 ν”Όμž 재료λ₯Ό λ¬Έλ§₯의 μ—¬λŸ¬ μœ„μΉ˜μ— 숨겨 두고, λͺ¨λΈμ—κ²Œ β€œμ™„λ²½ν•œ ν”Όμžμ˜ λΉ„λ°€ μž¬λ£ŒλŠ” λ¬΄μ—‡μΈκ°€μš”?”라고 μ§ˆλ¬Έν•œ ν›„, λͺ¨λΈμ΄ κ·Έ 재료λ₯Ό λͺ¨λ‘ 찾을 수 μžˆλŠ”μ§€ ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

κ²°κ³Ό: μž₯λ¬Έ LLM의 ν•œκ³„

  1. 정보가 λ§Žμ„μˆ˜λ‘ μ„±λŠ₯ μ €ν•˜: λ¬Έλ§₯에 μ‚½μž…λœ μ •λ³΄μ˜ μˆ˜κ°€ λ§Žμ•„μ§ˆμˆ˜λ‘, λͺ¨λΈμ΄ λͺ¨λ“  정보λ₯Ό μ •ν™•νžˆ 검색해 λ‚΄λŠ” λΉ„μœ¨μ΄ λ–¨μ–΄μ‘ŒμŠ΅λ‹ˆλ‹€.
  2. μΆ”λ‘ μ˜ 어렀움: λ‹¨μˆœνžˆ 정보λ₯Ό κ²€μƒ‰ν•˜λŠ” 것보닀, κ·Έ 정보λ₯Ό 기반으둜 좔둠을 ν•΄μ•Ό ν•  λ•Œ μ„±λŠ₯이 더 λ–¨μ–΄μ‘ŒμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 재료의 첫 κΈ€μžλ₯Ό μΆ”λ‘ ν•˜λŠ” μž‘μ—…μ—μ„œ μ„±λŠ₯이 더 λ‚˜λΉ μ‘ŒμŠ΅λ‹ˆλ‹€.
  3. Recency Bias(μ΅œκ·Όμ„± 편ν–₯): λ¬Έμ„œμ˜ μ•žλΆ€λΆ„μ— μœ„μΉ˜ν•œ μ •λ³΄λŠ” λ‚˜μ€‘μ— μœ„μΉ˜ν•œ 정보보닀 κ²€μƒ‰λ˜κΈ° μ–΄λ €μ› μŠ΅λ‹ˆλ‹€. μ΄λŠ” λͺ¨λΈμ΄ 졜근의 정보λ₯Ό 더 μ€‘μš”ν•˜κ²Œ μ—¬κΈ°λŠ” Recency Bias λ•Œλ¬ΈμΌ κ°€λŠ₯성이 ν½λ‹ˆλ‹€.

    • μ°Έκ³  λ…Όλ¬Έ : https://arxiv.org/pdf/2310.01427
    • Recency Bias (μ΅œμ‹ μ„± 편ν–₯ 문제): κΈ΄ λ¬Έλ§₯μ—μ„œ μ–Έμ–΄ λͺ¨λΈμ΄ κ°€μž₯ 졜근의 정보에 더 λ§Žμ€ 주의λ₯Ό 기울이고, μ•žμ„œ λ“±μž₯ν•œ μ€‘μš”ν•œ μ •λ³΄λŠ” μƒλŒ€μ μœΌλ‘œ 덜 μ£Όλͺ©ν•˜λŠ” ν˜„μƒμ΄ λ°œμƒν•©λ‹ˆλ‹€. μ΄λŠ” λͺ¨λΈμ΄ λ¬Έλ§₯ λ‚΄μ˜ 정보λ₯Ό μΆ©λΆ„νžˆ ν™œμš©ν•˜μ§€ λͺ»ν•˜λŠ” 원인이 λ©λ‹ˆλ‹€.
    • Attention Sorting 기법: 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ β€œattention sortingβ€μ΄λΌλŠ” 방법을 λ„μž…ν•©λ‹ˆλ‹€. λ¨Όμ € ν•œ λ‹¨κ³„μ˜ 디코딩을 μˆ˜ν–‰ν•œ ν›„, λ¬Έμ„œλ“€μ΄ 받은 주의(attention) 정도에 따라 λ¬Έμ„œλ₯Ό μž¬μ •λ ¬ν•©λ‹ˆλ‹€. 주의λ₯Ό 많이 받은 λ¬Έμ„œμΌμˆ˜λ‘ λ’€μͺ½μ— 배치되고, 이λ₯Ό λ°˜λ³΅ν•˜μ—¬ μƒˆλ‘œμš΄ μˆœμ„œλŒ€λ‘œ 닡을 μƒμ„±ν•©λ‹ˆλ‹€.

ν•œκ³„μ : λ‹¨μˆœν•œ Context Stuffing의 문제

μ‹€ν—˜ κ²°κ³Ό, 아무리 κΈ΄ λ¬Έλ§₯을 μ²˜λ¦¬ν•  수 μžˆλŠ” LLM이라도 λͺ¨λ“  정보λ₯Ό μ™„λ²½ν•˜κ²Œ 검색해 λ‚΄μ§€λŠ” λͺ»ν•œλ‹€λŠ” 것이 λ“œλŸ¬λ‚¬μŠ΅λ‹ˆλ‹€.

특히 λ¬Έμ„œμ˜ μ•žλΆ€λΆ„μ— μžˆλŠ” μ •λ³΄λŠ” μžŠν˜€μ§€λŠ” κ²½ν–₯이 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ λ‹¨μˆœνžˆ 더 λ§Žμ€ 정보λ₯Ό LLM의 context window에 λ„£λŠ” 것이 λŠ₯사가 μ•„λ‹˜μ΄ λͺ…λ°±ν•΄μ‘ŒμŠ΅λ‹ˆλ‹€. λ˜ν•œ, μ΄λŸ¬ν•œ 방법은 토큰 λΉ„μš©μ΄ 맀우 λ†’μ•„μ§ˆ 수 있으며, λ³΄μ•ˆκ³Ό 인증 λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.


RAG의 미래: λ³€ν™”ν•˜λŠ” νŒ¨λŸ¬λ‹€μž„

μ•žμœΌλ‘œ λ”μš± 더 κΈ΄ μ»¨ν…μŠ€νŠΈλ₯Ό 넣어쀄 수 μžˆλŠ” λͺ¨λΈλ“€μ΄ λ‚˜μ˜€κ²Œ λ μˆ˜λ„ μžˆλŠ”λ°, κ·Έλ ‡λ‹€λ©΄ RAGλŠ” 이제 λλ‚œ κ²ƒμΌκΉŒμš”? λ°œν‘œμž LanceλŠ” κ·Έλ ‡μ§€ μ•Šλ‹€κ³  μ£Όμž₯ν•©λ‹ˆλ‹€. RAGλŠ” λ‹¨μˆœνžˆ λ³€ν•  뿐, 사라지지 μ•Šμ„ 것이라고 μ΄μ•ΌκΈ°ν•©λ‹ˆλ‹€.

λ‹€μŒμ€ long context LLMs μ‹œλŒ€μ—μ„œ RAGκ°€ μ–΄λ–»κ²Œ λ³€ν™”ν•  수 μžˆμ„μ§€μ— λŒ€ν•œ λͺ‡ κ°€μ§€ 연ꡬ듀을 μ†Œκ°œν•©λ‹ˆλ‹€. (이전 챕터듀과 쑰금 κ²ΉμΉ˜λŠ” λ‚΄μš©λ“€μ΄ 쑰금 μžˆμŠ΅λ‹ˆλ‹€.)

  1. Document-Centric RAG

ν˜„μž¬μ˜ RAG μ‹œμŠ€ν…œμ€ λ¬Έμ„œλ₯Ό μž‘μ€ λ©μ–΄λ¦¬λ‘œ μͺΌκ°œμ„œ μΈλ±μ‹±ν•˜κ³ , κ·Έ 덩어리 쀑 μ ν•©ν•œ 것을 κ²€μƒ‰ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ μž₯λ¬Έ LLM μ‹œλŒ€μ—μ„œλŠ” λ¬Έμ„œ 자체λ₯Ό μ „μ²΄λ‘œ κ²€μƒ‰ν•˜λŠ” 방법이 더 적합할 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” μͺΌκ°œλŠ” 방식에 λŒ€ν•œ λΆˆν•„μš”ν•œ λ³΅μž‘μ„±μ„ 쀄이고, 더 μžμ—°μŠ€λŸ¬μš΄ λ¬Έμ„œ 검색을 κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€.

  1. Multi-Representation Indexing

λ¬Έμ„œλ₯Ό μͺΌκ°œμ§€ μ•Šκ³  μš”μ•½μ„ 톡해 λ¬Έμ„œμ˜ λŒ€ν‘œμ μΈ ν‘œν˜„μ„ μΈλ±μ‹±ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. 검색 μ‹œμ—λŠ” 이 μš”μ•½μ„ ν™œμš©ν•΄ μ ν•©ν•œ λ¬Έμ„œλ₯Ό μ°Ύκ³ , μ΅œμ’…μ μœΌλ‘œλŠ” 전체 λ¬Έμ„œλ₯Ό LLMμ—κ²Œ λ„˜κ²¨μ£ΌλŠ” λ°©μ‹μž…λ‹ˆλ‹€.

  • 제λͺ© : Dense X Retrieval: What Retrieval Granularity Should We Use?
  • 연ꡬ λ°°κ²½: Dense retrieval은 μ˜€ν”ˆ 도메인 NLP μž‘μ—…μ—μ„œ κ΄€λ ¨ μ»¨ν…μŠ€νŠΈλ‚˜ 세계 지식을 μ–»κΈ° μœ„ν•œ μ€‘μš”ν•œ λ°©λ²•λ‘ μœΌλ‘œ λΆ€μƒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ dense retrieval 기법을 μ‚¬μš©ν•  λ•Œ 자주 κ°„κ³Όλ˜λŠ” 섀계 κ²°μ • 쀑 ν•˜λ‚˜λŠ” β€˜μ–΄λ–€ λ‹¨μœ„λ₯Ό κΈ°μ€€μœΌλ‘œ 검색할 κ²ƒμΈκ°€β€™μž…λ‹ˆλ‹€.

    • 기쑴의 μ ‘κ·Ό 방식인 λ¬Έμ„œλ‚˜ 문단, λ¬Έμž₯ λ‹¨μœ„ λŒ€μ‹ , 이 μ—°κ΅¬μ—μ„œλŠ” β€˜proposition(μ œμ•ˆ)β€™μ΄λΌλŠ” μƒˆλ‘œμš΄ 검색 λ‹¨μœ„λ₯Ό μ œμ•ˆν•©λ‹ˆλ‹€. 이 proposition은 ν…μŠ€νŠΈ λ‚΄μ—μ„œ μžλ¦½ν•  수 μžˆλŠ” ν•˜λ‚˜μ˜ 정보 λ‹¨μœ„λ‘œ, λ‹¨μˆœν•˜κ³  자쑱적인 μžμ—°μ–΄ ν˜•μ‹μœΌλ‘œ ν‘œν˜„λ©λ‹ˆλ‹€.
  • Contributions:

    1. Proposition 기반 검색 λ‹¨μœ„ μ œμ•ˆ: 기쑴의 문단 λ˜λŠ” λ¬Έμž₯ 기반 검색과 λΉ„κ΅ν•˜μ—¬, ν…μŠ€νŠΈλ₯Ό 더 μ„Έλ°€ν•˜κ²Œ λ‚˜λˆ„μ–΄ 각 proposition λ‹¨μœ„λ‘œ λ‚˜λˆ„μ–΄ κ²€μƒ‰ν•˜λŠ” 방식을 μ œμ•ˆν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 κ²€μƒ‰λœ ν…μŠ€νŠΈκ°€ 질문과 더 λ°€μ ‘ν•˜κ²Œ κ΄€λ ¨λœ 정보λ₯Ό μ œκ³΅ν•˜λ©°, λΆˆν•„μš”ν•œ μ •λ³΄μ˜ ν˜Όμž…μ„ μ€„μ—¬μ€λ‹ˆλ‹€.
    2. FACTOIDWIKI μ†Œκ°œ: 이 μ—°κ΅¬μ—μ„œλŠ” FACTOIDWIKIλΌλŠ” μ˜μ–΄ μœ„ν‚€ν”Όλ””μ•„ 덀프λ₯Ό μƒˆλ‘œ κ°€κ³΅ν•˜μ—¬, 각 νŽ˜μ΄μ§€λ₯Ό 100단어 길이의 문단, λ¬Έμž₯, proposition λ‹¨μœ„λ‘œ λ‚˜λˆ„λŠ” μž‘μ—…μ„ μ§„ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.
    3. 검색 및 λ‹€μš΄μŠ€νŠΈλ¦Ό μž‘μ—… μ„±λŠ₯ ν–₯상: proposition 기반 검색은 λ¬Έμž₯ 및 문단 기반 검색보닀 μ „λ°˜μ μΈ μ„±λŠ₯이 μš°μˆ˜ν–ˆμœΌλ©°, 특히 μ§ˆλ¬Έμ— κ΄€λ ¨λœ 정보λ₯Ό 더 λ°€μ§‘λœ ν˜•νƒœλ‘œ μ œκ³΅ν•˜μ—¬ QA(질문 λ‹΅λ³€) μž‘μ—…μ—μ„œ λ”μš± λ›°μ–΄λ‚œ μ„±λŠ₯을 λ°œνœ˜ν–ˆμŠ΅λ‹ˆλ‹€.

  1. RAPTOR: λ¬Έμ„œ μš”μ•½ ν΄λŸ¬μŠ€ν„°λ§

RAPTORλŠ” λ¬Έμ„œλ₯Ό μš”μ•½ν•œ ν›„, 이λ₯Ό ν΄λŸ¬μŠ€ν„°λ‘œ λ¬Άκ³ , ν΄λŸ¬μŠ€ν„° κ°„μ˜ μš”μ•½μ„ λ°˜λ³΅ν•˜μ—¬ μ΅œμ’…μ μœΌλ‘œ 전체 λ¬Έμ„œ μ½”νΌμŠ€μ— λŒ€ν•œ 고차원 μš”μ•½μ„ λ§Œλ“œλŠ” λ°©μ‹μž…λ‹ˆλ‹€. μ΄λ ‡κ²Œ μƒμ„±λœ μš”μ•½μ„ λ°”νƒ•μœΌλ‘œ μ—¬λŸ¬ λ¬Έμ„œμ— 걸친 정보λ₯Ό ν†΅ν•©ν•˜μ—¬ 검색할 수 μžˆμŠ΅λ‹ˆλ‹€.

  • 제λͺ© : RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval
  • 연ꡬ λ°°κ²½: λŒ€ν˜• μ–Έμ–΄ λͺ¨λΈ(LLM)은 λ§Žμ€ μž‘μ—…μ—μ„œ λ›°μ–΄λ‚œ μ„±λŠ₯을 보여주고 μžˆμ§€λ§Œ, 이 λͺ¨λΈλ“€ μ—­μ‹œ 세계 μƒνƒœμ˜ λ³€ν™”λ‚˜ κΈ΄ λ¬Έμ„œμ—μ„œμ˜ λ³΅μž‘ν•œ 정보 톡합에 약점을 κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€.

    • 특히 λŒ€λΆ€λΆ„μ˜ κΈ°μ‘΄ λͺ¨λΈλ“€μ€ ν…μŠ€νŠΈμ˜ μž‘μ€ 연속적인 λΆ€λΆ„λ§Œμ„ 가져와 μ΄ν•΄ν•˜λŠ” λ°©μ‹μœΌλ‘œ, 전체 λ¬Έμ„œμ˜ λ§₯락을 μ˜¨μ „νžˆ λ°˜μ˜ν•˜μ§€ λͺ»ν•˜λŠ” ν•œκ³„κ°€ μžˆμŠ΅λ‹ˆλ‹€.
    • 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄, RAPTORλŠ” ν…μŠ€νŠΈμ˜ λ‹€μ–‘ν•œ μš”μ•½ μˆ˜μ€€μ„ λ°”νƒ•μœΌλ‘œ ν•œ 정보λ₯Ό 효과적으둜 κ²€μƒ‰ν•˜κ³  톡합할 수 μžˆλŠ” λͺ¨λΈμž…λ‹ˆλ‹€.
  • Contributions:
    1. μž¬κ·€μ  μš”μ•½: ν…μŠ€νŠΈλ₯Ό ν΄λŸ¬μŠ€ν„°λ§ν•˜κ³  μš”μ•½ν•˜μ—¬ 트리 ꡬ쑰둜 κ΅¬μ„±ν•¨μœΌλ‘œμ¨, μ„œλ‘œ λ‹€λ₯Έ 좔상화 μˆ˜μ€€μ˜ 정보λ₯Ό 톡합할 수 μžˆλ„λ‘ ν–ˆμŠ΅λ‹ˆλ‹€.
    2. 효율적인 검색 및 정보 톡합: 이 트리 κ΅¬μ‘°λŠ” λ‹€μ–‘ν•œ μš”μ•½ μˆ˜μ€€μ—μ„œ 정보λ₯Ό κ²€μƒ‰ν•˜μ—¬, λ³΅μž‘ν•œ μ§ˆλ¬Έμ— λŒ€ν•΄ 효과적으둜 λ‹΅ν•  수 있게 ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해, κΈ΄ λ¬Έμ„œλ₯Ό μ²˜λ¦¬ν•˜λŠ” 질문-응닡 μž‘μ—…μ—μ„œ κΈ°μ‘΄ 방식보닀 μ„±λŠ₯이 크게 ν–₯μƒλ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    3. μ΅œμ‹  μ„±κ³Ό: RAPTOR와 GPT-4λ₯Ό κ²°ν•©ν•˜μ—¬ QuALITY λ°μ΄ν„°μ…‹μ—μ„œ 20% μ΄μƒμ˜ μ„±λŠ₯ κ°œμ„ μ„ λ‹¬μ„±ν–ˆμœΌλ©°, μ—¬λŸ¬ QA μž‘μ—…μ—μ„œ 졜고 μ„±λŠ₯을 κΈ°λ‘ν–ˆμŠ΅λ‹ˆλ‹€.

  1. Self-RAG: μˆœν™˜μ  RAG

RAG μ‹œμŠ€ν…œμ΄ ν•œ 번의 검색과 응닡 μƒμ„±μœΌλ‘œ λλ‚˜λŠ” 것이 μ•„λ‹ˆλΌ, 반볡적으둜 μ§ˆλ¬Έμ„ μˆ˜μ •ν•˜κ±°λ‚˜ 검색 κ²°κ³Όλ₯Ό ν‰κ°€ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. 이λ₯Ό 톡해 κ²€μƒ‰μ˜ 정확도λ₯Ό 높이고, hallucination을 λ°©μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • 링크 : https://arxiv.org/pdf/2310.11511
  • 제λͺ© : SELF-RAG: LEARNING TO RETRIEVE, GENERATE, AND CRITIQUE THROUGH SELF-REFLECTION
  • 연ꡬ λ°°κ²½: λŒ€ν˜• μ–Έμ–΄ λͺ¨λΈ(LLM)은 λ›°μ–΄λ‚œ λŠ₯λ ₯을 κ°€μ§€κ³  μžˆμ§€λ§Œ, μ—¬μ „νžˆ 사싀적인 였λ₯˜λ₯Ό 자주 ν¬ν•¨ν•œ 응닡(hallucination)을 μƒμ„±ν•˜λŠ” λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

    • 기쑴의 정보 검색 기반 생성(RAG) 방식은 LLM이 μ™ΈλΆ€μ—μ„œ κ΄€λ ¨ 정보λ₯Ό κ²€μƒ‰ν•˜μ—¬ 이 문제λ₯Ό ν•΄κ²°ν•˜λ €κ³  ν–ˆμœΌλ‚˜, 무쑰건적으둜 κ³ μ •λœ 개수의 λ¬Έμ„œλ₯Ό κ²€μƒ‰ν•˜κ³  이λ₯Ό μ‚¬μš©ν•˜λ©΄μ„œ, λͺ¨λΈμ˜ μœ μ—°μ„±μ΄ λ–¨μ–΄μ§€κ±°λ‚˜ λΆ€μ μ ˆν•œ 정보λ₯Ό ν¬ν•¨ν•œ 응닡이 생성될 수 μžˆλ‹€λŠ” 단점이 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.
  • Contributions:

    1. SELF-RAG ν”„λ ˆμž„μ›Œν¬ μ œμ•ˆ: 이 ν”„λ ˆμž„μ›Œν¬λŠ” μ–Έμ–΄ λͺ¨λΈμ΄ ν•„μš”ν•  λ•Œλ§Œ 정보λ₯Ό κ²€μƒ‰ν•˜κ³ , κ²€μƒ‰λœ 정보λ₯Ό λ°˜μ„±(reflection)ν•˜μ—¬ 슀슀둜 ν‰κ°€ν•¨μœΌλ‘œμ¨, μ‘λ‹΅μ˜ 사싀성을 높이고 ν’ˆμ§ˆμ„ ν–₯μƒμ‹œν‚€λŠ” 방법을 λ„μž…ν•©λ‹ˆλ‹€.
    2. 자기 λ°˜μ„± 토큰(reflection tokens): νŠΉλ³„ν•œ 토큰을 μ‚¬μš©ν•˜μ—¬ λͺ¨λΈμ΄ 슀슀둜 μƒμ„±ν•œ 좜λ ₯에 λŒ€ν•΄ λ°˜μ„±ν•˜κ³  ν‰κ°€ν•©λ‹ˆλ‹€. μ΄λŠ” 검색이 ν•„μš”ν•œμ§€ μ—¬λΆ€λ₯Ό νŒλ‹¨ν•˜κ±°λ‚˜, μƒμ„±λœ 응닡이 μ–Όλ§ˆλ‚˜ 사싀적인지 ν‰κ°€ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.
      • SELF-RAG λͺ¨λΈμ€ 자기 λ°˜μ„± 토큰을 톡해 슀슀둜 μƒμ„±ν•œ 응닡을 ν‰κ°€ν•˜κ³  λΉ„νŒν•˜λŠ” λŠ₯λ ₯을 κ°–μΆ”κ³  μžˆμŠ΅λ‹ˆλ‹€. 이 평가 기쀀은 κ΄€λ ¨μ„±, 사싀성, μœ μš©μ„±μœΌλ‘œ κ΅¬λΆ„λ˜λ©°, 각각의 토큰을 μ‚¬μš©ν•΄ 평가λ₯Ό μˆ˜ν–‰ν•œ λ’€, 이λ₯Ό λ°”νƒ•μœΌλ‘œ κ°€μž₯ μ ν•©ν•œ 응닡을 μ΅œμ’…μ μœΌλ‘œ μ„ νƒν•©λ‹ˆλ‹€.
    3. μ μ‘ν˜• 검색: SELF-RAGλŠ” 기쑴의 RAG 방식과 달리, λ¬Έμ„œ 검색이 ν•„μš”ν•  λ•Œλ§Œ 검색을 μˆ˜ν–‰ν•˜μ—¬ λͺ¨λΈμ˜ νš¨μœ¨μ„±μ„ 높이고, λΆˆν•„μš”ν•œ μ •λ³΄μ˜ μ‚¬μš©μ„ μ€„μž…λ‹ˆλ‹€.
    4. λͺ¨λΈμ˜ μ„±λŠ₯ ν–₯상: SELF-RAGλŠ” 사싀 확인, μž₯λ¬Έ 생성, μ˜€ν”ˆ 도메인 질문 응닡 λ“± λ‹€μ–‘ν•œ κ³Όμ œμ—μ„œ 기쑴의 μ΅œμ²¨λ‹¨ λͺ¨λΈλ“€(예: ChatGPT, Llama2)을 λŠ₯κ°€ν•˜λŠ” μ„±λŠ₯을 λ³΄μ˜€μŠ΅λ‹ˆλ‹€.


  1. Corrective RAG: μ™ΈλΆ€ 검색 연동

λ‚΄λΆ€ μΈλ±μŠ€μ— μ—†λŠ” 질문이 듀어왔을 λ•Œ, μ™ΈλΆ€ μ›Ή 검색을 톡해 μƒˆλ‘œμš΄ 정보λ₯Ό μ°Ύμ•„λ‚΄λŠ” λ°©λ²•μž…λ‹ˆλ‹€. 이λ₯Ό 톡해 out-of-domain μ§ˆλ¬Έμ—λ„ λŒ€μ‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • 링크 : https://arxiv.org/pdf/2401.15884
  • 제λͺ© : Corrective Retrieval Augmented Generation
  • 연ꡬ λ°°κ²½: λŒ€ν˜• μ–Έμ–΄ λͺ¨λΈ(LLM)은 맀우 μžμ—°μŠ€λŸ½κ³  μœ μ°½ν•œ ν…μŠ€νŠΈ 생성 λŠ₯λ ₯을 λ³΄μ΄μ§€λ§Œ, μ’…μ’… μ •ν™•ν•˜μ§€ μ•Šμ€ 정보λ₯Ό μƒμ„±ν•˜λŠ” β€œν™˜κ°β€ ν˜„μƒμ„ λ³΄μž…λ‹ˆλ‹€. 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ Retrieval-Augmented Generation (RAG) 기법이 μ‚¬μš©λ˜λ©°, μ™ΈλΆ€ 지식 λ¬Έμ„œμ—μ„œ κ΄€λ ¨ 정보λ₯Ό 검색해와 λͺ¨λΈμ΄ 닡을 생성할 λ•Œ 이λ₯Ό μ°Έκ³ ν•˜κ²Œ λ©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜, κ²€μƒ‰λœ λ¬Έμ„œκ°€ λΆ€μ •ν™•ν•˜κ±°λ‚˜ 관련이 없을 경우, μƒμ„±λœ κ²°κ³Όκ°€ 더 악화될 수 μžˆμŠ΅λ‹ˆλ‹€.

    • λ³Έ 논문은 μ΄λŸ¬ν•œ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ κ²€μƒ‰λœ λ¬Έμ„œμ˜ 정확성을 ν‰κ°€ν•˜κ³  μˆ˜μ •ν•˜λŠ” CRAG (Corrective Retrieval Augmented Generation) 방법을 μ œμ•ˆν•©λ‹ˆλ‹€.
  • Contributions:

    1. 였λ₯˜ μˆ˜μ • 기법 μ œμ•ˆ: 기쑴의 RAG 방식이 λΆ€μ •ν™•ν•œ 검색 결과둜 인해 ν™˜κ° ν˜„μƒμ„ μΌμœΌν‚€λŠ” 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄, λ³Έ 논문은 κ²€μƒ‰λœ λ¬Έμ„œμ˜ 정확도λ₯Ό ν‰κ°€ν•˜κ³  μˆ˜μ •ν•˜λŠ” μ „λž΅μ„ μ„€κ³„ν–ˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” RAG 기반 λͺ¨λΈμ˜ 견고성을 κ°•ν™”ν•˜λŠ” 첫 번째 μ‹œλ„μž…λ‹ˆλ‹€.
    2. κ²½λŸ‰ ν‰κ°€μž 섀계: κ²€μƒ‰λœ λ¬Έμ„œμ˜ ν’ˆμ§ˆμ„ ν‰κ°€ν•˜λŠ” κ²½λŸ‰ ν‰κ°€μžλ₯Ό λ„μž…ν•΄ λ¬Έμ„œμ˜ 신뒰성을 νŒλ‹¨ν•˜κ³ , ν•„μš”ν•œ 경우 λŒ€κ·œλͺ¨ μ›Ή 검색을 톡해 좔가적인 지식을 보완할 수 μžˆμŠ΅λ‹ˆλ‹€.
      • κ²½λŸ‰ 검색 ν‰κ°€μžλŠ” T5 기반 λͺ¨λΈλ‘œ, λ¬Έμ„œμ˜ 관련성을 κ²½λŸ‰ν™”λœ λ°©μ‹μœΌλ‘œ ν‰κ°€ν•˜λ©°, 상/ν•˜ν•œ μž„κ³„κ°’μ„ 톡해 μ •ν™•μ„±, λΆ€μ •ν™•μ„±, λͺ¨ν˜Έμ„±μ„ κ΅¬λΆ„ν•©λ‹ˆλ‹€.
      • μ›Ή 검색은 쿼리 μž¬μž‘μ„±μ„ 톡해 검색을 μˆ˜ν–‰ν•˜λ©°, μ›Ήμ—μ„œ κ²€μƒ‰λœ 정보λ₯Ό μ •κ΅ν•˜κ²Œ ν•„ν„°λ§ν•˜κ³  μž¬κ΅¬μ„±ν•˜μ—¬ μœ μš©ν•œ μ§€μ‹μœΌλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€.
      • 지식 톡합을 톡해 λ‚΄λΆ€ λ¬Έμ„œμ™€ μ›Ήμ—μ„œ 얻은 데이터λ₯Ό κ²°ν•©ν•˜μ—¬, 였λ₯˜λ₯Ό μ΅œμ†Œν™”ν•˜κ³  LLM의 ν™˜κ° ν˜„μƒμ„ μ€„μ΄λŠ” 것을 λͺ©ν‘œλ‘œ ν•©λ‹ˆλ‹€.
    3. λ‹€μ–‘ν•œ μ‹€ν—˜μ„ ν†΅ν•œ μ„±λŠ₯ κ°œμ„  증λͺ…: λ³Έ λ…Όλ¬Έμ˜ μ‹€ν—˜ κ²°κ³Ό, CRAGλŠ” λ‹€μ–‘ν•œ λ°μ΄ν„°μ…‹μ—μ„œ κΈ°μ‘΄ RAG 방식보닀 μš°μˆ˜ν•œ μ„±λŠ₯을 λ³΄μ˜€μœΌλ©°, 특히 짧은 ν˜•μ‹κ³Ό κΈ΄ ν˜•μ‹μ˜ ν…μŠ€νŠΈ 생성 μž‘μ—… λͺ¨λ‘μ—μ„œ μΌλ°˜ν™” κ°€λŠ₯함을 μž…μ¦ν–ˆμŠ΅λ‹ˆλ‹€.


Conclusion: RAG의 μƒˆλ‘œμš΄ λ°©ν–₯

결둠적으둜, RAGλŠ” λλ‚˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. λ‹€λ§Œ, μž₯λ¬Έ LLM μ‹œλŒ€μ— 맞좰 λ³€ν™”ν•˜κ³  μžˆμ„ λΏμž…λ‹ˆλ‹€. μ•žμœΌλ‘œλŠ” λ¬Έμ„œλ₯Ό μͺΌκ°œλŠ” λ³΅μž‘ν•œ κ³Όμ • λŒ€μ‹  λ¬Έμ„œ 전체λ₯Ό κ²€μƒ‰ν•˜λŠ” 방식이 더 μ£Όλͺ©λ°›μ„ κ²ƒμž…λ‹ˆλ‹€. λ˜ν•œ, λ¬Έμ„œ 검색 이후 좔둠을 λ°˜λ³΅ν•˜κ³  ν‰κ°€ν•˜λŠ” 방법도 더 많이 μ‚¬μš©λ  κ²ƒμœΌλ‘œ λ³΄μž…λ‹ˆλ‹€.

μž₯λ¬Έ LLM이 κ³„μ†ν•΄μ„œ λ°œμ „ν•¨μ— 따라, RAG μ‹œμŠ€ν…œμ€ 더 효율적이고 μœ μ—°ν•œ λ°©ν–₯으둜 μ§„ν™”ν•  κ²ƒμž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ λ‹¨μˆœνžˆ λͺ¨λ“  정보λ₯Ό ν•œ λ²ˆμ— LLM에 λ„£λŠ” 방식이 항상 μ΅œμ„ μ΄ μ•„λ‹˜μ„ λͺ…심해야 ν•©λ‹ˆλ‹€. RAGλŠ” μƒˆλ‘œμš΄ μ‹œλŒ€μ— 맞게 λ³€ν™”ν•˜κ³  있으며, κ·Έ μ€‘μš”μ„±μ€ μ—¬μ „νžˆ μœ μ§€λ  κ²ƒμž…λ‹ˆλ‹€.



-->