๐ Multi-Query Retriever RAG: AI์ ๋ฌธ์ ๊ฒ์ ์ ํ๋๋ฅผ ํ๊ธฐ์ ์ผ๋ก ํฅ์์ํค๋ ๋ฐฉ๋ฒ
Source: Dev.to
๋ฌธ์ : ํ์ค RAG๊ฐ ์คํจํ๋ ์ด์
์ดํ ๋ถ์ผ์น ๋ฌธ์
์๋ฆ๋ค์ด RAG ์์คํ ์ ๊ตฌ์ถํ๋ค๊ณ ์์ํด ๋ณด์ธ์. ์์ฒ ๊ฐ์ ๋ฌธ์๋ฅผ ์ธ๋ฑ์ฑํ๊ณ , ์๋ฒ ๋ฉ์ ๋ง๋ค๊ณ , ์ฑ๋ด์ ๋ฐฐํฌํ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ฌ์ฉ์๋ค์ด ๊ณ์ ๋ถํํฉ๋๋ค: โAI๊ฐ ๊ด๋ จ ์ ๋ณด๋ฅผ ์ฐพ์ง ๋ชปํด์!โ
ํ์ค RAG๋ ๋จ์ผ ์ฟผ๋ฆฌ ์๋ฒ ๋ฉ๋ง์ ์ฌ์ฉํด ์ ์ฌํ ๋ฌธ์๋ฅผ ์ฐพ์ต๋๋ค. ๋ฌธ์ ๋ ์ฌ์ฉ์๋ ๋ฌธ์๊ฐ ์ฐ์ฌ์ง ๋ฐฉ์๊ณผ ๋ค๋ฅด๊ฒ ์ง๋ฌธํ๋ค๋ ์ ์ ๋๋ค.
์ค์ ์ฌ๋ก: ์ดํ ๊ฒฉ์ฐจ
์ฌ๋ก 1: IT ์ง์ ์ ๋ชฝ
๐ค ์ฌ์ฉ์ ์ง๋ฌธ: "์ปดํจํฐ๊ฐ ๋๋ ค์, ์ด๋ป๊ฒ ๊ณ ์น๋์?"
๐ ๋ฌธ์ ๋ด์ฉ: "์์คํ
์ง์ฐ์ ๋ํ ์ฑ๋ฅ ์ต์ ํ ๊ธฐ๋ฒ"
โ ๊ฒฐ๊ณผ: ๋์นจ! ์๋ฒ ๋ฉ์ด ๋๋ฌด ๋ค๋ฆ.
์ฌ๋ก 2: ์์ ์ง๋ฌธ
๐ค ์ฌ์ฉ์ ์ง๋ฌธ: "์ด๋ฒ ๋ฌ์ ๋ง๊ฐ๋๋ ๋์ ๋ณด์ฌ์ค"
๐ ๋ฌธ์ ๋ด์ฉ: "ํ์ฌ ๊ธฐ๊ฐ์ ๋ง๊ฐ์ผ์ด ์๋ ๊ธฐํ ํ์ดํ๋ผ์ธ"
โ ๊ฒฐ๊ณผ: ๋์นจ! "๋" โ "๊ธฐํ", "๋ง๊ฐ" โ "๋ง๊ฐ์ผ"
์ฌ๋ก 3: ์๋ฃ ๋ฌธ์
๐ค ์ฌ์ฉ์ ์ง๋ฌธ: "์ด ์ฝ์ ๋ถ์์ฉ์ด ๋ญ์์?"
๐ ๋ฌธ์ ๋ด์ฉ: "์์ฝ ํํฉ๋ฌผ์ ๋ํ ์ด์ ๋ฐ์ ๋ฐ ๊ธ๊ธฐ ์ฌํญ"
โ ๊ฒฐ๊ณผ: ๋์นจ! ์ผ์ ์ธ์ด vs. ์๋ฃ ์ฉ์ด
์ฌ๋ก 4: ๊ฐ๋ฐ์์ ์ข์
๐ค ์ฌ์ฉ์ ์ง๋ฌธ: "์ ๋ด API ํธ์ถ์ด ์คํจํ๋์?"
๐ ๋ฌธ์ ๋ด์ฉ: "HTTP ์์ฒญ ์ค๋ฅ ์ฒ๋ฆฌ ๋ฐ ์์ธ ๊ด๋ฆฌ"
โ ๊ฒฐ๊ณผ: ๋์นจ! "์คํจ" โ "์ค๋ฅ ์ฒ๋ฆฌ"
์ฌ๋ก 5: ๊ฒฝ์์ง ๋์๋ณด๋
๐ค ์ฌ์ฉ์ ์ง๋ฌธ: "ํ์ ์ด๋ป๊ฒ ํ๊ณ ์๋์?"
๐ ๋ฌธ์ ๋ด์ฉ: "๋ถ๊ธฐ๋ณ ์ฑ๊ณผ ์งํ ๋ฐ KPI ๋ถ์"
โ ๊ฒฐ๊ณผ: ๋์นจ! ์บ์ฃผ์ผ ์ง๋ฌธ vs. ๊ณต์ ๋ณด๊ณ ์ ์ธ์ด
์ฌ๋ก 6: ํผ๋์ค๋ฌ์ด ๊ณ ๊ฐ
๐ค ์ฌ์ฉ์ ์ง๋ฌธ: "๋ด ๋ฌผ๊ฑด์ด ์ ๋ผ์"
๐ ๋ฌธ์ ๋ด์ฉ: "์ฅ์น ์ค์๋ ์ ์ฐจ์ ๋ํ ํธ๋ฌ๋ธ์ํ
"
โ ๊ฒฐ๊ณผ: ๋์นจ! ๋ชจํธํ ์ฌ์ฉ์ ์ธ์ด vs. ๊ธฐ์ ๋ฌธ์
aha ์๊ฐ
โ๋ฌธ์์ ์๋ฒฝํ ๋ต์ด ์๋๋ฐ ์ฌ์ฉ์๊ฐ ์ง๋ฌธ์ ์๋ชปํ์ด์!โ
์๋์, ์ฌ์ฉ์๋ ์๋ชป ์ง๋ฌธํ ๊ฒ์ด ์๋๋ผ ์ฌ๋์ฒ๋ผ ์ง๋ฌธํ ๊ฒ๋๋ค. ๋จ์ RAG๋ ์ฌ์ฉ์๊ฐ ๋ฌธ์ ์์ฑ์์ฒ๋ผ ์๊ฐํ๊ธธ ๊ธฐ๋ํ๋๋ฐ, ์ด๋ ์ญํํ๋ ์ ๊ทผ์ ๋๋ค.
| ์ฌ์ฉ์๊ฐ ๋ฌป๋ ๋ฐฉ์ | ๋ฌธ์๊ฐ ์ฐ์ฌ์ง ๋ฐฉ์ |
|---|---|
| โ๋ ๋น ๋ฅด๊ฒ ๋ง๋ค์ดโ | โ์ฑ๋ฅ ์ต์ ํโ |
| โ๊ณ ์ฅ๋ฌ์ดโ | โ์ค๋ฅ ์ํ ๊ฐ์งโ |
| โ๋น์ฉ์ ์ ๊ฐํ๊ณ ์ถ์ดโ | โ๋น์ฉ ์ ๊ฐ ์ ๋ตโ |
| โ๋๊ฐ ์ด๊ธฐ๊ณ ์์ด?โ | โ๊ฒฝ์ ๋ถ์ ์งํโ |
| โ๋ค์ ๋จ๊ณ๋?โ | โ์ถ์ฒ ์ก์ ์์ดํ โ |
์ด ์ดํ ๊ฒฉ์ฐจ๊ฐ RAG ์ ํ๋๋ฅผ ํฌ๊ฒ ๋จ์ด๋จ๋ฆฝ๋๋ค.
๋จ์ผ ๊ด์ ์ ํ
ํ์ค RAG๋ ์ง๋ฌธ์ ํ ๊ด์ ์์๋ง ๋ฐ๋ผ๋ด ๋๋ค:
์ฌ์ฉ์ ์ง๋ฌธ: "์์ด์ ํธ๋ ์ด๋ป๊ฒ ์๋ํ๋์?"
โ
โผ
๋จ์ผ ์ฟผ๋ฆฌ ์๋ฒ ๋ฉ โ ๋ฒกํฐ ๊ฒ์ โ ์ ํ๋ ๊ฒฐ๊ณผ
๋ค๋ฅธ ์ฉ์ด๋ฅผ ์ฌ์ฉํด ๊ฐ์ ๊ฐ๋ ์ ๋ค๋ฃจ๋ ๋ฌธ์๋ ์์ ํ ๋์น๊ฒ ๋ฉ๋๋ค.
ํ ์คํธ์์ ์ป์ ์ค์ ํต๊ณ
| ์ฟผ๋ฆฌ ์ ํ | ๋จ์ RAG ๋์นจ ๋น์จ | ์ ๋ ์ฐพ์ง ๋ชปํ ๋ฌธ์ |
|---|---|---|
| ๋จ์ ์ฟผ๋ฆฌ | 5โ10% | ์ต์ |
| ๋ณตํฉ ์ฟผ๋ฆฌ | 15โ25% | ์๋นํ ๋ง์ |
| ๋ชจํธํ ์ฟผ๋ฆฌ | 30โ40% | ๋ง์ ๊ด๋ จ ๋ฌธ์ |
๋จ์ RAG์์๋ ๊ด๋ จ ๋ฌธ์์ ์ต๋ 40โฏ%๊ฐ ๋ณด์ด์ง ์์ ์ ์์ต๋๋ค.
๋ฉํฐ-์ฟผ๋ฆฌ RAG๋?
์ ์
๋ฉํฐ-์ฟผ๋ฆฌ RAG(RetrievalโAugmented Generation)๋ LLM์ ์ฌ์ฉํด ์ฌ์ฉ์์ ์ฟผ๋ฆฌ๋ฅผ ์ฌ๋ฌ ๋ณํ์ผ๋ก ์์ฑํ ๋ค, ๋ชจ๋ ๋ณํ์ผ๋ก ๊ฒ์ํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ณํฉํฉ๋๋ค. ํ๋์ ์ฟผ๋ฆฌ ๋์ ๊ฐ์ ์ง๋ฌธ์ 3โ5๊ฐ์ง ๋ค๋ฅธ ํํ์ผ๋ก ๊ฒ์ํฉ๋๋ค.
ํต์ฌ ์ธ์ฌ์ดํธ
โ์ง๋ฌธ์ ๋ค์ฏ ๊ฐ์ง ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ํ๋ฉด, ํ ๋ฒ๋ง ๋ฌผ์ด๋ดค์ ๋๋ ์ ๋ ์ฐพ์ง ๋ชปํ ๋ต์ ๋ฐ๊ฒฌํ๊ฒ ๋๋ค.โ
๋ฉํฐ-์ฟผ๋ฆฌ RAG๋ LLM์ ํ์ฉํด ์๋์ผ๋ก ์ง๋ฌธ์ ์ฌ๊ตฌ์ฑํจ์ผ๋ก์จ ๋ค์์ ํฌ์ฐฉํฉ๋๋ค:
- ๋ค๋ฅธ ์ดํ(๋์์ด, ์ ๋ฌธ ์ฉ์ด)
- ๋ค๋ฅธ ๊ด์ (์ฌ์ฉ์ vs. ์ ๋ฌธ๊ฐ)
- ๋ค๋ฅธ ๊ตฌ์ฒด์ฑ ์์ค(๊ด๋ฒ์ vs. ์ข์)
- ๋ค๋ฅธ ๊ตฌ์กฐ(์ง๋ฌธ vs. ์์ )
๋ฉํฐ-์ฟผ๋ฆฌ RAG ์๋ ๋ฐฉ์
๋จ๊ณ๋ณ ํ๋ก์ธ์ค
Stepโฏ1: ์ฌ์ฉ์ ์ฟผ๋ฆฌ ์์

Stepโฏ2: ์ฟผ๋ฆฌ ๋ณํ ์์ฑ (LLM)

Stepโฏ3: ๋ชจ๋ ๋ณํ์ผ๋ก ๋ฒกํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฒ์
๊ฐ ์์ฑ๋ ์ฟผ๋ฆฌ๋ฅผ ์๋ฒ ๋ฉํ๊ณ ๋ฒกํฐ ์คํ ์ด์์ ํ๋ณด ๋ฌธ์๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
Stepโฏ4: ๊ฒฐ๊ณผ ๋ณํฉ ๋ฐ ์์ ๋งค๊ธฐ๊ธฐ
๋ชจ๋ ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐํฉํ๊ณ , ์ค๋ณต์ ์ ๊ฑฐํ ๋ค (์: reciprocal rank fusion ๋๋ crossโencoder ์ฌ์ฉ) ์ฌ์์ํฉ๋๋ค.
Stepโฏ5: ๊ฒ์๋ ์ปจํ
์คํธ๋ฅผ ์์ฑ ๋ชจ๋ธ์ ์ ๋ฌ
์ต์ข
์ ์ผ๋ก ์ ์ ๋ ๊ด๋ จ ๊ตฌ์ ๋ค์ LLM์ ์
๋ ฅํด ๋ต๋ณ์ ์์ฑํฉ๋๋ค.