๐ค LLM (Large Language Model)
๐ง **์์ฒญ๋๊ฒ ๋ง์ ํ
์คํธ(์ธํฐ๋ท, ์ฑ
, ์ํค, ๋
ผ๋ฌธ ๋ฑ)**๋ฅผ ํ์ตํด์
๐ ์ฌ๋์ฒ๋ผ ์์ฐ์ค๋ฝ๊ฒ ๋งํ๊ณ ์ดํดํ ์ ์๋ ์ธ๊ณต์ง๋ฅ ๋ชจ๋ธ
์ฐ๋ฆฌ๋ง๋ก๋ ๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ
- ์ ๋ ฅ ๋ฌธ์ฅ์ ๋ณด๊ณ ๋ค์ ๋จ์ด๋ฅผ ์์ธกํ๋ ๊ตฌ์กฐ
- ์: "๋๋ ๊ณ ์์ด๋ฅผ" → ๋ชจ๋ธ์ด "์ข์ํด" ๋ผ๊ณ ์์ธก
- GPT๋ Transformer ๋์ฝ๋๋ง ์จ์ ๋ฌธ์ฅ์ ์์ฐจ์ ์ผ๋ก ๋ง๋ค์ด
LLM์ด ํ ์ ์๋ ๊ฒ๋ค:
- ์ง๋ฌธ์ ๋๋ตํ๊ธฐ (GPT์ฒ๋ผ)
- ์์ฝํ๊ธฐ
- ๋ฒ์ญํ๊ธฐ
- ๊ธ์ฐ๊ธฐ (์ด๋ ฅ์, ์ด๋ฉ์ผ, ์์ค๊น์ง๋!)
- ์ฝ๋ ์์ฑ ๋ฐ ๋๋ฒ๊น
- ์ฑ๋ด, ๊ฐ์๋น์
- ๊ฒ์ ๊ฒฐ๊ณผ ์์ฝ
- ์ฐฝ์(์, ์์ค, ๋ํ ์๋ฎฌ๋ ์ด์ )
์ด๋ป๊ฒ ๋์ํ๋๋ฉด?
- Transformer๋ผ๋ ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ
- ์์ญ์ต~์์กฐ ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ ํ์ต ํ
- ๋ค์์ ์ฌ ๋จ์ด๋ฅผ ์์ธกํ๋ ๋ฐฉ์์ผ๋ก ๋ง์ ์์ฑ
LLM ๋ฒ์ฃผ
LLM โโโฌโโ GPT (OpenAI)
โโโ Claude (Anthropic)
โโโ Gemini (Google)
โโโ LLaMA (Meta)
๐ง LLM์์ Neural Network๊ฐ ์ด๋ป๊ฒ ์ฐ์ด๋๊ฐ?
โ GPT๊ฐ ํ ์คํธ๋ฅผ ์์ฑํ๋ ๋ด๋ด ๋คํธ์ํฌ ํ๋ฆ
- ๋ฌธ์ฅ์ ์ซ์๋ก ๋ฐ๊ฟ
- ์ซ์๋ฅผ ๋ฒกํฐ๋ก ๋ฐ๊ฟ
- Transformer๊ฐ ๋ฌธ๋งฅ ์ดํด
- ๋ค์ ๋จ์ด๋ฅผ ํ๋ฅ ์ ์ผ๋ก ์์ธก
- Softmax๋ก ๊ฐ์ฅ ์์ฐ์ค๋ฌ์ด ๋จ์ด ์ ํ
- ๊ณ์ ์ด์ด์ ์์ฑ
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
- ์ ๋ ฅ(๋ฌธ์ฅ)์ token ๋จ์๋ก ๋๋
- Embedding → ๋ฒกํฐํ
- ์ฌ๋ฌ ์ธต์ Self-Attention + Feed Forward๋ฅผ ๊ฑฐ์นจ
- ๊ฐ ๋จ์ด๊ฐ ๋ฌธ๋งฅ์ ์ดํดํ ๋ฒกํฐ๋ก ๋ณํ๋จ
๐ ๊ฒฐ๊ณผ:
→ ์
๋ ฅ ๋ฌธ์ฅ์ **“์ ์ฒด ์๋ฏธ๊ฐ ๋ฐ์๋ ๋ฒกํฐ ์ํ์ค”**๋ก ๋ณํ
๐ธ Decoder
- ์ธ์ฝ๋์์ ๋์จ "์๋ฏธ ๋ฒกํฐ"๋ฅผ ๋ฐ์์ด
- ์ง๊ธ๊น์ง ์์ฑ๋ ๋จ์ด๋ค๋ก Self-Attention ์ํ
- ์ธ์ฝ๋์ ์ถ๋ ฅ๋ ์ฐธ๊ณ (Encoder-Decoder Attention)
- ๋ค์ ๋จ์ด๋ฅผ ์์ธกํจ
๐ ๊ฒฐ๊ณผ:
→ ํ๋์ฉ ํ
์คํธ๋ฅผ ์์ฑํด๋๊ฐ ("๋๋" → "๊ณ ์์ด๋ฅผ" → "์ข์ํด" → "์")
๐งพ ์์: ๋ฒ์ญ๊ธฐ
์
๋ ฅ ๋ฌธ์ฅ: "I love cats"
์ถ๋ ฅ ๋ฌธ์ฅ: "๋๋ ๊ณ ์์ด๋ฅผ ์ข์ํด"
- Encoder
→ "I", "love", "cats" → ๋ฒกํฐ → ๋ฌธ๋งฅ ๋ฐ์๋ ์๋ฏธ ๋ฒกํฐ๋ก ๋ณํ - 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?
๋ ๋ฌธ์ฅ์ด ๋ ผ๋ฆฌ์ ์ผ๋ก ์ด์ด์ง๋์ง,
๋ฌธ์ฅ์ด ๊ธ์ /๋ถ์ ์ธ์ง๋ฅผ ํ๋จํ๋ ๋ฐ ๊ฐํจ
๋ชจ๋ธ | ๋ชฉ์ | ์์ |
๐ฃ 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๊ฐ ์ด์) |
ํ์ต ์๊ฐ | ์ ์ฃผ |
ํ์ต ๋ฐ์ดํฐ | ์๋ฐฑ GB ~ TB ๋จ์ ํ ์คํธ (์น, ์ํค, ์ฑ ๋ฑ) |
โ ์ด๋ฐ ๊ฑด ๊ฐ๋ฅํด!
๊ฐ๋ฅ์ฑ ์๋ ์์ | ์ค๋ช |
๐งช ์์ LLM ํ๋ จ (nanoGPT) | ์์ ํ ์คํธ๋ก GPT ํ์ต ์ค์ต ๊ฐ๋ฅ |
๐ง ๋ก์ปฌ ์คํ (7B ์ดํ ๋ชจ๋ธ) | LLaMA, Mistral, Phi2, TinyLLM ๋ฑ ๋ก์ปฌ์์ ์คํ ๊ฐ๋ฅ |
๐งฉ ํ์ธํ๋ / LoRA ํ์ต | ๊ธฐ์กด ๋ชจ๋ธ์ "๋ด ๋ฐ์ดํฐ๋ง ์ฝ๊ฐ ์ถ๊ฐ" ๊ฐ๋ฅ |
๐ ํ๋กฌํํธ ์์ง๋์ด๋ง | ๋ด PC์์ GPT API ์จ์ ์๋ต ์์ฑ ์ค์ต ๊ฐ๋ฅ |
'ํ์ต ๊ธฐ๋ก (Learning Logs) > Today I Learned' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
GPT์์ ์นํฐ์ ๊ทธ๋ฆฐ๋ค๊ณ ?! (0) | 2025.04.17 |
---|---|
์ด๋ฏธ์ง ๋ชจ๋ธ ํ ์คํธ (0) | 2025.04.17 |
ObjectOptimisticLockingFailureException (0) | 2025.04.15 |
์ฃผ์, ์ธ๊ทธ๋ฉํ ์ด์ , ํ์ด์ง (0) | 2025.04.14 |
๋ถ์ฐ ์์คํ ์ฅ์ ๋ณต๊ตฌ (0) | 2025.04.14 |