Contextual Retrieval
Contextual Retrieval์ Anthropic์ด 2024๋ ์ ๋ฐํํ RAG (Retrieval-Augmented Generation) ์์คํ ์ ๊ฒ์ ์ ํ๋๋ฅผ ๊ฐ์ ํ๋ ๊ธฐ๋ฒ์ด๋ค.
๊ฐ์
์ ํต์ ์ธ RAG ์์คํ ์ ๋ฌธ์๋ฅผ ์์ ์ฒญํฌ(chunk)๋ก ๋ถํ ํ ๋ ๋งฅ๋ฝ ์ ๋ณด๊ฐ ์์ค๋๋ ๋ฌธ์ ๋ฅผ ๊ฒช๋๋ค. Contextual Retrieval์ ๊ฐ ์ฒญํฌ๋ฅผ ์๋ฒ ๋ฉํ๊ฑฐ๋ ์ธ๋ฑ์ฑํ๊ธฐ ์ ์ ๋ฌธ๋งฅ ์ ๋ณด๋ฅผ ์ถ๊ฐํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
ํต์ฌ ๊ธฐ์
1. Contextual Embeddings (๋งฅ๋ฝ์ ์๋ฒ ๋ฉ)
๊ฐ ์ฒญํฌ์ ๋ํด LLM์ ํธ์ถํ์ฌ ์ ์ฒด ๋ฌธ์์ ๋งฅ๋ฝ์ ๋ฐ์ํ ์ค๋ช ์ ์ถ๊ฐํ๋ค.
๋ณํ ์์:
- ์๋ณธ ์ฒญํฌ: โํ์ฌ์ ๋งค์ถ์ ์ ๋ถ๊ธฐ ๋๋น 3% ์ฑ์ฅํ๋ค.โ
- ๋งฅ๋ฝํ๋ ์ฒญํฌ: โ์ด ์ฒญํฌ๋ ACME ์ฝํผ๋ ์ด์ ์ 2023๋ 2๋ถ๊ธฐ ์ค์ ์ ๊ดํ SEC ๋ณด๊ณ ์์์ ๋ฐ์ทํ ๊ฒ์ด๋ค. ์ด์ ๋ถ๊ธฐ์ ๋งค์ถ์ 3์ต 1,400๋ง ๋ฌ๋ฌ์๋ค. ํ์ฌ์ ๋งค์ถ์ ์ ๋ถ๊ธฐ ๋๋น 3% ์ฑ์ฅํ๋ค.โ
2. Contextual BM25
BM25 ์๊ณ ๋ฆฌ์ฆ์๋ ๋์ผํ ๋งฅ๋ฝํ ๊ธฐ๋ฒ์ ์ ์ฉํ์ฌ ํค์๋ ๊ธฐ๋ฐ ๊ฒ์์ ์ ํ๋๋ฅผ ํฅ์์ํจ๋ค.
3. ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์
์๋ฒ ๋ฉ ๊ธฐ๋ฐ์ ์๋งจํฑ ๊ฒ์๊ณผ BM25 ๊ธฐ๋ฐ์ ํค์๋ ๊ฒ์์ ๊ฒฐํฉํ๋ค:
- ๋ฌธ์๋ฅผ ์ฒญํฌ๋ก ๋ถํ
- ๊ฐ ์ฒญํฌ์ ๋ํด TF-IDF ์ธ์ฝ๋ฉ๊ณผ ์๋งจํฑ ์๋ฒ ๋ฉ ์์ฑ
- BM25๋ก ์ ํํ ๋งค์นญ ๊ธฐ๋ฐ ์์ ์ฒญํฌ ๊ฒ์
- ์๋ฒ ๋ฉ์ผ๋ก ์๋ฏธ๋ก ์ ์ ์ฌ๋ ๊ธฐ๋ฐ ์์ ์ฒญํฌ ๊ฒ์
- Rank fusion ๊ธฐ๋ฒ์ผ๋ก ๊ฒฐ๊ณผ ๊ฒฐํฉ ๋ฐ ์ค๋ณต ์ ๊ฑฐ
- ์์ K๊ฐ ์ฒญํฌ๋ฅผ ํ๋กฌํํธ์ ์ถ๊ฐํ์ฌ ์๋ต ์์ฑ
๊ตฌํ ๋ฐฉ๋ฒ
ํ๋กฌํํธ ํ ํ๋ฆฟ
Anthropic์ Claude๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ ํ๋กฌํํธ๋ก ๋งฅ๋ฝ์ ์์ฑํ๋ค:
<document>
{{WHOLE_DOCUMENT}}
</document>
Here is the chunk we want to situate within the whole document
<chunk>
{{CHUNK_CONTENT}}
</chunk>
Please give a short succinct context to situate this chunk within the overall document for the purposes of improving search retrieval of the chunk.
Answer only with the succinct context and nothing else.
ํ๋กฌํํธ ์บ์ฑ
๋ฌธ์ ์ฒญํฌ๋ฅผ ์บ์ฑํ์ฌ ๋ฐ๋ณต์ ์ธ ์ฒ๋ฆฌ๋ฅผ ์ต์ํํจ์ผ๋ก์จ API ์ฌ์ฉ ๋น์ฉ์ ํฌ๊ฒ ์ ๊ฐํ ์ ์๋ค1.
์ฑ๋ฅ ํฅ์
Contextual Retrieval์ ๋ค์ํ ์ง์ ๋๋ฉ์ธ(์ฝ๋๋ฒ ์ด์ค, ์์ค, ArXiv ๋ ผ๋ฌธ, ๊ณผํ ๋ ผ๋ฌธ)์์ ํ ์คํธ๋์์ผ๋ฉฐ, โ1 minus recall@20โ ๋ฉํธ๋ฆญ์ผ๋ก ํ๊ฐ๋์๋ค:
- Contextual Embeddings ๋จ๋ : ๊ฒ์ ์คํจ์จ 35% ๊ฐ์ (5.7% โ 3.7%)
- Contextual Embeddings + Contextual BM25: ๊ฒ์ ์คํจ์จ 49% ๊ฐ์
- ๋ฆฌ๋ญํน ์ถ๊ฐ: ๊ฒ์ ์คํจ์จ 67% ๊ฐ์ (5.7% โ 1.9%)
์ฃผ์ ๊ณ ๋ ค์ฌํญ
์ฒญํฌ ์ค์
- ์ฒญํฌ ํฌ๊ธฐ: ๋ฌธ์ ํน์ฑ์ ๋ฐ๋ผ ์ ์ ํ ํฌ๊ธฐ ์ ํ
- ์ฒญํฌ ๊ฒฝ๊ณ: ์๋ฏธ ๋จ์๋ฅผ ๊ณ ๋ คํ ๋ถํ
- ์ฒญํฌ ๊ฐ์: 20๊ฐ์ ์ฒญํฌ๊ฐ ๊ฐ์ฅ ํจ๊ณผ์ ์ผ๋ก ํ์ธ๋จ
์๋ฒ ๋ฉ ๋ชจ๋ธ
Gemini์ Voyage ์๋ฒ ๋ฉ์ด ํนํ ํจ๊ณผ์ ์ธ ๊ฒ์ผ๋ก ๋ํ๋ฌ๋ค.
์ ์ฉ ์ ์ธ ์กฐ๊ฑด
์ง์ ๋ฒ ์ด์ค๊ฐ 200,000 ํ ํฐ(์ฝ 500ํ์ด์ง) ๋ฏธ๋ง์ธ ๊ฒฝ์ฐ, RAG ์์ด ์ ์ฒด ๋ด์ฉ์ ํ๋กฌํํธ์ ์ง์ ํฌํจํ๋ ๊ฒ์ด ๋ ํจ์จ์ ์ด๋ค.
์ฃผ์ ์ด์
- ๋งฅ๋ฝ ๋ณด์กด: ์ฒญํฌ ๋ถํ ์ ์์ค๋๋ ๋ฌธ๋งฅ ์ ๋ณด ๋ณด์
- ์ ํ๋ ํฅ์: ์๋งจํฑ ๊ฒ์๊ณผ ํค์๋ ๊ฒ์์ ์ฅ์ ๊ฒฐํฉ
- ๋น์ฉ ํจ์จ: ํ๋กฌํํธ ์บ์ฑ์ผ๋ก ๊ตฌํ ๋น์ฉ ์ ๊ฐ
- ๋ชจ๋ธ ๋ ๋ฆฝ์ : ๋ค์ํ AI ๋ชจ๋ธ์ ์ ์ฉ ๊ฐ๋ฅ
- ํ์ฅ์ฑ: ๋ค์ํ ๋ฌธ์ ์ ํ๊ณผ ๋๋ฉ์ธ์ ์ ์ฉ ๊ฐ๋ฅ
์ฐธ๊ณ ์๋ฃ
- Introducing Contextual Retrieval - Anthropic
- Magic Behind Anthropicโs Contextual RAG for AI Retrieval - Analytics Vidhya
Footnotes
-
Anthropic์ ํ๋กฌํํธ ์บ์ฑ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ์ ์ฒด ๋ฌธ์๋ฅผ ์ฌ๋ฌ ์ฒญํฌ์ ๋ํด ๋ฐ๋ณต์ ์ผ๋ก ์ ๋ฌํ ๋ ๋น์ฉ์ ์ ๊ฐํ ์ ์๋ค. โฉ