Template exampleยถ

(ํ…œํ”Œ๋ฆฟ ์˜ˆ์‹œ)

์ž‘์„ฑ์ž : ์ด๊ฒฝ์ฐฌ
์ž‘์„ฑ์ผ : Sep. 2024

TL;DRยถ

Embedding model์€ ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ(NLP)์™€ ๊ฐ™์€ ์ž‘์—…์—์„œ ๋‹จ์–ด, ๋ฌธ์žฅ, ๋˜๋Š” ๋ฌธ์„œ๋ฅผ ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ ๋ฒกํ„ฐ ๊ณต๊ฐ„์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ์ด ๋ฒกํ„ฐ ํ‘œํ˜„์€ ์ปดํ“จํ„ฐ๊ฐ€ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์น˜์ ์œผ๋กœ ์ดํ•ดํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

Introductionยถ

LLM(Large Language Model)์—์„œ Embedding model์€ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. LLM์€ ๋งค์šฐ ํฐ ์–ธ์–ด ๋ชจ๋ธ์„ ์˜๋ฏธํ•˜๋ฉฐ, ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ฌธ๋งฅ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ž์—ฐ์–ด ํ…์ŠคํŠธ๋ฅผ ์ˆ˜์น˜์  ํ‘œํ˜„(๋ฒกํ„ฐ)์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ Embedding model์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Embedding์˜ ๋ชฉ์ ยถ

ํ…์ŠคํŠธ๋ฅผ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด ๊ฐ ๋‹จ์–ด ๋˜๋Š” ๋ฌธ์žฅ์ด ์ผ์ •ํ•œ ์ฐจ์›์„ ๊ฐ€์ง€๋Š” ์‹ค์ˆ˜ํ˜• ๋ฒกํ„ฐ๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ณ€ํ™˜๋œ ๋ฒกํ„ฐ๋Š” ํ…์ŠคํŠธ ๊ฐ„์˜ ์œ ์‚ฌ์„ฑ์„ ๋น„๊ตํ•˜๊ฑฐ๋‚˜ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ์˜ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ ๋‘ ๋ฌธ์žฅ์ด ์žˆ์„ ๋•Œ:

โ€œ๊ณ ์–‘์ด๋Š” ๊ท€์—ฝ๋‹คโ€

โ€œ๊ฐ•์•„์ง€๋Š” ๊ท€์—ฝ๋‹คโ€

Embedding model์€ ๋‘ ๋ฌธ์žฅ์˜ ์˜๋ฏธ์  ์œ ์‚ฌ์„ฑ์„ ๋ฐ˜์˜ํ•˜์—ฌ ์ด ๋ฌธ์žฅ๋“ค์„ ์„œ๋กœ ๊ฐ€๊นŒ์šด ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— โ€œ์ž๋™์ฐจ๊ฐ€ ๋น ๋ฅด๋‹คโ€์™€ ๊ฐ™์€ ๋ฌธ์žฅ์€ ์ด๋“ค๊ณผ ๋ฉ€๋ฆฌ ๋–จ์–ด์ง„ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ชจ๋ธ์€ ๋ฌธ์žฅ ๊ฐ„์˜ ์˜๋ฏธ์  ๊ด€๊ณ„๋ฅผ ๋ฒกํ„ฐ ๊ณต๊ฐ„์—์„œ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Embedding Model์˜ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ณ ์ •๋œ ์ฐจ์›: Embedding์€ ๊ฐ€๋ณ€์ ์ธ ํฌ๊ธฐ์˜ ํ…์ŠคํŠธ๋ฅผ ๊ณ ์ •๋œ ์ฐจ์›์˜ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ•œ ๋‹จ์–ด๋ฅผ 300์ฐจ์› ๋ฒกํ„ฐ๋กœ ํ‘œํ˜„ํ•˜๊ฑฐ๋‚˜, ํ•œ ๋ฌธ์žฅ์„ 768์ฐจ์› ๋ฒกํ„ฐ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜๋ฏธ์  ์œ ์‚ฌ์„ฑ: Embedding ๋ฒกํ„ฐ๋Š” ๋‹จ์–ด ๋˜๋Š” ๋ฌธ์žฅ์˜ ์˜๋ฏธ์  ์œ ์‚ฌ์„ฑ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์œ ์‚ฌํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„ ๋‹จ์–ด๋“ค์€ ๋ฒกํ„ฐ ๊ณต๊ฐ„์—์„œ ์„œ๋กœ ๊ฐ€๊นŒ์šด ์œ„์น˜์— ์กด์žฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ณ ์ฐจ์› ๊ณต๊ฐ„: Embedding ๋ฒกํ„ฐ๋Š” ๊ณ ์ฐจ์› ๊ณต๊ฐ„์—์„œ ๋ฌธ๋งฅ์  ์ •๋ณด, ์˜๋ฏธ์  ์ •๋ณด๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฒกํ„ฐ ๊ณต๊ฐ„์—์„œ ๋ฒกํ„ฐ ๊ฐ„์˜ ๊ฑฐ๋ฆฌ ๋˜๋Š” ๋ฐฉํ–ฅ์„ ์ด์šฉํ•ด ๋‹จ์–ด ๊ฐ„ ๋˜๋Š” ๋ฌธ์žฅ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ€ํ‘œ์ ์ธ Embedding ๋ชจ๋ธยถ

Word2Vec: Word2Vec์€ ๊ฐœ๋ณ„ ๋‹จ์–ด๋ฅผ ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ์ด ๋ชจ๋ธ์€ ๋‹จ์–ด์˜ ์˜๋ฏธ์  ์œ ์‚ฌ์„ฑ์„ ๋ฐ˜์˜ํ•˜์—ฌ, ๋น„์Šทํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„ ๋‹จ์–ด๋“ค์„ ๋ฒกํ„ฐ ๊ณต๊ฐ„์—์„œ ๊ฐ€๊น๊ฒŒ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.

GloVe: GloVe๋Š” Word2Vec๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ, ๋‹จ์–ด์˜ ๋™์‹œ ๋“ฑ์žฅ ํ–‰๋ ฌ(co-occurrence matrix)์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹จ์–ด ๊ฐ„ ๊ด€๊ณ„๋ฅผ ํ•™์Šตํ•˜๋Š” ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. BERT Embeddings:

BERT๋Š” ๋ฌธ๋งฅ์„ ๊ณ ๋ คํ•˜์—ฌ ๋‹จ์–ด๋ฅผ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ์ด์ „์˜ Embedding ๋ชจ๋ธ๊ณผ๋Š” ๋‹ฌ๋ฆฌ, BERT๋Š” ๋‹จ์–ด์˜ ๋ฌธ๋งฅ์  ์˜๋ฏธ๋ฅผ ๋ฐ˜์˜ํ•œ ๋ฒกํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋ฏ€๋กœ, ๋™์ผํ•œ ๋‹จ์–ด๋ผ๋„ ๋‹ค๋ฅธ ๋ฌธ๋งฅ์—์„œ๋Š” ๋‹ค๋ฅธ ๋ฒกํ„ฐ๋กœ ํ‘œํ˜„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Sentence-BERT (SBERT):

๋ฌธ์žฅ์„ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ชจ๋ธ๋กœ, ํŠนํžˆ ๋ฌธ์žฅ ๊ฐ„์˜ ์œ ์‚ฌ์„ฑ์„ ์ธก์ •ํ•˜๊ฑฐ๋‚˜ ์˜๋ฏธ์  ๋น„๊ต๋ฅผ ํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

LLM์—์„œ Embedding์ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•ยถ

์ž…๋ ฅ์œผ๋กœ์„œ์˜ Embedding: LLM์— ์ž…๋ ฅ๋˜๋Š” ํ…์ŠคํŠธ๋Š” ๋จผ์ € Embedding model์„ ํ†ตํ•ด ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜๋œ ํ›„ LLM์˜ ์ฒซ ๋ฒˆ์งธ ๋ ˆ์ด์–ด์— ์ „๋‹ฌ๋˜์–ด ์ถ”๊ฐ€์ ์ธ ์ฒ˜๋ฆฌ(์˜ˆ: ์–ดํ…์…˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜)๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค.

์‘์šฉ: Embedding์€ ๋ฌธ์„œ ๊ฒ€์ƒ‰, ์ถ”์ฒœ ์‹œ์Šคํ…œ, ๋ฌธ์žฅ ์œ ์‚ฌ๋„ ์ธก์ •, ์ž์—ฐ์–ด ์ƒ์„ฑ ๋“ฑ์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฒ€์ƒ‰ ์—”์ง„์€ ๋ฌธ์„œ์™€ ์ฟผ๋ฆฌ ๊ฐ„์˜ ์œ ์‚ฌ์„ฑ์„ ๋ฒกํ„ฐ ๊ณต๊ฐ„์—์„œ ๊ณ„์‚ฐํ•˜์—ฌ ๊ด€๋ จ ๋ฌธ์„œ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

OpenAI์˜ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธยถ

OpenAI๋Š” 3์„ธ๋Œ€ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต ๋ชจ๋ธ ID์— โ€˜-3โ€™์„ ๋ถ™์—ฌ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ธํ’‹ ํ† ํฐ๋‹น ๊ฐ€๊ฒฉ์€ ์•„๋ž˜ ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Untitled

# 1๋ถ€ํ„ฐ 5๊นŒ์ง€์˜ ํ•ฉ์„ ๊ณ„์‚ฐํ•˜๋Š” ์ฝ”๋“œ
total = 0
for i in range(1, 6):
    total += i
print("1๋ถ€ํ„ฐ 5๊นŒ์ง€์˜ ํ•ฉ์€:", total)

Referencesยถ

Title

์„ค๋ช…

๋น„๊ณ 

(๋ณด์ถฉ์ˆ˜์—…) 1.5. LLM์—์„œ ์ž„๋ฒ ๋”ฉ(embedding) ์ด๋ž€?

์ž„๋ฒ ๋”ฉ์— ๋Œ€ํ•œ ๊ธฐ์ดˆ ๊ฐœ๋… ์„ค๋ช…ํ•ด์ฃผ๋Š” 5๋ถ„์งœ๋ฆฌ ์˜์ƒ

๋žญ์ฒด์ธ์˜ ํ•ต์‹ฌ, Retrieval-Text Embeddings

๋ชจ๋‘์˜ AI์—์„œ ์ œ๊ณตํ•˜๋Š” Retrieval ๊ฐ•์˜์˜ Text embedding ํŒŒํŠธ