๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ํ•™์Šต ๊ธฐ๋ก (Learning Logs)/Today I Learned

LLM

๐Ÿ”ค LLM (Large Language Model)

๐Ÿง  **์—„์ฒญ๋‚˜๊ฒŒ ๋งŽ์€ ํ…์ŠคํŠธ(์ธํ„ฐ๋„ท, ์ฑ…, ์œ„ํ‚ค, ๋…ผ๋ฌธ ๋“ฑ)**๋ฅผ ํ•™์Šตํ•ด์„œ
๐Ÿ“š ์‚ฌ๋žŒ์ฒ˜๋Ÿผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋งํ•˜๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ธ๊ณต์ง€๋Šฅ ๋ชจ๋ธ


์šฐ๋ฆฌ๋ง๋กœ๋Š” ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ

 

 

  • ์ž…๋ ฅ ๋ฌธ์žฅ์„ ๋ณด๊ณ  ๋‹ค์Œ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๊ตฌ์กฐ
  • ์˜ˆ: "๋‚˜๋Š” ๊ณ ์–‘์ด๋ฅผ" → ๋ชจ๋ธ์ด "์ข‹์•„ํ•ด" ๋ผ๊ณ  ์˜ˆ์ธก
  • GPT๋Š” Transformer ๋””์ฝ”๋”๋งŒ ์จ์„œ ๋ฌธ์žฅ์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๋งŒ๋“ค์–ด

 

 

LLM์ด ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค:

  • ์งˆ๋ฌธ์— ๋Œ€๋‹ตํ•˜๊ธฐ (GPT์ฒ˜๋Ÿผ)
  • ์š”์•ฝํ•˜๊ธฐ
  • ๋ฒˆ์—ญํ•˜๊ธฐ
  • ๊ธ€์“ฐ๊ธฐ (์ด๋ ฅ์„œ, ์ด๋ฉ”์ผ, ์†Œ์„ค๊นŒ์ง€๋„!)
  • ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐ ๋””๋ฒ„๊น…
  • ์ฑ—๋ด‡, ๊ฐ€์ƒ๋น„์„œ
  • ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์š”์•ฝ
  • ์ฐฝ์ž‘(์‹œ, ์†Œ์„ค, ๋Œ€ํ™” ์‹œ๋ฎฌ๋ ˆ์ด์…˜)

 

์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋ƒ๋ฉด?

  • Transformer๋ผ๋Š” ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ณ 
  • ์ˆ˜์‹ญ์–ต~์ˆ˜์กฐ ๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ•™์Šต ํ›„
  • ๋‹ค์Œ์— ์˜ฌ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ง์„ ์ƒ์„ฑ

 

LLM ๋ฒ”์ฃผ

LLM โ”€โ”€โ”ฌโ”€โ”€ GPT (OpenAI)
      โ”œโ”€โ”€ Claude (Anthropic)
      โ”œโ”€โ”€ Gemini (Google)
      โ””โ”€โ”€ LLaMA (Meta)

 


๐Ÿง  LLM์—์„œ Neural Network๊ฐ€ ์–ด๋–ป๊ฒŒ ์“ฐ์ด๋Š”๊ฐ€?

 

โœ… GPT๊ฐ€ ํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋‰ด๋Ÿด ๋„คํŠธ์›Œํฌ ํ๋ฆ„

  1. ๋ฌธ์žฅ์„ ์ˆซ์ž๋กœ ๋ฐ”๊ฟˆ
  2. ์ˆซ์ž๋ฅผ ๋ฒกํ„ฐ๋กœ ๋ฐ”๊ฟˆ
  3. Transformer๊ฐ€ ๋ฌธ๋งฅ ์ดํ•ด
  4. ๋‹ค์Œ ๋‹จ์–ด๋ฅผ ํ™•๋ฅ ์ ์œผ๋กœ ์˜ˆ์ธก
  5. Softmax๋กœ ๊ฐ€์žฅ ์ž์—ฐ์Šค๋Ÿฌ์šด ๋‹จ์–ด ์„ ํƒ
  6. ๊ณ„์† ์ด์–ด์„œ ์ƒ์„ฑ

1. Input Tokens (์ž…๋ ฅ ํ† ํฐ)

์‚ฌ์šฉ์ž ์ž…๋ ฅ: "๋‚˜๋Š” ๊ณ ์–‘์ด๋ฅผ"

"๋‚˜๋Š”" → 2311
"๊ณ ์–‘์ด" → 4201
"๋ฅผ" → 103

์ด ๋ฌธ์žฅ์„ ๋‹จ์–ด ๋˜๋Š” subword ๋‹จ์œ„๋กœ ๋‚˜๋ˆ ์„œ **์ˆซ์ž(token ID)**๋กœ ๋ฐ”๊ฟˆ

 

2. Embedding Layer (์ž„๋ฒ ๋”ฉ)

์ˆซ์ž๋กœ ๋ฐ”๋€ ํ† ํฐ์„ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ (๋‹จ์–ด๋ฅผ ๋ฒกํ„ฐ ๊ณต๊ฐ„์— ๋งคํ•‘)

์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ ์ง„์งœ ๋‰ด๋Ÿด ๋„คํŠธ์›Œํฌ์˜ ๊ณ„์‚ฐ์ด ์‹œ์ž‘๋จ.

 
[2311] → [0.15, -0.21, ..., 0.88] (์˜ˆ: 768์ฐจ์›)

 

 

3. Transformer Layers (์ค‘์‹ฌ ๊ตฌ์กฐ)

์—ฌ๊ธฐ์„œ LLM์˜ ํ•ต์‹ฌ์ธ Self-Attention๊ณผ Feed Forward Network๊ฐ€ ๋ฐ˜๋ณต๋จ

Self-Attention:

๊ฐ ๋‹จ์–ด๊ฐ€ ๋‹ค๋ฅธ ๋‹จ์–ด๋ฅผ ์–ผ๋งˆ๋‚˜ ์ฐธ๊ณ ํ• ์ง€ ๊ฒฐ์ •
์˜ˆ: "๊ณ ์–‘์ด๋ฅผ"์ด ๋‚˜์™”์„ ๋•Œ, "๋‚˜๋Š”"๊ณผ์˜ ๊ด€๊ณ„๋ฅผ ๊ณ„์‚ฐํ•ด์„œ ๋ฌธ๋งฅ์„ ํŒŒ์•…

FFN (Feed Forward Network):

๊ฐ ๋‹จ์–ด ๋ฒกํ„ฐ๋ฅผ ๋น„์„ ํ˜•์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์„œ ๋” ํ’๋ถ€ํ•œ ์˜๋ฏธ๋ฅผ ๋ฐ˜์˜

์ด ๊ณผ์ •์„ ์ˆ˜์‹ญ~์ˆ˜๋ฐฑ ์ธต ๋ฐ˜๋ณตํ•ด์„œ ๋‹จ์–ด์˜ ์˜๋ฏธ๊ฐ€ ์ ์  ๋˜‘๋˜‘ํ•ด์ง!

 

 

4. Logits (์ถœ๋ ฅ ๋ฒกํ„ฐ)

๊ฐ ๋‹จ์–ด์˜ ๋‹ค์Œ ๋‹จ์–ด๊ฐ€ ๋  ๊ฐ€๋Šฅ์„ฑ์„ ์ˆ˜์น˜๋กœ ํ‘œํ˜„ํ•œ ๊ฐ’๋“ค์ด ๋‚˜์˜ด

"์ข‹์•„ํ•ด": 6.3  
"์‹ซ์–ดํ•ด": 1.2  
"๋จน์—ˆ๋‹ค": 0.5  
...

 

 

5. Softmax

์œ„ ์ˆซ์ž๋“ค์„ 0~1 ์‚ฌ์ด ํ™•๋ฅ ๋กœ ๋ฐ”๊ฟ”์คŒ (์ดํ•ฉ 1)
→ ๊ฐ€์žฅ ๋†’์€ ํ™•๋ฅ ์„ ๊ฐ€์ง„ ๋‹จ์–ด๊ฐ€ ์„ ํƒ๋จ

 

 

6. Output Tokens (์ถœ๋ ฅ ๋‹จ์–ด)

์˜ˆ์ธก๋œ ๋‹ค์Œ ๋‹จ์–ด "์ข‹์•„ํ•ด"๊ฐ€ ๋‚˜์˜ด
→ ๋‹ค์‹œ ์ด๊ฑธ ์ž…๋ ฅ์œผ๋กœ ๋„ฃ์–ด์„œ "์š”" → "." → … ๊ณ„์† ์ด์–ด๊ฐ

 

 

 


๐Ÿ”ง Transformer ๊ตฌ์กฐ๋ž€?

2017๋…„ Google์ด ๋ฐœํ‘œํ•œ ๋…ผ๋ฌธ
“Attention Is All You Need” ์—์„œ ์†Œ๊ฐœ๋œ ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ ๋ชจ๋ธ ๊ตฌ์กฐ

 

์ด์ „์—๋Š” RNN, LSTM ๊ฐ™์€ ์‹œํ€€์Šค ๋ชจ๋ธ๋“ค์ด ์žˆ์—ˆ๋Š”๋ฐ,
๊ทธ๊ฑธ ๋‹ค ์ œ์น˜๊ณ  ์†๋„, ์ •ํ™•๋„, ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ๋ชจ๋“  ๋ฉด์—์„œ ์••๋„์ ์œผ๋กœ ์ข‹์•„์„œ NLP์˜ ํ˜๋ช…์ด ์‹œ์ž‘๋์ง€.

 


๐ŸŽฏ ํ•ต์‹ฌ ์•„์ด๋””์–ด: Attention

Transformer๋Š” ๋‹จ์ˆœํ•˜๊ฒŒ ๋งํ•˜๋ฉด:

"๋ฌธ์žฅ์—์„œ ์ค‘์š”ํ•œ ๋‹จ์–ด์— ์ง‘์ค‘ํ•ด์„œ ํ•ด์„ํ•˜์ž!"
์ด๊ฑธ Attention์ด๋ผ๋Š” ๊ธฐ์ˆ ๋กœ ๊ตฌํ˜„ํ–ˆ์–ด.

์˜ˆ๋ฅผ ๋“ค์–ด:

"๋‚˜๋Š” ์˜ค๋Š˜ ํ•™๊ต์— ๊ฐ”๋Š”๋ฐ, ๊ฑฐ๊ธฐ์„œ ๊ณ ์–‘์ด๋ฅผ ๋ดค์–ด."

 

์ด ๋ฌธ์žฅ์—์„œ "๋ดค์–ด"๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๋‚˜์™”์„ ๋•Œ, ๋ชจ๋ธ์€
"๊ทธ๋Ÿผ ๋ฌด์—‡์„ ๋ดค๋Š”์ง€ ์ฐพ์•„์•ผ์ง€?" → "๊ณ ์–‘์ด"์— ์ฃผ๋ชฉํ•จ → ์ด๊ฒŒ Attention์˜ ํ•ต์‹ฌ!

 

 

๐Ÿงฑ Transformer ๊ตฌ์กฐ์˜ ๊ตฌ์„ฑ์š”์†Œ

[์ž…๋ ฅ ํ† ํฐ] → โฌ… Embedding  
            → โฌ… Positional Encoding  
            → [Multi-Head Attention]  
            → [Feed Forward Network]  
            → [์ถœ๋ ฅ]

1. Input Embedding

  • ๋‹จ์–ด๋ฅผ ์ˆซ์ž๋กœ ๋ฐ”๊ฟ”์„œ ์ฒ˜๋ฆฌ (๋ฒกํ„ฐํ™”)

2. Positional Encoding

  • ๋‹จ์–ด ์ˆœ์„œ ์ •๋ณด ์ถ”๊ฐ€ (Transformer๋Š” RNN์ด ์•„๋‹ˆ๋ผ ์ˆœ์„œ๋ฅผ ๋”ฐ๋กœ ์•Œ๋ ค์ค˜์•ผ ํ•จ)

3. Multi-Head Attention

  • ์—ฌ๋Ÿฌ ๊ด€์ ์—์„œ ๋‹จ์–ด ๊ฐ„ ๊ด€๊ณ„๋ฅผ ๋ณด๋Š” ๊ตฌ์กฐ (๋ณต์ˆ˜์˜ "์ฃผ์˜์ง‘์ค‘" ์‹œ์„ )

4. Feed Forward Network

  • ์ผ๋ฐ˜์ ์ธ ์‹ ๊ฒฝ๋ง ์ฒ˜๋ฆฌ (๋น„์„ ํ˜• ๋ณ€ํ™˜)

5. Residual + Layer Normalization

  • ํ•™์Šต์„ ์•ˆ์ •ํ™”ํ•˜๊ณ  ๋” ๊นŠ์€ ๊ตฌ์กฐ๋กœ ์Œ“์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•จ

 

๐ŸŽ“ ํ•œ ์ค„ ์š”์•ฝ 

Transformer๋Š” ๋ฌธ์žฅ ์ „์ฒด์—์„œ ์ค‘์š”ํ•œ ๊ด€๊ณ„๋ฅผ ๋™์‹œ ํŒŒ์•…ํ•ด์„œ ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ์ž์—ฐ์–ด๋ฅผ ์ดํ•ดํ•˜๊ณ  ์ƒ์„ฑํ•˜๋Š” ๊ตฌ์กฐ

 

 


๐Ÿ” ์ธ์ฝ”๋” & ๋””์ฝ”๋”

Transformer๋Š” ์›๋ž˜ ๊ตฌ์กฐ์ƒ:

  • ์ธ์ฝ”๋”: ์ž…๋ ฅ์„ ์ดํ•ดํ•จ (์˜ˆ: ๋ฒˆ์—ญํ•  ๋ฌธ์žฅ์„ ํ•ด์„)
  • ๋””์ฝ”๋”: ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•จ (์˜ˆ: ๋ฒˆ์—ญ ๊ฒฐ๊ณผ ์ƒ์„ฑ)

๐Ÿ’ก ํ•˜์ง€๋งŒ GPT๋Š” ๋””์ฝ”๋”๋งŒ ์‚ฌ์šฉํ•ด์„œ ์–ธ์–ด ์ƒ์„ฑ ๋ชจ๋ธ๋กœ ๋ฐœ์ „ํ–ˆ๊ณ ,
BERT๋Š” ์ธ์ฝ”๋”๋งŒ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์žฅ ์ดํ•ด์— ํŠนํ™”๋์–ด.

 

๐Ÿ“ฆ Encoder vs Decoder

๊ตฌ๋ถ„ Encoder (์ธ์ฝ”๋”) Decoder (๋””์ฝ”๋”)
์ž…๋ ฅ ์›๋ณธ ๋ฐ์ดํ„ฐ (๋ฌธ์žฅ, ์ด๋ฏธ์ง€ ๋“ฑ) "์˜๋ฏธ ๋ฒกํ„ฐ" + ์ผ๋ถ€ ์ž…๋ ฅ (ex. ์ด์ „ ๋‹จ์–ด)
์ถœ๋ ฅ ์˜๋ฏธ ๋ฒกํ„ฐ (context vector) ์ตœ์ข… ๊ฒฐ๊ณผ๋ฌผ (์˜ˆ: ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€ ๋“ฑ)
์—ญํ•  ์ •๋ณด๋ฅผ ์š”์•ฝ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ƒ์„ฑ

 

๐Ÿง  ๋‰ด๋Ÿด ๋„คํŠธ์›Œํฌ ๊ด€์ ์—์„œ ๋ณด๋ฉด?

๐Ÿ”น Encoder

  1. ์ž…๋ ฅ(๋ฌธ์žฅ)์„ token ๋‹จ์œ„๋กœ ๋‚˜๋ˆ”
  2. Embedding → ๋ฒกํ„ฐํ™”
  3. ์—ฌ๋Ÿฌ ์ธต์˜ Self-Attention + Feed Forward๋ฅผ ๊ฑฐ์นจ
  4. ๊ฐ ๋‹จ์–ด๊ฐ€ ๋ฌธ๋งฅ์„ ์ดํ•ดํ•œ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜๋จ

๐Ÿ“Œ ๊ฒฐ๊ณผ:
→ ์ž…๋ ฅ ๋ฌธ์žฅ์„ **“์ „์ฒด ์˜๋ฏธ๊ฐ€ ๋ฐ˜์˜๋œ ๋ฒกํ„ฐ ์‹œํ€€์Šค”**๋กœ ๋ณ€ํ™˜

 

 

๐Ÿ”ธ Decoder

  1. ์ธ์ฝ”๋”์—์„œ ๋‚˜์˜จ "์˜๋ฏธ ๋ฒกํ„ฐ"๋ฅผ ๋ฐ›์•„์˜ด
  2. ์ง€๊ธˆ๊นŒ์ง€ ์ƒ์„ฑ๋œ ๋‹จ์–ด๋“ค๋กœ Self-Attention ์ˆ˜ํ–‰
  3. ์ธ์ฝ”๋”์˜ ์ถœ๋ ฅ๋„ ์ฐธ๊ณ  (Encoder-Decoder Attention)
  4. ๋‹ค์Œ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•จ

๐Ÿ“Œ ๊ฒฐ๊ณผ:
→ ํ•˜๋‚˜์”ฉ ํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•ด๋‚˜๊ฐ ("๋‚˜๋Š”" → "๊ณ ์–‘์ด๋ฅผ" → "์ข‹์•„ํ•ด" → "์š”")

 

 

๐Ÿงพ ์˜ˆ์‹œ: ๋ฒˆ์—ญ๊ธฐ

์ž…๋ ฅ ๋ฌธ์žฅ: "I love cats"
์ถœ๋ ฅ ๋ฌธ์žฅ: "๋‚˜๋Š” ๊ณ ์–‘์ด๋ฅผ ์ข‹์•„ํ•ด"

  1. Encoder
    → "I", "love", "cats" → ๋ฒกํ„ฐ → ๋ฌธ๋งฅ ๋ฐ˜์˜๋œ ์˜๋ฏธ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜
  2. Decoder
    → "๋‚˜๋Š”" → "๊ณ ์–‘์ด๋ฅผ" → "์ข‹์•„ํ•ด" ์ˆœ์„œ๋Œ€๋กœ ์ƒ์„ฑ
    → ๊ฐ ๋‹จ๊ณ„์—์„œ ์ธ์ฝ”๋”์˜ ์˜๋ฏธ ๋ฒกํ„ฐ๋ฅผ ์ฐธ๊ณ ํ•จ

 

 


โœจ GPT

  • GPT๋Š” ํ…์ŠคํŠธ ์ƒ์„ฑ ์ „์šฉ ๋ชจ๋ธ์ด๋‹ค
  • Encoder๋Š” ํ•„์š” ์—†์Œ (์ž…๋ ฅ ์ „์ฒด๋ฅผ ์š”์•ฝํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ)
  • ๋Œ€์‹  Decoder๋งŒ ์‚ฌ์šฉํ•ด์„œ ์ˆœ์ฐจ์ ์œผ๋กœ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•จ
  • ๋ฏธ๋ž˜ ๋‹จ์–ด๋ฅผ ๋ณด์ง€ ์•Š๋„๋ก Causal Attention ๊ตฌ์กฐ ์‚ฌ์šฉ

 

โœ… GPT๋Š” LLM, ์–ด๋–ค ํŠน์ง•์ด ์žˆ์„๊นŒ?

ํ•ญ๋ชฉ ๋‚ด์šฉ
๊ธฐ๋ฐ˜ ๊ตฌ์กฐ Transformer (๋””์ฝ”๋”-only)
ํ•™์Šต ๋ฐฉ์‹ ๋‹ค์Œ ๋‹จ์–ด ์˜ˆ์ธก (Next-token prediction)
์—ญํ•  ํ…์ŠคํŠธ ์ƒ์„ฑ, ๋ฒˆ์—ญ, ์š”์•ฝ, ๋Œ€ํ™” ๋“ฑ
ํ™•์žฅ ๋ชจ๋ธ GPT + ์ด๋ฏธ์ง€(DALL·E), GPT + ํˆด(์ฝ”๋“œ, ๊ณ„์‚ฐ๊ธฐ ๋“ฑ) → ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋ชจ๋ธ๋กœ ์ง„ํ™”

 

GPT๋Š” ์™œ Encoder ์—†์ด Decoder๋งŒ ์‚ฌ์šฉํ• ๊นŒ?

GPT๋Š” "๋‹ค์Œ ๋‹จ์–ด ์ƒ์„ฑ"์—๋งŒ ์ง‘์ค‘ํ•˜๋Š” ์ƒ์„ฑ ํŠนํ™” ๋ชจ๋ธ์ด๊ธฐ ๋•Œ๋ฌธ์—
Decoder๋งŒ ์‚ฌ์šฉํ•ด์„œ ํ…์ŠคํŠธ๋ฅผ ํ•˜๋‚˜์”ฉ ์ˆœ์ฐจ์ ์œผ๋กœ ์ƒ์„ฑํ•ด.

 

๐Ÿ” GPT์˜ ์ž‘์—… ํ๋ฆ„

"๋‚˜๋Š” ๊ณ ์–‘์ด๋ฅผ"

 

GPT๋Š” ๊ทธ๊ฑธ ๋ณด๊ณ :

  • ๋‹ค์Œ ๋‹จ์–ด๋Š”? → "์ข‹์•„ํ•ด"
  • ๊ทธ๋‹ค์Œ์€? → "์š”"
  • ๊ทธ๋‹ค์Œ์€? → "."

์ด๋Ÿฐ ์‹์œผ๋กœ ๋‹จ์–ด๋ฅผ ํ•˜๋‚˜์”ฉ ์ฐจ๋ก€๋Œ€๋กœ ์˜ˆ์ธกํ•˜๋ฉด์„œ ์ƒ์„ฑํ•ด ๋‚˜๊ฐ€.

์ž…๋ ฅ ์ž์ฒด๊ฐ€ ์ƒ์„ฑ์˜ ์ผ๋ถ€์•ผ.
→ ์ด๋ฏธ ์ž…๋ ฅ๋œ ๋‹จ์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ, ๋‹ค์Œ ๋‹จ์–ด๋งŒ ๊ณ„์† ์˜ˆ์ธกํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์—
Decoder ๊ตฌ์กฐ๋งŒ ์žˆ์œผ๋ฉด ์ถฉ๋ถ„ํ•ด.

 

 

๐ŸŽฏ ์™œ Encoder๋Š” ์•ˆ ์“ฐ๋ƒ?


 

์ด์œ  ์„ค๋ช…
โœ… ๋ชฉ์ ์ด “์ƒ์„ฑ”์ด๊ธฐ ๋•Œ๋ฌธ ๋ฌธ์žฅ์„ "์ดํ•ด"ํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ "๋งŒ๋“œ๋Š” ๊ฒŒ ๋ชฉ์ "
โœ… ์ž…๋ ฅ์ด ๊ณ„์† ๊ธธ์–ด์ง ์ƒ์„ฑํ• ์ˆ˜๋ก ์ž…๋ ฅ๋„ ๊ฐ™์ด ๊ธธ์–ด์ง → Decoder๋Š” ๊ณผ๊ฑฐ๋งŒ ๋ณด๊ณ  ์ˆœ์ฐจ์  ์ƒ์„ฑ ๊ฐ€๋Šฅ
โœ… ๋ฏธ๋ž˜๋ฅผ ๋ณด๋ฉด ์•ˆ ๋จ ์ƒ์„ฑ ์‹œ์—๋Š” ์•„์ง ์ƒ์„ฑ ์•ˆ ๋œ ๋‹จ์–ด๋Š” ๋ชจ๋ฆ„ → Encoder๋Š” ์–‘๋ฐฉํ–ฅ์ด๋ผ ๋ถ€์ ์ ˆ

๐Ÿ” BERT?

BERT๋Š” ๋ฌธ์žฅ ์†์— ๋นˆ์นธ์„ ์ฑ„์šฐ๊ฑฐ๋‚˜,
๋‘ ๋ฌธ์žฅ์ด ๋…ผ๋ฆฌ์ ์œผ๋กœ ์ด์–ด์ง€๋Š”์ง€,
๋ฌธ์žฅ์ด ๊ธ์ •/๋ถ€์ •์ธ์ง€๋ฅผ ํŒ๋‹จํ•˜๋Š” ๋ฐ ๊ฐ•ํ•จ

 

๋ชจ๋ธ ๋ชฉ์  ์˜ˆ์‹œ
๐Ÿ—ฃ GPT ๋ง์„ ๋งŒ๋“ค์–ด๋ƒ„ (์ƒ์„ฑ) "๋‚˜๋Š” ๊ณ ์–‘์ด๋ฅผ" → "์ข‹์•„ํ•ด์š”"
๐Ÿง  BERT ๋ง์„ ์ดํ•ดํ•จ (์ดํ•ด) "๋‚˜๋Š” [MASK]๋ฅผ ์ข‹์•„ํ•ด" → [MASK] = ๊ณ ์–‘์ด

 

๐Ÿ“Œ ์–ด๋””์„œ ์“ฐ์ด๋ƒ?

  • BERT๋Š” ์ง€๊ธˆ๋„ ๊ตฌ๊ธ€ ๊ฒ€์ƒ‰ ์—”์ง„, ๊ฐ์„ฑ ๋ถ„์„, ๋ฌธ์žฅ ๋ถ„๋ฅ˜ ๋“ฑ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋ผ
  • ๋‹ค๋ฅธ ํŒŒ์ƒ ๋ชจ๋ธ๋“ค๋กœ๋„ ๋ฐœ์ „ํ–ˆ์–ด (RoBERTa, DistilBERT, ALBERT ๋“ฑ)

 

 

๐Ÿ“š BERT  ํ•™์Šต

1. Masked Language Modeling (MLM)

๋ฌธ์žฅ ์ผ๋ถ€๋ฅผ ๊ฐ€๋ฆฌ๊ณ  ์˜ˆ์ธกํ•˜๊ฒŒ ํ•จ

"๋‚˜๋Š” [MASK]๋ฅผ ์ข‹์•„ํ•ด์š”"  
→ ๋ชจ๋ธ์ด "[MASK] = ๊ณ ์–‘์ด" ๋ผ๊ณ  ๋งž์ถ”๋Š” ์‹

์ด๋•Œ ๋ฌธ์žฅ์˜ ์™ผ์ชฝ/์˜ค๋ฅธ์ชฝ ๋ชจ๋‘๋ฅผ ์ฐธ๊ณ ํ•  ์ˆ˜ ์žˆ์Œ
์–‘๋ฐฉํ–ฅ(Bidirectional) ์ดํ•ด๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง! ์ด๊ฒŒ BERT์˜ ํ•ต์‹ฌ.

 

 

2. Next Sentence Prediction (NSP)

๋‘ ๋ฌธ์žฅ์ด ์ด์–ด์ง€๋Š” ๋ฌธ์žฅ์ธ์ง€ ์˜ˆ์ธก

๋ฌธ์žฅ1: "๋‚˜๋Š” ๊ณ ์–‘์ด๋ฅผ ์ข‹์•„ํ•ด."  
๋ฌธ์žฅ2: "๊ทธ๋ž˜์„œ ์ž์ฃผ ๋™๋ฌผ๋ณ‘์›์— ๊ฐ„๋‹ค."

→ ์ด์–ด์ง„๋‹ค (True)

๋ฌธ์žฅ2๊ฐ€ ๋žœ๋ค์ด๋ฉด → False

 

 

โœจ BERT์˜ ๊ฐ•์ 

ํŠน์ง• ์„ค๋ช…
โœ… ์–‘๋ฐฉํ–ฅ ์ดํ•ด ๋ฌธ์žฅ์˜ ์ขŒ์šฐ ๋ฌธ๋งฅ์„ ๋ชจ๋‘ ์ฐธ์กฐ
โœ… ๋ฌธ์žฅ ๋ถ„๋ฅ˜ ๊ฐ์ • ๋ถ„์„, ๋ฌธ์žฅ ์œ ์‚ฌ๋„, QA ๋“ฑ์— ๊ฐ•ํ•จ
โœ… ์‚ฌ์ „ ํ•™์Šต + ํŒŒ์ธํŠœ๋‹ ์—ฌ๋Ÿฌ ์ž‘์—…์— ๋งž๊ฒŒ ์‰ฝ๊ฒŒ ์‘์šฉ ๊ฐ€๋Šฅ

 

 

๐Ÿง  Bert ๋ˆ„๊ฐ€ ๋งŒ๋“ค์—ˆ๋ƒ?

๐Ÿ“„ ๋…ผ๋ฌธ ์ œ๋ชฉ:
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

 

๋ชจ๋‘ Google AI Language ํŒ€ ์†Œ์†

๐Ÿ‘จ‍๐Ÿ”ฌ ์ž‘์„ฑ์ž:

  • Jacob Devlin
  • Ming-Wei Chang
  • Kenton Lee
  • Kristina Toutanova

 

๐ŸŒ Bert ํ˜์‹ 

BERT๋Š” ์ž์—ฐ์–ด์ฒ˜๋ฆฌ(NLP) ๋ถ„์•ผ์— ์™„์ „ ํ˜์‹ ์„ ์ผ์œผํ‚ด

์ „ (BERT ์ด์ „) ํ›„ (BERT ๋“ฑ์žฅ ์ดํ›„)
๋‹จ๋ฐฉํ–ฅ ๋ชจ๋ธ ์œ„์ฃผ ์–‘๋ฐฉํ–ฅ ๋ฌธ๋งฅ ๋ชจ๋ธ (ํ˜์‹ !)
Task๋ณ„ ๋ชจ๋ธ ๋”ฐ๋กœ ํ•™์Šต ํ•˜๋‚˜์˜ ์‚ฌ์ „ ํ•™์Šต ๋ชจ๋ธ + ํŒŒ์ธํŠœ๋‹
RNN, LSTM ์ฃผ๋ฅ˜ Transformer ๊ธฐ๋ฐ˜ ๋Œ€์„ธ ํ™•์ •

 


LLM ๋ชจ๋ธ ๋งŒ๋“ค๊ธฐ

๋ชฉํ‘œ: ๋กœ์ปฌ ์ „์šฉ GPT ์ฝ”๋“œ ๋„์šฐ๋ฏธ ๋งŒ๋“ค๊ธฐ

๐ŸŽฏ ๊ธฐ๋Šฅ ์˜ˆ์‹œ

  • VSCode/Cursor์ฒ˜๋Ÿผ ์ฝ”๋”ฉ ์ค‘์— ์ž๋™์™„์„ฑ
  • "์ด ํ•จ์ˆ˜ ๋ฆฌํŒฉํ„ฐ๋งํ•ด์ค˜" ๊ฐ™์€ ์ž์—ฐ์–ด ์š”์ฒญ
  • "์ด ์ฝ”๋“œ ์„ค๋ช…ํ•ด์ค˜", "์œ ๋‹› ํ…Œ์ŠคํŠธ ์งœ์ค˜" ๋“ฑ ํ”„๋กฌํ”„ํŠธ ๊ธฐ๋ฐ˜ ์ฝ”๋“œ ์ƒ์„ฑ
  • ๋ชจ๋“  ์ž‘์—…์€ ์ ˆ๋Œ€ ์™ธ๋ถ€ API ํ˜ธ์ถœ ์—†์ด ๋กœ์ปฌ์—์„œ ์ฒ˜๋ฆฌ

 

๐Ÿš€ ์‹คํ˜„์„ ์œ„ํ•œ ๊ตฌ์กฐ ์ œ์•ˆ

1. ๊ฒฝ๋Ÿ‰ LLM ์„ ํƒ (๋กœ์ปฌ ์‹คํ–‰ ๊ฐ€๋Šฅ)

๋ชจ๋ธ ์ด๋ฆ„ ํŠน์ง• ํ•„์š” ์ž์›
CodeLlama 7B (ggml) Meta์—์„œ ๊ณต๊ฐœํ•œ ์ฝ”๋“œ ์ „์šฉ LLM ์•ฝ 8GB VRAM (CPU๋กœ๋„ ๊ฐ€๋Šฅ)
Mistral 7B ์ตœ์‹  ๊ณ ์„ฑ๋Šฅ ๊ฒฝ๋Ÿ‰ ๋ชจ๋ธ (์ฝ”๋“œ๋„ ์ž˜ํ•จ) ~8GB ์ด์ƒ
Phi-2 MS์—์„œ ๋งŒ๋“  ์ดˆ๊ฒฝ๋Ÿ‰ LLM CPU์—์„œ๋„ ์‹คํ–‰ ๊ฐ€๋Šฅ
StarCoder HuggingFace์—์„œ ๋งŒ๋“  ์ฝ”๋“œ ํŠนํ™” LLM GPU ์žˆ์œผ๋ฉด ๋” ์ข‹์Œ

 

โœ… HuggingFace + transformers, llama.cpp, ollama, ggml ์ค‘ ์„ ํƒ ๊ฐ€๋Šฅ

 

2. ๋กœ์ปฌ ํ™˜๊ฒฝ ์‹คํ–‰ ํˆด

  • llama.cpp: C++ ๊ธฐ๋ฐ˜ ์ดˆ๊ฒฝ๋Ÿ‰ LLM ์‹คํ–‰ ๋„๊ตฌ (ggml, gguf ๋ชจ๋ธ ์‚ฌ์šฉ)
  • Ollama: ๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด๋งŒ์œผ๋กœ ๋‹ค์–‘ํ•œ LLM ์‹คํ–‰ ๊ฐ€๋Šฅ (Mac, Linux, Windows)
  • Text-generation-webui: ์›น ๊ธฐ๋ฐ˜ UI ์ œ๊ณต (LLM ํ…Œ์ŠคํŠธ์— ์œ ์šฉ)
# 1. Ollama ์„ค์น˜
brew install ollama

# 2. CodeLlama ๋ชจ๋ธ ๋กœ๋“œ
ollama run codellama

# 3. ํ”„๋กฌํ”„ํŠธ
> Write a unit test for the following Java method:

 

3. ์ฝ”๋”ฉ ์—๋””ํ„ฐ์™€ ์—ฐ๋™

์ž์ฒด Electron ๊ธฐ๋ฐ˜ ์•ฑ VSCode ๋А๋‚Œ์˜ ๋กœ์ปฌ ์•ฑ ์ง์ ‘ ๊ฐœ๋ฐœ
VSCode Extension ๋‚ด๋ถ€ ํ”„๋ก์‹œ ์„œ๋ฒ„ + ํ”„๋กฌํ”„ํŠธ ์ฒ˜๋ฆฌ๊ธฐ ์ง์ ‘ ๋งŒ๋“ค๊ธฐ
ํ„ฐ๋ฏธ๋„ ๊ธฐ๋ฐ˜ GPT ๋„์šฐ๋ฏธ llm CLI ๋„๊ตฌ์ฒ˜๋Ÿผ ์ž…๋ ฅ ๊ธฐ๋ฐ˜ ์‚ฌ์šฉ๋„ ๊ฐ€๋Šฅ

 

4. ํ”„๋กฌํ”„ํŠธ ์—”์ง„ ๊ตฌ์„ฑ

  • ๋กœ์ปฌ ๋ชจ๋ธ์—๊ฒŒ ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ ์ œ๊ณต
    ์˜ˆ: "์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋ฆฌํŒฉํ„ฐ๋งํ•ด์ค˜:\n{code}"
  • ์ƒ์„ฑ๋œ ๊ฒฐ๊ณผ๋ฅผ ํ…์ŠคํŠธ๋กœ ๋ฐ›์•„์„œ IDE์— ๋ฐ˜์˜

 

 

โœ… ๋งŒ๋“ค ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ์ œํ•œ ํผ

์™„์ „ํ•œ GPT-3๊ธ‰ LLM์€ ๋ถˆ๊ฐ€๋Šฅ
→ ํ•˜์ง€๋งŒ ์ž‘๊ณ  ๊ฐ€๋ฒผ์šด LLM์„ ์ง์ ‘ ํ•™์Šตํ•˜๊ฑฐ๋‚˜ ๋Œ๋ฆฌ๋Š” ๊ฑด ๊ฐ€๋Šฅ

 

๐Ÿ“Œ ์™œ "ํฐ LLM"์€ ์–ด๋ ต๋ƒ?

๐Ÿ˜ต ์ผ๋ฐ˜ ๋…ธํŠธ๋ถ์ด๋‚˜ ๋งฅ๋ถ์œผ๋กœ๋Š” ์ ˆ๋Œ€ ์•ˆ ๋จ

 

ํ•ญ๋ชฉ GPT-3 ๊ธฐ์ค€
ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜ 175 Billion (1์–ต 7์ฒœ 5๋ฐฑ๋งŒ ๊ฐœ ์•„๋‹˜, 1์ฒœ 7๋ฐฑ์–ต ๊ฐœ!)
ํ•„์š”ํ•œ VRAM ์ˆ˜์‹ญ~์ˆ˜๋ฐฑ GB (H100 8๊ฐœ ์ด์ƒ)
ํ•™์Šต ์‹œ๊ฐ„ ์ˆ˜ ์ฃผ์ˆ˜ ๊ฐœ์›”, **์ˆ˜์–ต์ˆ˜์ฒœ๋งŒ ์› GPU ๋น„์šฉ**
ํ•™์Šต ๋ฐ์ดํ„ฐ ์ˆ˜๋ฐฑ GB ~ TB ๋‹จ์œ„ ํ…์ŠคํŠธ (์›น, ์œ„ํ‚ค, ์ฑ… ๋“ฑ)

 

 

โœ… ์ด๋Ÿฐ ๊ฑด ๊ฐ€๋Šฅํ•ด!

๊ฐ€๋Šฅ์„ฑ ์žˆ๋Š” ์ž‘์—… ์„ค๋ช…
๐Ÿงช ์ž‘์€ LLM ํ›ˆ๋ จ (nanoGPT) ์ž‘์€ ํ…์ŠคํŠธ๋กœ GPT ํ•™์Šต ์‹ค์Šต ๊ฐ€๋Šฅ
๐Ÿง  ๋กœ์ปฌ ์‹คํ–‰ (7B ์ดํ•˜ ๋ชจ๋ธ) LLaMA, Mistral, Phi2, TinyLLM ๋“ฑ ๋กœ์ปฌ์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅ
๐Ÿงฉ ํŒŒ์ธํŠœ๋‹ / LoRA ํ•™์Šต ๊ธฐ์กด ๋ชจ๋ธ์— "๋‚ด ๋ฐ์ดํ„ฐ๋งŒ ์•ฝ๊ฐ„ ์ถ”๊ฐ€" ๊ฐ€๋Šฅ
๐Ÿ ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง ๋‚ด PC์—์„œ GPT API ์จ์„œ ์‘๋‹ต ์ƒ์„ฑ ์‹ค์Šต ๊ฐ€๋Šฅ