[κ°•μ˜λ…ΈνŠΈ] RAG From Scratch : Coursework

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

[κ°•μ˜λ…ΈνŠΈ] RAG From Scratch : Coursework

원본 κ²Œμ‹œκΈ€: https://velog.io/@euisuk-chung/LLM-RAG-From-Scratch

μ†Œκ°œ

μ˜€λŠ˜λ‚ μ˜ Generative AIλŠ” 기본적인 λŒ€ν˜• μ–Έμ–΄ λͺ¨λΈ(LLM)을 λ„˜μ–΄, 정보 ν™œμš©μ˜ 방식을 획기적으둜 λ³€ν™”μ‹œν‚€κ³  μžˆμŠ΅λ‹ˆλ‹€.

κ·Έ μ€‘μ—μ„œλ„ RAG, Retrieval-Augmented Generation은 μ™ΈλΆ€ 데이터 μ†ŒμŠ€λ₯Ό ν™œμš©ν•˜μ—¬ λ”μš± μ •κ΅ν•˜κ³  도메인에 νŠΉν™”λœ 정보λ₯Ό μ œκ³΅ν•¨μœΌλ‘œμ¨, AIμ™€μ˜ μƒν˜Έμž‘μš© 방식을 μƒˆλ‘­κ²Œ μ •μ˜ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ 기술의 λ§ˆμŠ€ν„°λ¦¬λŠ” λ‹¨μˆœν•œ 지식 μŠ΅λ“μ„ λ„˜μ–΄, μ‹€μ§ˆμ μΈ 컀리어 ν–₯상에 ν•„μˆ˜μ μΈ μš”μ†Œκ°€ 되고 μžˆμŠ΅λ‹ˆλ‹€.

Langchain🐦의 Lance Martin이 μ œμž‘ν•œ RAG From Scratch λΉ„λ””μ˜€ μ‹œλ¦¬μ¦ˆλŠ” λŒ€ν˜• μ–Έμ–΄ λͺ¨λΈ(LLM)의 강점과 μ™ΈλΆ€ 데이터 μ†ŒμŠ€λ₯Ό κ²°ν•©ν•œ κ°•λ ₯ν•œ μ ‘κ·Ό 방식인 RAG에 λŒ€ν•΄ 깊이 있게 λ‹€λ£Ήλ‹ˆλ‹€.

이 μ‹œλ¦¬μ¦ˆλŠ” RAG의 μ£Όμš” κ°œλ…, 강점, 약점, 그리고 μ‹€μš©μ μΈ μ‘μš© 사둀λ₯Ό μžμ„Ένžˆ μ„€λͺ…ν•˜λ©°, 각 λΉ„λ””μ˜€μ— λŒ€ν•œ μƒμ„Έν•œ μš”μ•½κ³Ό 뢄석을 μ œκ³΅ν•©λ‹ˆλ‹€.

κ°•μ˜ κ°œμš”

이번 λΈ”λ‘œκ·Έ ν¬μŠ€νŠΈμ—μ„œλŠ” 이 κ°•μ˜λ₯Ό 톡해 LLM을 λ‹€λ£¨λŠ” 데 핡심이 λ˜λŠ” RAG의 μ£Όμš” κ°œλ…, μ½”λ“œ, μ‚¬μš© 방법을 μ •λ¦¬ν•΄λ³΄κ³ μž ν•©λ‹ˆλ‹€. κ°•μ˜λŠ” 총 14편으둜 κ΅¬μ„±λ˜μ–΄ 있으며, 각각의 κ°•μ˜ 링크와 참고자료(μŠ¬λΌμ΄λ“œ)λŠ” 링크둜 μ œκ³΅λ©λ‹ˆλ‹€.

λΉ„λ””μ˜€ μš”μ•½ κ°•μ˜ 링크 μŠ¬λΌμ΄λ“œ
Part 1 (κ°œμš”) RAGλ₯Ό μ†Œκ°œν•˜λ©°, μ‹œλ¦¬μ¦ˆκ°€ κΈ°λ³Έ κ°œλ…λΆ€ν„° κ³ κΈ‰ κΈ°μˆ κΉŒμ§€ λ‹€λ£° κ²ƒμž„μ„ μ„€λͺ…ν•©λ‹ˆλ‹€. πŸ“Œ κ°•μ˜ πŸ“– μŠ¬λΌμ΄λ“œ
Part 2 (인덱싱) κ²€μƒ‰μ˜ μ •ν™•μ„±κ³Ό 속도에 μ€‘μš”ν•œ 인덱싱 과정에 μ΄ˆμ μ„ 맞μΆ₯λ‹ˆλ‹€. πŸ“Œ κ°•μ˜ πŸ“– μŠ¬λΌμ΄λ“œ
Part 3 (검색) κ²€μƒ‰μ˜ 정밀성을 μœ„ν•΄ 인덱슀λ₯Ό μ‚¬μš©ν•œ λ¬Έμ„œ 검색을 λ‹€λ£Ήλ‹ˆλ‹€. πŸ“Œ κ°•μ˜ πŸ“– μŠ¬λΌμ΄λ“œ
Part 4 (생성) LLM을 ν†΅ν•œ λ‹΅λ³€ 생성을 μœ„ν•œ RAG ν”„λ‘¬ν”„νŠΈ ꡬ성을 νƒκ΅¬ν•©λ‹ˆλ‹€. πŸ“Œ κ°•μ˜ πŸ“– μŠ¬λΌμ΄λ“œ
Part 5 (닀쀑 쿼리) λ‹€μ–‘ν•œ λ¬Έμ„œ 검색을 μœ„ν•΄ 쿼리 μž¬μž‘μ„± 기법을 μ„€λͺ…ν•©λ‹ˆλ‹€. πŸ“Œ κ°•μ˜ πŸ“– μŠ¬λΌμ΄λ“œ
Part 6 (RAG Fusion) μ—¬λŸ¬ 검색 κ²°κ³Όλ₯Ό κ²°ν•©ν•˜μ—¬ ν–₯μƒλœ λž­ν‚Ήμ„ μ œκ³΅ν•˜λŠ” RAG Fusion을 μ†Œκ°œν•©λ‹ˆλ‹€. πŸ“Œ κ°•μ˜ πŸ“– μŠ¬λΌμ΄λ“œ
Part 7 (λΆ„ν•΄) λ³΅μž‘ν•œ μ§ˆλ¬Έμ„ μ„ΈλΆ„ν™”λœ ν•˜μœ„ 질문으둜 λ‚˜λˆ„μ–΄ μƒμ„Έν•œ 닡변을 μ œκ³΅ν•˜λŠ” 방법을 λ…Όμ˜ν•©λ‹ˆλ‹€. πŸ“Œ κ°•μ˜ πŸ“– μŠ¬λΌμ΄λ“œ
Part 8 (단계적 후퇴) 근본적인 이해λ₯Ό μ΄λŒμ–΄λ‚΄λŠ” 좔상적 μ§ˆλ¬Έμ„ μƒμ„±ν•˜λŠ” 단계적 후퇴 ν”„λ‘¬ν”„νŒ…μ„ νƒκ΅¬ν•©λ‹ˆλ‹€. πŸ“Œ κ°•μ˜ πŸ“– μŠ¬λΌμ΄λ“œ
Part 9 (HyDE) 인덱슀 λ¬Έμ„œμ™€ 더 잘 μΌμΉ˜ν•˜λ„λ‘ 가섀적 λ¬Έμ„œλ₯Ό μƒμ„±ν•˜λŠ” HyDE 기법을 μ†Œκ°œν•©λ‹ˆλ‹€. πŸ“Œ κ°•μ˜ πŸ“– μŠ¬λΌμ΄λ“œ
Part 10 (λΌμš°νŒ…) 쿼리λ₯Ό κ΄€λ ¨ 데이터 μ†ŒμŠ€λ‘œ μœ λ„ν•˜κΈ° μœ„ν•œ 논리적 및 의미적 쿼리 λΌμš°νŒ…μ„ λ‹€λ£Ήλ‹ˆλ‹€. πŸ“Œ κ°•μ˜ πŸ“– μŠ¬λΌμ΄λ“œ
Part 11 (쿼리 ꡬ쑰화) μžμ—°μ–΄ 쿼리λ₯Ό κ΅¬μ‘°ν™”λœ 쿼리둜 λ³€ν™˜ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€ μƒν˜Έμž‘μš©μ„ νš¨μœ¨ν™”ν•˜λŠ” 방법을 λ‹€λ£Ήλ‹ˆλ‹€. πŸ“Œ κ°•μ˜ πŸ“– 참고자료
Part 12 (닀쀑 ν‘œν˜„ 인덱싱) 효율적인 검색을 μœ„ν•΄ λ¬Έμ„œ μš”μ•½μ„ μΈλ±μ‹±ν•˜λ©΄μ„œλ„ 전체 λ¬Έμ„œμ™€ μ—°κ²°ν•˜μ—¬ 포괄적인 이해λ₯Ό μ œκ³΅ν•˜λŠ” 방법을 λ…Όμ˜ν•©λ‹ˆλ‹€. πŸ“Œ κ°•μ˜ πŸ“– 참고자료
Part 13 (RAPTOR) λ¬Έμ„œ μš”μ•½κ³Ό ν΄λŸ¬μŠ€ν„°λ§μ„ 톡해 κ³ μˆ˜μ€€ κ°œλ…μ„ ν¬μ°©ν•˜λŠ” RAPTOR 기법을 μ†Œκ°œν•©λ‹ˆλ‹€. πŸ“Œ κ°•μ˜ πŸ“– 참고자료
Part 14 (ColBERT) RAG ν”„λ ˆμž„μ›Œν¬ λ‚΄μ—μ„œ κ°•ν™”λœ 토큰 기반 검색을 μœ„ν•œ ColBERTλ₯Ό νƒκ΅¬ν•©λ‹ˆλ‹€. πŸ“Œ κ°•μ˜ πŸ“– 참고자료

To be Continued…

RAG From Scratch λΉ„λ””μ˜€ μ‹œλ¦¬μ¦ˆλŠ” Retrieval Augmented Generation에 λŒ€ν•œ 포괄적인 탐ꡬλ₯Ό μ œκ³΅ν•˜λ©°, λ‹€μ–‘ν•œ 기술 및 μ ‘κ·Ό 방식을 λ‹€λ£Ήλ‹ˆλ‹€. 각 λΉ„λ””μ˜€λŠ” RAG의 νŠΉμ • 츑면에 μ΄ˆμ μ„ λ§žμΆ”λ©°, 각 λ°©λ²•μ˜ 강점, 약점 및 μ‹€μš©μ μΈ μ‘μš© 사둀에 λŒ€ν•œ κ·€μ€‘ν•œ 톡찰을 μ œκ³΅ν•©λ‹ˆλ‹€.

이 κΈ°μˆ λ“€μ˜ 비ꡐ적 μž₯점과 ν•œκ³„λ₯Ό μ΄ν•΄ν•¨μœΌλ‘œμ¨, κ°œλ°œμžμ™€ μ—°κ΅¬μžλ“€μ€ νŠΉμ • μ‚¬μš© 사둀에 λ§žλŠ” RAG μ‹œμŠ€ν…œμ„ μ„€κ³„ν•˜κ³  κ΅¬ν˜„ν•  λ•Œ 보닀 정보에 μž…κ°ν•œ 결정을 내릴 수 μžˆμŠ΅λ‹ˆλ‹€. 이 μ‹œλ¦¬μ¦ˆλŠ” 효과적인 RAG μ‹œμŠ€ν…œ ꡬ좕에 μžˆμ–΄ μ‹ μ€‘ν•œ 섀계, μ΅œμ ν™”, 그리고 계산 λ¦¬μ†ŒμŠ€ 고렀의 μ€‘μš”μ„±μ„ κ°•μ‘°ν•©λ‹ˆλ‹€.

RAG λΆ„μ•ΌλŠ” 계속 μ§„ν™”ν•˜κ³  있으며, μ΅œμ‹  λ°œμ „κ³Ό λͺ¨λ²” 사둀에 λŒ€ν•œ 지속적인 μ—…λ°μ΄νŠΈκ°€ μ€‘μš”ν•©λ‹ˆλ‹€. RAG From Scratch μ‹œλ¦¬μ¦ˆλŠ” 질문 응닡, μ½˜ν…μΈ  생성, 정보 검색 λ“± λ‹€μ–‘ν•œ λ„λ©”μΈμ—μ„œ RAG κΈ°μˆ μ„ νƒκ΅¬ν•˜κ³  μ μš©ν•˜κ³ μž ν•˜λŠ” λͺ¨λ“  μ‚¬λžŒλ“€μ—κ²Œ ν›Œλ₯­ν•œ 기초 μžλ£Œκ°€ λ©λ‹ˆλ‹€.

이 μ‹œλ¦¬μ¦ˆμ—μ„œ 얻은 톡찰을 ν™œμš©ν•˜κ³  λ…Όμ˜λœ μ‹€μš©μ  μ‘μš© 사둀λ₯Ό κ³ λ €ν•¨μœΌλ‘œμ¨, 쑰직듀은 RAG의 νž˜μ„ ν™œμš©ν•˜μ—¬ AI μ‹œμŠ€ν…œμ„ κ°•ν™”ν•˜κ³  μ‚¬μš©μž κ²½ν—˜μ„ κ°œμ„ ν•˜λ©°, λŒ€ν˜• μ–Έμ–΄ λͺ¨λΈκ³Ό μ™ΈλΆ€ 지식 μ†ŒμŠ€λ₯Ό κ²°ν•©ν•˜μ—¬ 잠재λ ₯을 κ·ΉλŒ€ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.



-->