BPE: học vocabulary một lần, encode lại rất nhiều lần

BPE: học vocabulary một lần, encode lại rất nhiều lần A workflow diagram generated by Archify. 01 / Pha train tokenizer — chạy một lần trên corpus 02 / Pha encode — chạy mỗi lần có câu mới Vòng lặp merge Đóng băng rồi dùng lại Ký hiệu nền · byte hoặc ký tự · Pha train tokenizer — chạy một lần trên corpus Ký hiệu nền byte hoặc ký tự Đếm cặp liền kề · trên toàn corpus · Pha train tokenizer — chạy một lần trên corpus › Vòng lặp merge Đếm cặp liền kề trên toàn corpus Chọn cặp tốt nhất · theo tần suất hoặc score · Pha train tokenizer — chạy một lần trên corpus › Vòng lặp merge Chọn cặp tốt nhất theo tần suất hoặc score Merge thành token · ghi lại thứ hạng merge · Pha train tokenizer — chạy một lần trên corpus › Vòng lặp merge Merge thành token ghi lại thứ hạng merge Vocabulary + rank · từ đây không học nữa · Pha train tokenizer — chạy một lần trên corpus › Đóng băng rồi dùng lại · đóng băng Vocabulary + rank từ đây không học nữa đóng băng Câu mới · chưa từng có trong corpus · Pha encode — chạy mỗi lần có câu mới Câu mới chưa từng có trong corpus Về byte nền · cùng bảng ký hiệu lúc train · Pha encode — chạy mỗi lần có câu mới › Vòng lặp merge Về byte nền cùng bảng ký hiệu lúc train Áp merge theo rank · không đếm lại corpus · Pha encode — chạy mỗi lần có câu mới › Đóng băng rồi dùng lại · rất nhanh Áp merge theo rank không đếm lại corpus rất nhanh Token IDs · kết quả deterministic · Pha encode — chạy mỗi lần có câu mới › Đóng băng rồi dùng lại Token IDs kết quả deterministic dùng lại rank đã học chuẩn hoá + cắt piece chuỗi ký hiệu nhỏ hết merge hợp lệ chưa đủ, đếm lại corpus đã tách bảng tần suất cặp thắng đủ vocabulary size Legend Agent logic Tool action Context / trace External system

Hai pha, hai chi phí rất khác nhau

  • • Train duyệt toàn corpus và lặp cho tới khi đủ vocabulary size
  • • Encode chỉ replay lại danh sách merge đã học theo đúng thứ hạng
  • • Vì vậy tokenize một câu không hề đắt, dù train tokenizer thì đắt

Thứ hạng merge là thứ phải giữ nguyên

  • • Cùng vocabulary nhưng khác thứ tự merge sẽ cho segmentation khác
  • • Đó là lý do file tokenizer lưu cả merges chứ không chỉ danh sách token
  • • Mất thứ hạng merge là mất khả năng tái lập kết quả tokenize

BPE không biết ngôn ngữ học

  • • Cặp được chọn vì thống kê corpus, không vì nó là một morpheme
  • • Token đẹp như "ing" là kết quả thuận lợi, không phải điều kiện
  • • Domain ít xuất hiện lúc train sẽ bị cắt vụn khi encode