Xây dựng bộ Tokenizer cấp ký tự (Character-Level Tokenizer)
Tokenizer cấp ký tự (Character-Level Tokenizer) là dạng tokenizer đơn giản nhất nhưng có ưu điểm tuyệt đối: kích thước từ điển rất nhỏ (chỉ khoảng 100-256 ký tự) và hầu như không b…

Mô hình AI không đọc được chữ cái trực tiếp. Khám phá cách các thuật toán nén và mã hóa chuỗi ký tự thành các mã token số học tối ưu.
bài tập có chấm code
Bài tập theo chuyên đề, có đề bài, ví dụ và starter code riêng.
cơ bản
Củng cố nền tảng và làm quen với kỹ thuật cốt lõi.
trung bình
Kết hợp nhiều bước suy luận để vận dụng kiến thức.
nâng cao
Thử thách tối ưu, cấu trúc dữ liệu và thuật toán chuyên sâu.
Tách ký tự cơ bản, đếm tần suất các cặp ký tự liền kề (byte pairs).
Lặp lại quá trình gộp cặp ký tự phổ biến nhất để mở rộng từ điển vocabulary.
Chuyển văn bản mới thành chuỗi token id và giải mã ngược lại văn bản gốc nguyên vẹn.
Không xử lý các ký tự lạ ngoài từ điển (Unknown tokens <unk>).
Mất mát thông tin dấu cách khi mã hóa và giải mã chuỗi văn bản.
Trong mỗi mức độ, bài tập được xếp từ dễ nhất đến khó nhất — hãy đi theo số bước.
Tokenizer cấp ký tự (Character-Level Tokenizer) là dạng tokenizer đơn giản nhất nhưng có ưu điểm tuyệt đối: kích thước từ điển rất nhỏ (chỉ khoảng 100-256 ký tự) và hầu như không b…
Tỷ lệ từ vựng ngoài từ điển (OOV Rate) là một chỉ số quan trọng phản ánh độ hoàn thiện của bộ tokenizer trên tập dữ liệu mục tiêu:
Hai chỉ số hàng đầu để đánh giá hiệu quả của một bộ tokenizer trên tập dữ liệu ngôn ngữ:
Trong thuật toán Byte Pair Encoding (Sennrich et al., 2016), ngữ liệu huấn luyện được biểu diễn dưới dạng một từ điển tần suất các từ, trong đó mỗi từ là một tuple các ký hiệu ban…
Dùng một kỹ thuật quen thuộc: sắp xếp, tìm kiếm, đếm, ngăn xếp.
Khi huấn luyện mô hình theo lô (mini-batch), các câu trong cùng một batch thường có độ dài khác nhau. Ta buộc phải đệm (<pad>) các câu ngắn cho bằng độ dài câu dài nhất hoặc max_le…
Mô hình ngôn ngữ N-gram và các kỹ thuật biểu diễn từ vựng cổ điển (như FastText, BoW) dựa trên việc trích xuất các cụm từ liên tiếp gồm N từ.
Để sử dụng mô hình trong thực tế hoặc triển khai inference server, từ điển của tokenizer bắt buộc phải được lưu trữ và tải lại một cách an toàn và nhất quán.
Sau khi đã tìm ra cặp ký hiệu có tần suất lớn nhất p = (p0, p1), bước tiếp theo của BPE là thay thế tất cả các lần xuất hiện liên tiếp của (p0, p1) trong mọi từ thành một ký hi…
Phối hợp hai kỹ thuật trong cùng một lời giải.
Trước khi thuật toán BPE thực hiện gộp các cặp, các mô hình ngôn ngữ lớn hiện đại (GPT-2, GPT-4, LLaMA) luôn chạy một bước Pre-tokenization bằng biểu thức chính quy (Regex).
Trong hệ sinh thái Hugging Face transformers và OpenAI GPT-2, bộ tokenizer BPE được lưu trữ bằng đúng 2 file:
Tokenizer cấp từ (Word-Level Tokenizer) phân tách văn bản thành các từ hoàn chỉnh. Tuy nhiên, nếu đưa mọi từ vào từ điển, kích thước từ điển sẽ bùng nổ và chứa nhiều từ gõ sai hoặc…
Thuật toán chuyên sâu: quy hoạch động, đồ thị, cây.
Quy tắc thuật toán:
Trong khi BPE và WordPiece sử dụng các quy tắc ghép/tách có tính heuristic cứng, Unigram Language Model (Kudo, 2018 - cốt lõi của Google SentencePiece) xem việc phân đoạn từ như mộ…
Thuật toán huấn luyện BPE hoàn chỉnh kết hợp việc đếm cặp và gộp lặp đi lặp lại qua M bước (num_merges):
Thuật toán BPE nguyên bản hoạt động trên chuỗi Unicode ký tự, dẫn đến kích thước từ điển cơ sở ban đầu rất lớn (hàng chục nghìn ký tự cho tiếng Trung, Nhật, Ả Rập, emoji).
Sau khi huấn luyện, ta thu được danh sách các quy tắc gộp merges: list[tuple[str, str]]. Mỗi quy tắc gộp được gán một mức độ ưu tiên (rank), quy tắc nào được học sớm hơn sẽ có rank…
Cấu trúc dữ liệu nâng cao và nhiều bước chứng minh.
1. Ban đầu, mỗi từ được biểu diễn dưới dạng danh sách các ký tự đơn lẻ kết thúc bằng ký tự đặc biệt </w>.
BERT dùng WordPiece khác BPE: prefix ## đánh dấu subword tiếp theo (không phải đầu từ).
1. Khởi tạo vocabulary = tất cả ký tự đơn + ký hiệu kết thúc </w>
Trong cài đặt ngây thơ của BPE: