[LLM] LLM๊ณผ Transformer

์š”์ƒˆ chatgpt, claude, gemini ์™€ ๊ฐ™์€ ๊ฑฐ๋Œ€์–ธ์–ด๋ชจ๋ธ(LLM)์€ ๋‹จ์ˆœํ•œ ๊ธฐ์ˆ ์„ ๋„˜์–ด ์ผ์ƒ๊ณผ ์—…๋ฌด ์ „๋ฐ˜์— ์ž๋ฆฌ์žก๊ณ  ์žˆ๋‹ค.
์ด LLM์€ ๋ฌด์—‡์ด๊ณ , ์–ด๋–ป๊ฒŒ ๋ฌธ์žฅ์„ ์ƒ์„ฑํ•˜๊ณ , ์งˆ๋ฌธ์— ๋‹ตํ•˜๊ณ , ์ถ”๋ก ๊นŒ์ง€ ๊ฐ€๋Šฅํ•œ๊ฑธ๊นŒ??

LLM ์ƒํƒœ ( https://www.thedatahunt.com/trend-insight/what-is-llm

LLM

`Large Language Model`์˜ ์•ฝ์ž๋กœ ๋Œ€ํ˜• ์–ธ์–ด ๋ชจ๋ธ์„ ๋งํ•œ๋‹ค.
๊ทธ๋Ÿผ LM(์–ธ์–ด๋ชจ๋ธ)์€ ๋ฌด์—‡์ผ๊นŒ?

์–ธ์–ด ๋ชจ๋ธ์€ ์–ธ์–ด๋ผ๋Š” ํ˜„์ƒ์„ ๋ชจ๋ธ๋ง ํ•˜๊ณ ์ž ๋‹จ์–ด ์‹œํ€€์Šค(=๋ฌธ์žฅ) ์— ํ™•๋ฅ ์„ ํ• ๋‹น(assign) ํ•˜๋Š” ๋ชจ๋ธ์ด๋‹ค.
์–ธ์–ด ๋ชจ๋ธ์€ ํฌ๊ฒŒ ์•„๋ž˜์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.

  • ํ†ต๊ณ„๋ฅผ ์ด์šฉํ•œ ๋ฐฉ๋ฒ•
  • ์ธ๊ณต ์‹ ๊ฒฝ๋ง์„ ์ด์šฉํ•œ ๋ฐฉ๋ฒ• 

ํ™•๋ฅ ์— ํ• ๋‹นํ•œ๋‹ค๋Š”๊ฒŒ ์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ๋๋Š”๋ฐ ์ด๋Ÿฐ ๋А๋‚Œ์ด๋ผ๊ณ  ํ•œ๋‹ค. (์ฐธ๊ณ )

์‚ฌ๋žŒ๋“ค์ด I love you๋Š” ์ž˜ ๋งํ•ด๋„ I love me ๋Š” ์ž˜ ๋งํ•˜์ง€ ์•Š๋Š”๋‹ค.
๋ชจ๋ธ์ด ์ด ํŒจํ„ด์„ ํ•™์Šตํ•˜๋ฉด I love ๋ผ๋Š” ๋ง๊นŒ์ง€ ๋‚˜์™”์„ ๋•Œ ๊ธฐ๊ณ„ ์ž…์žฅ์—์„œ๋Š” i love you๋ฅผ i love me๋ณด๋‹ค ๋” ๋งŽ์ด ํ•™์Šตํ–ˆ๊ณ , ๊ฐ€์ค‘์น˜(weight)๊ฐ€ ๋” ๋†’์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ๋‹ค์Œ์— ๋‚˜์˜ฌ ๋ง์ด you ์ผ ํ™•๋ฅ ์ด ๋†’๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์–ธ์–ด๋ฅผ ์ดํ•ดํ•˜๋ ค๋ฉด ์—„์ฒญ๋‚˜๊ฒŒ ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•™์Šตํ•ด์•ผ ํ• ํ…๋ฐ ์˜›๋‚ ์—๋Š” ํ•˜๋“œ์›จ์–ด๊ฐ€ ๋ถ€์กฑํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•™์Šตํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ ์š”์ƒˆ ํ•˜๋“œ์›จ์–ด๊ฐ€ ์ข‹์•„์ง€๋ฉด์„œ ๋งŽ์€ ์–‘์„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๊ณ , ๊ทธ๊ฒŒ L(Large)LM์ด๋‹ค.
LLM์€ ๋”ฅ๋Ÿฌ๋‹์˜ ๋ฐฉ์‹์œผ๋กœ ๋ฐฉ๋Œ€ํ•œ ์–‘์„ ์‚ฌ์ „ ํ•™์Šต(pre-trained)ํ•œ ์ „์ด(transformer) ํ•™์Šต ๋ชจ๋ธ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.
์–ธ์–ด๋ฅผ ์–ธ์–ด๋กœ ํ•™์Šตํ•˜๋ ค๋ฉด ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๊ธ€์„ ํ•™์Šตํ–ˆ์„์ง€ ๊ฐ๋„ ์•ˆ์˜จ๋‹ค... openai์—์„œ๋Š” chatgpt ์ดˆ๊ธฐ ๋ชจ๋ธ ๋งŒ๋“œ๋Š”๋ฐ 460๋งŒ๋‹ฌ๋Ÿฌ๊ฐ€ ๋“ค์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค

Transformer

Transformer๋Š” 2017๋…„ ๊ตฌ๊ธ€์ด ๋ฐœํ‘œํ•œ ๋…ผ๋ฌธ์ธ "Attention is all you need"์—์„œ ๋‚˜์˜จ ๋ชจ๋ธ์ด๋‹ค.
๊ธฐ์กด์˜ encoder-decoder(seq2seq) ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ฅด๋ฉด์„œ Attention ๋งŒ์œผ๋กœ ๊ตฌํ˜„ํ•œ ๋ชจ๋ธ์ด๋‹ค.

Sequence-to-Sequence (seq2seq)

์‹œํ€€์Šค-ํˆฌ-์‹œํ€€์Šค๋Š” ์ž…๋ ฅ๋œ ์‹œํ€€์Šค๋กœ๋ถ€ํ„ฐ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์˜ ์‹œํ€€์Šค๋ฅผ ์ถœ๋ ฅํ•˜๋Š”๋ฐ์— ์‚ฌ์šฉ๋œ๋‹ค.

* ์ฐธ๊ณ : RNN๊ณผ seq2seq ์ฐจ์ด
- RNN: ๋ฌธ์žฅ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋‹จ์–ด๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด ๊ทธ๋–„๋งˆ๋‹ค output์„ ๋งŒ๋“ฆ
- seq2seq: ๋ชจ๋“  ๋ฌธ์žฅ์„ ๋๊นŒ์ง€ ๋“ค์€ ํ›„ ํ•˜๋‚˜์˜ ์™„์ „ํ•œ ๋ฌธ์žฅ ์ƒ์„ฑ

LSTM์œผ๋กœ ๊ตฌ์„ฑ๋œ encoder์™€ decoder

๋‚ด๋ถ€๋ฅผ ๋ณด๋ฉด Encoder์™€ Decoder๋ผ๋Š” ๋ชจ๋“ˆ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

  • Encoder: ์ž…๋ ฅ๋œ sequence๋ฅผ ๋ฒกํ„ฐ์˜ ํ˜•ํƒœ๋กœ ์••์ถ•ํ•˜์—ฌ decoder ์ „๋‹ฌ (=context vector)
  • Decoder: ์ „๋‹ฌ๋ฐ›์€ ๋ฒกํ„ฐ๋ฅผ ์ฒซ ์…€์˜ hidden state๋กœ ๋„ฃ์–ด์ฃผ๊ณ , start flag(๋ฌธ์žฅ์˜ ์‹œ์ž‘์ž„์„ ์•Œ๋ฆผ, sos)์™€ ํ•จ๊ป˜ ๋ชจ๋ธ ์‹œ์ž‘ ์…€์—์„œ ๋‚˜์˜จ output์„ ๋ฌธ์žฅ์˜ ์ฒซ ๋‹จ์–ด๋กœ ๋‘๊ณ  ์ด๊ฒƒ์ด ๋‹ค์‹œ ๋‘๋ฒˆ์งธ cell์˜ input๊ณผ ํ•จ๊ป˜ ๋“ค์–ด๊ฐ€๋Š” ๊ณผ์ • ๋ฐ˜๋ณต

* hidden state: ๋ชจ๋ธ์ด ์ž…๋ ฅ ์‹œํ€€์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ฉด์„œ ํ˜„์žฌ๊นŒ์ง€์˜ ์ •๋ณด๋ฅผ ์••์ถ•ํ•œ ์š”์•ฝ ๋ฒกํ„ฐ (ํ˜„์žฌ ์ž…๋ ฅ+๊ณผ๊ฑฐ๊ธฐ์–ต)

ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์—๋Š” ๋ช…ํ™•ํ•œ ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•œ๋‹ค.
๋˜ RNN์˜ ๊ณ ์งˆ์ ์ธ ๋ฌธ์ œ์ธ vanishing gradient ๋ฌธ์ œ๊ฐ€ ์žˆ๊ณ ,
context vector๊ฐ€ ์••์ถ•์„ ๊ณ ์ •๋œ ๊ธธ์ด๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†์‹ค์ด ๋ฐœ์ƒํ•  ์ˆ˜๋ฐ–์— ์—†๋‹ค.

encoder์˜ ๋งˆ์ง€๋ง‰ hidden state์— input ๋ฌธ์žฅ์— ๋Œ€ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๋‹ด์•„์•ผ ํ•˜๊ณ , hidden state์—๋งŒ ์ •๋ณด ์ „๋‹ฌ์„ ์˜์กดํ•˜๊ฒŒ๋˜๋ฏ€๋กœ ์•ž์ชฝ ์ •๋ณด๋ฅผ ๊ฑฐ์˜ ์ €์žฅํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. (=bottleneck problem)
๋”ฐ๋ผ์„œ ๋ฌธ์žฅ์ด ๊ธธ์–ด์งˆ์ˆ˜๋ก ์„ฑ๋Šฅ์€ ์ €ํ•˜๋œ๋‹ค.
๊ทธ๋ž˜์„œ Attention ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ๊ณ ์•ˆ๋˜์—ˆ๋Š”๋ฐ Encoder์˜ ์ตœ์ข…์— hidden state๋งŒ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  time step์— hidden state๋ฅผ ํ™œ์šฉํ•ด context vector๋ฅผ ๊ตฌ์ถ•ํ•˜์—ฌ seq2seq ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

Attention

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

๊ฐ„๋‹จํžˆ ๋งํ•˜๋ฉด

https://wikidocs.net/22893

Encoder์— I am a student๋ฅผ ์ž…๋ ฅํ•˜๊ณ  Decoder์˜ 3๋ฒˆ์ฉจ LSTM cell (์ดˆ๋ก์ƒ‰)์—์„œ ์ถœ๋ ฅ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ์ƒํ™ฉ์ด๋‹ค.
Encoder์—์„œ๋Š” ๋‹จ์–ด๋ฅผ ํ•˜๋‚˜์”ฉ LSTM์— ๋„ฃ์–ด์„œ ์€๋‹‰๋ฒกํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค. (=๊ฐ LSTM์—์„œ๋Š” ๊ทธ time step์˜ ์€๋‹‰ ๋ฒกํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ)
Decoder์—์„œ๋Š” ํ˜„์žฌ ์œ ์ถ”ํ•˜๋ ค๋Š” ๋‹จ์–ด๋ฅผ ๋งŒ๋“ค ๋•Œ ๊ฐ€์žฅ ๊ด€๋ จ์žˆ๋Š” Encoder์˜ ๋‹จ์–ด๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ฐพ์œผ๋ ค๊ณ  ํ•  ๊ฒƒ์ด๋‹ค.

Decoder์—์„œ๋Š” ํ˜„์žฌ ์ƒํƒœ์˜ ์€๋‹‰ ์ƒํƒœ๋ฅผ ๊ฐ€์ง€๊ณ  encoder์˜ ๊ฐ ์€๋‹‰์ƒํƒœ์™€ ๋‚ด์ ํ•˜์—ฌ Attention Score (์ดˆ๋ก์ƒ‰ ๋™๊ทธ๋ผ๋ฏธ) ๋ฅผ ๋งŒ๋“ ๋‹ค. ์ด๊ฑธ๋กœ Attention Weight๋ฅผ ๋งŒ๋“ค๊ฑด๋ฐ, ๋ชจ๋‘ ์–‘์ˆ˜์ด๊ณ  ํ•ฉ์ด 1๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด softmax ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค (๋นจ๊ฐ„์ƒ‰ ์„ธ๋กœ๋กœ ๊ธด ๋„ค๋ชจ)

softmax๊นŒ์ง€ ๊ฑฐ์น˜๋ฉด ์–ด๋–ค ๋‹จ์–ด๊ฐ€ ๊ฐ€์žฅ ์—ฐ๊ด€์„ฑ์ด ์žˆ๋Š”์ง€ weight๋กœ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ๊ฐ ์ธ์ฝ”๋”์˜ ์€๋‹‰ ์ƒํƒœ์™€ attention weight๋ฅผ ๊ณฑํ•˜๊ณ  ๋”ํ•ด์„œ(weighted sum)  Attention value๋ฅผ ๋งŒ๋“ ๋‹ค. (์ดˆ๋ก์ƒ‰ ์„ธ๋ชจ)

์ฆ‰ Attention Value๋Š” encoder์˜ ๋ชจ๋“  ์€๋‹‰ ์ƒํƒœ ๊ฐ๊ฐ์ด decoder์˜ ํ˜„ ์‹œ์ ์˜ ์€๋‹‰์ƒํƒœ์™€ ์–ผ๋งˆ๋‚˜ ์œ ์‚ฌํ•œ์ง€ ํŒ๋‹จํ•˜๋Š” ๊ฐ’์ด๋‹ค.

 

 

 

์ด๋ ‡๊ฒŒ ๊ตฌํ•ด์ง„ Attention Value ์™€ St (๋””์ฝ”๋”์˜ ํ˜„ ์‹œ์ ์˜ ์€๋‹‰์ƒํƒœ)์™€ ๊ฒฐํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ๋ฒกํ„ฐ๋กœ ๋งŒ๋“ ๋‹ค (Vt)
๊ทธ๋ฆฌ๊ณ  ์ด ๋ฒกํ„ฐ๋ฅผ  ์˜ˆ์ธก ์—ฐ์‚ฐ์˜ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ๋” ์ž˜ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

๋‹ค๋งŒ attention value๋ฅผ ๊ตฌํ•˜๋Š” ๊ณผ์ •์—์„œ ๋‚ด์ ์„ ํ•  ๋•Œ ์ˆœ์„œ ์ •๋ณด๊ฐ€ ์—†๋‹ค.

์˜ˆ๋ฅผ๋“ค์–ด (https://www.youtube.com/watch?v=6s69XY025MU)
"์ธ๋„ ์Œ์‹์ ์— ๊ฐ€๋˜ ์ค‘ ์ฃผํ–‰ ๊ธˆ์ง€ ํ‘œ์ง€ํŒ์„ ๋ณด์•˜๋‹ค" ๋ผ๋Š” ๋ฌธ์žฅ์„ ์˜์–ด๋กœ ๋ฒˆ์—ญํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด๋ฉด
key๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜๋ˆด์„ ๋•Œ

  • ์ธ๋„
  • ์Œ์‹์ ์—
  • ๊ฐ€๋˜ ์ค‘
  • ์ฃผํ–‰ ๊ธˆ์ง€
  • ํ‘œ์ง€ํŒ์„
  • ๋ณด์•˜๋‹ค

"์ธ๋„"๋ผ๋Š” ๊ธ€์ž๋ฅผ ์ฒ˜์Œ์— ๋‚ด์ ํ•˜๋“  ๋‚˜์ค‘์— ๋‚ด์ ํ•˜๋“  ๊ฒฐ๊ณผ๋Š” ๋˜‘๊ฐ™๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.
์ด attention value๊ฐ’์€ "์ธ๋„ ์Œ์‹์ ์— ๊ฐ€๋˜ ์ค‘ ์ฃผํ–‰ ๊ธˆ์ง€ ํ‘œ์ง€ํŒ์„ ๋ณด์•˜๋‹ค" ์ˆœ์„œ๋กœ ํ•˜๋Š”๊ฒƒ๊ณผ, "์ธ๋„ ์ฃผํ–‰ ๊ธˆ์ง€ ํ‘œ์ง€ํŒ์„ ์Œ์‹์ ์— ๊ฐ€๋˜ ์ค‘ ๋ณด์•˜๋‹ค" ์ˆœ์„œ๋กœ ํ•˜๋Š”๊ฑฐ๋ž‘ ๋™์ผํ•˜๋‹ค.
๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ์ž˜ ์ดํ•ดํ•˜๊ณ  ๋ฒˆ์—ญํ•˜๋ ค๋ฉด ๋‹จ์–ด ์ˆœ์„œ ์ •๋ณด๋ฅผ ๋„ฃ์–ด์•ผ ํ•˜๋Š”๋ฐ ์•„๋ž˜์˜ transformer์—์„œ positional encoding ์„ ์ถ”๊ฐ€ํ•ด ๋‹จ์–ด์˜ ์ˆœ์„œ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

์ถ”๊ฐ€๋กœ RNN ๊ณ„์—ด์€ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ณ„์† ์ˆœํ™˜์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ตฌ์กฐ๋‹ค๋ณด๋‹ˆ ์—ฐ์‚ฐ ํšจ์œจ์ด ๋–จ์–ด์ง„๋‹ค.
Transformer์—์„œ๋Š” RNN์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  attention๋งŒ์„ ์ด์šฉํ•ด์„œ encoder-decoder ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์—ฐ์‚ฐ ํšจ์œจ์ด ์ข‹๋‹ค๊ณ  ํ•œ๋‹ค.

 

Transformer

์‹œ๊ฐ„์ด ์ง€๋‚˜์„œ ๋ญ”๊ฐ€ ๋งŽ์ด ๋Œ€์ฒด๋œ ๊ฒƒ ๊ฐ™์€๋ฐ ๋งŽ์€ ๋ถ„์•ผ์—์„œ SOTA๋ฅผ ๋‹ฌ์„ฑํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค. (https://paperswithcode.com/sota)

 

encoder ์ž…๋ ฅ ๋ถ€๋ถ„

transformer์—์„œ ์ธ์ฝ”๋” ์ž…๋ ฅ ๋ถ€๋ถ„์€ ์†Œ์Šค ์‹œํ€€์Šค์˜ input embedding์— ํŠน์ • ์œ„์น˜๋งˆ๋‹ค ํŠน์ • ๋ฒกํ„ฐ๋ฅผ ๋”ํ•˜๋Š” ๊ทœ์น™์„ ๋‘ฌ์„œ positional encoding(์œ„์น˜์ •๋ณด)๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ๋งŒ๋“ ๋‹ค.

๋งŒ์•ฝ "์ธ๋„ ์Œ์‹์ ์— ๊ฐ€๋˜ ์ค‘"์„  "์ธ๋„" "์Œ์‹์ ์—" "๊ฐ€๋˜์ค‘"์˜ ํ† ํฐ ์‹œํ€€์Šค๋กœ ๋‚˜๋ˆด์„ ๋•Œ "์ธ๋„" ์—๋Š” 1๋ฒˆ flag ๋ฒกํ„ฐ, "์Œ์‹์ ์—"์—๋Š” 2๋ฒˆ flag ๋ฒกํ„ฐ๋ฅผ ๋”ํ•˜๊ณ , ๊ฐ ๋‹จ์–ด์˜ ๋ฒกํ„ฐ๋ฅผ ํ™•์ธํ–ˆ์„ ๋•Œ ๋ช‡ ๋ฒˆ์งธ ๋‹จ์–ด์ธ์ง€๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ positional encoding์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์•„๋ž˜ ์˜ˆ์‹œ์˜ "์ธ๋„"๊ฐ€ ์ธ๋„(India)์ธ๊ฑด์ง€ ์ธ๋„(ไบบ้“)์ธ๊ฑด์ง€ ์•Œ ์ˆ˜๊ฐ€ ์—†๋‹ค. 

  • ์ธ๋„ ์Œ์‹์ ์— ๊ฐ€๋˜ ์ค‘ ์ฃผํ–‰ ๊ธˆ์ง€ ํ‘œ์ง€ํŒ์„ ๋ณด์•˜๋‹ค.
  • ์ธ๋„ ์ฃผํ–‰ ๊ธˆ์ง€ ํ‘œ์ง€ํŒ์„ ์Œ์‹์ ์— ๊ฐ€๋˜ ์ค‘ ๋ณด์•˜๋‹ค.

๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ์ธ๋„ ๋‹ค์Œ์— ์˜ค๋Š” ๊ธ€์ž๋ฅผ ์ฐธ๊ณ  ํ•ด์•ผ ์ธ๋„ ์Œ์‹์ ์ธ๊ฑด์ง€ ์ธ๋„ ์ฃผํ–‰์ธ๊ฑด์ง€๋ฅผ ๋งฅ๋ฝ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด๋Š” Self-Attention์ด๋ผ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ๋งฅ๋ฝ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.

https://paperswithcode.com/method/transformer (transformer์˜ ์ „์ฒด ๊ตฌ์กฐ)

transformer์—์„œ ์ธ์ฝ”๋”์™€ ๋””์ฝ”๋”์˜ ๊ตฌ์กฐ๋Š” Self-Attention (๋…ธ๋ž€์ƒ‰-์ฃผํ™ฉ์ƒ‰ ๋„ค๋ชจ)์™€ FFN(๋…ธ๋ž€์ƒ‰-ํŒŒ๋ž€์ƒ‰ ๋„ค๋ชจ) ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค.
FFN์€ ๊ทธ๋ƒฅ linear layer๋ผ๊ณ  ํ•œ๋‹ค.
Attention์—์„œ Key๋ž‘ Value๊ฐ’์„ ๋™์ผํ•œ ๊ฐ’์„ ์“ธ ๋•Œ Self Attention์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ฆ‰ ์ž๊ธฐ ์ž์‹ ์—๊ฒŒ attention์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

Q="์ธ๋„" ๋ผ๊ณ  ํ•˜๋ฉด "์ธ๋„~~๋ณด์•˜๋‹ค" ๊นŒ์ง€ ๋‚ด์ ํ•œ key์™€ "์ธ๋„~๋ณด์•˜๋‹ค"์˜ value๋ฅผ ๊ณ„์‚ฐํ•ด์„œ ๊ฐ€์ค‘ํ•ฉ์„ ๋งŒ๋“ค๊ณ  ์ด ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์Œ layer์˜ ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.
์ด "์ธ๋„"๋Š” "์ธ๋„~๋ณด์•˜๋‹ค" ๊ฐ ๋‹จ์–ด์˜ ๊ด€๋ จ์ •๋„๊ฐ€ ๋ฐ˜์˜๋œ ํ•˜๋‚˜์˜ ๊ฐ€์ค‘์น˜ ํ•ฉ์ด๋ฏ€๋กœ
layer๋ฅผ ๋ช‡๋ฒˆ ์ง€๋‚˜๊ฒŒ ๋˜๋ฉด ๊ทธ ๋’ค๋ถ€ํ„ฐ "์ธ๋„"๋Š” ๊ทธ๋ƒฅ ์ธ๋„๊ฐ€ ์•„๋‹ˆ๋ผ "์ธ๋„(๊ทธ๋Ÿฐ๋ฐ ๋’ค์— ์Œ์‹์ ์ด ๋ถ™์€..)"์ด๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๋‚ดํฌํ•˜๊ฒŒ ๋œ๋‹ค.
์ฆ‰ ๋งฅ๋ฝ์ด ๋‹ด๊ธด ๋‹จ์–ด๊ฐ€ ๋œ๋‹ค.

 

๋‹ค๋ฅธ ๊ณผ์ •์€ seq2seq ์ด๋ž‘ ๋น„์Šทํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

"๋‚˜๋Š” ๋„ˆ๋ฅผ ์‚ฌ๋ž‘ํ•ด"๋ผ๋Š” ๋ฌธ์žฅ์„ ์˜์–ด๋กœ ๋ฒˆ์—ญํ•˜๊ณ , ์„ธ ๋ฒˆ์งธ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค๊ณ  ํ•˜๋ฉด encoder์™€ decoder์—๋Š” ๊ฐ๊ฐ ์•„๋ž˜์˜ input์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.

  • Encoder: ๋‚˜๋Š” ๋„ˆ๋ฅผ ์‚ฌ๋ž‘ํ•ด(์œ„์น˜์ •๋ณด ํฌํ•จ)
  • Decoder: (sos) I Love (์œ„์น˜์ •๋ณด ํฌํ•จ, N-1๋ฒˆ์งธ๊นŒ์ง€์˜ output ๊ฒฐ๊ณผ)

 

 

GPT์™€ BERT

original transformer ์˜ ๊ตฌ์กฐ๋Š” ์ž…๋ ฅ ์‹œํ€€์Šค๋ฅผ ์ดํ•ดํ•˜๋Š” encoder์™€ ์ถœ๋ ฅ ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” decoder๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋‹ค.
`input sequence`๋ฅผ encoder๋ฅผ ํ†ตํ•ด ์ดํ•ดํ•˜๊ณ  `output sequence`๋ฅผ decoder๋ฅผ ํ†ตํ•ด ์ƒ์„ฑํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ๊ตณ์ด ์ธ์ฝ”๋”๋‚˜ ๋””์ฝ”๋”๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค.
encoder๋ฅผ ๋บ€๊ฒŒ GPT(decoder only)๊ณ  decoder๋ฅผ ๋บ€ ํ˜•ํƒœ๊ฐ€ BERT(encoder only)๋กœ, ๊ฐ€์žฅ ์„ฑ๊ณต์ ์ธ transformer์˜ ๋ณ€ํ˜•์ด๋ผ๊ณ  ํ•œ๋‹ค.

๋‘ ๋ชจ๋ธ์˜ ๊ณตํ†ต์ ๋งŒ ๋จผ์ € ์•Œ์•„๋ณด์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Pretraining๊ณผ Fine-tuning: SSL(Self-Supervised Learning, unlabled data๋กœ ํ•™์Šตํ•˜๋Š” ๊ธฐ๋ฒ•)์„ ์ด์šฉํ•ด ๋Œ€๊ทœ๋ชจ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์ „ ํ•™์Šต

GPT

Generative Pre-trained Transformer

input sequence์™€ output sequence๋ฅผ ๋ถ„๋ฆฌํ•˜์ง€ ์•Š๊ณ  ํ•˜๋‚˜์˜ ์‹œํ€€์Šค์˜ ํ˜•ํƒœ๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ์ „์ฒด ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ํ•˜๋Š” ๋ชจ๋ธ๋ง ๋ฐฉ์‹์ด๋‹ค.

๊ธฐ์กด์—๋Š” "๋‚˜๋Š” ๋„ˆ๋ฅผ ์‚ฌ๋ž‘ํ•ด"๋ฅผ encoder๊ฐ€ ์ฒ˜๋ฆฌํ•˜๊ณ , "I Love You" ๋ฅผ decoder๊ฐ€ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ธ๋‹ค.
ํ•˜์ง€๋งŒ ํ•˜๋‚˜์˜ ์‹œํ€€์Šค๋กœ ์žฌ๊ตฌ์„ฑํ•˜์—ฌ

  • "Translate Korean to English: ๋‚˜๋Š” ๋„ˆ๋ฅผ ์‚ฌ๋ž‘ํ•ด => I love you" 

๋ผ๋Š” ๊ธด ๋ฌธ์žฅ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์ด ๋ฌธ์žฅ์ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ƒ์„ฑ๋˜๋Š” "I love you | Translate Korean to English: ๋‚˜๋Š” ๋„ˆ๋ฅผ ์‚ฌ๋ž‘ํ•ด" ๋ฅผ ๋ชจ๋ธ๋งํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ๋””์ฝ”๋”๊ฐ€ ์ฃผ์–ด์ง„ ์ž…๋ ฅ ์‹œํ€€์Šค์˜ ๋ฌธ๋งฅ์„ ํ™œ์šฉํ•˜์—ฌ ์ถœ๋ ฅ์„ ์ง์ ‘ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋””์ฝ”๋”๋งŒ์„ ์ด์šฉํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

OpenAI์—์„œ ๊ฐœ๋ฐœํ•œ GPT ๋ชจ๋ธ์€ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์„ ์ฑ„์šฉํ•˜์—ฌ ๋ชจ๋“  ํ…์ŠคํŠธ ์ƒ์„ฑ ์ž‘์—…์„ ๋””์ฝ”๋”๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.

GPT์˜ ๊ตฌ์กฐ๋Š” ์ž…๋ ฅ์„ ๋ฐ›์•„ ๊ฐ ์‹œ์ ์—์„œ ๋ชจ๋“  ์ด์ „ output์„ ์ฐธ๊ณ ํ•ด ๋‹ค์Œ outptu์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.

GPT๋Š” ์–ธ์–ด๋ฅผ ํ•™์Šต์‹œํ‚ค๋Š” ๋ฐ์— ์ „ํ†ต์ ์ธ ์–ธ์–ด ๋ชจ๋ธ ๋ฐฉ์‹์„ ์ฑ„ํƒํ–ˆ๋Š”๋ฐ, ์–ด๋–ค ์‹œํ€€์Šค๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ๋‹ค์Œ ๋‹จ์–ด์˜ ํ™•๋ฅ ์„ ์ฃผ์–ด์ง„ ์‹œํ€€์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. (Autoregressive Model)
"I Love"๋ผ๋Š” ์‹œํ€€์Šค๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ๋‹ค์Œ์— ์˜ค๋Š” ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•  ๋•Œ GPT ๋ชจ๋ธ์€ "you"๊ฐ€ ์˜ฌ ํ™•๋ฅ ์„ ๊ณ„์‚ฐํ•œ๋‹ค. 

  • P("you" | "I love")

์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์ธํ„ฐ๋„ท์— ์žˆ๋Š” ๋ฐฉ๋Œ€ํ•œ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•ด ๋ฌธ๋งฅ์— ๋”ฐ๋ผ ๋‹ค์Œ ๋‹จ์–ด์˜ ํ™•๋ฅ (=์ ํ•ฉ์„ฑ)์„ ํ•™์Šตํ•œ๋‹ค.
๋”ฐ๋ผ์„œ ์–ด๋– ํ•œ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ์ •๋ง ์‚ฌ๋žŒ์ด ์ผ์„ ๊ฒƒ ๊ฐ™์€ ๋ฌธ์žฅ์„ ์ƒ์„ฑํ•ด๋‚ผ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

BERT

Bidirectional Encoder Representations from Transformers

๋ถ„๋ฅ˜๋‚˜ ํšŒ๊ท€์˜ ๋ถ„์•ผ์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค. (๊ฐ์ • ๋ถ„์„, ์ฃผ๊ฐ€ ์˜ˆ์ธก, ์˜๋ฃŒ ์ง„๋‹จ ๋“ฑ)
์ด๋Ÿฌํ•œ ์ž‘์—…์€ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ˆซ์ž๋‚˜ ๋ฒ”์œ„๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋””์ฝ”๋”๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ฐ์ดํ„ฐ๋ฅผ ์ˆซ์ž๋กœ ๋งคํ•‘ํ•˜๋Š” ์ž‘์—…๋งŒ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ธ์ฝ”๋”๋งŒ ์‚ฌ์šฉํ•ด๋„ ๋˜๋ฉฐ, ๋Œ€ํ‘œ์ ์ธ ๋ฐฉ์‹์ด Google AI์—์„œ ๊ฐœ๋ฐœํ•œ BERT์ด๋‹ค.

 

 

 

 

BERT์—์„œ๋Š” ์–ธ์–ด๋ฅผ ํ•™์Šตํ•  ๋•Œ MLM(Maksed Language Model) ๋ฐฉ์‹์„ ์ฑ„์šฉํ–ˆ๋‹ค.
MLM์—์„œ๋Š” ์ผ๋ถ€ ๋‹จ์–ด๊ฐ€ Masked ์ฒ˜๋ฆฌ๊ฐ€ ๋˜๋Š”๋ฐ, ๋ชจ๋ธ์€ ์ด ๋งˆ์Šคํ‚น ๋œ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•ด์•ผ ํ•œ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด "Nice to meet you" ๋ผ๋Š” ๋ฌธ์žฅ์— "Nice to [masked] you" ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ๋งˆ์Šคํ‚น์„ ํ•  ์ˆ˜ ์žˆ๊ณ  ์ˆ˜๋งŽ์€ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค๊ณ  ๋‹ต์„ ๋งŒ๋“ค์–ด ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋‹ค. 

Nice to [masked] you ์—์„œ [masked]๋ฅผ ์˜ˆ์ธกํ•  ๋•Œ ์•ž์— ์žˆ๋Š” "Nice to"์™€ ๋’ค์— ์žˆ๋Š” "you"๋ฅผ ๋ชจ๋‘ ์ฐธ๊ณ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Bi-directional ์ฆ‰ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ๋ฌธ๋งฅ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

๋˜ NSP(Next Sentence Prediction)๋ฅผ ์ด์šฉํ•ด์„œ๋„ ๋ชจ๋ธ๋ง์„ ํ•˜๋Š”๋ฐ,

  • ๋‚˜๋Š” ์ง‘์— ๋“ค์–ด๊ฐ”๋‹ค. ์ง‘์—๋Š” ํƒ๋ฐฐ๊ฐ€ ์™€ ์žˆ์—ˆ๋‹ค.

๋Š” ์ด์–ด์งˆ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์žฅ์ด์ง€๋งŒ

  • ๋‚˜๋Š” ์ง‘์— ๋“ค์–ด๊ฐ”๋‹ค. ๋ฐ”๋‚˜๋‚˜๋Š” ๋…ธ๋ž€์ƒ‰์ด๋‹ค.

๋Š” ์ด์–ด์งˆ ์ˆ˜ ์—†๋Š” ๋ฌธ์žฅ์ž„์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

GPT์™€ BERT์˜ ์ฐจ์ด๋ฅผ ์š”์•ฝํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  GPT BERT
๋ชจ๋ธ ๊ตฌ์กฐ Transformer Decoder-only Transformer Encoder-only
์ž…๋ ฅ ์ฒ˜๋ฆฌ ์™ผ์ชฝ->์˜ค๋ฅธ์ชฝ ์ˆœ์„œ๋Œ€๋กœ ๋‹จ๋ฐฉํ–ฅ ์–‘๋ฐฉํ–ฅ(Bidirectional)์œผ๋กœ ๋ฌธ๋งฅ ์ดํ•ด
ํ•™์Šต ๋ฐฉ์‹ ๋‹ค์Œ ๋‹จ์–ด ์˜ˆ์ธก (Autoregressive) ๋งˆ์Šคํ‚น๋œ ๋‹จ์–ด ๋ณต์› (Maked Language Modeling)
์‚ฌ์šฉ ๋ชฉ์  ํ…์ŠคํŠธ ์ƒ์„ฑ  ํ…์ŠคํŠธ ์ดํ•ด
ํ™œ์šฉ ๋ถ„์•ผ ์ฑ—๋ด‡, ๋ฌธ์žฅ ์ƒ์„ฑ, ์ฝ”๋“œ ์ƒ์„ฑ ๋“ฑ ๋ฌธ์žฅ ๋ถ„๋ฅ˜, ์งˆ๋ฌธ ์‘๋‹ต, ๊ฐ์ • ๋ถ„์„ ๋“ฑ
๋ชจ๋ธ ์˜ˆ GPT-2, 3, 4 ๋“ฑ BERT-base, BERT-large, RoBERTa 

 

 

์ฐธ๊ณ 

https://wikidocs.net/21668

https://casa-de-feel.tistory.com/39

https://brunch.co.kr/@26dbf56c3e594db/110

https://kyull-it.tistory.com/212

https://velog.io/@sujeongim/NLPSeq2Seq-with-Attention

https://sotudy.tistory.com/31

https://codingopera.tistory.com/41

https://youtu.be/6s69XY025MU?si=fZ4JszgO-gT9gvxm

https://medium.com/@hugmanskj/%EA%B0%80%EC%9E%A5-%EC%84%B1%EA%B3%B5%EC%A0%81%EC%9D%B8-%ED%8A%B8%EB%9E%9C%EC%8A%A4%ED%8F%AC%EB%A8%B8%EC%9D%98-%EB%B3%80%ED%98%95-bert%EC%99%80-gpt-%EC%86%8C%EA%B0%9C-0b18fb7e563b

https://velog.io/@mmodestaa/NLP-%EC%9E%90%EC%97%B0%EC%96%B4%EC%B2%98%EB%A6%AC%EC%9D%98-%ED%8C%90%EB%8F%84%EB%A5%BC-%EB%B0%94%EA%BE%BC-Transformer-%EB%B0%8F-BERT-GPT-%EC%86%8C%EA%B0%9C