GPT vs BERT và Seq2Seq bottleneck

Autoencoder, Seq2Seq, attention trong LLM, so sánh GPT giải mã và BERT mã hóa hai chiều, mô hình sâu rộng.
KhóThuật toán ~60 phút

Ôn lại trước khi học

Giới thiệu

Bài này học GPT chuyên viết và BERT chuyên hiểu. Dùng để chọn đúng mô hình cho sinh hay phân loại.

Kiến thức cần nhớ

Seq2Seq và nút cổ chai

  • Định nghĩa: encoder đọc vào, decoder viết ra chuỗi.
  • Thought vector là 1 vector nối giữa 2 bên.
  • Ví dụ đời thường: như dịch qua 1 mẩu giấy trung gian.
  • Câu dài thì mẩu giấy mất chi tiết sớm.
  • Attention sinh ra để nới nút cổ chai này.

GPT

  • Định nghĩa: đọc trái sang phải, đoán từ tiếp theo.
  • Đoán đúng thì trượt cửa sổ đi tiếp để viết.
  • Ví dụ đời thường: như gõ phím đoán chữ tiếp theo.
  • Dùng bộ giải mã nên giỏi sinh văn bản.
  • Mạnh ở kể chuyện, sinh mã, đối thoại.
Mô hìnhNhìn hướng nàoGiỏi việc gì
GPTTrái sang phảiViết, sinh, chat
BERTCả 2 chiềuHiểu, phân loại
Seq2Seq cũ1 vector giữaDịch ngắn đơn giản

BERT

  • Định nghĩa: che vài từ rồi dùng 2 phía đoán chỗ trống.
  • Nhìn cả trái và phải để hiểu từ hiện tại.
  • Ví dụ đời thường: như điền từ vào ô trống giữa câu.
  • Dùng bộ mã hóa 2 chiều nên giỏi hiểu ngữ cảnh.
  • Mạnh ở phân loại, trích đáp án, gán nhãn.

Ví dụ

  • Input: "Tôi ăn ___" -> Output: GPT viết tiếp, BERT điền giữa.
  • Giải thích: GPT nhìn quá khứ để sinh, BERT nhìn 2 phía để hiểu.
# GPT đoán từ tiếp theo từ quá khứ
tu_tiep = model.predict(["Tôi", "ăn"])  # chỉ nhìn trái
print(tu_tiep)  # ví dụ: "cơm"

💻 Bài tập

Ngôn ngữ: Python 3 với PyTorch và transformers (Hugging Face). Nộp vào day-103/.

Bài 1: Nút cổ chai của seq2seq

Bài toán đảo chuỗi ngày 102 với độ dài L = 5, 10, 20, 40.

  1. Seq2seq LSTM không attention: encoder nén thành 1 vector, decoder sinh từ vector đó.
  2. Seq2seq LSTM có attention (Bahdanau hoặc dot-product).
  3. In accuracy chuỗi đúng hoàn toàn theo L. Vẽ đồ thị 2 đường.

Bài 2: GPT sinh tiếp và BERT điền chỗ trống

Dùng mô hình có sẵn: gpt2 (hoặc mô hình tiếng Việt tương đương) và bert-base-uncased (hoặc PhoBERT).

ViệcYêu cầu
GPT sinh tiếpCho câu mở đầu, sinh 30 token với greedy, top-k=50, temperature 0.7 và 1.5. So 3 kết quả
Xác suất token kếIn top 10 token kế tiếp và xác suất cho câu "The capital of France is"
BERT điền chỗ trốngIn top 5 cho "I ate a [MASK] for breakfast."
So hướng đọcCâu "The [MASK] barked at the mailman.": BERT dùng được từ phía sau, GPT thì không. Giải thích

Bài 3: Tinh chỉnh BERT phân loại (nâng cao)

  1. Tinh chỉnh distilbert-base-uncased trên 2000 review IMDB (hoặc bộ review tiếng Việt) trong 2 epoch.
  2. So accuracy với Naive Bayes ngày 54 và embedding trung bình ngày 99 trên cùng tập test.
  3. In 3 ví dụ BERT đúng mà Naive Bayes sai (thường là câu có phủ định hoặc mỉa mai).

✅ Tiêu chí hoàn thành

  • Đồ thị accuracy theo độ dài cho seq2seq có và không có attention.
  • Bảng sinh văn bản 3 cấu hình và top 10 token kế tiếp.
  • Bảng so sánh 3 mô hình sentiment có số thật.
  • Giải thích được GPT dùng decoder, BERT dùng encoder, và hệ quả.

❓ Câu hỏi ôn tập

  • Nút cổ chai Seq2Seq nằm ở đâu?
  • GPT đoán từ theo hướng nào?
  • BERT học bằng trò gì?
  • Viết văn nên dùng GPT hay BERT?

🌕 Bạn đã hoàn thành ngày 103. Làm hết bài tập phía trên rồi sang ngày tiếp theo.

Bớt paste mù, hiểu sâu từng dòng mình viết.

180 Days Challenge. 180 ngày cai nghiện vibe code.