๐ "๊ฒ์๋ง ์ํด๋ ๋ฐ์ ๋จน๊ณ ๋ค์ด๊ฐ๋ค" โ RAG์๋ ์๋ฒฝํ ์ ์ฉ๋๋ ๋ง์ธ๋ฏ ์ถ์ต๋๋ค.
RAG (Retrieval-Augmented Generation)๋
LLM(์: GPT-4, Claude, Mistral ๋ฑ)์๊ฒ ๊ฒ์์ ๋ถ์ฌ์ฃผ๋ ๋ฐฉ์์ด์์.
์ฒ์์ RAG๋ฅผ ์ ํ์ ๋
โ๊ทธ๋ฅ ๋ฌธ์ ๊ฒ์ํด์ LLM์ ๋ฃ๋ ๊ฑฐ ์๋๊ฐ?โ
ํ์ง๋ง
๊ณ ๊ธ RAG๋ ๋จ์ ๊ฒ์ + ์์ฑ์ด ์๋๋๋ค.
ํ์ดํ๋ผ์ธ ์ ๋ฐ์ ์ต์ ํํด์
๊ฒ์ ์ ํ๋, ๋ฌธ๋งฅ ์ดํด๋, ์๋ต์ ์ ๋ขฐ๋๊น์ง ๋ค ๋์ฌ์ฃผ๋ ๊ตฌ์กฐ๊ฑฐ๋ ์.
์ด๋ฒ ๊ธ์์๋ ์ ๊ฐ ๊ณต๋ถํ๋ฉด์ ์ ๋ฆฌํ
"Advanced RAG๊ฐ ๋ญ์ง", "์ ํ์ํ์ง", "์ด๋ค ๊ธฐ์ ๋ค์ด ์ฐ์ด๋์ง"
์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค.
RAG๋ โRetrieval-Augmented Generationโ์ ์ค์๋ง๋ก,
์ฝ๊ฒ ๋งํ๋ฉด LLM์๊ฒ โ๊ฒ์ ๊ธฐ๋ฅโ์ ๋ถ์ฌ์ฃผ๋ ๊ตฌ์กฐ์
๋๋ค.
์๋ฅผ ๋ค์ด GPT-3.5 ๊ฐ์ LLM์
2023๋
์ด์ ๊น์ง์ ์ง์๋ง ํ์ต๋ผ ์์ด์
๊ทธ ์ดํ ์๊ธด ์ ๋ณด๋ ๋ชจ๋ฅด๊ณ ์์ด์.
์๋ฅผ ๋ค์ด,
"2024๋
์ด์ ์์ ์ด๋ค ์ ์ฑ
์ด ์๋ก ๋์์ด์?"
"GPT-4.5์์ ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ด ๋ญ์์?"
์ด๋ฐ ์ง๋ฌธ์ ๊ธฐ๋ณธ GPT๋ก๋ ๋ต์ ๋ชป ํด์.
์ด๋ด ๋ ํ์ํ ๊ฒ ๋ฐ๋ก RAG์์.
์ธ๋ถ ๋ฌธ์, PDF, ์น ๊ฒ์ ๊ฒฐ๊ณผ ๋ฑ์ LLM์ ํจ๊ป ๋ฃ์ด์
์ง๊ธ ์ด ์๊ฐ์ ์ ๋ณด๊น์ง ๋ฐ์ํ ์๋ต์ ์์ฑํ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ์ ์
๋๋ค.
๊ธฐ๋ณธ์ ์ธ RAG๋ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ก ๋์ด ์์ด์:
๐ ๋ฌธ์๋ฅผ ์ฒญํฌ(chunk) ๋จ์๋ก ์๋ผ์ ๋ฒกํฐ๋ก ๋ณํ
๐ ์ฌ์ฉ์์ ์ง๋ฌธ๋ ๋ฒกํฐ๋ก ๋ง๋ค์ด์, ๋ฌธ์ ๋ฒกํฐ๋ค๊ณผ ๋น๊ตํด Top-K ๊ฒ์
๐ง ๊ฒ์๋ ์ฒญํฌ๋ฅผ LLM์๊ฒ ํจ๊ป ๋ณด๋ด์ ์๋ต ์์ฑ
์ด๊ฒ ๊ธฐ๋ณธ ๊ตฌ์กฐ์ธ๋ฐ, ํ์ค์์๋ ์ฌ๋ฌ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค...
ํญ๋ชฉ ๋ฌธ์ ์
์ธ๋ฑ์ฑ PDF๋ ๋ณด๊ณ ์ ๊ฐ์ ๋ฌธ์๋ฅผ ์ ๋๋ก ํ์ฑ ๋ชป ํด์ ์ ๋ณด๊ฐ ์ ์ค๋จ
๊ฒ์ ์ค๋ณต๋ ๋ด์ฉ๋ง ๋์ค๊ฑฐ๋, ์ค์ํ ๋ด์ฉ์ ๋ชป ์ฐพ๋ ๊ฒฝ์ฐ ๋ง์
์์ฑ LLM์ด ์๋ชป๋ ๋ฌธ๋งฅ์ ๋ฐ์์ ์ค๋ต์ ๋ด๊ฑฐ๋ ํธํฅ๋ ์ ๋ณด ์์ฑ
ํนํ ๊ฒ์์ด ๋ถ์ ํํ๋ฉด,
์๋ฌด๋ฆฌ ์ข์ LLM์ ์จ๋ ์ด์ํ ๋ต๋ณ์ด ๋์ค๊ฒ ๋๋๋ผ๊ณ ์ ๐ญ
Advanced RAG๋ Naive RAG์ ๋จ์ ์ ๋ณด์ํ ๊ตฌ์กฐ์์.
์ ์ฒด ๊ณผ์ ์ ๋ค์ 4๋จ๊ณ๋ก ๋๋๊ณ , ๊ฐ ๋จ๊ณ๋ง๋ค ์ต์ ํ ๊ธฐ๋ฒ์ ์ ์ฉํฉ๋๋ค.
Advanced RAG์ 4๋จ๊ณ ๊ตฌ์กฐ
Pre-Retrieval: ๊ฒ์ ์ ์ค๋น (๋ฌธ์ ํ์ฑ, ์ฟผ๋ฆฌ ์ ๋ฆฌ ๋ฑ)
Retrieval: ๊ฒ์ ์ต์ ํ (ํ์ด๋ธ๋ฆฌ๋, ์๋ฒ ๋ฉ ํ๋ ๋ฑ)
Post-Retrieval: ๊ฒฐ๊ณผ ์์ถ, ์ฌ์ ๋ ฌ, ํํฐ๋ง
Generation: ๋ต๋ณ ์์ฑ ์ต์ ํ (๋ค์ค ์์ฑ, ์์ฝ ๋ฑ)
๐งพ PDF ํ์ฑ
PDF๋ ๋จ์ํ ํ
์คํธ๊ฐ ์๋๋ผ
"์ด๋์ ์ด๋ป๊ฒ ์ถ๋ ฅํ ์ง๋ฅผ ์ง์ํ๋ ๋ช
๋ น์ด ๋ฉ์ด๋ฆฌ"์ ๊ฐ๊น์ต๋๋ค.
๊ทธ๋์ ๊ทธ๋ฅ ํ
์คํธ๋ก ์ถ์ถํ๋ฉด
๋ฌธ๋จ, ํ, ๊ทธ๋ฆผ์ด ๋ค ๊นจ์ง๊ฑฐ๋ ์ค๋ฐ๊ฟ์ด ์๋ง์ด ๋์ฃ .
pypdf: ๋ฃฐ ๊ธฐ๋ฐ ํ์, ๊ฐ๋จํ์ง๋ง ๊ตฌ์กฐ ์ธ์ ์ด๋ ค์
Unstructured, LayoutParser: ๋ฅ๋ฌ๋ ๊ธฐ๋ฐ, ํ/๋ฌธ๋จ ์ธ์ ๊ฐ๋ฅ
PP-StructureV2: ๋ฌธ์ ์์ ํต์ฌ ์ ๋ณด๊น์ง ์ถ์ถ
์ฌ์ฉ์ ์ง๋ฌธ์ด ์ ๋งคํ๊ฑฐ๋ ์ฌ๋ฌ ์ฃผ์ ๋ฅผ ์์ด์ ๋ฌป๋ ๊ฒฝ์ฐ,
๊ทธ๋๋ก ๊ฒ์ํ๋ฉด ์ ํํ ๊ฒฐ๊ณผ๋ฅผ ๋ชป ์ฐพ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์.
Step-Back Prompting: ์ง๋ฌธ์ ๋ ์ผ๋ฐํํด์ ๊ฒ์
HyDE: ์ง๋ฌธ์ผ๋ก ๊ฐ์ ๋ฌธ์๋ฅผ ์์ฑ โ ์๋ฒ ๋ฉ ํ ๊ฒ์
Query2Doc: LLM์ด ๋ฌธ์์ฒ๋ผ ์ฌ์์ฑํด์ ๊ฒ์ ํจ์จ โ
ITER-RETGEN: ์์ฑ๊ณผ ๊ฒ์์ ๋ฐ๋ณตํด์ ๋ ์ ํํ ์ ๋ณด ํ๋
๐ ๋ฌธ๋งฅ ํ์ฅ
ํ๋์ ๋ฌธ์ฅ๋ง ๊ฒ์๋๋ฉด ์ดํดํ๊ธฐ ์ด๋ ต์ฃ .
๊ทธ๋์ ์๋ค ๋ฌธ์ฅ์ ํจ๊ป ๊ฐ์ ธ์ค๊ฑฐ๋, ์์ ๋ฌธ์ ๋จ์๋ก ๋ฌถ์ด์ ์ ๋ฌํด์.
Sentence Window Retrieval: ์๋ค k๊ฐ ๋ฌธ์ฅ ํจ๊ป ์ ์ก
Parent Chunking: ์ฒญํฌ๋ค์ ์์ ์๋ฏธ ๋จ์๋ก ๋ฌถ๊ธฐ
๐งฌ ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์
ํค์๋ ๊ฒ์ (BM25 ๋ฑ) โ ์ ํํ ๋จ์ด ์ผ์น
์๋ฏธ ๊ธฐ๋ฐ ๊ฒ์ (๋ฒกํฐ ์๋ฒ ๋ฉ) โ ์ ์ฌํ ๋ฌธ๋งฅ ์ดํด
๐ก ๋ ๊ฐ์ง๋ฅผ RRF (Reciprocal Rank Fusion)์ผ๋ก ์กฐํฉํด์
์ ํ๋์ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ๋์์ ๋์
๋๋ค.
๐ ๋ฆฌ๋ญํน (Re-Ranking)
๊ฒ์๋ Top-K ์ฒญํฌ ์ค์์๋
์ง์ง ์ค์ํ ๊ฑธ ์๋ก ์ฌ๋ ค์ฃผ๋ ๊ณผ์ ์
๋๋ค.
bge-reranker, Cohere API
RankGPT: LLM ๊ธฐ๋ฐ์ผ๋ก ์ฌ๋ผ์ด๋ฉ ์๋์ฐ ๋ฐฉ์ ๋ฆฌ๋ญํน
LLM์๊ฒ ๋ฃ์ ์ ์๋ ํ ํฐ ์๋ ํ๊ณ๊ฐ ์์ด์.
(์: GPT-3.5๋ ์ฝ 4,000 tokens)
Selective Context: ์ ๋ณด๋ ๋ง์ ๋ถ๋ถ๋ง ๋จ๊น
LLMLingua, LongLLMLingua: ์๋ฏธ ๋จ์๋ก ์์ถ
AutoCompressor: soft prompt๋ก ์์ฝ ์ ๋ณด ์ ๋ฌ
RECOMP: ๋ฌธ์ฅ ๋จ์๋ก ์์ถ or ์์ฝ ์์ฑ
๐งผ ํํฐ๋ง
ํ์ ์๋ ๋ฌธ์, ์ค๋ณต๋ ๋ด์ฉ, ์ ๋ขฐ๋ ๋ฎ์ ์ ๋ณด๋ ์ ๊ฑฐํฉ๋๋ค.
FiD-TF, Self-RAG, CRAG ๋ฑ์
ํ ํฐ ์์ค์์ ์ค์์ฑ ํ๋จ ํ ํํฐ๋ง๊น์ง ์ํํด์!
๋ค์ํ ์์ฑ ๊ธฐ์ ๋ค
DSP: ์ฌ๋ฌ ์ฟผ๋ฆฌ โ ์ฌ๋ฌ ๋ฌธ์ ๊ฒ์ โ ์ข
ํฉํด์ ์๋ต ์์ฑ
PRCA: ๋ณด์ ๊ธฐ๋ฐ ํ์ต์ผ๋ก ๋ ๋์ ์๋ต ์ ๋
REPLUG: ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋๋ก LLM ์ ๋ ฅ์ ์ถ๊ฐ
RECITE: ๋ค์ํ ๋ต๋ณ ์์ฑ ํ ๋ค์๊ฒฐ๋ก ์ต์ข ์๋ต ์ ํ
๐จ๏ธ Chat Engine
๋ํํ์์๋ ์ด์ ๋ํ ๋ด์ฉ์ ์๋ ์์ฝํด์ ์ฟผ๋ฆฌ์ ๋ฐ์ํด์ผ ํด์.
์: ContextChatEngine, CondensePlusContextMode
๋ฌธ์๋ง๋ค ์์ฝ/์ง์์๋ต ์ ๋ด Agent๋ฅผ ๋ง๋ค๊ณ ,
Top Agent๊ฐ ์ ์ฒด ํต์ โ ์ง๋ฌธ์ ๊ฐ Agent์ ์ ๋ฌํ๊ณ ์๋ต์ ์ข
ํฉ!
GPT-4๋ก ์ง๋ฌธ-์๋ต ๋ฐ์ดํฐ ๋ง๋ค๊ณ โ GPT-3.5์ ํ์ธํ๋
RA-DIT: Retriever + Generator๋ฅผ ๋์์ ํ์ต์์ผ ์ฑ๋ฅ โ
์ ์๋ํ๋ RAG์ธ์ง ์ด๋ป๊ฒ ์ ์ ์์๊น์?
Ragas: ์ ๋ต์ฑ, ๊ฒ์ ์ ํ๋, ์๋ต ์ ์ ์ฑ ์ธก์
LangSmith: ์ฒด์ธ ๋ด ํ๋ ์ถ์
OpenAI Cookbook: ํ๊ฐ ๊ธฐ์ค๋ณ ํ ์คํธ ์คํฌ๋ฆฝํธ ์ ๊ณต
์ฐธ๊ณ ์๋ฃ: [ https://medium.com/@vipra_singh/building-llm-applications-advanced-rag-part-10-ec0fe735aeb1 ]