GPT hoạt động ra sao?
Tìm hiểu cơ chế bên trong GPT: từ việc dự đoán token tiếp theo đến kiến trúc Transformer decoder-only, self-attention và quá trình sinh văn bản tự động.
Định nghĩa
GPT (Generative Pre-trained Transformer) là một họ mô hình ngôn ngữ lớn (LLM) dựa trên kiến trúc Transformer decoder-only, hoạt động theo cơ chế autoregressive bằng cách dự đoán xác suất của token tiếp theo trong chuỗi dựa trên tất cả các token đã xuất hiện trước đó.
Giải thích chi tiết
Kiến trúc Decoder-Only: Chỉ cần nhìn quá khứ
Khác với kiến trúc Encoder-Decoder (dùng trong dịch máy) hay Encoder-only (như BERT), GPT thuộc nhóm decoder-only. Điều này có nghĩa là mô hình chỉ sử dụng phần decoder của Transformer, loại bỏ hoàn toàn encoder.
Trong decoder-only, mỗi token chỉ được phép "nhìn" các token đứng trước nó trong câu thông qua cơ chế masked self-attention (hay còn gọi là causal attention). Đây là chìa khóa để GPT có thể sinh văn bản từ trái sang phải, từng chữ một, mà không "lén nhìn" đáp án ở tương lai.
Cơ chế Autoregressive: Sinh từng token
GPT không sinh ra cả đoạn văn bản trong một lần tính toán. Thay vào đó, nó lặp đi lặp lại quá trình:
- Nhận chuỗi input đã có (prompt + các token vừa sinh)
- Tính toán xác suất phân phối cho toàn bộ từ vựng (vocabulary) ở vị trí tiếp theo
- Chọn token có xác suất cao nhất (hoặc sampling có temperature)
- Thêm token đó vào chuỗi, lặp lại bước 1
Mỗi lần dự đoán này gọi là một forward pass. Với context window hiện đại (128K token trong GPT-4), mô hình phải tính toán attention cho cả chuỗi dài, đòi hỏi tài nguyên tính toán khổng lồ.
Bên trong Decoder Block
Một khối decoder trong GPT bao gồm:
- Masked Multi-Head Self-Attention: Cho phép mô hình tập trung vào các phần khác nhau của input đã xuất hiện. "Multi-head" nghĩa là chạy song song nhiều bộ attention với các góc nhìn khác nhau.
- Feed-Forward Network (FFN): Mạng nơ-ron fully-connected áp dụng lên từng vị trí riêng biệt, biến đổi không gian biểu diễn.
- Layer Normalization & Residual Connections: Giúp ổn định gradient khi huấn luyện mạng sâu (GPT-3 có 96 layer).
Sau khi đi qua N khối decoder (thường từ 12 đến 96 khối tùy phiên bản), vector đầu ra được chiếu qua một lớp Linear và Softmax để thành xác suất trên toàn bộ từ điển.
Tokenization và Embedding
Trước khi vào Transformer, văn bản thô được tokenizer (thường là BPE - Byte Pair Encoding) cắt thành các token. Ví dụ câu tiếng Việt "Tôi yêu AI" có thể thành ["Tôi", " yêu", " A", "I"] tùy thuộc vào vocabulary.
Mỗi token được chuyển thành vector embedding (ví dụ 768 chiều cho GPT-2 nhỏ, 12288 chiều cho GPT-3). Cộng thêm Positional Encoding để mô hình biết vị trí tương đối của token trong câu.
Ví dụ thực tế
Dự đoán từ tiếp theo trong tiếng Việt
Giả sử GPT nhận prompt: "Hà Nội là thủ đô của"
Quá trình xử lý:
- Tokenizer tách thành:
["Hà", " Nội", " là", " thủ", " đô", " của"] - Mô hình tính attention giữa "của" và tất cả token trước đó
- Lớp đầu ra dự đoán xác suất: "Việt Nam" (85%), "nước" (10%), "miền Bắc" (3%)...
- Nếu dùng greedy decoding, chọn "Việt Nam". Nếu dùng temperature = 0.8, có thể chọn ngẫu nhiên theo phân phối xác suất, tạo ra sự đa dạng trong câu trả lời.
Code minh họa Causal Mask
Dưới đây là đoạn giả mã Python minh họa cách tạo attention mask để đảm bảo GPT chỉ nhìn quá khứ:
import numpy as np
def create_causal_mask(seq_len):
# Tạo ma trận tam giác dưới (lower triangular)
mask = np.tril(np.ones((seq_len, seq_len)))
# Token ở vị trí i chỉ được nhìn token 0..i
return mask
# Với câu dài 5 token
mask = create_causal_mask(5)
# Kết quả: [[1, 0, 0, 0, 0],
# [1, 1, 0, 0, 0],
# [1, 1, 1, 0, 0],
# [1, 1, 1, 1, 0],
# [1, 1, 1, 1, 1]]
# Vị trí có 0 sẽ bị che (mask) khi tính softmax attentionĐây là lý do tại sao bạn không thể hỏi GPT "đoán chữ cuối cùng trong câu này là gì" mà không cung cấp chữ đó trước - vì kiến trúc vật lý ngăn cản nó nhìn tương lai.
Khác biệt giữa các phiên bản GPT
- GPT-1: 117M tham số, 12 layer, fine-tuning task-specific
- GPT-3: 175B tham số, 96 layer, in-context learning, không cần fine-tune
- GPT-4: Kiến trúc tương tự nhưng scale lớn hơn, có thể là mixture-of-experts (MoE), context window lớn hơn gấp 100 lần
Ứng dụng
Sinh viên nghiên cứu AI
Hiểu rõ cơ chế decoder-only giúp sinh viên đọc được paper gốc "Attention is All You Need" và các biến thể như PhoGPT (VietAI) hay VinAI-GPT. Khi cần fine-tune mô hình cho tiếng Việt, việc biết GPT sử dụng causal attention giúp debug lỗi khi mô hình "bịa" thông tin từ tương lai trong dữ liệu huấn luyện.
Kỹ sư Machine Learning
Triển khai GPT trong production đòi hỏi tối ưu KV-cache - kỹ thuật lưu trữ kết quả attention của các token đã sinh để không phải tính lại, giảm độ phức tạp từ O(n²) xuống O(n) cho mỗi token mới. Hiểu kiến trúc giúp implement quantization (INT8/INT4) để chạy trên edge device.
Doanh nghiệp xây dựng hệ thống
Khi xây dựng chatbot nội bộ, việc hiểu GPT là autoregressive giúp kỹ sư thiết kế prompt chaining hợp lý - chia nhỏ task thành nhiều bước vì GPT tính toán tuần tự. Đồng thời, hiểu về context window giúp quyết định chiến lược chunking dữ liệu cho RAG (Retrieval Augmented Generation).
So sánh
| Đặc điểm | GPT (Decoder-only) | BERT (Encoder-only) | T5 (Encoder-Decoder) |
|---|---|---|---|
| Hướng nhìn | Chỉ nhìn quá khứ (causal) | Nhìn hai chiều (bidirectional) | Encoder nhìn hai chiều, Decoder nhìn quá khứ |
| Pre-training | Next Token Prediction | Masked Language Modeling | Span Corruption (nhòe token liên tục) |
| Mục đích chính | Sinh văn bản (generation) | Hiểu ngữ nghĩa (representation) | Dịch máy, tóm tắt (seq2seq) |
| Ví dụ | GPT-4, LLaMA, Claude | BERT, PhoBERT | T5, BART, mT5 |
| Sử dụng attention | Masked Self-Attention | Full Self-Attention | Cross-Attention (giữa encoder-decoder) |
Kết luận: GPT không "giỏi hơn" BERT hay T5 - nó chỉ phù hợp cho bài toán sinh văn bản tự động. Nếu bạn cần phân loại sentiment hay NER, BERT hiệu quả hơn. Nếu cần dịch máy, T5 phù hợp hơn. Sự thống trị của GPT hiện nay đến từ khả năng scale và emergent properties khi đủ lớn, chứ không phải kiến trúc decoder-only tự thân đã vượt trội mọi lĩnh vực.
Bài viết liên quan
Cùng cụm
- Transformer là gì? - Tổng quan về kiến trúc đã cách mạng hóa NLP kể từ 2017.
- Attention mechanism là gì? - Hiểu sâu về cơ chế "chú ý" giúp mô hình tập trung vào thông tin quan trọng.
- Self-attention hoạt động thế nào? - Phân tích toán học và trực giác về Query, Key, Value.
- Encoder vs Decoder - So sánh chi tiết hai thành phần cốt lõi của Transformer và tại sao GPT chọn decoder.
Đọc tiếp
- LLM và mô hình ngôn ngữ lớn - Nền tảng về Large Language Models, tokenization, fine-tuning concept (Level 2).
- Tokenization và xử lý ngôn ngữ sâu - Tìm hiểu cách văn bản được chuyển thành số để GPT xử lý (Level 2).
Encoder vs Decoder
Phân biệt Encoder và Decoder trong Transformer: từ cơ chế Attention hai chiều và tự hồi quy đến ứng dụng với BERT, GPT và T5. Hiểu sâu để chọn đúng kiến trúc cho bài toán NLP.
RAG là gì?
Hiểu Retrieval-Augmented Generation - cách kết hợp tìm kiếm thông minh với AI để tạo câu trả lời chính xác dựa trên dữ liệu thực tế thay vì bịa đặt