
ํน์ ์์ฆ LLM (๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ) ์๊ธฐ ์ ๋ค์ผ๋ฉด ์ ์ง ๋๋ง ๋ค์ฒ์ง๋ ๋๋ ๐ข? GPT-4, PaLM 2, LLaMAโฆ ์ด๋ฆ์ ๋ง์ด ๋ค์ด๋ดค์ง๋ง ๋ญ๊ฐ ๋ญ์ง ํท๊ฐ๋ฆฐ๋ค๋ฉด ๊ฑฑ์ ๋ง์ธ์! ์ด ๊ธ ํ๋๋ก LLM ๊ฐ๋ฐ์ ํต์ฌ์ ์น ์ ๋ฆฌํด ๋๋ฆด๊ฒ์. ์ต์ ๋ชจ๋ธ ์ํคํ ์ฒ๋ถํฐ ์ฑ๋ฅ ํ๊ฐ๊น์ง, LLM์ ๋ชจ๋ ๊ฒ์ ํํค์ณ ๋ณด์๊ตฌ์! ๐
โจ ์ด ๊ธ์ ์ฝ์ผ๋ฉด ๋ญ ์ ์ ์๋์?
- Transformer, MoE, RAG ๐คฏ ๋ณต์กํ LLM ์ํคํ ์ฒ, ์ฝ๊ฒ ์ดํด์์ผ ๋๋ฆฝ๋๋ค!
- Perplexity, BLEU ๐ง LLM ์ฑ๋ฅ ํ๊ฐ, ์ด์ ์ด๋ ต์ง ์์์!
- ์ฝ๋ ์์ ๐ป ์ง์ LLM์ ๋ง์ ธ๋ณด๊ณ ์ถ๋ค๋ฉด? ์น์ ํ ์ฝ๋ ๊ฐ์ด๋ ์ ๊ณต!
LLM, ๋๋์ฒด ๋ญ๊น์? ๐ค
๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ (LLM)์ ์ ๋ง ์์ฒญ๋ ์์ ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ํ์ตํด์ ์ธ๊ฐ์ฒ๋ผ ์์ฐ์ค๋ฌ์ด ํ ์คํธ๋ฅผ ์์ฑํ๊ณ , ๋ฒ์ญํ๊ณ , ์์ฝํ๊ณ , ์ฌ์ง์ด ์ฝ๋ฉ๊น์ง ํ ์ ์๋ ๋๋ํ AI ๋ชจ๋ธ์ด์์. ์ฑGPT ์จ๋ณด์ จ์ฃ ? ๊ฑ๋ LLM์ ์ผ์ข ์ด๋๋๋ค! ๐ค
Transformer: LLM์ ์ฌ์ฅ โค๏ธ

LLM์ ํต์ฌ์ ๋ฐ๋ก Transformer๋ผ๋ ์ํคํ ์ฒ์์. ๊ธฐ์กด์ ์ํ ์ ๊ฒฝ๋ง(RNN)์ ๋จ์ ์ ๊ทน๋ณตํ๊ณ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํด์ ํ์ต ์๋๋ฅผ ์์ฒญ๋๊ฒ ๋์ด์ฌ๋ ธ์ฃ . Transformer์ ํต์ฌ์ Self-Attention์ด๋ผ๋ ๋ฉ์ปค๋์ฆ์ธ๋ฐ์, ๋ฌธ์ฅ ๋ด์ ๋จ์ด๋ค ๊ฐ์ ๊ด๊ณ๋ฅผ ํ์ ํด์ ๋ฌธ๋งฅ์ ์ดํดํ๋ ๋ฐ ๋์์ ์ค์. ์๋ฅผ ๋ค์ด, "๋๋ ์ฌ๊ณผ๋ฅผ ๋จน์๋ค"๋ผ๋ ๋ฌธ์ฅ์์ "์ฌ๊ณผ"๋ผ๋ ๋จ์ด๊ฐ "๋จน์๋ค"๋ผ๋ ๋์ฌ์ ๊ด๋ จ ์๋ค๋ ๊ฒ์ ํ์ ํ๋ ๊ฑฐ์ฃ . ๋๋ถ์ LLM์ ํจ์ฌ ๋ ์์ฐ์ค๋ฝ๊ณ ๋งฅ๋ฝ์ ๋ง๋ ํ ์คํธ๋ฅผ ์์ฑํ ์ ์๊ฒ ๋์๋ต๋๋ค. ๐
# ๊ฐ๋จํ Self-Attention ์ฝ๋ ์์ (PyTorch)
import torch
import torch.nn as nn
class SelfAttention(nn.Module):
def __init__(self, embed_size, heads):
super(SelfAttention, self).__init__()
self.embed_size = embed_size
self.heads = heads
self.head_dim = embed_size // heads
assert (
self.head_dim * heads == embed_size
), "Embedding size needs to be divisible by heads"
self.values = nn.Linear(self.head_dim, self.head_dim, bias=False)
self.keys = nn.Linear(self.head_dim, self.head_dim, bias=False)
self.queries = nn.Linear(self.head_dim, self.head_dim, bias=False)
self.fc_out = nn.Linear(heads * self.head_dim, embed_size)
def forward(self, values, keys, query, mask):
N = query.shape[0]
value_len, key_len, query_len = values.shape[1], keys.shape[1], query.shape[1]
# Split embedding into self.heads pieces
values = values.reshape(N, value_len, self.heads, self.head_dim)
keys = keys.reshape(N, key_len, self.heads, self.head_dim)
query = query.reshape(N, query_len, self.heads, self.head_dim)
values = self.values(values) # (N, value_len, heads, head_dim)
keys = self.keys(keys) # (N, key_len, heads, head_dim)
query = self.queries(query) # (N, query_len, heads, head_dim)
# Scaled dot-product attention
energy = torch.einsum("nqhd,nkhd->nhqk", [query, keys])
# query shape: (N, query_len, heads, head_dim)
# keys shape: (N, key_len, heads, head_dim)
# energy shape: (N, heads, query_len, key_len)
if mask is not None:
energy = energy.masked_fill(mask == 0, float("-1e20"))
attention = torch.softmax(energy / (self.embed_size ** (1 / 2)), dim=3)
out = torch.einsum("nhql,nlhd->nqhd", [attention, values]).reshape(
N, query_len, self.heads * self.head_dim
)
# attention shape: (N, heads, query_len, key_len)
# values shape: (N, value_len, heads, head_dim)
# out shape: (N, query_len, heads, head_dim) -> (N, query_len, heads * head_dim)
out = self.fc_out(out)
return outMoE: ๋๋ํ ์ ๋ฌธ๊ฐ๋ค์ ํ์ ๐ค
Mixture of Experts (MoE)๋ LLM์ ํฌ๊ธฐ๋ฅผ ํค์ฐ๋ฉด์๋ ํจ์จ์ฑ์ ๋์ด๋ ๋ฐฉ๋ฒ์ด์์. MoE๋ ์ฌ๋ฌ ๊ฐ์ ์์ "์ ๋ฌธ๊ฐ" ๋ชจ๋ธ์ ๋๊ณ , ์ ๋ ฅ์ ๋ฐ๋ผ ๊ฐ์ฅ ์ ํฉํ ์ ๋ฌธ๊ฐ๋ฅผ ์ ํํด์ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ ๋ฐฉ์์ด์ฃ . ๋ง์น ์ฌ๋ฌ ๋ถ์ผ์ ์ ๋ฌธ๊ฐ๋ค์ด ๋ชจ์ฌ์ ์ด๋ ค์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ๊ณผ ๊ฐ์์! ๐ค ์๋ฅผ ๋ค์ด, MoE ๋ชจ๋ธ์ด "ํ๊ตญ ์๋๋ ์ด๋์ผ?"๋ผ๋ ์ง๋ฌธ์ ๋ฐ์ผ๋ฉด, ์ง๋ฆฌ ์ ๋ฌธ๊ฐ ๋ชจ๋ธ์ด ์ ํ๋์ด "์์ธ"์ด๋ผ๊ณ ๋ตํ๋ ๊ฑฐ์ฃ . MoE๋ ๋ชจ๋ธ์ ์ฉ๋์ ๋๋ฆฌ์ง ์๊ณ ๋ ๋ค์ํ ๋ถ์ผ์ ๋ํ ์ง์์ ํจ๊ณผ์ ์ผ๋ก ํ์ตํ ์ ์๋๋ก ๋์์ค์.
RAG: ๊ฒ์ ๋ฅ๋ ฅ ์ฅ์ฐฉ! ๐

Retrieval Augmented Generation (RAG)์ LLM์ด ์ธ๋ถ ์ง์ ๋ฒ ์ด์ค๋ฅผ ํ์ฉํด์ ๋ต๋ณ์ ์์ฑํ๋ ๋ฐฉ์์ด์์. LLM์ด ๋ต๋ณ์ ์์ฑํ๊ธฐ ์ ์ ๋จผ์ ๊ด๋ จ ์ ๋ณด๋ฅผ ๊ฒ์ํ๊ณ , ๊ทธ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ๋ต๋ณ์ ์์ฑํ๋ ๊ฑฐ์ฃ . ๋ง์น ์ํ ๋ณผ ๋ ๊ต๊ณผ์๋ ์ฐธ๊ณ ์๋ฅผ ์ฐพ์๋ณด๋ ๊ฒ๊ณผ ๊ฐ์์! ๐ RAG๋ LLM์ด ์ต์ ์ ๋ณด๋ฅผ ๋ฐ์ํ๊ณ , ํ๊ฐ ํ์(hallucination, ์๋ฑํ ์ ๋ณด๋ฅผ ์์ฑํ๋ ํ์)์ ์ค์ด๋ ๋ฐ ๋์์ ์ค์. ์๋ฅผ ๋ค์ด, "์ด์ ์ํฅ๋ฏผ ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ ์๋ ค์ค"๋ผ๋ ์ง๋ฌธ์ LLM์ด ์ต์ ๋ด์ค ๊ธฐ์ฌ๋ฅผ ๊ฒ์ํด์ "์ํฅ๋ฏผ์ด 2๊ณจ์ ๋ฃ์์ต๋๋ค!"๋ผ๊ณ ๋ตํ ์ ์๊ฒ ๋๋ ๊ฑฐ์ฃ .
LLM ์ฑ๋ฅ ํ๊ฐ: ์ผ๋ง๋ ๋๋ํ ๊น? ๐ฏ
LLM์ ์ฑ๋ฅ์ ํ๊ฐํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ด์. ๊ฐ์ฅ ๋ํ์ ์ธ ์งํ๋ Perplexity (PPL)์ BLEU (Bilingual Evaluation Understudy)์ธ๋ฐ์, PPL์ ๋ชจ๋ธ์ด ํ ์คํธ๋ฅผ ์ผ๋ง๋ ์ ์์ธกํ๋์ง๋ฅผ ๋ํ๋ด๋ ์งํ์ด๊ณ , BLEU๋ ๋ชจ๋ธ์ด ์์ฑํ ํ ์คํธ๊ฐ ์ผ๋ง๋ ์ฌ๋์ ๋ฒ์ญ๊ณผ ์ ์ฌํ์ง๋ฅผ ๋ํ๋ด๋ ์งํ์์. ๐
- Perplexity (PPL): ๋ฎ์์๋ก ์ข๋ค! (ํ ์คํธ ์์ธก์ ์ํ๋ค!)
- BLEU: ๋์์๋ก ์ข๋ค! (์ฌ๋ ๋ฒ์ญ๊ณผ ์ ์ฌํ๋ค!)
ํ์ง๋ง PPL๊ณผ BLEU๋ ์๋ฒฝํ ์งํ๊ฐ ์๋๊ธฐ ๋๋ฌธ์, ๋ค์ํ ์งํ์ ๋ฐฉ๋ฒ์ ํ์ฉํด์ LLM์ ์ฑ๋ฅ์ ์ข ํฉ์ ์ผ๋ก ํ๊ฐํด์ผ ํด์. ์๋ฅผ ๋ค์ด, LLM์ด ์์ฑํ ํ ์คํธ์ ๋ฌธ๋ฒ์ ์ธ ์ ํ์ฑ, ์๋ฏธ๋ก ์ ์ธ ์ผ๊ด์ฑ, ์ฐฝ์์ฑ ๋ฑ์ ํ๊ฐํ ์๋ ์๊ฒ ์ฃ . ๐ค
์ฝ๋ ์์: LLM ๋ง๋ณด๊ธฐ ๐
LLM์ ์ง์ ๋ง์ ธ๋ณด๊ณ ์ถ๋ค๋ฉด? Hugging Face์ Transformers ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด ๋ณด์ธ์! ๐คฉ ๋ช ์ค์ ์ฝ๋๋ก LLM์ ๋ค์ด๋ก๋ํ๊ณ , ํ ์คํธ๋ฅผ ์์ฑํ๊ณ , ์ง๋ฌธ์ ๋ต๋ณ์ ๋ฐ์ ์ ์๋ต๋๋ค.
# Hugging Face Transformers ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
# pip install transformers
from transformers import pipeline
# ์ง๋ฌธ-์๋ต ๋ชจ๋ธ ๋ก๋
qa_model = pipeline("question-answering", model="distilbert-base-cased-distilled-squad")
# ์ง๋ฌธ๊ณผ ์ปจํ
์คํธ ์ค์
question = "Where do I live?"
context = "My name is Sarah and I live in London."
# ์ง๋ฌธ์ ๋ํ ๋ต๋ณ ์์ฑ
answer = qa_model(question=question, context=context)
# ๊ฒฐ๊ณผ ์ถ๋ ฅ
print(answer)
# {'score': 0.999, 'start': 30, 'end': 36, 'answer': 'London'}์ต์ LLM ์ฐ๊ตฌ ๋ํฅ ๐ญ
LLM ์ฐ๊ตฌ๋ ์ ๋ง ๋น ๋ฅด๊ฒ ๋ฐ์ ํ๊ณ ์์ด์! ์์ฆ ํซํ ์ฐ๊ตฌ ๋ถ์ผ๋ ๋ค์๊ณผ ๊ฐ์์. ๐ฅ
- LLM ๊ฒฝ๋ํ: ๋ชจ๋ธ ํฌ๊ธฐ๋ฅผ ์ค์ฌ์ ํจ์จ์ฑ์ ๋์ด๋ ์ฐ๊ตฌ
- Few-shot/Zero-shot Learning: ์ ์ ๋ฐ์ดํฐ ๋๋ ์์ ๋ฐ์ดํฐ ์์ด๋ ํ์ตํ๋ ์ฐ๊ตฌ
- LLM ์์ ์ฑ: LLM์ ์ ์ฉ์ ๋ฐฉ์งํ๊ณ ์ค๋ฆฌ์ ์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ฐ๊ตฌ
LLM, ์ด๋์ ์ฐ์ผ๊น์? ๐งฐ
LLM์ ์ ๋ง ๋ค์ํ ๋ถ์ผ์์ ํ์ฉ๋ ์ ์์ด์! ์ฑ๋ด, ๋ฒ์ญ๊ธฐ, ๊ธ์ฐ๊ธฐ ๋๊ตฌ๋ ๋ฌผ๋ก ์ด๊ณ , ์๋ฃ, ๊ธ์ต, ๊ต์ก ๋ฑ ์ ๋ฌธ ๋ถ์ผ์์๋ LLM์ ํ์ฝ์ด ๊ธฐ๋๋๊ณ ์๋ต๋๋ค. ๐
- ์ฑ๋ด: ๊ณ ๊ฐ ์๋ด, ๋ฌธ์ ์๋ ๋ฑ
- ๋ฒ์ญ๊ธฐ: ๋ค์ํ ์ธ์ด ๊ฐ์ ๋ฒ์ญ
- ๊ธ์ฐ๊ธฐ ๋๊ตฌ: ์์ด๋์ด ์์ฑ, ๋ฌธ์ฅ ๊ต์ ๋ฑ
- ์๋ฃ: ์ง๋จ ๋ณด์กฐ, ํ์ ์๋ด ๋ฑ
- ๊ธ์ต: ์ฌ๊ธฐ ํ์ง, ํฌ์ ๋ถ์ ๋ฑ
- ๊ต์ก: ๋ง์ถคํ ํ์ต, ํํฐ๋ง ๋ฑ
๋๋ง์ LLM ๋ง๋ค๊ธฐ? ํ์ต ๋ฐ์ดํฐ์ ๊ตฌ์ถ ๐งฑ
LLM์ ์ง์ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด? ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ํ์ต ๋ฐ์ดํฐ์ ์ ๊ตฌ์ถํ๋ ๊ฑฐ์์! ๐ ์์ง์ ๋ฐ์ดํฐ๋ฅผ ๋ง์ด ๋ชจ์์๋ก LLM์ ๋ ๋๋ํด์ง๋ต๋๋ค. ์น ํฌ๋กค๋ง, API ํ์ฉ, ๊ธฐ์กด ๋ฐ์ดํฐ์ ํ์ฉ ๋ฑ ๋ค์ํ ๋ฐฉ๋ฒ์ ํตํด ํ์ต ๋ฐ์ดํฐ๋ฅผ ์์งํ ์ ์์ด์. ํ์ง๋ง ์ ์๊ถ, ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๋ฑ ๋ฒ์ ์ธ ๋ฌธ์ ๋ ๊ณ ๋ คํด์ผ ํ๋ค๋ ์ ! ๐ง
๋ชจ๋ธ ๊ฒฝ๋ํ: ์์ง๋ง ๊ฐํ๊ฒ! ๐ช
LLM์ ๋ชจ๋ธ ํฌ๊ธฐ๊ฐ ํด์๋ก ์ฑ๋ฅ์ด ์ข์ง๋ง, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๊ณผ ๊ณ์ฐ ๋น์ฉ์ด ๋ง์ด ๋ ๋ค๋ ๋จ์ ์ด ์์ด์. ๊ทธ๋์ ๋ชจ๋ธ ๊ฒฝ๋ํ ๊ธฐ์ ์ด ์ค์ํด์ง๊ณ ์๋ต๋๋ค. ๊ฐ์ง์น๊ธฐ(pruning), ์์ํ(quantization), ์ง์ ์ฆ๋ฅ(knowledge distillation) ๋ฑ ๋ค์ํ ๋ฐฉ๋ฒ์ ํตํด ๋ชจ๋ธ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ฉด์๋ ์ฑ๋ฅ์ ์ ์งํ ์ ์์ด์. ๋ง์น ๋ค์ด์ดํธํ๋ ๊ฒ๊ณผ ๋น์ทํ์ฃ ? ๐ฅ
๋ถ์ฐ ํ์ต: ํจ๊ป ๋ฐฐ์ฐ๋ฉด ๋ ๋น ๋ฅด๋ค! ๐
LLM ํ์ต์๋ ์์ฒญ๋ ์์ ๋ฐ์ดํฐ์ ๊ณ์ฐ ์์์ด ํ์ํด์. ๊ทธ๋์ ๋ถ์ฐ ํ์ต ๊ธฐ์ ์ด ํ์์ ์ด์ฃ ! ์ฌ๋ฌ ๋์ GPU๋ฅผ ํ์ฉํด์ LLM์ ๋ณ๋ ฌ๋ก ํ์ต์ํค๋ฉด ํ์ต ์๊ฐ์ ํ๊ธฐ์ ์ผ๋ก ๋จ์ถํ ์ ์๋ต๋๋ค. ๋ฐ์ดํฐ ๋ณ๋ ฌ ์ฒ๋ฆฌ, ๋ชจ๋ธ ๋ณ๋ ฌ ์ฒ๋ฆฌ ๋ฑ ๋ค์ํ ๋ถ์ฐ ํ์ต ๋ฐฉ๋ฒ์ ํ์ฉํ ์ ์์ด์. ๋ง์น ์ฌ๋ฌ ๋ช ์ด ํจ๊ป ํผ์ฆ์ ๋ง์ถ๋ ๊ฒ๊ณผ ๊ฐ์์! ๐งฉ
ํ๊ธฐ: LLM์ผ๋ก ์๋ก์ด ๊ฐ๋ฅ์ฑ์ ์ด์ด๋ด์! ๐ช
์ต๊ทผ์ LLM์ ํ์ฉํด์ ๊ฐ์ธ์ ์ธ ํ๋ก์ ํธ๋ฅผ ์งํํด ๋ดค๋๋ฐ์, ์ ๋ง ๋๋ผ์ด ๊ฒฝํ์ด์์ด์! ๐คฉ LLM์ด ์์ด๋์ด ๊ตฌ์๋ถํฐ ์ฝ๋ ์์ฑ๊น์ง ๋ง์ ๋ถ๋ถ์์ ๋์์ ์ค์ ์์ฐ์ฑ์ ํฌ๊ฒ ๋์ผ ์ ์์๋ต๋๋ค. ๋ฌผ๋ก LLM์ด ์๋ฒฝํ ๊ฒ์ ์๋์ง๋ง, ์์ผ๋ก LLM์ ์ ํ์ฉํ๋ฉด ๋์ฑ ์ฐฝ์์ ์ด๊ณ ํ์ ์ ์ธ ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ค์ด๋ผ ์ ์์ ๊ฑฐ๋ผ๊ณ ํ์ ํด์! ๐
์ฌ๋ก: LLM ์ฑ๊ณต์ ์ธ ํ์ฉ ์ฌ๋ก๋ค โจ
- OpenAI์ GPT ์๋ฆฌ์ฆ: ์ฑGPT, DALL-E 2 ๋ฑ ๋ค์ํ ๋ถ์ผ์์ ํ์ ์ ์ธ ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ค์ด๋ด๊ณ ์์ด์.
- Google์ PaLM 2: Bard, Med-PaLM ๋ฑ ๋ค์ํ ์๋น์ค์ ์ ์ฉ๋์ด ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํค๊ณ ์์ด์.
- Meta์ LLaMA: ์ฐ๊ตฌ ๋ชฉ์ ์ผ๋ก ๊ณต๊ฐ๋์ด LLM ์ฐ๊ตฌ ์ํ๊ณ ๋ฐ์ ์ ๊ธฐ์ฌํ๊ณ ์์ด์.
๊ด๋ จ ์ ๋ณด: LLM ๋ ์์๋ณด๊ธฐ! ๐
- Hugging Face: ๋ค์ํ LLM ๋ชจ๋ธ๊ณผ ๊ด๋ จ ์๋ฃ๋ฅผ ์ ๊ณตํ๋ ํ๋ซํผ
- Papers with Code: LLM ๊ด๋ จ ์ต์ ๋ ผ๋ฌธ๋ค์ ๋ชจ์๋์ ์น์ฌ์ดํธ
- Google AI Blog: Google์ LLM ์ฐ๊ตฌ ๋ํฅ์ ์๊ฐํ๋ ๋ธ๋ก๊ทธ
LLM ํ์ต ๋ฐ์ดํฐ์ ๊ตฌ์ถ, ์ด๋ป๊ฒ ์์ํ ๊น์? ๐๏ธ
LLM ํ์ต ๋ฐ์ดํฐ์ ๊ตฌ์ถ์ ๋ง์น ์ง์ ์ง๋ ๊ฒ๊ณผ ๊ฐ์์! ๐งฑ ํผํผํ ๊ธฐ์ด ๊ณต์ฌ๋ถํฐ ์์ํด์ผ ํ์ฃ . ๋จผ์ , ์ด๋ค ์ข ๋ฅ์ LLM์ ๋ง๋ค๊ณ ์ถ์์ง, ์ด๋ค ๋ถ์ผ์ ์ ์ฉํ๊ณ ์ถ์์ง ๋ช ํํ๊ฒ ์ ์ํด์ผ ํด์. ์๋ฅผ ๋ค์ด, ํ๊ตญ์ด ์ฑ๋ด์ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด, ํ๊ตญ์ด ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ๋ง์ด ๋ชจ์์ผ๊ฒ ์ฃ ? ๐
๋ฐ์ดํฐ ์์ง ๋ฐฉ๋ฒ์ ๋ค์ํด์. ์น ํฌ๋กค๋ง์ ํตํด ์น ํ์ด์ง์์ ํ ์คํธ๋ฅผ ์ถ์ถํ๊ฑฐ๋, API๋ฅผ ํ์ฉํด์ ํน์ ์๋น์ค์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์๋ ์์ด์. ๋, ๊ธฐ์กด์ ๊ณต๊ฐ๋ ๋ฐ์ดํฐ์ ์ ํ์ฉํ ์๋ ์๋ต๋๋ค. ์๋ฅผ ๋ค์ด, ํ๊ตญ์ด ์ํค๋ฐฑ๊ณผ, ๋ด์ค ๊ธฐ์ฌ, ์์ค ๋ฑ ๋ค์ํ ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ ์ ์์ด์. ๐ฐ
ํ์ง๋ง ๋ฐ์ดํฐ ์์ง๋งํผ ์ค์ํ ๊ฒ์ด ๋ฐ์ดํฐ ์ ์ ์์! ๐งน ์์งํ ๋ฐ์ดํฐ์๋ ๋ถํ์ํ ์ ๋ณด, ์ค๋ฅ, ๋ ธ์ด์ฆ ๋ฑ์ด ์์ฌ ์์ ์ ์๊ธฐ ๋๋ฌธ์, ์ด๋ฌํ ๋ฌธ์ ๋ค์ ํด๊ฒฐํด์ผ LLM์ด ๋ ์ ํํ๊ฒ ํ์ตํ ์ ์๋ต๋๋ค. ํ ์คํธ ์ ๊ทํ, ๋ถ์ฉ์ด ์ ๊ฑฐ, ์คํ์ ์์ ๋ฑ ๋ค์ํ ๋ฐ์ดํฐ ์ ์ ๊ธฐ์ ์ ํ์ฉํ ์ ์์ด์.
๋ชจ๋ธ ๊ฒฝ๋ํ, ์ ์ค์ํ ๊น์? ๐ค
LLM์ ๋ชจ๋ธ ํฌ๊ธฐ๊ฐ ํด์๋ก ์ฑ๋ฅ์ด ์ข์ง๋ง, ๋์์ ๋ง์ ๋ฌธ์ ์ ์ ๊ฐ์ง๊ณ ์์ด์. ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๋ง๊ณ , ๊ณ์ฐ ๋น์ฉ์ด ๋น์ธ๊ณ , ๋ฐฐํฌ๊ฐ ์ด๋ ต๋ค๋ ๋จ์ ์ด ์์ฃ . ๐ฅ ํนํ ์ค๋งํธํฐ์ด๋ ์๋ฒ ๋๋ ๊ธฐ๊ธฐ์ฒ๋ผ ์์ ์ ์ฝ์ ์ธ ํ๊ฒฝ์์๋ LLM์ ์คํํ๊ธฐ๊ฐ ์ฝ์ง ์์์.
๊ทธ๋์ ๋ชจ๋ธ ๊ฒฝ๋ํ ๊ธฐ์ ์ด ์ค์ํด์ง๋ ๊ฑฐ์์! ๋ชจ๋ธ ๊ฒฝ๋ํ๋ ๋ชจ๋ธ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ฉด์๋ ์ฑ๋ฅ์ ์ต๋ํ ์ ์งํ๋ ๊ธฐ์ ์ ์๋ฏธํด์. ๋ชจ๋ธ ๊ฒฝ๋ํ ๊ธฐ์ ์ ํ์ฉํ๋ฉด LLM์ ๋ค์ํ ํ๊ฒฝ์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๊ณ , ๋ฐฐํฌ ๋น์ฉ์ ์ค์ผ ์ ์๊ณ , ์๋์ง ์๋น๋ฅผ ์ค์ผ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ต๋๋ค. ๐ก
๋ชจ๋ธ ๊ฒฝ๋ํ ๋ฐฉ๋ฒ์ ํฌ๊ฒ ์ธ ๊ฐ์ง๋ก ๋๋ ์ ์์ด์. ๊ฐ์ง์น๊ธฐ(pruning), ์์ํ(quantization), ์ง์ ์ฆ๋ฅ(knowledge distillation)๊ฐ ๊ทธ๊ฒ์ด์ฃ . ๊ฐ์ง์น๊ธฐ๋ ๋ชจ๋ธ์ ๊ฐ์ค์น ์ค ์ค์ํ์ง ์์ ๋ถ๋ถ์ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ด๊ณ , ์์ํ๋ ๋ชจ๋ธ์ ๊ฐ์ค์น๋ฅผ ๋ ์์ ๋นํธ ์๋ก ํํํ๋ ๋ฐฉ๋ฒ์ด๊ณ , ์ง์ ์ฆ๋ฅ๋ ํฐ ๋ชจ๋ธ์ ์ง์์ ์์ ๋ชจ๋ธ์ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ด์์.
๋ถ์ฐ ํ์ต, ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? ๐งโ๐คโ๐ง
LLM ํ์ต์๋ ์์ฒญ๋ ์์ ๋ฐ์ดํฐ์ ๊ณ์ฐ ์์์ด ํ์ํ๊ธฐ ๋๋ฌธ์, ๋ถ์ฐ ํ์ต์ ํ์์ ์ธ ๊ธฐ์ ์ด์์. ๋ถ์ฐ ํ์ต์ ์ฌ๋ฌ ๋์ GPU๋ฅผ ํ์ฉํด์ LLM์ ๋ณ๋ ฌ๋ก ํ์ต์ํค๋ ๋ฐฉ๋ฒ์ ์๋ฏธํด์. ๋ถ์ฐ ํ์ต์ ํ์ฉํ๋ฉด ํ์ต ์๊ฐ์ ํ๊ธฐ์ ์ผ๋ก ๋จ์ถํ ์ ์๊ณ , ๋ ํฐ ๋ชจ๋ธ์ ํ์ต์ํฌ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ต๋๋ค. ๐
๋ถ์ฐ ํ์ต ๋ฐฉ๋ฒ์ ํฌ๊ฒ ๋ ๊ฐ์ง๋ก ๋๋ ์ ์์ด์. ๋ฐ์ดํฐ ๋ณ๋ ฌ ์ฒ๋ฆฌ์ ๋ชจ๋ธ ๋ณ๋ ฌ ์ฒ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ด์ฃ . ๋ฐ์ดํฐ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๊ฐ์ GPU์ ๋๋์ด ํ์ต์ํค๋ ๋ฐฉ๋ฒ์ด๊ณ , ๋ชจ๋ธ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ ๋ชจ๋ธ์ ์ฌ๋ฌ ๊ฐ์ GPU์ ๋๋์ด ํ์ต์ํค๋ ๋ฐฉ๋ฒ์ด์์. ๋ฐ์ดํฐ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ ๋น๊ต์ ๊ตฌํ์ด ๊ฐ๋จํ๊ณ , ๋ชจ๋ธ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ ๋ชจ๋ธ ํฌ๊ธฐ๊ฐ ๋งค์ฐ ํด ๋ ์ ์ฉํ๋ต๋๋ค.
๋ถ์ฐ ํ์ต์ ์ํด์๋ ๋ค์ํ ์ํํธ์จ์ด ๋๊ตฌ๋ฅผ ํ์ฉํด์ผ ํด์. PyTorch, TensorFlow, Horovod ๋ฑ ๋ค์ํ ๋ถ์ฐ ํ์ต ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ ์ ์์ด์. ๋, AWS, GCP, Azure ๋ฑ ํด๋ผ์ฐ๋ ์ปดํจํ ํ๋ซํผ์ ํ์ฉํ๋ฉด ์ฝ๊ฒ ๋ถ์ฐ ํ์ต ํ๊ฒฝ์ ๊ตฌ์ถํ ์ ์๋ต๋๋ค. โ๏ธ
LLM ์ค๋ฆฌ์ ๋ฌธ์ , ์ด๋ป๊ฒ ํด๊ฒฐํด์ผ ํ ๊น์? ๐ค
LLM์ ๊ฐ๋ ฅํ ๋ฅ๋ ฅ์ ๊ฐ์ง๊ณ ์์ง๋ง, ๋์์ ์ค๋ฆฌ์ ์ธ ๋ฌธ์ ๋ ์ผ๊ธฐํ ์ ์์ด์. ํ์ค ๋ฐ์ธ, ์ฐจ๋ณ, ํ์ ์ ๋ณด ์ ํฌ ๋ฑ ๋ค์ํ ๋ฌธ์ ๋ค์ด ๋ฐ์ํ ์ ์์ฃ . ์ด๋ฌํ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ธฐ ์ํด์๋ LLM ๊ฐ๋ฐ์์ ์ฌ์ฉ์๋ค์ด ํจ๊ป ๋ ธ๋ ฅํด์ผ ํด์. ๐ค
LLM ๊ฐ๋ฐ์๋ ํ์ต ๋ฐ์ดํฐ์ ์ ์ ์คํ๊ฒ ๊ตฌ์ฑํ๊ณ , ๋ชจ๋ธ์ ์ถ๋ ฅ์ ๊ฒํ ํ๊ณ , ์์ ์ฅ์น๋ฅผ ๋ง๋ จํด์ผ ํด์. ์๋ฅผ ๋ค์ด, ํ์ค ๋ฐ์ธ์ ๊ฐ์งํ๊ณ ์ฐจ๋จํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ฑฐ๋, ํ์ ์ ๋ณด ์์ฑ์ ๋ฐฉ์งํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์๊ฒ ์ฃ . ๋, LLM ์ฌ์ฉ์๋ LLM์ ์ค๋ฆฌ์ ์ผ๋ก ์ฌ์ฉํ๊ณ , ์ค๋จ์ฉํ์ง ์๋๋ก ์ฃผ์ํด์ผ ํด์.
LLM ์ค๋ฆฌ์ ๋ฌธ์ ๋ ์์ง ํด๊ฒฐํด์ผ ํ ๊ณผ์ ๊ฐ ๋ง์ง๋ง, LLM ๊ฐ๋ฐ์์ ์ฌ์ฉ์๋ค์ด ํจ๊ป ๋ ธ๋ ฅํ๋ฉด ๋์ฑ ์์ ํ๊ณ ์ ์ตํ LLM ์ํ๊ณ๋ฅผ ๋ง๋ค์ด๊ฐ ์ ์์ ๊ฑฐ์์. ๐ป
LLM ๋ฏธ๋, ์ด๋ป๊ฒ ๋ ๊น์? ๐ฎ
LLM์ ์์ผ๋ก ๋์ฑ ๋ฐ์ ํ๊ณ ๋ค์ํ ๋ถ์ผ์์ ํ์ฉ๋ ๊ฒ์ผ๋ก ์์๋ผ์. ์ฑ๋ด, ๋ฒ์ญ๊ธฐ, ๊ธ์ฐ๊ธฐ ๋๊ตฌ๋ ๋ฌผ๋ก ์ด๊ณ , ์๋ฃ, ๊ธ์ต, ๊ต์ก ๋ฑ ์ ๋ฌธ ๋ถ์ผ์์๋ LLM์ ํ์ฝ์ด ๋์ฑ ๊ธฐ๋๋๊ณ ์๋ต๋๋ค. ํนํ ๊ฐ์ธ ๋ง์ถคํ ์๋น์ค, ์ฐฝ์์ ์ธ ์ฝํ ์ธ ์์ฑ, ๋ณต์กํ ๋ฌธ์ ํด๊ฒฐ ๋ฑ ๋ค์ํ ๋ถ์ผ์์ LLM์ด ํ์ ์ ๊ฐ์ ธ์ฌ ๊ฒ์ผ๋ก ์์๋ผ์. ๐
ํ์ง๋ง LLM ๋ฐ์ ์๋ ํด๊ฒฐํด์ผ ํ ๊ณผ์ ๋ ๋ง์์. ๋ชจ๋ธ์ ์ ํ์ฑ, ํจ์จ์ฑ, ์์ ์ฑ, ์ค๋ฆฌ์ฑ ๋ฑ ๋ค์ํ ์ธก๋ฉด์์ ๊ฐ์ ์ด ํ์ํ์ฃ . LLM ๊ฐ๋ฐ์์ ์ฌ์ฉ์๋ค์ด ํจ๊ป ๋ ธ๋ ฅํด์ LLM์ ์ ์ฌ๋ ฅ์ ์ต๋ํ ๋ฐํํ๊ณ , ์ธ๋ฅ์๊ฒ ๋์์ด ๋๋ ๋ฐฉํฅ์ผ๋ก ๋ฐ์ ์์ผ๋๊ฐ์ผ ํ ๊ฑฐ์์. ๐
๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ (LLM) ๊ธ์ ๋ง์น๋ฉฐโฆ
LLM์ ์ ๋ง ํฅ๋ฏธ๋กญ๊ณ ๊ฐ๋ฅ์ฑ์ด ๋ฌด๊ถ๋ฌด์งํ ๊ธฐ์ ์ด์์. ์ด ๊ธ์ ํตํด LLM์ ๋ํ ์ดํด๋ฅผ ๋์ด๊ณ , LLM์ ํ์ฉํด์ ์๋ก์ด ๊ฐ๋ฅ์ฑ์ ์ด์ด๊ฐ๋ ๋ฐ ๋์์ด ๋์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. ์์ผ๋ก๋ LLM ๊ธฐ์ ์ ๊ณ์ ๋ฐ์ ํ ๊ฒ์ด๊ณ , ์ฐ๋ฆฌ ์ถ์ ๋์ฑ ํฐ ์ํฅ์ ๋ฏธ์น ๊ฑฐ์์. LLM์ ๋ํ ์ง์์ ์ธ ๊ด์ฌ๊ณผ ํ์ต์ ํตํด ๋ฏธ๋ ์ฌํ๋ฅผ ์ค๋นํด ๋๊ฐ๋๋ก ํด์! ๐ ๊ถ๊ธํ ์ ์ด๋ ๋ ์๊ณ ์ถ์ ๋ด์ฉ์ด ์๋ค๋ฉด ์ธ์ ๋ ์ง ๋๊ธ๋ก ๋ฌธ์ํด์ฃผ์ธ์! ๐ค
๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ (LLM) ๊ด๋ จ ๋์์








๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ (LLM) ๊ด๋ จ ์ํ๊ฒ์



