Nếu từng đọc kỹ tài liệu về BERT hay T5, bạn sẽ thấy cả hai đều tách văn bản thành các mảnh nhỏ hơn từ, gọi là subword, trước khi đưa vào mô hình. Nhưng cách chúng chọn ra bộ từ vựng và cách chúng tách từ tại thời điểm suy luận lại khác nhau khá nhiều so với BPE (Byte Pair Encoding) mà bạn có thể đã quen thuộc từ GPT. Hiểu rõ ba cách tiếp cận này giúp bạn đoán được vì sao một mô hình lại tách một từ tiếng Việt hay tiếng Nhật thành những mảnh kỳ lạ, và vì sao đôi khi đổi tokenizer lại cải thiện chất lượng mô hình đáng kể.
WordPiece: khớp dài nhất theo kiểu tham lam
WordPiece, bộ tách từ đứng sau BERT, cũng xây bộ từ vựng bằng cách gộp dần các cặp ký tự liền kề như BPE, nhưng tiêu chí chọn cặp để gộp lại khác hẳn. Thay vì chọn cặp xuất hiện nhiều nhất như BPE, WordPiece ưu tiên cặp giúp tăng xác suất của toàn bộ dữ liệu huấn luyện nhiều nhất khi xem mỗi token là một sự kiện độc lập. Khi suy luận, WordPiece dùng chiến lược khớp dài nhất theo kiểu tham lam: với mỗi từ, nó tìm mảnh dài nhất trong từ vựng khớp với đầu từ, tách ra rồi lặp lại với phần còn lại. Các mảnh nối tiếp được đánh dấu bằng tiền tố ## để phân biệt với mảnh đứng đầu từ. Cách này nhanh và đơn giản, nhưng luôn cho ra đúng một cách tách cố định cho mỗi từ, không có chỗ cho sự linh hoạt.
Unigram: chấm điểm bằng mô hình ngôn ngữ và huấn luyện EM
Unigram, thuật toán mặc định trong SentencePiece và được T5, ALBERT, XLNet sử dụng, đi theo hướng ngược lại trong cách xây dựng từ vựng: bắt đầu từ một bộ rất lớn gồm nhiều chuỗi con phổ biến, rồi liên tục loại bỏ những mảnh đóng góp ít nhất vào xác suất của toàn bộ kho ngữ liệu cho đến khi đạt kích thước mong muốn. Đây là bài toán tối ưu bằng thuật toán EM. Ở bước E, mô hình dùng Viterbi hoặc forward-backward để ước lượng cách tách tối ưu cho từng từ dựa trên xác suất hiện tại của các mảnh. Sang bước M, hệ thống cập nhật lại xác suất của từng mảnh theo tần suất sử dụng vừa tính được. Khác với WordPiece, Unigram không gộp dần từ dưới lên mà cắt tỉa từ trên xuống, và mỗi mảnh trong từ vựng mang một xác suất riêng chứ không chỉ đơn thuần có mặt hay không.
Subword regularization: một câu, nhiều cách tách
Vì Unigram gán xác suất cho mọi mảnh, nó có thể liệt kê nhiều cách tách khác nhau cho cùng một từ và chọn ngẫu nhiên một cách theo phân phối xác suất đó thay vì luôn chọn cách tối ưu nhất. Kỹ thuật này gọi là subword regularization. Khi huấn luyện, việc thỉnh thoảng cho mô hình thấy cách tách `un + happy` thay vì luôn cố định một kiểu như `unhap + py` giúp nó học cách xử lý nhiều biến thể phân mảnh, từ đó tăng khả năng chống nhiễu và khái quát hóa, đặc biệt hữu ích với ngôn ngữ ít tài nguyên hoặc dữ liệu có lỗi chính tả. WordPiece và BPE, do luôn tách theo một quy tắc cố định, vốn không có đặc tính này.
Nên chọn thuật toán nào?
BPE thắng ở tốc độ huấn luyện và tính đơn giản, tiêu chí tần suất thuần túy dễ cài đặt và đủ tốt cho phần lớn trường hợp, đó là lý do GPT và LLaMA, vốn dùng SentencePiece nhưng chạy ở chế độ BPE chứ không phải Unigram, vẫn gắn bó với lựa chọn này. WordPiece phù hợp khi bạn cần một cách tách nhanh, xác định, gắn liền với kiến trúc encoder như BERT. Unigram đáng cân nhắc khi làm việc với dữ liệu đa ngôn ngữ hoặc khi cần mô hình ổn định hơn trước nhiễu, vì nó vừa có nền tảng xác suất chặt chẽ vừa cho phép subword regularization. Không có thuật toán nào thắng tuyệt đối. Lựa chọn phụ thuộc vào việc bạn ưu tiên tốc độ, tính xác định, hay khả năng tổng quát hóa của mô hình cuối cùng. Ai đang xây dựng pipeline huấn luyện riêng cũng nên tìm đọc thêm các bài phân tích khác trong chuyên mục công nghệ của VnRead để nắm các lựa chọn kiến trúc tương tự.




