[AI] Transformer

Yumya's recordยท2025๋…„ 2์›” 23์ผ

SKALA

๋ชฉ๋ก ๋ณด๊ธฐ
2/25
post-thumbnail

๐Ÿง Attention, Transformer ์ •๋ฆฌ ๐Ÿง

Transformer Model

RNN์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ seq2seq Model์˜ Encoder์™€ Decoder๋กœ ๋‚˜๋ˆ„์–ด์ง„ ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ฅด๋ฉด์„œ Attention๋งŒ์œผ๋กœ ๊ตฌํ˜„ํ•œ ๋ชจ๋ธ์œผ๋กœ, ์–‘๋ฐฉํ–ฅ ๋ณ€ํ™˜ ๋ฐ ์‹œํ€€์Šค ์ƒ์„ฑ์„ ๋ชฉ์ ์œผ๋กœ ํ•œ๋‹ค.

seq2seq Model

์ž…๋ ฅ๋œ ์‹œํ€€์Šค๋กœ๋ถ€ํ„ฐ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์˜ ์‹œํ€€์Šค๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ถ„์•ผ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋ธ
๋Œ€ํ‘œ์ ์œผ๋กœ ๋ฒˆ์—ญ๊ธฐ, ๋‚ด์šฉ ์š”์•ฝ, STT(Speech To Text) ๋“ฑ์—์„œ ์‚ฌ์šฉํ•œ๋‹ค.

Encoder-Decoder ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, Encoder๋Š” ์ž…๋ ฅ ๋ฌธ์žฅ์˜ ๋ชจ๋“  ๋‹จ์–ด๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ž…๋ ฅ๋ฐ›์€ ๋’ค์— ๋งˆ์ง€๋ง‰์— ์ด ๋ชจ๋“  ๋‹จ์–ด ์ •๋ณด๋“ค์„ ์••์ถ•ํ•ด ํ•˜๋‚˜์˜ ๋ฒกํ„ฐ๋กœ ๋งŒ๋“ ๋‹ค. ์ด๋ฅผ ์ปจํ…์ŠคํŠธ ๋ฒกํ„ฐ๋ผ๊ณ  ํ•˜๋ฉฐ, ์ž…๋ ฅ ๋ฌธ์žฅ์˜ ์ •๋ณด๊ฐ€ ํ•˜๋‚˜์˜ ์ปจํ…์ŠคํŠธ ๋ฒกํ„ฐ๋กœ ๋ชจ๋‘ ์••์ถ•๋˜๋ฉด ๋””์ฝ”๋”๋กœ ์ „์†กํ•œ๋‹ค. Decoder๋Š” ์ปจํ…์ŠคํŠธ ๋ฒกํ„ฐ๋ฅผ ๋ฐ›์•„ ๋ฒˆ์—ญ๋œ ๋‹จ์–ด๋ฅผ ํ•œ ๊ฐœ์”ฉ ์ˆœ์ฐจ์ ์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

์ฐธ๊ณ -Wikidocs-seq2seq


ํ•˜์ง€๋งŒ seq2seq Model์˜ ์ธ์ฝ”๋”-๋””์ฝ”๋” ๊ตฌ์กฐ์—์„œ๋Š” ์ธ์ฝ”๋”๊ฐ€ ์ž…๋ ฅ ์‹œํ€€์Šค๋ฅผ ํ•˜๋‚˜์˜ ๋ฒกํ„ฐ๋กœ ์••์ถ•ํ•˜๋Š” ๊ณผ์ •์—์„œ ์ž…๋ ฅ ์‹œํ€€์Šค์˜ ์ •๋ณด๊ฐ€ ์ผ๋ถ€ ์†์‹ค๋œ๋‹ค. ์ด๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด Attention์„ ์‚ฌ์šฉํ•˜๋˜, Attention๋งŒ์œผ๋กœ ์ธ์ฝ”๋”์™€ ๋””์ฝ”๋”๋ฅผ ๊ตฌ์„ฑํ•œ ๋ชจ๋ธ์ด Transformer Model์ด๋‹ค.

seq2seq ๊ตฌ์กฐ์—์„œ๋Š” ์ธ์ฝ”๋”์™€ ๋””์ฝ”๋”์—์„œ ๊ฐ๊ฐ ํ•˜๋‚˜์˜ RNN์ด t๊ฐœ์˜ ์‹œ์ (time step)์„ ๊ฐ€์ง€๋Š” ๊ตฌ์กฐ์˜€๋‹ค๋ฉด, Transformer ๊ตฌ์กฐ์—์„œ๋Š” ์ธ์ฝ”๋”์™€ ๋””์ฝ”๋”๋ผ๋Š” ๋‹จ์œ„๊ฐ€ N๊ฐœ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ๋…ผ๋ฌธ์—์„œ๋Š” ์ธ์ฝ”๋”์™€ ๋””์ฝ”๋”๊ฐ€ ๊ฐ๊ฐ 6๊ฐœ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค.

์‹œ์ž‘ ์‹ฌ๋ณผ <sos>๋ฅผ ์ž…๋ ฅ ๋ฐ›์•„ ์ข…๋ฃŒ ์‹ฌ๋ณผ <eos>๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•œ๋‹ค. RNN์€ ์‚ฌ์šฉ๋˜์ง€ ์•Š์ง€๋งŒ ์ธ์ฝ”๋”-๋””์ฝ”๋” ๊ตฌ์กฐ๋ฅผ ์œ ์ง€๋˜๊ณ  ์žˆ์Œ์„ ๋ณด์—ฌ์ค€๋‹ค.

RNN์ด ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ์—์„œ ์œ ์šฉํ–ˆ๋˜ ์ด์œ ๋Š” ๋‹จ์–ด์˜ ์œ„์น˜์— ๋”ฐ๋ผ ๋‹จ์–ด๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ž…๋ ฅ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๋Š” ํŠน์„ฑ์œผ๋กœ ์ธํ•ด ๊ฐ ๋‹จ์–ด์˜ ์œ„์น˜ ์ •๋ณด๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์—ˆ๋‹ค๋Š” ์ ์ด์—ˆ๋‹ค.

Transformer๋Š” ๋‹จ์–ด ์ž…๋ ฅ์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ›๋Š” ๋ฐฉ์‹์ด ์•„๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ RNN์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๋‹จ์–ด์˜ ์œ„์น˜ ์ •๋ณด๋ฅผ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์•Œ๋ ค์ค˜์•ผ ํ•œ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด Positional Encoding์ด๋‹ค.

Positional Encoding

๋‹จ์–ด์˜ ์œ„์น˜ ์ •๋ณด๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๊ฐ ๋‹จ์–ด์˜ ์ž„๋ฒ ๋”ฉ ๋ฒกํ„ฐ์— ์œ„์น˜ ์ •๋ณด๋“ค์„ ๋”ํ•ด์„œ ๋ชจ๋ธ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉ

์ž„๋ฒ ๋”ฉ ๋ฒกํ„ฐ๊ฐ€ ์ธ์ฝ”๋”์˜ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉ๋˜๊ธฐ ์ „ ํฌ์ง€์…”๋„ ์ธ์ฝ”๋”ฉ ๊ฐ’์ด ๋”ํ•ด์ง„๋‹ค.

ex) '์œ„์—์„œ ์•„๋ž˜' > ์œ„ + 1๋ฒˆ ๋‹จ์–ด ์ธ์ฝ”๋”ฉ, '์•„๋ž˜์—์„œ ์œ„' > ์œ„ + 3๋ฒˆ ๋‹จ์–ด ์ธ์ฝ”๋”ฉ
-> '์œ„์—์„œ ์•„๋ž˜'์™€ '์•„๋ž˜์—์„œ ์œ„' ๊ตฌ๋ถ„ ๊ฐ€๋Šฅ

Attention

๋ชจ๋ธ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด ๋ฌธ๋งฅ์— ๋”ฐ๋ผ ์ง‘์ค‘ํ•  ๋‹จ์–ด๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ์‹
๋””์ฝ”๋”์—์„œ ์ถœ๋ ฅ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๋งค ์‹œ์ ๋งˆ๋‹ค ์ธ์ฝ”๋”์—์„œ์˜ ์ „์ฒด ์ž…๋ ฅ ๋ฌธ์žฅ์„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ฐธ๊ณ ํ•œ๋‹ค. ๋‹จ, ์ „์ฒด ์ž…๋ ฅ ๋ฌธ์žฅ์„ ์ „๋ถ€ ๋‹ค ๋™์ผํ•œ ๋น„์œจ๋กœ ์ฐธ๊ณ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ํ•ด๋‹น ์‹œ์ ์—์„œ ์˜ˆ์ธกํ•ด์•ผํ•  ๋‹จ์–ด์™€ ์—ฐ๊ด€์ด ์žˆ๋Š” ์ž…๋ ฅ ๋‹จ์–ด ๋ถ€๋ถ„์„ ๋” ์ง‘์ค‘ํ•ด์„œ ๋ณด๊ฒŒ ๋œ๋‹ค.

Attention Function

์ฃผ์–ด์ง„ Query์— ๋Œ€ํ•ด ๋ชจ๋“  Key์™€์˜ ์œ ์‚ฌ๋„๋ฅผ ๊ฐ๊ฐ ๊ตฌํ•œ ๋’ค, ์ด ์œ ์‚ฌ๋„๋ฅผ ๊ฐ€์ค‘์น˜๋กœ ํ•˜์—ฌ Key์™€ ๋งตํ•‘๋˜์–ด ์žˆ๋Š” ๊ฐ๊ฐ์˜ Value์— ๋ฐ˜์˜ํ•ด์ค€๋‹ค. ์ด Value๋ฅผ ๋ชจ๋‘ ๊ฐ€์ค‘ํ•ฉํ•˜์—ฌ ๋ฆฌํ„ดํ•œ๋‹ค.

Attention(Q, K, V) = Attention Value

Query

ํ•ด๋‹น ๋‹จ์–ด๊ฐ€ ๋‹ค๋ฅธ ๋‹จ์–ด๋“ค๊ณผ ์–ผ๋งˆ๋‚˜ ์—ฐ๊ด€์ด ์žˆ๋Š”์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’

Key

๊ฐ ๋‹จ์–ด๊ฐ€ ์–ด๋–ค ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’

Value

ํ•ด๋‹น ๋‹จ์–ด์˜ ์‹ค์ œ ์˜๋ฏธ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’(์œ ์‚ฌ๋„)

ex) ํ˜ธํ…”์—์„œ ์ฒดํฌ์ธ์„ ํ•˜๊ณ  ํ‚ค๋ฅผ ๋ฐ›์•„ ๋ฐฉ์— ๋“ค์–ด๊ฐ€ ์ˆ ์„ ๋งˆ์‹ ๋‹ค.
1. ํ”„๋ก ํŠธ์—์„œ "123ํ˜ธ ์˜ˆ์•ฝ์ž์ธ๋ฐ ์ฒดํฌ์ธํ•ด๋„ ๋ ๊นŒ์š”?" => ์งˆ๋ฌธ = Query
2. ์ง์›์ด 123ํ˜ธ์˜ ์—ด์‡ ๋ฅผ ์ค€๋‹ค. => 123ํ˜ธ์˜ ์—ด์‡  = Key
3. 123ํ˜ธ์— ๋“ค์–ด๊ฐ€ ์•ˆ์— ์žˆ๋Š” ์ˆ ์„ ๋งˆ์‹ ๋‹ค. => ์ˆ  = Value

์ธ์ฝ”๋”์˜ ์…€ํ”„ ์–ดํ…์…˜ : Query = Key = Value
๋””์ฝ”๋”์˜ ๋งˆ์Šคํฌ๋“œ ์…€ํ”„ ์–ดํ…์…˜ : Query = Key = Value
๋””์ฝ”๋”์˜ ์ธ์ฝ”๋”-๋””์ฝ”๋” ์–ดํ…์…˜ : Query : ๋””์ฝ”๋” ๋ฒกํ„ฐ / Key = Value : ์ธ์ฝ”๋” ๋ฒกํ„ฐ

Self-Attention

Attention ์ค‘ ์ž๊ธฐ ์ž์‹ ์—๊ฒŒ Attention ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ–‰ํ•˜๋Š” ๋ฐฉ์‹
๋ฌธ์žฅ์—์„œ์˜ ๋‹จ์–ด๋“ค์˜ ์—ฐ๊ด€์„ฑ์„ ์•Œ๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ๋‹จ์–ด์™€์˜ ๊ด€๊ณ„๋กœ ์ž์‹ ์„ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ, ๊ฐ ๋‹จ์–ด๊ฐ€ ๋‹ค๋ฅธ ๋ชจ๋“  ๋‹จ์–ด์™€์˜ ๊ด€๊ณ„๋ฅผ ํ•™์Šตํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ Multi Head๋Š” Transformer๋Š” Attention์„ ๋ณ‘๋ ฌ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์˜๋ฏธํ•œ๋‹ค.

ex) The animal didn't cross the street because it was too tired.
์—ฌ๊ธฐ์„œ it์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ๋‹จ์–ด๊ฐ€ animal์ž„์„ ์ปดํ“จํ„ฐ๊ฐ€ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด self-attention์„ ํ•œ๋‹ค.


Self-Attention ๊ณ„์‚ฐ ๊ณผ์ •

Q : ์ž…๋ ฅ ๋ฌธ์žฅ์˜ ๋ชจ๋“  ๋‹จ์–ด ๋ฒกํ„ฐ๋“ค
K : ์ž…๋ ฅ ๋ฌธ์žฅ์˜ ๋ชจ๋“  ๋‹จ์–ด ๋ฒกํ„ฐ๋“ค
V : ์ž…๋ ฅ ๋ฌธ์žฅ์˜ ๋ชจ๋“  ๋‹จ์–ด ๋ฒกํ„ฐ๋“ค

Self-Attention์€ Query, Key, Value์˜ ์‹œ์ž‘ ๊ฐ’(๋ฒกํ„ฐ์˜ ์ถœ์ฒ˜)์ด ๋™์ผํ•˜๋‹ค. ์ค‘๊ฐ„์— ํ•™์Šต ๊ฐ€์ค‘์น˜ w๊ฐ’์— ์˜ํ•ด ์ตœ์ข…์ ์ธ Query, key, Value๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅด๊ฒŒ ๋œ๋‹ค. ์ฆ‰, ์ดˆ๊ธฐ ๊ฐ’์€ ๊ฐ™์œผ๋‚˜ ํ•™์Šต์„ ํ†ตํ•ด ๊ฐ’์ด ๋‹ฌ๋ผ์ง„๋‹ค.

  1. ์›ํ•˜๋Š” ๋ฌธ์žฅ์„ ์ž„๋ฒ ๋”ฉ, ํ•™์Šตํ•œ๋‹ค.
  2. ๊ฐ Query, Key, Value์— ๋งž๋Š” ๊ฐ€์ค‘์น˜ w๋“ค์„ ๊ตฌํ•œ๋‹ค.
  3. ๊ฐ ๋‹จ์–ด์˜ ์ž„๋ฒ ๋”ฉ์˜ Query, Key, Value(Query=Key=Value)์™€ ๊ฐ€์ค‘์น˜ w๋ฅผ ๋‚ด์ ํ•ด ์ตœ์ข… Q, K, V๋ฅผ ๊ตฌํ•œ๋‹ค.
  4. Attention score ๊ณต์‹์„ ํ†ตํ•ด ๊ฐ ๋‹จ์–ด๋ณ„ Self Attention Value๋ฅผ ๋„์ถœํ•œ๋‹ค.
  5. Self Attention Value์˜ ๋‚ด๋ถ€๋ฅผ ๋น„๊ตํ•˜๋ฉด์„œ ์ƒ๊ด€๊ด€๊ณ„๊ฐ€ ๋†’์€ ๋‹จ์–ด๋“ค์„ ๋„์ถœํ•œ๋‹ค.

์ฐธ๊ณ -Self Attention


Multi-head Attention

Attention์„ ๋ณ‘๋ ฌ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์˜€๋‹ค๋Š” ์˜๋ฏธ

ํ•œ ๋ฒˆ์˜ Attention๋ณด๋‹ค ์—ฌ๋Ÿฌ ๋ฒˆ์˜ Attention์„ ๋ณ‘๋ ฌ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ๊ณผ์ ์ด๋ผ ํŒ๋‹จํ•ด ๋ชจ๋ธ์˜ ์ฐจ์›์„ num_heads๊ฐœ๋กœ ๋‚˜๋ˆ„์–ด ๋ชจ๋ธ ์ฐจ์›/num_heads๊ฐœ์˜ ์ฐจ์›์„ ๊ฐ€์ง€๋Š” Q, K, V์— ๋Œ€ํ•ด num_heads๊ฐœ์˜ ๋ณ‘๋ ฌ Attention์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ๊ฐ Attention์„ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๋กœ๋ถ€ํ„ฐ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๊ด€์ ์˜ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•œ๋‹ค. Attention์„ ์ˆ˜ํ–‰ํ•œ ์ถœ๋ ฅ์„ Attention Head๋ผ๊ณ  ํ•˜๋ฉฐ, Multi Attention์„ ๋ชจ๋‘ ์ˆ˜ํ–‰ํ•œ ํ›„ Head๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค.

Masked Multi-Head Attention

๋””์ฝ”๋”์˜ ์ฒซ๋ฒˆ์งธ ์„œ๋ธŒ ์ธต์— ์œ„์น˜ํ•œ ์ธต

Transformer์—์„œ ๋ฌธ์žฅ ํ–‰๋ ฌ์„ ํ•œ๋ฒˆ์— ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ ์‹œ์ ์˜ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•  ๋•Œ ๋ฏธ๋ž˜ ์‹œ์ ์˜ ๋‹จ์–ด๋“ค๋„ attend ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉด์„œ ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋ฏธ๋ž˜ ์‹œ์ ์˜ ๋‹จ์–ด๋ฅผ Maskingํ•ด ๋‹จ์–ด์˜ ์ง์ „ ์ถœ๋ ฅ๋“ค์— ๋Œ€ํ•ด์„œ๋งŒ Attention์„ ๊ณ„์‚ฐํ•œ๋‹ค.

Scaled Dot-Product Attention

Attention Value๋ฅผ Sacled Dot-Product Attention ๋ฐฉ์‹์œผ๋กœ ๊ณ„์‚ฐํ•˜๋˜, ๊ธฐ์กด Dot-Product Attention์„ Query์™€ Key์˜ ๊ธธ์ด๋ฅผ ์ด์šฉํ•ด Scalingํ•œ๋‹ค.

Query์™€ Key์˜ ๊ธธ์ด๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ๋‚ด์  ๊ฐ’ ๋˜ํ•œ ์ปค์งˆ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๊ธฐ ๋•Œ๋ฌธ์— Softmax์˜ ๊ธฐ์šธ๊ธฐ๊ฐ€ 0์ธ ์˜์—ญ์— ๋„๋‹ฌํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„์ง„๋‹ค. Softmax์˜ ๊ธฐ์šธ๊ธฐ๊ฐ€ 0์ด๋˜๋ฉด ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ด ํ•™์Šต์ด ๋ฉˆ์ถœ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ˜„์ƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด์ ์˜ ๊ฐ’์ด Softmax์˜ ๊ธฐ์šธ๊ธฐ๊ฐ€ 0์ธ ์˜์—ญ๊นŒ์ง€ ๋„๋‹ฌํ•˜์ง€ ๋ชปํ•˜๋„๋ก Scalingํ•œ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ์ž…๋ ฅ ๋ฌธ์žฅ์— ์˜๋ฏธ๊ฐ€ ์—†๋Š” ๊ฐ’์„ ์—ฐ์‚ฐ์—์„œ ์ œ์™ธํ•œ๋‹ค.

์ฐธ๊ณ -Scaled Dot-Product Attention

Position-wise FFNN

Fully-connected Feed-forward Neural Network์ด๋ฉฐ, ์ˆœ๋ฐฉํ–ฅ ์‹ ๊ฒฝ๋ง
์ธ์ฝ”๋”์™€ ๋””์ฝ”๋”์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์„œ๋ธŒ์ธต

Multi-Head Attention์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์–ป์€ ๊ฐ Head๋Š” ์ž์‹ ์˜ ๊ด€์ ์— ๋”ฐ๋ผ ์ •๋ณด๊ฐ€ ์น˜์šฐ์ณ์ € ์žˆ๋‹ค. ์ด๋•Œ Position-wise FFNN์€ ๊ฐ Head๊ฐ€ ๋งŒ๋“ค์–ด๋‚ธ Attention์„ ์น˜์šฐ์น˜์ง€ ์•Š๊ฒŒ ๊ท ๋“ฑํ•˜๊ฒŒ ์„ž๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

Add & Norm

๊ฐ ์„œ๋ธŒ ์ธต์„ ๊ฑฐ์นœ ํ›„์— ์ ์šฉ๋˜๋ฉฐ, ์ž”์ฐจ ์—ฐ๊ฒฐ, ์ธต ์ •๊ทœํ™”๋ฅผ ์˜๋ฏธ

์ž”์ฐจ ์—ฐ๊ฒฐ

์„œ๋ธŒ ์ธต์˜ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์„ ๋”ํ•˜๋Š” ๊ฒƒ

ํ–‰๋ ฌ์˜ ์—ฐ์‚ฐ์œผ๋กœ Multi-head Attention, FFNN ๋“ฑ์„ ๊ตฌํ•˜๊ณ , ๋งˆ์ง€๋ง‰์— ๊ฐ€์ค‘์น˜์ธ W๋ฅผ ๊ตฌํ•ด์„œ ์ž…๋ ฅ๊ฐ’๊ณผ ์ถœ๋ ฅ๊ฐ’์„ ๋™์ผํ•œ ์ฐจ์›์„ ๊ฐ€์ง€๊ฒŒ ํ•œ๋‹ค.

์ธต ์ •๊ทœํ™”

์ž”์ฐจ ์—ฐ๊ฒฐ์„ ๊ฑฐ์นœ ํ›„ ๊ฑฐ์น˜๊ฒŒ ๋˜๋Š” ๊ณผ์ •

Tensor์˜ ๋งˆ์ง€๋ง‰ ์ฐจ์›์— ๋Œ€ํ•ด ํ‰๊ท ๊ณผ ๋ถ„์‚ฐ์„ ๊ตฌํ•ด ์ด๋ฅผ ์ˆ˜์‹์„ ํ†ตํ•ด ๊ฐ’์„ ์ •๊ทœํ™”ํ•ด ํ•™์Šต์— ๋„์›€์„ ์ค€๋‹ค.

์ฐธ๊ณ -Transformer
์ฐธ๊ณ -์ž”์ฐจ ์—ฐ๊ฒฐ๊ณผ ์ธต ์ •๊ทœํ™”


Encoder

์ž…๋ ฅ ๋ฌธ์žฅ์˜ ์˜๋ฏธ๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋ฒกํ„ฐ๋กœ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ์„ ๋ชฉ์ 

num_layers ๊ฐœ์ˆ˜์˜ ์ธ์ฝ”๋” ์ธต์„ ์Œ“๋Š”๋‹ค. ์ด 6๊ฐœ์˜ ์ธ์ฝ”๋” ์ธต์„ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ, ์ธ์ฝ”๋”๋Š” Position-wise FFNN(ํฌ์ง€์…˜ ์™€์ด์ฆˆ ํ”ผ๋“œ ํฌ์›Œ๋“œ ์‹ ๊ฒฝ๋ง), Multi-head Attention์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

๋Œ€ํ‘œ์ ์œผ๋กœ BERT๊ฐ€ Transformer์˜ Encoder ๊ตฌ์กฐ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๋ฐœ์ „ํ–ˆ๋‹ค.

Decoder

Encoder์˜ ๊ฒฐ๊ณผ๋ฅผ ํ•ด์„ํ•ด ๋ชฉํ‘œ ๋ฌธ์žฅ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์„ ๋ชฉ์ 
์ด๋•Œ ๋ชฉํ‘œ ๋ฌธ์žฅ์€ Encoder์˜ ๋ฌธ๋งฅ์„ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ค์Œ์— ์˜ฌ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•œ ๊ฒƒ์ด๋‹ค.

๋””์ฝ”๋”๋Š” 3๊ฐœ์˜ ์„œ๋ธŒ ์ธต์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋Š”๋ฐ, Masked Multi-Head Attention์ธต๊ณผ ์ธ์ฝ”๋”์™€ ๋™์ผํ•œ ์ธต 2๊ฐœ(Position-wise FFNN, Multi-head Attention)๋ฅผ ๊ฐ€์ง„๋‹ค.

๋Œ€ํ‘œ์ ์œผ๋กœ GPT, LLM์ด Decoder ๊ตฌ์กฐ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๋ฐœ์ „ํ–ˆ๋‹ค. ์ด๋•Œ ์ƒ์„ฑ์„ ๋ชฉ์ ์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•™์Šตํ•œ ๋ฐ์ดํ„ฐ์—์„œ ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•  ์ˆ˜ ์—†์„ ๊ฒฝ์šฐ ์—‰ํ„ฐ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ์ด๋ฅผ ํ• ๋ฃจ์‹œ๋„ค์ด์…˜์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Vector DB(RAG), Tool Calling์„ ์‚ฌ์šฉํ•œ๋‹ค.

์ฐธ๊ณ -Wikidocs-Transformer


์ด์–ด์„œ Transformer๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐœ์ „ํ•œ Model๋“ค์— ๋Œ€ํ•ด ์‚ดํŽด๋ณผ ๊ฒƒ์ด๋‹ค. ๐Ÿ‘€

profile
๐Ÿ€ ูฉ(หŠแ—œห‹*)ูˆ ๐Ÿ€

0๊ฐœ์˜ ๋Œ“๊ธ€