-
Retrieval Augement Generation(RAG)๋?๐ฉ๐ป๐ซ๊ฐ์&์ํฌ์ต/RAG๋ฅผ ํ์ฉํ AI LLM APP๊ฐ๋ฐ 2025. 5. 31. 20:18
๊ฐ์ ์ถ์ฒ : Inflearn-RAG๋ฅผ ํ์ฉํ LLM Application๊ฐ๋ฐ (feat. LangChain)
Retrieval Augement Generation(RAG)
LLM์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์์ ์ค์ํ ๊ฐ๋
- LLM(Large Language Model)๋ฑ์ฅ ์ NLP์์๋ถํฐ ์ฌ์ฉ๋จ
- Retrieval : ๊ฒ์
- Augument : ์ฆ๊ฐ
- Generation : ์์ฑ
Retrieval
- ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ
- ๊ตฌ์ฒด์ ์ผ๋ก๋ "์ปดํจํฐ ์์คํ ์ ์ ์ฅ๋ ์๋ฃ๋ฅผ ์ทจ๋ํ๋ ๊ฒ"
- ๋ฐฑํฐ์คํ ์ด์์ ํ์๋ก ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฐ์ ธ์ค๋ ๊ฒ
- ์ธ์ด๋ชจ๋ธ์ด ๊ฐ์ง๊ณ ์์ง ์์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ
- why? : ์ธ์ด๋ชจ๋ธ์ด ์์ํ์ ๋ง๋๋๋ฐ ํ์ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด
- ์ธ์ด๋ชจ๋ธ์ด ๋ต๋ณ ์์ฑ์ ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์
- ์๋ฅผ๋ค์ด, ๋ณด์์ด ๊ฑธ๋ ค์๋ ์ฌ๋ด ์๋ฃ๋ ์คํ๋์ด ์์ง ์์ผ๋ ์ ๋ณด๋ฅผ ์ ๊ณตํด์ฃผ๋ ๊ฒ
Augemented
- AR/VR์ ์ฌ์ฉ๋๋ ๊ฒ๊ณผ ๊ฐ์ ๋จ์ด
- ๋ง์น ์ฌ์ค์ธ ๊ฒ ์ฒ๋ผ ๋ณด์ด๊ฒ ํจ
- Retrieval๋ ๋ฐ์ดํฐ๋ฅผ LLM์๊ฒ ์ฃผ๋ฉฐ, '๋ง์น ์ด ์ ๋ณด๋ฅผ ์๋ ๊ฒ ์ฒ๋ผ'
Generation
- RAG๋ ์ด๋ฏธ ์๊ณ ์๋ ๊ฒ ์ฒ๋ผ '๋ต๋ณ์ ์์ฑํด์ค'
RAG
- ๋ต๋ณ ์์ฑ : LLM์ ์ญํ
- ๊ฐ๋ฐ์ : ๋ฐ์ดํฐ๋ฅผ ์ ๊ฐ์ ธ์์ผํจ
- ์ ๊ฐ์ ธ์ค๋ ๋ฒ : ์ ์ ์ฅํํ๊ธฐ
- ํ๋กฌํํธ ์ ํ์ฉํด์ผํจ
- ๋ฐ์ดํฐ๋ฅผ ์ ๊ฐ์ ธ์ค๋๋ผ๋
- ๋ฌธ๋งฅ์ ์ด๋ป๊ฒ ์ ๊ณตํ ๊ฒ์ธ์ง๊ฐ ์ค์
- ๋ฐฉ๋ํ ์์ ์ด๋์ ๋ฃ์ ๊ฒ์ธ์ง ์ค์ → ์ ๊ฐ์ ธ์ค๋๋ผ๋ ์ ๋๋ก ์ ๋ฌํ์ง ๋ชปํ๋ฉด LLM์ด ์ฌ๋ฐ๋ฅธ ๋ต๋ณ์ ์ค ๋ชปํจ
- ๋ญ์ฒด์ธ์ด ์ด๋ฐ ๊ฒ์ ์ ํด๊ฒฐํด์ฃผ์ด ํจ์ฌ ํจ์จ์ ์ผ๋ก ๊ฐ๋ฐ ๊ฐ๋ฅ๐๐ป
๋ญ์ฒด์ธ์ด ragํ ๋ ์ด ํ๋กฌํฌํธ๊ฐ ์ ์ผ ๊ด์ฐฎ๋ค๋ ์ ์์ ํด์ค
Vector Database์ Embedding Model ์ฑ๋ฅ ๋น๊ต
Vector Database
- ์ฌ์ฉ์๊ฐ ์ํ๋ ์ ๋ณด๋ฅผ ํ ๋๋ก ๋ต๋ณ์ ์์ฑํด์ผํจ
- ์ฌ์ฉ์์ ์ง๋ฌธ๊ณผ ๊ด๋ จ์๋ ๋ฐ์ดํฐ ํ์(์ฑ๋ด case)
- ์ฐ๊ด์ฑ์ ํ๋จํ๋ ๊ธฐ์ค : vector๋ฅผ ํ์ฉ
- ๋จ์ด ๋๋ ๋ฌธ์ฅ์ ์ ์ฌ๋๋ฅผ ํ์ ํด์ ๊ด๋ จ์ฑ ์ธก์
- ์ฐ๊ด์ฑ์ ํ๋จํ๋ ๊ธฐ์ค : vector๋ฅผ ํ์ฉ
- ์ฌ์ฉ์์ ์ง๋ฌธ๊ณผ ๊ด๋ จ์๋ ๋ฐ์ดํฐ ํ์(์ฑ๋ด case)
- Vector์์ฑ ๋ฐฉ๋ฒ
- Open AI์ Embedding๋ชจ๋ธ์ ํ์ฉํ์ฌ ์์ฑ
- HOW to make Embedding model? → ๋ฌธ์ฅ์์ ๋น์ทํ ๋จ์ด๊ฐ ์์ฃผ ๋ถ์ด์๋ ๊ฒ์ ํ์ต
Embedding Projector ์๋ฒ ๋ฉ ๋ชจ๋ธ์ ํ์ฉํด ๋จ์ด๋ค์ด Vecorํ๋ ๋ชจ์ต - Embedding๋ชจ๋ธ์ ํ์ฉํด ์์ฑ๋ Vecor๋ฅผ ์ ์ฅ
- ๋จ์ํ Vector๋ง ์ ์ฅํ๋ฉด ์๋๊ณ metadata๋ ๊ฐ์ด ์ ์ฅ
- ๋ฌธ์์ ์ด๋ฆ, ํ์ด์ง ๋ฒํธ ๋ฑ๋ฑ์ ๊ฐ์ด ์ ์ฅํ์ฌ ํ ๋ฃจ์จ๋ค์ด์ (ํ๊ฐ)์ ๋๋นํ์ฌ ์ถ์ฒ๋ฅผ ๊ฐ์ด ๋ต๋ณํด์ค์ผ๋ก ์๋ฃจ์ ๋ต๋ณ์ ํ๋ฆฌํฐ๋ฅผ ์์น์ํด
- Vector๋ฅผ ๋์์ผ๋ก ์ ์ฌ๋ ๊ฒ์ ์ค์
- ์ฌ์ฉ์์ ์ง๋ฌธ๊ณผ ๊ฐ์ฅ ๋น์ทํ ๋ฌธ์๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ : Retrieval
- ์ด๋ฒ ์์ ์์ ์๋์ธ๋ฒ RAG์ knowledge base๋ก ํ์ฉ ์์
- ๋ฌธ์ ์ ์ฒด๋ฅผ ํ์ฉํ๋ฉด ์๋ ์ ํ ๋ฐ ํ ํฐ ์ ์ถ๊ณผ๋ก ๋ต๋ณ ์์ฑ ์๋ ์ ์์ → ์ฒญํน์ด ์ค์!
- ๊ณต์ ๋ฌธ์์์ 42k ํ ํฐ์์ Splitํด์ ์ ์ฅ(์ฒญํน)
- ๊ฐ์ ธ์จ ๋ฌธ์๋ฅผ prompt๋ฅผ ํตํด LLM์ ๊ณต : Augumented
- LLM์ prompt๋ฅผ ํ์ฉํด์ ๋ต๋ณ ์์ฑ : Generation
- upstage ai : ๋ฌด๋ฃ๋ก 30๋ถ ํฌ๋๋ง ์ค์ ์๋ฒ ๋ฉ ํ ์คํธํด๋ณด๊ธฐ ์ข์
- ์ฌ์ฉ์์ ์ง๋ฌธ๊ณผ ๊ฐ์ฅ ๋น์ทํ ๋ฌธ์๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ : Retrieval
1.APIํค๋ฅผ ๋ณต์ฌ 2. ์ฝ๋์ api key api ์ฝ์ 3. ์๋ฒ ๋ฉ ํญ → ํ์ด์ฌ ์ฝ๋ ๊ทธ๋๋ก ๋ณต์ฌ 4. ๋ถ์ฌ๋ฃ๊ธฐ 5. APIํค๋ฅผ ๋ฃ๊ณ , ๋ฐ์ ๋ถ๋ถ ์ญ์ 6. ํ์ธํ๊ณ ์ถ์ ๋จ์ด๋ฅผ input์ ์ ๋ ฅํ๊ณ ์ ์ฌ๋ ๋น๊ตํด๋ณด๋ฉด ๋จ