โ† ์ฃผ์ฐจ ๋ชฉ๋ก

Week 13. Transformer์™€ LLM

RNN์„ ์™„์ „ํžˆ ๋ฒ„๋ฆฌ๊ณ  ์–ดํ…์…˜๋งŒ์œผ๋กœ ๋งŒ๋“  ํŠธ๋žœ์Šคํฌ๋จธ. ๊ทธ ์œ„์—์„œ ์ž๋ผ๋‚œ GPTยทBERTยทChatGPT ๊ฐ€์กฑ ์ด์•ผ๊ธฐ.

์ด๋ฒˆ ์ฃผ์— ๋ฐฐ์šฐ๋Š” ๊ฒƒ

  1. "Attention Is All You Need" โ€” 2017๋…„์˜ ์ถฉ๊ฒฉ
  2. Self-Attention์˜ QยทKยทV
  3. Multi-Head Attention
  4. ์œ„์น˜ ์ธ์ฝ”๋”ฉ
  5. BERT, GPT, ๊ทธ๋ฆฌ๊ณ  LLM
  6. ์ƒ˜ํ”Œ๋ง๊ณผ ์˜จ๋„

1. RNN์„ ๋ฒ„๋ฆฌ๊ณ  ์–ดํ…์…˜๋งŒ โ€” 2017๋…„์˜ ์ถฉ๊ฒฉ

2017๋…„ 6์›”, ๊ตฌ๊ธ€ Brain์˜ Vaswani ๋“ฑ 8๋ช…์ด ๋ฐœํ‘œํ•œ ๋…ผ๋ฌธ "Attention Is All You Need"๋Š” ๋”ฅ๋Ÿฌ๋‹ ์—ญ์‚ฌ์ƒ ๊ฐ€์žฅ ํฐ ํŒŒ์žฅ์„ ์ผ์œผํ‚จ ๋…ผ๋ฌธ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ œ๋ชฉ ๊ทธ๋Œ€๋กœ "์–ดํ…์…˜๋งŒ ์žˆ์œผ๋ฉด ์ถฉ๋ถ„ํ•˜๋‹ค" โ€” RNN๋„, CNN๋„, ์•„๋ฌด๊ฒƒ๋„ ํ•„์š” ์—†๊ณ  W12 ยง4 ์–ดํ…์…˜์—์„œ ๋ณธ self-attention๊ณผ ๋ช‡ ๊ฐœ์˜ MLP๋งŒ์œผ๋กœ ์‹œํ€€์Šค๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ฃผ์žฅ์„ ๋‹ด๊ณ , ์ด๋ฅผ ์‹ค์ œ๋กœ ๊ตฌํ˜„ํ•œ ๋ชจ๋ธ์ด ๋ฐ”๋กœ Transformer์ž…๋‹ˆ๋‹ค.

์™œ RNN์„ ๋ฒ„๋ฆฌ๋ ค ํ–ˆ์„๊นŒ์š”? ์„ธ ๊ฐ€์ง€ ํ•ต์‹ฌ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค:

Transformer๋Š” ์ด ๋ชจ๋‘๋ฅผ ํ•œ ๋ฒˆ์— ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. Self-attention์—์„œ๋Š”:

๋Œ€๊ฐ€๊ฐ€ ์žˆ๊ธด ํ•ฉ๋‹ˆ๋‹ค โ€” ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ์‹œํ€€์Šค ๊ธธ์ด์— $O(n^2)$๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ GPU ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋น ๋ฅด๊ฒŒ ์ปค์ง€๋ฉด์„œ ์ด ํ•œ๊ณ„๋Š” ์ ์  ๋œ ์ค‘์š”ํ•ด์กŒ๊ณ , ์ตœ๊ทผ์—” Flash Attention, sparse attention ๊ฐ™์€ ๊ธฐ๋ฒ•์œผ๋กœ ๋” ์™„ํ™”๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

2. Self-Attention โ€” QยทKยทV ์‚ผ๊ฐ๊ด€๊ณ„

Self-attention์€ "๊ฐ ํ† ํฐ์ด ๋‚˜๋จธ์ง€ ๋ชจ๋“  ํ† ํฐ์„ ์ฐธ์กฐํ•œ๋‹ค"๋Š” ์ƒ๊ฐ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌํ˜„ ๋ฐฉ์‹์€ ์˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํ† ํฐ ํ‘œํ˜„ $x_i$๋ฅผ ์„ธ ๊ฐœ์˜ ํ•™์Šต ๊ฐ€๋Šฅํ•œ ํ–‰๋ ฌ๋กœ ํˆฌ์˜ํ•ด ์„ธ ๊ฐœ์˜ ๋ฒกํ„ฐ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค:

$$ \mathbf q_i = W^Q x_i, \quad \mathbf k_i = W^K x_i, \quad \mathbf v_i = W^V x_i $$

๋น„์œ ํ•˜์ž๋ฉด, ๋„์„œ๊ด€์—์„œ ์ฑ…์„ ์ฐพ๋Š” ์žฅ๋ฉด๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ "๋จธ์‹ ๋Ÿฌ๋‹์— ๊ด€ํ•œ ์ฑ…์„ ์ฐพ๋Š”๋‹ค"(Query)๊ณ  ํ•˜๋ฉด, ๊ฐ ์ฑ…์˜ ๊ฒ‰ํ‘œ์ง€์— ์“ฐ์ธ ์ œ๋ชฉยทํ‚ค์›Œ๋“œ(Key)์™€ ๋น„๊ตํ•ด ์ผ์น˜ ์ ์ˆ˜๋ฅผ ๋งค๊ธฐ๊ณ , ๊ฐ€์žฅ ์ž˜ ๋งž๋Š” ์ฑ…์˜ ์‹ค์ œ ๋‚ด์šฉ(Value)์„ ๊ฐ€์ ธ๋‹ค ์ฝ๋Š” ๊ฒƒ. Self-attention์€ ์ด๊ฑธ ํ•œ ๋ฒˆ์— ๋ชจ๋“  ์ฟผ๋ฆฌ์™€ ๋ชจ๋“  ํ‚ค์— ๋Œ€ํ•ด ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์‹์œผ๋กœ๋Š” ๋†€๋ž๋„๋ก ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค:

$$ \text{Attention}(Q, K, V) = \text{softmax}\!\left(\frac{Q K^\top}{\sqrt{d_k}}\right) V $$

ํ•ด์ฒดํ•ด์„œ ์ฝ์–ด๋ด…์‹œ๋‹ค:

  1. $QK^\top$ โ€” ๋ชจ๋“  ์ฟผ๋ฆฌ์™€ ๋ชจ๋“  ํ‚ค์˜ ๋‚ด์ . ๊ฒฐ๊ณผ๋Š” $n \times n$ "์œ ์‚ฌ๋„ ํ–‰๋ ฌ". ์…€ $(i, j)$๋Š” "ํ† ํฐ $i$๊ฐ€ ํ† ํฐ $j$์— ์–ผ๋งˆ๋‚˜ ๊ด€์‹ฌ ์žˆ๋Š”๊ฐ€".
  2. $\div \sqrt{d_k}$ โ€” ํ‚ค ์ฐจ์›์˜ ์ œ๊ณฑ๊ทผ์œผ๋กœ ๋‚˜๋ˆ”. ์™œ ์ด๊ฒŒ ํ•„์š”ํ•œ์ง€๋Š” ์•„๋ž˜ ยง2.1์—์„œ.
  3. $\text{softmax}$ โ€” ๊ฐ ํ–‰์„ ํ™•๋ฅ  ๋ถ„ํฌ๋กœ ์ •๊ทœํ™”. ํ† ํฐ $i$๊ฐ€ ๋‹ค๋ฅธ ํ† ํฐ๋“ค์— ์–ผ๋งˆ๋‚˜ ์ฃผ์˜๋ฅผ ์ค„์ง€ ํ•ฉ์ด 1์ด ๋˜๊ฒŒ.
  4. $\cdot V$ โ€” ์ด ๊ฐ€์ค‘์น˜๋กœ Value ๋ฒกํ„ฐ๋“ค์„ ๊ฐ€์ค‘ ํ‰๊ท . ๊ฒฐ๊ณผ๋Š” ํ† ํฐ $i$์˜ ์ƒˆ ํ‘œํ˜„.

์ด ํ•œ ์ค„์ด Transformer์˜ ์ „๋ถ€์ด์ž ์ตœ์‹  LLM์˜ ์‹ฌ์žฅ์ž…๋‹ˆ๋‹ค.

2.1 ์™œ $\sqrt{d_k}$๋กœ ๋‚˜๋ˆ„๋Š”๊ฐ€

์ž‘์€ ๋””ํ…Œ์ผ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ฐจ์› $d_k$๊ฐ€ ํฌ๋ฉด $Q$์™€ $K$์˜ ๋‚ด์ ์ด ํฐ ๋ถ„์‚ฐ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค (๊ฐ ์›์†Œ์˜ ๋ถ„์‚ฐ์ด $O(d_k)$). softmax์˜ ์ž…๋ ฅ์ด ๋„ˆ๋ฌด ํฌ๋ฉด ํ•œ ๊ฐ’์ด ์ง€๋ฐฐํ•ด ๊ทธ๋ž˜๋””์–ธํŠธ๊ฐ€ ๊ฑฐ์˜ 0์ด ๋ฉ๋‹ˆ๋‹ค (softmax๊ฐ€ "๋‚ ์นด๋กœ์›Œ"์ ธ์„œ one-hot์— ๊ฐ€๊นŒ์›Œ์ง โ†’ ํ•™์Šต ์‹ ํ˜ธ ์ฆ๋ฐœ). $\sqrt{d_k}$๋กœ ๋‚˜๋ˆ„๋ฉด ๋‚ด์ ์˜ ๋ถ„์‚ฐ์ด $O(1)$๋กœ ์œ ์ง€๋˜์–ด softmax๊ฐ€ ๋ถ€๋“œ๋Ÿฌ์šด ๋ถ„ํฌ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ๋ž˜๋””์–ธํŠธ๊ฐ€ ๊ฑด๊ฐ•ํ•˜๊ฒŒ ํ๋ฆ…๋‹ˆ๋‹ค. ์ž‘์€ ์ˆ˜ํ•™์  ์„ธ๋ถ€์ง€๋งŒ ์ด ํ•œ ์ˆ˜ ์—†์œผ๋ฉด Transformer๋Š” ํ•™์Šต์ด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

2.2 ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ๋กœ QยทKยทV ๊ฐ ์žก๊ธฐ

"The cat sat on the mat"๋ผ๋Š” 6๋‹จ์–ด ๋ฌธ์žฅ์„ ์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค. ๊ฐ ๋‹จ์–ด๊ฐ€ 3์ฐจ์› ์ž„๋ฒ ๋”ฉ์ด๋ผ๊ณ  ์น˜๊ณ , "cat"์ด๋ผ๋Š” ๋‹จ์–ด์˜ ํ‘œํ˜„์ด self-attention์„ ํ†ตํ•ด ์–ด๋–ป๊ฒŒ ๊ฐฑ์‹ ๋˜๋Š”์ง€ ์ƒ์ƒํ•ด๋ด…์‹œ๋‹ค. "cat"์˜ Query๋Š” "๋‚˜๋Š” ๋™๋ฌผ์ด๊ณ , ๋‚ด ํ–‰๋™๊ณผ ์œ„์น˜๊ฐ€ ๊ถ๊ธˆํ•ด"๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋‹จ์–ด์˜ Key๋Š” "sat: ๋™์ž‘์ด์•ผ", "mat: ์žฅ์†Œ์•ผ" ๋“ฑ. ๋‚ด์ ํ•˜๋ฉด "sat"์™€ "mat"์ด ๋†’์€ ์ ์ˆ˜๋ฅผ ๋ฐ›๊ณ , softmax๋กœ ๊ฐ€์ค‘์น˜๊ฐ€ ๋˜์–ด ๊ทธ๋“ค์˜ Value๊ฐ€ "cat"์˜ ์ƒˆ ํ‘œํ˜„์— ์„ž์ž…๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ "cat"์€ ์ด์ œ "์ž๊ธฐ ์ž์‹  + ์ž๊ธฐ๊ฐ€ ํ•œ ํ–‰๋™(sat) + ์ž๊ธฐ๊ฐ€ ์žˆ๋Š” ๊ณณ(mat)"์˜ ํ’๋ถ€ํ•œ ์˜๋ฏธ๋ฅผ ๋‹ด์€ ์ƒˆ ๋ฒกํ„ฐ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์„ ๋ชจ๋“  ํ† ํฐ์ด ๋ณ‘๋ ฌ๋กœ ์ˆ˜ํ–‰.

๐ŸŽฎ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ: Self-Attention ํ–‰๋ ฌ

5๋‹จ์–ด ๋ฌธ์žฅ์˜ QยทK^T ํ–‰๋ ฌ์„ ์‹œ๊ฐํ™”ํ•ฉ๋‹ˆ๋‹ค. ํ–‰์€ query, ์—ด์€ key. ๊ฐ ์…€์˜ ์ƒ‰์€ ๊ทธ ๋‘ ๋‹จ์–ด์˜ ์–ด์šธ๋ฆผ ์ ์ˆ˜์ž…๋‹ˆ๋‹ค.

3. Multi-Head Attention โ€” ์—ฌ๋Ÿฌ ์‹œ์ ์˜ ์•™์ƒ๋ธ”

ํ•œ ๋ฒˆ์˜ self-attention์€ ํ•œ ์ข…๋ฅ˜์˜ ๊ด€๊ณ„๋งŒ ํฌ์ฐฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์–ธ์–ด์—๋Š” ๋™์‹œ์— ์—ฌ๋Ÿฌ ์ธต์œ„์˜ ๊ด€๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค:

ํ•ด๋ฒ•์€ ์ง๊ด€์ ์ž…๋‹ˆ๋‹ค โ€” ์—ฌ๋Ÿฌ ๋ฒˆ์˜ ์–ดํ…์…˜์„ ๋™์‹œ์— ๋Œ๋ฆฌ์ž. ์ด๋ฅผ ๋ฉ€ํ‹ฐํ—ค๋“œ ์–ดํ…์…˜(Multi-Head Attention)์ด๋ผ ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ๋Š” QยทKยทV๋ฅผ $h$๊ฐœ์˜ ์ž‘์€ ๋ถ€๋ถ„ ๊ณต๊ฐ„์œผ๋กœ ์ชผ๊ฐœ๊ณ  (์˜ˆ: $d = 512, h = 8$์ด๋ฉด ๊ฐ ํ—ค๋“œ๋Š” 64์ฐจ์›), ๊ฐ "ํ—ค๋“œ"๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ attention์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค:

$$ \text{head}_i = \text{Attention}(Q W_i^Q, K W_i^K, V W_i^V) $$ $$ \text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \dots, \text{head}_h) W^O $$

๊ฐ ํ—ค๋“œ๋Š” ๋‹ค๋ฅธ ํˆฌ์˜ ํ–‰๋ ฌ์„ ํ•™์Šตํ•˜๋ฏ€๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ๊ด€๊ณ„์— ์ง‘์ค‘ํ•˜๋„๋ก ์ €์ ˆ๋กœ ์ „๋ฌธํ™”๋ฉ๋‹ˆ๋‹ค. BERT ๊ฐ™์€ ํ›ˆ๋ จ๋œ ๋ชจ๋ธ์˜ ํ—ค๋“œ๋ฅผ ๋ถ„์„ํ•ด๋ณด๋ฉด, ์‹ค์ œ๋กœ ์–ด๋–ค ํ—ค๋“œ๋Š” ์ฃผ์–ด-๋™์‚ฌ ๊ด€๊ณ„๋ฅผ, ์–ด๋–ค ํ—ค๋“œ๋Š” ๋Œ€๋ช…์‚ฌ-์„ ํ–‰์‚ฌ ๊ด€๊ณ„๋ฅผ ํ•™์Šตํ•œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ "attention head specialization"์ด๋ผ ๋ถ€๋ฅด๊ณ , Transformer์˜ ํ•ด์„ ๊ฐ€๋Šฅ์„ฑ ์—ฐ๊ตฌ์˜ ์ฃผ์š” ์ฃผ์ œ์ž…๋‹ˆ๋‹ค.

๊ณ„์‚ฐ๋Ÿ‰์€ ๊ฐ™์€๋ฐ (ํ—ค๋“œ๊ฐ€ $h$๋ฐฐ ๋งŽ์ง€๋งŒ ๊ฐ ์ฐจ์›์€ $1/h$) ํ‘œํ˜„๋ ฅ์€ ํ›จ์”ฌ ํ’๋ถ€ํ•ด์ง‘๋‹ˆ๋‹ค โ€” ์‚ฌ์‹ค์ƒ ๊ณต์งœ ์ ์‹ฌ์ž…๋‹ˆ๋‹ค.

๐ŸŽฎ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ: ๋ฉ€ํ‹ฐํ—ค๋“œ ๋ถ„ํ• 

$d_{\text{model}}=64$ ์ฐจ์›์ด 8๊ฐœ ํ—ค๋“œ๋กœ ๋‚˜๋‰˜๋ฉด ํ—ค๋“œ๋‹น 8์ฐจ์›์ž…๋‹ˆ๋‹ค. ํ—ค๋“œ ์ˆ˜๋ฅผ ๋ฐ”๊พธ๋ฉฐ ๋ถ„ํ•  ๋ชจ์Šต์„ ๋ณด์„ธ์š”.

4. ์œ„์น˜ ์ธ์ฝ”๋”ฉ โ€” ์ˆœ์„œ๋ฅผ ์ฃผ์ž…ํ•˜๋Š” ํŠธ๋ฆญ

Self-attention์˜ ์•„๋ฆ„๋‹ค์šด ์ ์€ ์œ„์น˜์— ๋Œ€ํ•œ ํŽธํ–ฅ์ด ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ํ† ํฐ์ด ์–ด๋””์— ์žˆ๋“  ์ƒํ˜ธ์ž‘์šฉ ๋ฐฉ์‹์€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด๊ฒŒ ๋ฌธ์ œ๋„ ๋ฉ๋‹ˆ๋‹ค โ€” "์ฒ ์ˆ˜๊ฐ€ ์˜ํฌ๋ฅผ ๋•Œ๋ ธ๋‹ค"์™€ "์˜ํฌ๊ฐ€ ์ฒ ์ˆ˜๋ฅผ ๋•Œ๋ ธ๋‹ค"๋Š” ๋‹จ์–ด ์ง‘ํ•ฉ์ด ๊ฐ™์ง€๋งŒ ์˜๋ฏธ๊ฐ€ ์™„์ „ํžˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ˆœ์„œ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค!

ํ•ด๋ฒ•์€ ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค: ๊ฐ ์œ„์น˜์— ๊ณ ์œ ํ•œ ๋ฒกํ„ฐ๋ฅผ ๋”ํ•ด์ฃผ๊ธฐ. ์ž…๋ ฅ ์ž„๋ฒ ๋”ฉ $\mathbf e_i$์— ์œ„์น˜ ๋ฒกํ„ฐ $\mathbf{PE}_i$๋ฅผ ๋”ํ•ด $\mathbf x_i = \mathbf e_i + \mathbf{PE}_i$๋ฅผ ๋งŒ๋“ค์–ด Transformer์— ๋„ฃ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ชจ๋ธ์€ "๊ฐ™์€ ๋‹จ์–ด๋ผ๋„ 1๋ฒˆ์งธ ์œ„์น˜์™€ 10๋ฒˆ์งธ ์œ„์น˜์˜ ํ‘œํ˜„์ด ๋‹ค๋ฆ„"์„ ์•Œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์œ„์น˜ ์ธ์ฝ”๋”ฉ์„ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค๊นŒ์š”? ์›๋…ผ๋ฌธ์€ ์‚ฌ์ธยท์ฝ”์‚ฌ์ธ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค:

$$ PE_{(pos,2i)} = \sin\!\left(\frac{pos}{10000^{2i/d}}\right), \quad PE_{(pos,2i+1)} = \cos\!\left(\frac{pos}{10000^{2i/d}}\right) $$

์ง๊ด€์ ์œผ๋กœ ๋ณด๋ฉด, ๊ฐ ์ฐจ์›๋งˆ๋‹ค ์„œ๋กœ ๋‹ค๋ฅธ ์ฃผํŒŒ์ˆ˜์˜ ์‚ฌ์ธ/์ฝ”์‚ฌ์ธ ํŒŒ๋™์„ ๋‘์–ด ๊ฐ ์œ„์น˜์— ๊ณ ์œ ํ•œ "์ง€๋ฌธ"์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋‚ฎ์€ ์ฐจ์›์€ ๋น ๋ฅธ ์ฃผ๊ธฐ(์ด์›ƒ ์œ„์น˜ ๊ตฌ๋ณ„), ๋†’์€ ์ฐจ์›์€ ๋А๋ฆฐ ์ฃผ๊ธฐ(๋ฉ€๋ฆฌ ๋–จ์–ด์ง„ ์œ„์น˜ ๊ตฌ๋ณ„). ์ด ์„ ํƒ์˜ ์žฅ์ :

ํ˜„๋Œ€ ๋ณ€ํ˜•์—๋Š” ํ•™์Šต ๊ฐ€๋Šฅํ•œ ์œ„์น˜ ์ž„๋ฒ ๋”ฉ (BERT), ์ƒ๋Œ€ ์œ„์น˜ ์ธ์ฝ”๋”ฉ (T5, Transformer-XL), RoPE (Rotary Position Embedding) (LLaMA) ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ RoPE๋Š” ์ตœ๊ทผ ๋Œ€๋ถ€๋ถ„์˜ ์˜คํ”ˆ์†Œ์Šค LLM์˜ ํ‘œ์ค€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ดˆ๋ณด์ž ์˜คํ•ด โ€” "์œ„์น˜ ์ธ์ฝ”๋”ฉ์ด ๋‹จ์ˆœํžˆ 1, 2, 3, 4๋ฅผ ๋”ํ•˜๋ฉด ์•ˆ ๋˜๋‚˜?" ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ฒซ ์ฐจ์›๋งŒ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๊ณ  ์ฐจ์›๋“ค์˜ ์Šค์ผ€์ผ์ด ๋งž์ง€ ์•Š์•„ ์–ดํ…์…˜์ด ์™œ๊ณก๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์ธ/์ฝ”์‚ฌ์ธ ๋ฐฉ์‹์€ ๋ชจ๋“  ์ฐจ์›์— ๊ฑธ์ณ ๊ท ํ˜• ์žˆ๋Š” ์‹ ํ˜ธ๋ฅผ ๋ถ„ํฌ์‹œํ‚ต๋‹ˆ๋‹ค.

5. BERT, GPT, ๊ทธ๋ฆฌ๊ณ  LLM โ€” Transformer์˜ ๋‘ ์–ผ๊ตด

๋ชจ๋ธ๊ตฌ์กฐํ•™์Šต ๋ฐฉ์‹์šฉ๋„
BERT (2018)์ธ์ฝ”๋” only๋งˆ์Šคํ‚น๋œ ๋‹จ์–ด ๋งžํžˆ๊ธฐ์ดํ•ด(๋ถ„๋ฅ˜, QA)
GPT (2018~)๋””์ฝ”๋” only๋‹ค์Œ ๋‹จ์–ด ๋งžํžˆ๊ธฐ์ƒ์„ฑ
T5 (2019)์ธ์ฝ”๋”-๋””์ฝ”๋”๋ชจ๋“  NLP๋ฅผ ํ…์ŠคํŠธโ†’ํ…์ŠคํŠธ๋กœ๋ฒ”์šฉ
ChatGPT (2022)GPT + RLHF์‚ฌ๋žŒ ํ”ผ๋“œ๋ฐฑ ๊ฐ•ํ™”ํ•™์Šต๋Œ€ํ™”

5.1 BERT vs GPT โ€” ๊ฐ™์€ ๋ธ”๋ก, ๋‹ค๋ฅธ ๋ชฉ์ 

๋‘˜ ๋‹ค Transformer ๋ธ”๋ก์„ ์Œ“์€ ๋ชจ๋ธ์ด์ง€๋งŒ ์ฒ ํ•™์ด ์ •๋ฐ˜๋Œ€์ž…๋‹ˆ๋‹ค.

BERT (Bidirectional Encoder Representations from Transformers, 2018)๋Š” ์ธ์ฝ”๋” ๋ธ”๋ก๋งŒ ์”๋‹ˆ๋‹ค. ํ›ˆ๋ จ ๋ฐฉ๋ฒ•: ์ž…๋ ฅ์˜ ์•ฝ 15% ๋‹จ์–ด๋ฅผ ๋งˆ์Šคํ‚นํ•˜๊ณ  ๊ทธ ๋‹จ์–ด๋ฅผ ๋งž์ถ”๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค (Masked Language Model). ์–‘๋ฐฉํ–ฅ(์•ž๋’ค ๋ชจ๋‘) ์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ "์ดํ•ด"์— ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค โ€” ๊ฐ์„ฑ ๋ถ„์„, ๋ฌธ์žฅ ๋ถ„๋ฅ˜, ์งˆ๋ฌธ ์‘๋‹ต, ๊ฐœ์ฒด๋ช… ์ธ์‹์—์„œ 2018๋…„ ๋‹น์‹œ ๊ฑฐ์˜ ๋ชจ๋“  ๋ฒค์น˜๋งˆํฌ๋ฅผ ๊ฐฑ์‹ ํ–ˆ์Šต๋‹ˆ๋‹ค.

GPT (Generative Pre-trained Transformer, 2018~)๋Š” ๋””์ฝ”๋” ๋ธ”๋ก๋งŒ ์”๋‹ˆ๋‹ค (์ธ์ฝ”๋”-๋””์ฝ”๋” ์‚ฌ์ด cross-attention ์ œ๊ฑฐ). ํ›ˆ๋ จ ๋ฐฉ๋ฒ•: ์•ž ๋‹จ์–ด๋“ค์„ ๋ณด๊ณ  ๋‹ค์Œ ๋‹จ์–ด๋ฅผ ๋งž์ถ”๋Š” ๋‹จ์ˆœํ•œ autoregressive language modeling. ๋‹จ๋ฐฉํ–ฅ(์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ)์ด๋ผ "์ƒ์„ฑ"์— ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค. ์™ผ์ชฝ ๋ฌธ๋งฅ์œผ๋กœ๋ถ€ํ„ฐ ํ…์ŠคํŠธ๋ฅผ ์ด์–ด ์“ฐ๋Š” ๊ฒƒ์ด ๊ธฐ๋ณธ ๋Šฅ๋ ฅ.

์ฒ˜์Œ์—” BERT๊ฐ€ ํ•™๊ณ„์—์„œ ์šฐ์„ธํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ 2020๋…„ GPT-3๊ฐ€ 1750์–ต ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ "few-shot learning"์„ ์‹œ์—ฐํ•˜๋ฉด์„œ ๋ถ„์œ„๊ธฐ๊ฐ€ ์—ญ์ „๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กฌํ”„ํŠธ์— ๋ช‡ ๊ฐœ์˜ ์˜ˆ์‹œ๋งŒ ์ฃผ๋ฉด ์žฌํ›ˆ๋ จ ์—†์ด ์ƒˆ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ์ž…์ฆ๋˜์—ˆ๊ณ , ์ด๋Š” BERT๊ฐ€ ์žฌํ›ˆ๋ จ(fine-tuning)์„ ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒƒ๊ณผ ๋Œ€์กฐ๋ฉ๋‹ˆ๋‹ค. 2022๋…„ ChatGPT๊ฐ€ ๋Œ€์ค‘์—๊ฒŒ ๊ณต๊ฐœ๋˜๋ฉด์„œ GPT ๊ณ„์—ด์ด NLP์˜ ํ‘œ์ค€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

5.2 ์Šค์ผ€์ผ๋ง ๋ฒ•์น™ (Scaling Laws)

OpenAI์˜ 2020๋…„ ๋…ผ๋ฌธ "Scaling Laws for Neural Language Models"๋Š” ์ถฉ๊ฒฉ์ ์ธ ๊ด€์ฐฐ์„ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ ํฌ๊ธฐ $N$, ๋ฐ์ดํ„ฐ์…‹ ํฌ๊ธฐ $D$, ๊ณ„์‚ฐ๋Ÿ‰ $C$๊ฐ€ ์ปค์งˆ ๋•Œ ์†์‹ค์ด ๋‹ค์Œ ๋ฉฑ๋ฒ•์น™(power law)์„ ๋”ฐ๋ฅธ๋‹ค๋Š” ๊ฒƒ:

$$ L(N) \propto N^{-0.076}, \quad L(D) \propto D^{-0.095}, \quad L(C) \propto C^{-0.050} $$

์ด๋Š” "๋ชจ๋ธ์„ ๊ณ„์† ํฌ๊ฒŒ ๋งŒ๋“ค๋ฉด ์„ฑ๋Šฅ์ด ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ฒŒ ์˜ฌ๋ผ๊ฐ„๋‹ค"๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ๋กœ ์ด ๋ฒ•์น™์„ ๋”ฐ๋ผ GPT-1 โ†’ GPT-2 โ†’ GPT-3 โ†’ GPT-4๋กœ ์Šค์ผ€์ผ์„ ํ‚ค์šฐ์ž ์„ฑ๋Šฅ์ด ๊ณ„์† ์˜ฌ๋ž์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ ํฌ๊ธฐ๋Š” GPT-1์˜ 1.1์–ต ๊ฐœ์—์„œ GPT-3์˜ 1750์–ต ๊ฐœ, GPT-4์˜ ์ถ”์ • 1์กฐ ๊ฐœ ์ด์ƒ๊นŒ์ง€ ํญ๋ฐœ์ ์œผ๋กœ ์ปค์กŒ๊ณ , ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ๋„ ์ˆ˜์‹ญ GB์—์„œ ์ˆ˜ TB๋กœ.

๋” ๋†€๋ผ์šด ๊ฒƒ์€ ์ฐฝ๋ฐœ์  ๋Šฅ๋ ฅ(emergent abilities)์ž…๋‹ˆ๋‹ค. ์ž‘์€ ๋ชจ๋ธ์—์„œ๋Š” ์ „ํ˜€ ๋ณด์ด์ง€ ์•Š๋˜ ๋Šฅ๋ ฅ๋“ค โ€” few-shot ํ•™์Šต, ์‚ฐ์ˆ  ๊ณ„์‚ฐ, ์ถ”๋ก , ์ฝ”๋“œ ์ž‘์„ฑ โ€” ์ด ํŠน์ • ๊ทœ๋ชจ๋ฅผ ๋„˜์–ด๊ฐ€๋ฉด ๊ฐ‘์ž๊ธฐ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋‹จ์ˆœํ•œ ์ ์ง„์  ๊ฐœ์„ ์ด ์•„๋‹ˆ๋ผ ์งˆ์  ์ „ํ™˜์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์™œ ์ด๋Ÿฐ ํ˜„์ƒ์ด ์ผ์–ด๋‚˜๋Š”์ง€๋Š” ์•„์ง ์™„์ „ํžˆ ์„ค๋ช…๋˜์ง€ ์•Š์•˜๊ณ , ํ˜„๋Œ€ AI ์—ฐ๊ตฌ์˜ ํฐ ๋ฏธ์Šคํ„ฐ๋ฆฌ์ž…๋‹ˆ๋‹ค.

6. ์ƒ˜ํ”Œ๋ง๊ณผ ์˜จ๋„

LLM์€ ๋‹ค์Œ ๋‹จ์–ด์˜ ํ™•๋ฅ  ๋ถ„ํฌ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ณ ๋ฅด๋Š” ๋ฐฉ๋ฒ•:

๐ŸŽฎ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ: ์˜จ๋„๊ฐ€ ์ถœ๋ ฅ ๋ถ„ํฌ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ

5๊ฐœ ํ›„๋ณด ๋‹จ์–ด์˜ ์ ์ˆ˜๋ฅผ ๋ฐ›์•„ ์˜จ๋„์— ๋”ฐ๋ผ ํ™•๋ฅ  ๋ถ„ํฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š”์ง€ ๋ด…๋‹ˆ๋‹ค. ์˜จ๋„๊ฐ€ 0์— ๊ฐ€๊นŒ์šฐ๋ฉด ํ•œ ๋‹จ์–ด๋งŒ ์‚ด์•„๋‚จ๊ณ , ํฌ๋ฉด ๋ชจ๋‘ ๋น„์Šทํ•ด์ง‘๋‹ˆ๋‹ค.

7. ์ฝ”๋“œ ์˜ˆ์ œ (Hugging Face)

from transformers import AutoTokenizer, AutoModelForCausalLM

tok = AutoTokenizer.from_pretrained('gpt2')
model = AutoModelForCausalLM.from_pretrained('gpt2')

inputs = tok('Once upon a time', return_tensors='pt')
out = model.generate(**inputs, max_length=50, temperature=0.8,
                     top_p=0.9, do_sample=True)
print(tok.decode(out[0]))

8. ๋งˆ๋ฌด๋ฆฌ โ€” ์šฐ๋ฆฌ๋Š” ์–ด๋””๋กœ ๊ฐ€๋Š”๊ฐ€

13์ฃผ์— ๊ฑธ์ณ KNN์—์„œ ์‹œ์ž‘ํ•ด ํŠธ๋žœ์Šคํฌ๋จธ๊นŒ์ง€ ์™”์Šต๋‹ˆ๋‹ค. ์ง€๋‚œ 70๋…„์˜ AI ์—ญ์‚ฌ๋ฅผ ํ•œ ํ•™๊ธฐ์— ์••์ถ•ํ•œ ์…ˆ์ž…๋‹ˆ๋‹ค. ์•ž์œผ๋กœ์˜ ๋ฐฉํ–ฅ์€ โ‘  ๋” ํฐ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋ชจ๋ธ, โ‘ก ๋” ํšจ์œจ์ ์ธ ํ•™์Šต(LoRA, distillation), โ‘ข ๋„๊ตฌ ์‚ฌ์šฉ ์—์ด์ „ํŠธ, โ‘ฃ ์•ˆ์ „์„ฑ๊ณผ ์ •๋ ฌ(alignment)์ž…๋‹ˆ๋‹ค. ์–ด๋””๋กœ ๊ฐ€๋“ , ์ด๋ฒˆ ํ•™๊ธฐ์— ๋งŒ์ง„ ๊ธฐ๋ณธ๊ธฐ๋Š” ๊ทธ๋Œ€๋กœ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“– ๋” ๊นŠ์ด ๊ณต๋ถ€ํ•˜๊ธฐ