[SK TECH SUMMIT 2023] RAG๋ฅผ ์œ„ํ•œ Retriever ์ „๋žต

2024. 5. 5. 12:12ใ†Lecture

๐Ÿ‘‰ ์˜์ƒ: [SK TECH SUMMIT 2023] RAG๋ฅผ ์œ„ํ•œ Retriever ์ „๋žต

๐Ÿ‘‰ ๋ฐœํ‘œ ์ž๋ฃŒ: https://sktechsummit.com/sessions/sessionsList.do

 

SK TECH SUMMIT 2023

AI Everywhere for a better future

sktechsummit.com


์—ฐ์‚ฌ์ž

Allganize AI ICT ์œตํ•ฉ CAIO(Chief AI Officer)


๊ฐ•์˜ ๋‚ด์šฉ

1. Retrieval Augmented Generation

2. RAG๊ฐ€ ์™œ ์–ด๋ ค์šด๊ฐ€?

3. Document parsing - Table

4. Retriever ์ „๋žต


1. Retrieval Augmented Generation

โœ… RAG๋Š” 2021๋…„(GPT 3 ์‹œ์ ˆ) ๋“ฑ์žฅํ•œ ๊ฐœ๋…. ๋“ฑ์žฅ ๋‹น์‹œ์—๋Š” ์ƒ์„ฑ์€ ํ•˜๋‚˜, ๋†€๋ผ์šด ์„ฑ๋Šฅ ๋ณด์ด์ง€ ๋ชปํ–ˆ์Œ

โœ… OpenAI์—์„œ ๋ชจ๋ธ ๋ฐœํ‘œํ•œ ์ดํ›„, Generator ์„ฑ๋Šฅ ์—„์ฒญ๋‚˜๊ฒŒ ๋†’์•„์ง€๋ฉฐ ํ™œ์šฉ ๊ฐ€๋Šฅ์„ฑ์— ๊ด€์‹ฌ ๐Ÿ†™

โœ… ๊ธฐ์—… ๋‚ด๋ถ€ ๋ฌธ์„œ, ๋‚˜๋งŒ์ด ์•Œ๊ณ  ์žˆ๋Š” ๋ฌธ์„œ์— ๋Œ€ํ•œ ๋‹ต๋ณ€ ์ƒ์„ฑ ๋“ฑ์˜ ์ธก๋ฉด์—์„œ ๋„์ž… ๊ณ ๋ ค


โœ… ํ”„๋กฌํ”„ํŠธ์— ๋‚ด๊ฐ€ ๋ฌผ์–ด๋ณธ ์งˆ๋ฌธ ๋‹ต๋ณ€ ํ›„๋ณด๋“ค์„ ํ”„๋กฌํ”„ํŠธ์— ์ง‘์–ด๋„ฃ๋Š” ๋ฐฉ์‹

โœ… ๋ฌธ์ œ? ๊ธฐ์—… ๋‚ด๋ถ€ ๋ฌธ์„œ ๊ธฐ๋ฐ˜ ๋‹ต๋ณ€์€ ์ž˜ ๋˜์ง€ ์•Š์Œ

โœ… ์–ด๋ ค์šด ์ด์œ ? ๋ฆฌํŠธ๋ฆฌ๋ฒ„ ์„ฑ๋Šฅ ์ž˜ ์•ˆ ๋‚˜์˜ด. + ๊ฐ„๊ณผ๋˜๊ณ  ์žˆ๋Š” Document parsing


2. RAG๋Š” ์™œ (์•„์ง๋„) ์–ด๋ ค์šด๊ฐ€?

OpenAI Assistant API - Retrieval

โœ… OpenAI์—์„œ Assistant API์— Retrieval ๋ฐœํ‘œ

โœ… (์ขŒ์ธก) ์ „์ž์žฅ์น˜ ๋ถ€์ฐฉ๋ช…๋ น ๋ฒ•๋ น ๋ฌธ์„œ๋ฅผ (์šฐ์ธก) OpenAI Assistant API ํ™œ์šฉํ•œ ๊ฒฐ๊ณผ, ์‚ฌ์šฉ์ž ์งˆ๋ฌธ์— ๋‹ต๋ณ€ ์ž˜ ๋ชปํ•ด์ฃผ๊ณ  ์žˆ์Œ

โœ… ํ‘œ์— ๊ธฐ์ž…๋œ ์ˆซ์ž ๋‚ด์šฉ ํ‹€๋ฆฌ๊ณ (2008๋…„ ๋ฏธ๋ถ€๊ณผ ๊ฑด์ˆ˜๋Š” 250๊ฑด, 2012๋…„ 3,213 ๊ฑด์œผ๋กœ ์ฆ๊ฐ€), ๋‹ต๋ณ€ ๋‚ด์šฉ๋„ ํ‹€๋ฆผ

โœ… ์™œ OpenAI์ธ๋ฐ๋„ ์„ฑ๋Šฅ์ด ์ข‹์ง€ ๋ชปํ• ๊นŒ? ๐Ÿ“„ ๋ฌธ์„œ์˜ ๋ฌธ์ œ


Internal Document(๋‹ค๋ฃจ๋Š” ๋ฌธ์„œ)

โœ… ์ฃผ์š” ๊ธฐ์—… ๋‚ด๋ถ€ ๋ฌธ์„œ? PDF, Word, Excel, ์•„๋ž˜ ํ•œ๊ธ€ ๋“ฑ


โœ… ๋ฌธ์„œ ์ž‘์„ฑ์šฉ์ด ์•„๋‹Œ ์กฐํŒ์šฉ ์‹œ์Šคํ…œ(์ถœ๋ ฅ์šฉ ์‹œ์Šคํ…œ)

โœ… ๋ ˆ์ด์•„์›ƒ ์•Œ ์ˆ˜ ์—†์Œ

โœ… Header, Footer ์ •๋ณด ์—†๊ณ , ๋ชฉ์ฐจ(Table of Contents, ToC)๋Š” ๊ฐ€๋” ๋ฉ”ํƒ€ ์ •๋ณด๋กœ ์กด์žฌํ•˜๋‚˜, ์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋Œ€๋ถ€๋ถ„

โœ… Table? ๊ทธ๋ƒฅ ๊ธ€์”จ์—๋‹ค๊ฐ€ ๊ทธ๋ฆผ ์ž…ํ˜€๋†“์€ ๊ฒƒ


โœ… ์กฐํŒ ์‹œ์Šคํ…œ์ธ PDF ๋ณด๋‹ค๋Š” ๋‚ซ์ง€๋งŒ, ํ˜„์‹ค์—์„œ ๋งˆ์ฃผํ•˜๋Š” ๊ธฐ์—…์šฉ ๋ฌธ์„œ๋Š” ์‚ฌ์‹ค์ƒ ์กฐํŒ ์‹œ์Šคํ…œ๊ณผ ๋™๊ธ‰

โœ… ์›Œ๋“œ ๋ฌธ์„œ ์—ด์–ด๋ณด๋ฉด ์ œ๋ชฉ๋„ ์žˆ๊ณ , ์‹œ์Šคํ…œ์ ์œผ๋กœ ์ •๋ฆฌ๋˜์–ด ์žˆ์ง€๋งŒ, ๋ˆˆ์— ๋ณด์ด๊ฒŒ๋งŒ ๊ทธ๋ ‡๊ฒŒ ๋งŒ๋“  ๋ฌธ์„œ๋“ค ์ƒ๋‹นํžˆ ๋งŽ์Œ

โœ… ํ…Œ์ด๋ธ”? merged cell ๋งŽ์Œ. ์˜ˆ์˜๊ฒŒ align ๋งž์ถ”๊ธฐ ์œ„ํ•ด ํ…Œ์ด๋ธ”์ด ์•„๋‹Œ๋ฐ ํ…Œ์ด๋ธ” ์•ˆ์— ๊ธ€์”จ ์ง‘์–ด๋„ฃ๊ธฐ๋„ ํ•จ

 


โœ… ํƒœ์ƒ์ด Table์ธ ์—‘์…€๋„ ๋งˆ์ฐฌ๊ฐ€์ง€

โœ… Table์ด Table์ด ์•„๋‹˜

โžก๏ธ ์ด๋Ÿฐ ๋ฌธ์„œ๋“ค ๊ฐ€์ง€๊ณ  ๋‹ต๋ณ€ํ•ด์•ผ ํ•จ. ๊ธ€ ์œ„์น˜๋„ ๋ชจ๋ฅด๊ณ , Table ์ธ์ง€๋„ ๋ชจ๋ฅด๋Š” ์ƒํƒœ์—์„œ


OPENAI Assistant API - Retrieval

๐Ÿ’ก ์ด๋Ÿฐ ๋ฌธ์ œ์  OpenAI์—์„œ๋„ ๋˜‘๊ฐ™์ด ๊ฒช๊ณ  ์žˆ์—ˆ์„ ๊ฒƒ

โœ… citation์ด ๊นจ์ง€์ง€ ์•Š๋Š” CUDA API ๋ฌธ์„œ ์˜ฌ๋ ค๋†“๊ณ  ์งˆ๋ฌธํ–ˆ๋”๋‹ˆ citaton์ด ์žกํž˜

โœ… citation ์žก๋Š” ๋ฐฉ์‹? ๋ฌธ์„œ ๋ชฉ์ฐจ ๋ถ€๋ถ„ ์ฐพ์•„์„œ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ ์ œ๊ฑฐ. ์ผ๋ถ€๋ถ„๋งŒ ์ž˜๋ž๋Š”๋ฐ, ์˜๋ฏธ ์žˆ๋Š” ๋ถ€๋ถ„ ์ž๋ฅด์ง€๋„ ์•Š์Œ

โœ… ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Œ


Alli Generative Answer

โœ… ์ž์‚ฌ ์ œํ’ˆ์ธ Alli์— ์ ์šฉํ–ˆ๋”๋‹ˆ ์ž˜ ๋‚˜์˜ด

โœ… ๋‹ต๋ณ€ ์ž˜ ๋‚˜์˜ค๊ธฐ ์œ„ํ•œ ๋…ธํ•˜์šฐ? ๋ฌธ์„œ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•,  ๊ต‰์žฅํžˆ ๋งŽ์€ ๋…ธํ•˜์šฐ, ๊ผผ์ˆ˜๋กœ ์ ์ฒ ๋˜์–ด ์žˆ์Œ 


3. Document parsing - Table

Table - Markdown

๐Ÿ’ก Table ์–ด๋–ป๊ฒŒ ๋‹ค๋ฃฐ ๊ฒƒ์ธ๊ฐ€?

โœ… OpenAI์— Table ๋„ฃ์„ ๋•Œ, ๋งˆํฌ๋‹ค์šด(Mark Down, MD) ํ˜•ํƒœ๋กœ ๋„ฃ์œผ๋ฉด ๋™์ž‘ ์ž˜ ๋จ(๋งŽ์ด ์•Œ๋ ค์ ธ ์žˆ์Œ)

โœ… ํ•˜์ง€๋งŒ, Table ์กฐ๊ธˆ๋งŒ ์ปค์ ธ๋„ ๋‹ต๋ณ€ ์ž˜ ๋˜์ง€ ์•Š๋Š” ์ƒํ™ฉ ๋ด‰์ฐฉ

โœ… ์‹ค์ œ ๋‹ค๋ฃจ๋Š” ๋ฌธ์„œ Table ์•ˆ์—๋Š” ์ˆซ์ž๋ฟ ์•„๋‹ˆ๋ผ ๊ธ€(enter, ํŠน์ˆ˜ ๋ฌธ์ž ๋“ฑ)์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด MD ํฌ๋งท์ด ๊นจ์ง


Table - Natural Language

๐Ÿ’ก Table์„ ๋ง์ฒ˜๋Ÿผ ์‹ธ๋ณผ๊นŒ? ์ž์—ฐ์–ด๋กœ ์ฒ˜๋ฆฌ

โœ… Header๋งŒ ์•Œ ์ˆ˜ ์žˆ๋‹ค๋ฉด, ํ…Œ์ด๋ธ” ๋‚ด์šฉ์„ ๋ง๋กœ ๊ธฐ๊ณ„์ ์œผ๋กœ ์„ค๋ช…ํ•˜๋Š” ํ˜•ํƒœ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ

โœ… ๊ธฐ๊ณ„์ ์œผ๋กœ ํ…Œ์ด๋ธ”์„ ์ž์—ฐ์–ด๋กœ ๋งŒ๋“ค์—ˆ์„ ๋•Œ, ๋‹ต๋ณ€ ํ’ˆ์งˆ ์—ญ์‹œ ์˜ฌ๋ผ๊ฐ€๋Š” ๋ชจ์Šต

โœ… ์žฅ์ ? Merged cell, ํฐ ํ…Œ์ด๋ธ”, ๋ณต์žกํ•ด์ง„ Table์— ๋Œ€ํ•ด์„œ๋„ Header๋งŒ ์ œ๋Œ€๋กœ ์žก์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅ

โœ… ๋’ค์— ์„ค๋ช…ํ•  ๋ฆฌํŠธ๋ฆฌ๋ฒ„์—์„œ๋„ ๋” ์ข‹์€ ์„ฑ๋Šฅ ๋ณด์ž„


Table Pipeline

โœ… Table ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฌธ์„œ๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์œ„์˜ ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ๋“ค ๋“ค์–ด๊ฐˆ ์ˆ˜๋ฐ–์— ์—†์Œ

1๏ธโƒฃ Table Detection: Table์ด ์–ด๋”” ์žˆ๋Š”์ง€ ํ™•์ธ

2๏ธโƒฃ Table Recognition: Table ์žˆ๋Š” ์˜์—ญ์„ ์…€ ๋‹จ์œ„๋กœ ์ž˜ ๋œฏ์–ด์„œ ๊ตฌ์ถ•

3๏ธโƒฃ (Simple) Make markdown: ํ‘œ๊ฐ€ ๊ฐ„๋‹จํ•  ๊ฒฝ์šฐ ๋งˆํฌ๋‹ค์šด์œผ๋กœ ์ฒ˜๋ฆฌ

3๏ธโƒฃ (Complex) Header detection: ํ‘œ๊ฐ€ ๋ณต์žกํ•  ๊ฒฝ์šฐ, ํ—ค๋” ํƒ์ƒ‰(์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ์ฒซ๋ฒˆ์งธ ์—ด์ด์ง€๋งŒ, ์ผ์ƒ์—์„œ๋Š” merged cell, ํ—ค๋”๊ฐ€ ๋ณต์ˆ˜์ธ ๊ฒฝ์šฐ, ์—ด ์ค‘๊ฐ„์— ๋“ค์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ ๋“ฑ)


4. Retriever ์ „๋žต

โœ… ๋ฌธ์„œ ์ ๋‹นํ•œ ํฌ๊ธฐ๋กœ ์ž๋ฅด๊ณ , unstructured ๋ฐ์ดํ„ฐ๋ฅผ structure ์ž˜ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€๊ฒฝ

โœ… ์งˆ๋ฌธํ–ˆ์„ ๋•Œ, ์งˆ๋ฌธ์— ๋‹ต๋ณ€์ด ๋  ๋งŒํ•œ ๊ฒƒ๋“ค์„ ์ฐพ์•„ ํ”„๋กฌํ”„ํŠธ์— ๋„ฃ์–ด์ค˜์•ผ ํ•จ

Retriever - Sparse retriever

๐Ÿ’ก ๋‹ต๋ณ€์ด ๋  ๋งŒํ•œ ๋‚ด์šฉ ์–ด๋–ป๊ฒŒ ์ฐพ์„๊นŒ?

โœ… ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๊ฑด ES(Elastic Search)์— ๋ฌผ์–ด๋ณด๋Š” ๊ฒƒ

โœ… ๋“ฑ์žฅํ•œ ํ‚ค์›Œ๋“œ๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฑฐ๋‹ˆ๊นŒ ์ง๊ด€์ ์œผ๋กœ ์ดํ•ด๊ฐ€ ๊ฐ

โœ… ์งˆ๋ฌธ์ด ๊ผญ ํ‚ค์›Œ๋“œ๊ฐ€ ๋‚˜์˜จ ๊ณณ์—์„œ๋งŒ ๋‚˜์˜ฌ ์ˆ˜ ์—†์Œ

โœ… Sparse retriever ํ•œ๊ณ„ ๋ช…ํ™• -> Dense retriever๋“ค์ด ๋‚˜์˜ด(DPR - Dense Passage Retrieval, OpenAI Embedding) 

โœ… ๋ฐ์ดํ„ฐ์…‹๋ณ„๋กœ ์ƒ์ด. ์–ด๋–ค๊ฑด BM25๊ฐ€ ์„ฑ๋Šฅ ์ข‹๊ณ , ensemble์ด ์ข‹์„ ๋•Œ๋„ ์žˆ๊ณ  ๋“ฑ 

 


Retriever - Ensemble

๊ทธ๋ž˜ํ”„ - ์ƒ‰ ์„ค๋ช…
*BM25 - ํŒŒ๋ž€์ƒ‰ Base Model
Embedding(Text) - ๋นจ๊ฐ„์ƒ‰ OpenAI Embedding
Ensemble(BM25 + Text) - ๋…ธ๋ž€์ƒ‰ BM25 + Text
Ensemble(BM25 + Text + Title) - ์ดˆ๋ก์ƒ‰ ์ œ๋ชฉ๊นŒ์ง€ ์•™์ƒ๋ธ”
๋”๋ณด๊ธฐ

ํ‚ค์›Œ๋“œ ๊ธฐ๋ฐ˜ ๋žญํ‚น ์•Œ๊ณ ๋ฆฌ์ฆ˜ "BM 25"

์ฐธ๊ณ : BM25

์ฃผ์–ด์ง„ Query์— ๋Œ€ํ•ด ๋ฌธ์„œ์™€์˜ ์—ฐ๊ด€์„ฑ ํ‰๊ฐ€ํ•˜๋Š” ๋žญํ‚น ํ•จ์ˆ˜๋กœ ์‚ฌ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

BM25 Score ์‚ฐ์ถœ์‹(์ถœ์ฒ˜: https://velog.io/@jkl133/BM25)

TF-IDF(Term Frequency-Inverse Document Frequency) ๊ณ„์—ด ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘, SOTA(State-of-the art)

TF-IDF๋Š” ํ•œ ๋ฌธ์„œ์—์„œ ๋‹จ์–ด๊ฐ€ ๋“ฑ์žฅํ•˜๋Š” ๋นˆ๋„ ๋†’์„์ˆ˜๋ก ์ปค์ง€๊ณ (term frequency), ํ•ด๋‹น ๋‹จ์–ด๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฌธ์„œ๊ฐ€ ๋งŽ์„์ˆ˜๋ก ๋ฐ˜๋น„๋ก€ํ•ด์„œ ์ž‘์•„์ง(inverse docoument frequency)๋กœ, ํ˜„์žฌ ๋‹จ์–ด์˜ ๊ฐ€์ค‘์น˜ ๊ณ„์‚ฐํ•  ๋•Œ ๊ฐ€์žฅ ์ž์ฃผ ์“ฐ์ด๋Š” ๊ฐ’

โœ… ๊ณ ๊ฐ๋“ค์˜ ๋ฌธ์„œ, ์งˆ๋ฌธ ์ˆ˜์ง‘ํ•ด ๋ฒค์น˜๋งˆํฌ ์ง„ํ–‰ํ•œ ๊ฒฐ๊ณผ์ธ๋ฐ ๊ฒฐ๊ณผ๊ฐ€ ์ฒœ์ฐจ๋งŒ๋ณ„

โœ… ๊ณ ๊ฐ ๋ฌธ์„œ, ์งˆ๋ฌธ์— ๋”ฐ๋ผ weight ์ž๋™์œผ๋กœ ์กฐ์ ˆํ•  ํ•„์š” ์žˆ์Œ

โœ… ์‹ค์ œ ํ˜„์—…์—์„œ ์ ์šฉํ•˜๊ธฐ์—๋Š” ์–ด๋ ค์›€ ์žˆ์Œ


Retriever - Training Dense retriever

๐Ÿ’ก DPR(Dense Passage Retriever) or Retriever ํ•™์Šต ํ˜„์‹ค ์„ธ๊ณ„์— ์ ์šฉํ•  ์ˆ˜ ์—†์„๊นŒโ“

ํ•™์Šต ๋ฐฉ๋ฒ• ํฌ๊ฒŒ 2๊ฐ€์ง€

1๏ธโƒฃ Cross-Encoder

โœ… ์งˆ๋ฌธ, context๊ฐ€ 1๊ฐœ์˜ ๋ชจ๋ธ์— ๋“ค์–ด๊ฐ€์„œ ๋‹ต๋ณ€ ๋‚˜์˜ค๋Š” ๊ฒƒ

โœ… ์ปจํ…์ŠคํŠธ๊ฐ€ ์ˆ˜์‹ญ๋งŒ~์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์ธ๋ฐ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ์งˆ๋ฌธ๋งˆ๋‹ค ๋ชจ๋ธ์— ๋‹ค ํƒœ์šด๋‹ค๋Š” ๊ฒƒ? ๋ถˆ๊ฐ€๋Šฅ

โžก๏ธ ์• ์ดˆ์— Cross-Encoder๋Š” ๊ณ ๋ ค โŒ

2๏ธโƒฃ Bi-Encoder

โœ… ์งˆ๋ฌธ, context๊ฐ€ ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋ชจ๋ธ์— ๋“ค์–ด๊ฐ€์„œ ๊ณ„์‚ฐ๋œ ๋‹ค์Œ, ๋‚˜์ค‘์— ํ•ฉ์ณ์ง€๋Š” ๋ฐฉ์‹


๐Ÿ’ก Bi-Encoder๋Š” ๋ชจ๋ธ ํ•™์Šต ์ž˜ ์‹œํ‚ฌ ์ˆ˜ ์žˆ์„๊นŒ?

โœ… ์„ฑ๋Šฅ ์ข‹์€ ๋ชจ๋ธ ๋ฐฐํฌํ•ด๋„ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๋ชจ๋ธ ์žฌํ•™์Šตํ•  ํ•„์š”์„ฑ ์ƒ๊น€

โœ… 10๋งŒ๊ฐœ ๋˜๋Š” context vector, 100๋งŒ ๊ฐœ ๋˜๋Š” context vector ๋‹ค ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ์‹ค์ƒ ์–ด๋ ค์›€

โœ… context ์ชฝ vector ์—ญ์‹œ ํ•™์Šต์ด ๋ถˆ๊ฐ€๋Šฅํ•จ


 

โœ… ์œ„์˜ ๊ทธ๋ž˜ํ”„ ๊ฐ™์€ ๋ชจ์–‘์ด ๋  ์ˆ˜๋ฐ–์— ์—†์Œ

โœ… Question ์ชฝ๋งŒ ํ•™์Šต์ด ๋˜๋Š” ๊ตฌ์กฐ


Retriever - Train data

๐Ÿ’ก ํ•™์Šต ๋ฐ์ดํ„ฐ ๋งŒ๋“ค๊ธฐ๋„ ๋ฌธ์ œ 

โœ… ์ •๋‹ต ๋ฐ์ดํ„ฐ์…‹? ์งˆ๋ฌธ๊ณผ ์งˆ๋ฌธ์˜ ํ›„๋ณด๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ(๐Ÿ“๋‹ญ๊ณผ ๐Ÿฅš๋‹ฌ๊ฑ€์˜ ๋ฌธ์ œ)

โœ… ๋ฆฌํŠธ๋ฆฌ๋ฒ„๊ฐ€ ๋˜‘๋˜‘ํ•˜๋‹ค๋ฉด ๋Œ€๋ถ€๋ถ„ ๋งž์ถœ ๊ฑฐ๊ณ , ํ‹€๋ฆฐ ๊ฒƒ๋งŒ ๊ฑธ๋Ÿฌ๋‚ด๋„ ๊ต‰์žฅํžˆ ์ข‹์€ ๋‹ต๋ณ€ set ๋งŒ๋“ค์–ด๋‚ผ ์ˆ˜ ์žˆ์Œ

โœ… ํ•˜์ง€๋งŒ ๋ณดํ†ต ๋ฐ์ดํ„ฐ์…‹ ๋งŒ๋“œ๋Š” ์ด์œ ? ์„ฑ๋Šฅ ์•ˆ ์ข‹์•„์„œ ํ•™์Šต์‹œํ‚ค๋ ค๊ณ  ํ•™์Šต ๋ฐ์ดํ„ฐ์…‹ ๋งŒ๋“œ๋Š” ๊ฒƒ

 

โœ… ์‚ฌ๋žŒ์—๊ฒŒ ์งˆ๋ฌธ ๋งŒ๋“ค๋ผ๊ณ  ํ•˜๋ฉด ์—„์ฒญ ํž˜๋“ฆ -> GPT๋กœ ๋ฐ์ดํ„ฐ ๋Œ€๋Ÿ‰ ์ƒ์‚ฐ -> ๊ทผ๋ฐ Negative ๋ฐ์ดํ„ฐ๋Š” ์–ด๋–กํ•˜์ง€?

โœ… GPT์—๊ฒŒ "์ด ํŽ˜์ด์ง€์—์„œ ๋‹ต๋ณ€์ด ๋‚˜์˜ค์ง€ ์•Š์„ ๋งŒํ•œ ์งˆ๋ฌธ์„ ์ƒ์„ฑํ•ด ๋ด" ์š”์ฒญํ•˜๋ฉด ๋‹ต๋ณ€ ์ž˜ ๋‚˜์˜ค์ง€ ์•Š์Œ

โœ… Positve data๋Š” GPT๋กœ ๋Œ€๋Ÿ‰ ์ƒ์„ฑ ๊ฐ€๋Šฅํ•œ๋ฐ, Negative data๋Š” ์ƒ์„ฑ์ด ์–ด๋ ค์›€

 

โœ… 1๋ฒˆ ํŽ˜์ด์ง€์—์„œ ๋งŒ๋“  ์ •๋‹ต์„ 2๋ฒˆ ํŽ˜์ด์ง€ negative sample๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ? ์•ˆ๋จ. ์‚ฌ๋žŒ ๋ˆˆ์œผ๋กœ ํ•˜๊ธฐ์—๋Š” ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์Œ

โœ… ๊ทธ๋ ‡๋‹ค ๋ณด๋‹ˆ Loss function์€ ๋ฒกํ„ฐ๋ผ๋ฆฌ ๋น„๊ตํ•˜๋Š” MSE๋‚˜ cosine embedding loss ์ง€ํ‘œ ์‚ฌ์šฉํ•  ์ˆ˜๋ฐ–์— ์—†์Œ

โœ… binary-crossentropy ๊ฐ™์€ ๊ฒฝ์šฐ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋ธ์ด ๋ง๊ฐ€์งˆ ์ˆ˜๋ฐ–์— ์—†์Œ. ์™œ๋ƒํ•˜๋ฉด positive sample๋ฐ–์— ์—†์œผ๋‹ˆ๊นŒ


Retriever - ์ด๊ฒŒ ๋˜๋Š” ๊ฑฐ ๋งž๋‚˜?

๐Ÿ’ก ์‹ค์ œ๋กœ ์ง„ํ–‰ํ•ด ๋ณธ ๊ฒฐ๊ณผ

๐ŸŸฅ: Question Embedding(์งˆ๋ฌธ์— ๋Œ€ํ•œ ์ž„๋ฒ ๋”ฉ)

๐ŸŸฆ: Context Embedding(๋ฌธ์„œ์— ๋Œ€ํ•œ ์ž„๋ฒ ๋”ฉ)

โœ… Baseline์€ OpenAI Embedding. ์ด์œ ? ์„ฑ๋Šฅ์ด ์ œ์ผ ์ข‹์•„์„œ๊ฐ€ ์•„๋‹ˆ๋ผ context window๊ฐ€ ์ œ์ผ ๊ธธ์–ด์„œ

โœ… (์ขŒ์ธก) 2์ฐจ์›์œผ๋กœ PCA(์ฐจ์› ์ถ•์†Œ) ์ง„ํ–‰ํ•œ ๊ฒฐ๊ณผ-> ๋ช…ํ™•ํ•˜๊ฒŒ ๊ฐˆ๋ผ์ ธ ์žˆ์Œ

โžก๏ธ ๋นจ๊ฐ„์ƒ‰์„ ํŒŒ๋ž€์ƒ‰ ์ชฝ์œผ๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋ฉด, ๋ชจ๋ธ์ด ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค๋ผ๋Š” ์ƒ๊ฐ

โœ… (์šฐ์ธก) ์ดˆ๋ก์ƒ‰์ด ์‹ค์ œ๋กœ ๋ชจ๋ธ ํ†ต๊ณผํ•œ question ๋ฒกํ„ฐ๋“ค 


Retriever - ๊ฒฐ๊ณผ

โœ… ๊ฒฐ๊ณผ๋Š” ๋ฐ์ดํ„ฐ์…‹ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ๋งŽ์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Œ

โœ… ํ˜„์‹ค์ ์œผ๋กœ๋Š” Top-3๋‚˜ Top-5 ๋„˜์–ด๊ฐˆ ์ˆ˜ ์—†์Œ

โœ… ๋…ผ๋ฌธ์—๋Š” Top-100๊ฐ€ ์žˆ๊ธด ํ•œ๋ฐ, ์‹ค์ œ ํ™˜๊ฒฝ์—์„œ๋Š” prompt ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ, ๋น„์šฉ๊นŒ์ง€ ๊ณ ๋ คํ•ด์•ผ ํ•จ

โœ… ํ˜„์‹ค์ ์œผ๋กœ Top-3, Top-5 ์ •๋„๊ฐ€ ํ•œ๊ณ„์ธ๋ฐ, 5~ 10% ์ •๋„ ๋ฆฌํŠธ๋ฆฌ๋ฒ„ ์„ฑ๋Šฅ ํ–ฅ์ƒํ•  ์ˆ˜ ์žˆ์—ˆ์Œ

โœ… ์œ„์˜ ๊ฒฐ๊ณผ๋Š” ์•™์ƒ๋ธ” ์ „์œผ๋กœ, ์•™์ƒ๋ธ”ํ•˜๋ฉด ๋” ์ข‹์€ ์„ฑ๋Šฅ ๊ฐœ์„  ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ 

 


์ •๋ฆฌ

1๏ธโƒฃ LLM ๋›ฐ์–ด๋‚ ์ˆ˜๋ก Document parsing๊ณผ Retrieval ๋‹จ๊ณ„ ์ค‘์š”(ํ˜„์ฃผ์†Œ)

โœ… Retriever ์„ฑ๋Šฅ์ด Generative answer์—์„œ ์ค‘์š”ํ•œ component ๋˜๊ณ  ์žˆ์Œ


2๏ธโƒฃ ์„ธ์ƒ์˜ ๋ฌธ์„œ ํ˜•ํƒœ๋Š” ๋‹ค์–‘ํ•ด ํ˜•ํƒœ๋ณ„๋กœ ๋งŽ์€ ๋…ธํ•˜์šฐ ํ•„์š”

โœ… ํŠนํžˆ, ๊ธฐ์—…์šฉ ๋ฌธ์„œ์˜ ๊ฒฝ์šฐ ๊ฒฝํ—˜์ด ๋งŽ์ด ํ•„์š”


3๏ธโƒฃ Retriever๋Š” sparse / dense ensemble๋กœ ๊ฐˆ ์ˆ˜๋ฐ–์— ์—†์Œ

โœ… ๋ฆฌํŠธ๋ฆฌ๋ฒ„๋Š” ์ž„๋ฒ ๋”ฉ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ์•™์ƒ๋ธ” ํ•ด์•ผ ๋จ

โœ… ์•™์ƒ๋ธ”๋กœ๋„ ์„ฑ๋Šฅ ํ–ฅ์ƒ์ด ์•ˆ๋œ๋‹ค๋ฉด train ํ•ด์•ผ ํ•จ


4๏ธโƒฃ ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ๋ฌธ์„œ/์งˆ๋ฌธ set ๊ตฌ์„ฑ ๋ฐฉ์‹์€ ์ƒํ™ฉ๋ณ„๋กœ ๋‹ค๋ฆ„

โœ… ์‹ค์ œ ๋ฐ์ดํ„ฐ๋Š” ๊ต‰์žฅํžˆ ๋งŽ๊ณ , ์ง€์ €๋ถ„ํ•˜๊ณ , ์—…๋ฐ์ดํŠธ์— ์ œ์•ฝ์ด ๋งŽ์Œ


5๏ธโƒฃ (ํ˜„์‹ค์ ์œผ๋กœ) Trainable ํ•œ dense retriever ๊ตฌ์กฐ๋Š” ์ œ์•ฝ ์žˆ์„ ์ˆ˜๋ฐ–์— ์—†์Œ

โœ… ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ ์ž์ฒด์— ๋งŽ์€ ์ œ์•ฝ ์žˆ์„ ์ˆ˜๋ฐ–์— ์—†์Œ