Chuyển đến nội dung chính

Bài 11: GPT & Autoregressive Models — Generative Pre-trained Transformer

GPT architecture: causal language modeling. GPT-1 → GPT-2 → GPT-3 → GPT-4 evolution. Autoregressive generation: temperature, top-k, top-p sampling. Emergent abilities. In-context learning. So sánh BERT (encoder) vs GPT (decoder) vs T5 (encoder-decoder).

🧠 AI & ML — Bài 10 Bài 11: GPT & Autoregressive Models — Generative Pre-trained Transformer

NLP từ Cơ bản đến Nâng cao: Làm chủ Xử lý Ngôn ngữ Tự nhiên

Phần 4: Pre-trained Language Models — BERT, GPT & Beyond

xdev.asia

Giới thiệu

Nếu BERT "đọc" text từ hai hướng, GPT "viết" text từ trái sang phải — autoregressive generation. GPT là nền tảng của ChatGPT, Claude, Gemini — những LLM đang thay đổi thế giới.


1. GPT Architecture: Decoder-only

Input:  "Once upon a time"
         │      │     │    │
         ▼      ▼     ▼    ▼
    ┌──────────────────────────┐
    │   Transformer Decoder    │
    │   (Causal Self-Attention)│
    │    Chỉ nhìn bên trái!   │
    └──────────────────────────┘
         │      │     │    │
         ▼      ▼     ▼    ▼
       "upon"  "a"  "time" ","

Causal Language Modeling

$$P(x_1, x_2, ..., x_n) = \prod_{i=1}^{n} P(x_i | x_1, ..., x_{i-1})$$

Model dự đoán token tiếp theo dựa vào tất cả tokens trước đó (không nhìn tương lai).


2. Evolution: GPT-1 → GPT-4

ModelNămParametersTraining DataBreakthrough
GPT-12018117MBookCorpusGenerative pre-training works
GPT-220191.5BWebText (40GB)"Too dangerous to release"
GPT-32020175B570GB textIn-context learning, few-shot
GPT-42023~1.8T (rumored)Internet-scaleMultimodal, reasoning
GPT-4o2024Undisclosed+ Images, AudioNative multimodal

3. Decoding Strategies

Temperature, Top-k, Top-p

from transformers import GPT2LMHeadModel, GPT2Tokenizer

tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained("gpt2")

input_text = "Artificial intelligence will"
input_ids = tokenizer.encode(input_text, return_tensors="pt")

# Greedy (deterministic, boring)
greedy = model.generate(input_ids, max_length=50, do_sample=False)

# Temperature sampling (creativity control)
creative = model.generate(
    input_ids, max_length=50,
    do_sample=True,
    temperature=0.8,   # < 1: focused, > 1: creative
    top_k=50,          # Chỉ xét 50 tokens có probability cao nhất
    top_p=0.9,         # Nucleus sampling: 90% probability mass
)

print(tokenizer.decode(creative[0]))
ParameterThấpCao
TemperatureChính xác, lặp lạiSáng tạo, ngẫu nhiên
Top-kÍt lựa chọn, an toànNhiều lựa chọn, đa dạng
Top-pFocus vào tokens chắc chắnCân nhắc nhiều tokens hơn

4. In-Context Learning (ICL)

GPT-3 khám phá ra: không cần fine-tune, chỉ cần đưa ví dụ vào prompt!

prompt = """
Classify the sentiment:
Text: "This movie is amazing!" → Positive
Text: "Terrible experience" → Negative
Text: "The food was okay" → Neutral
Text: "I absolutely love this product!" →"""

# GPT sẽ trả lời: "Positive"
# Không cần fine-tune! Chỉ cần prompt engineering.
ParadigmVí dụFine-tune?
Zero-shotKhông có ví dụ nàoKhông
One-shot1 ví dụKhông
Few-shot3-10 ví dụKhông
Fine-tuningHàng nghìn ví dụCó

5. BERT vs GPT vs T5

Đặc điểmBERT (Encoder)GPT (Decoder)T5 (Enc-Dec)
DirectionBidirectionalLeft-to-rightBoth
Pre-trainingMLM + NSPCausal LMDenoising
Tốt choClassification, NER, QAGeneration, chatEverything (text-to-text)
Ví dụPhoBERT, RoBERTaGPT-4, LLaMAT5, mT5, ViT5

Tổng kết

Khái niệmChi tiết
GPTDecoder-only, causal LM, autoregressive
Scaling lawsBigger model + more data = better performance
DecodingTemperature, top-k, top-p controls output diversity
ICLFew-shot learning without fine-tuning
BERT vs GPTUnderstanding (BERT) vs Generation (GPT)

Bài tiếp theo

Bài 12: Hugging Face Ecosystem — Thực hành NLP hiện đại với thư viện được dùng nhiều nhất: Transformers, Datasets, Tokenizers.