Tokenizer pipeline: từ câu người gõ đến token IDs

Tokenizer pipeline: từ câu người gõ đến token IDs A data-flow diagram generated by Archify. 01 / Văn bản thô 02 / Chuẩn hoá 03 / Subword 04 / Số hoá 05 / Vào Transformer Câu người gõ · chuỗi Unicode bất kỳ · 01 / Văn bản thô · chưa có số nào Câu người gõ chuỗi Unicode bất kỳ chưa có số nào Biến thể Unicode · ắ dựng sẵn vs a + dấu · 01 / Văn bản thô Biến thể Unicode ắ dựng sẵn vs a + dấu Normalizer · NFC · NFKC · case · 02 / Chuẩn hoá · có thể lossy Normalizer NFC · NFKC · case có thể lossy Pre-tokenizer · regex cắt piece thô · 02 / Chuẩn hoá · đặt ranh giới Pre-tokenizer regex cắt piece thô đặt ranh giới Segmentation · BPE · WordPiece · Unigram · 03 / Subword · token thành hình Segmentation BPE · WordPiece · Unigram token thành hình Vocabulary · bảng token → ID · 03 / Subword Vocabulary bảng token → ID Token IDs · [921, 44, 7211, …] · 04 / Số hoá · chỉ là index Token IDs [921, 44, 7211, …] chỉ là index Special tokens · BOS · EOS · role · PAD · 04 / Số hoá Special tokens BOS · EOS · role · PAD Embedding lookup · E[id] → vector d chiều · 05 / Vào Transformer · nghĩa bắt đầu Embedding lookup E[id] → vector d chiều nghĩa bắt đầu văn bản thô đã chuẩn hoá token pieces tra hàng của E cùng một hình piece sơ bộ tra bảng cũng chiếm chỗ Legend primary data data store data flow

Tokenizer không phải một hàm duy nhất

  • • Bốn bước trên đều cấu hình được độc lập với nhau
  • • Đổi normalizer hay regex pre-tokenizer là đổi kết quả tokenize
  • • Cùng thuật toán BPE, hai pipeline vẫn cho ra token khác nhau

Hàng dưới quyết định hàng trên

  • • Pre-tokenizer đặt ranh giới mà merge không được vượt qua
  • • Vocabulary học một lần lúc train, sau đó chỉ được tra
  • • Special token chiếm chỗ thật trong context window

Chỗ hay bị hiểu nhầm

  • • Token ID chỉ là địa chỉ hàng, tự nó không mang ngữ nghĩa
  • • Chuẩn hoá chạy trước segmentation nên có thể làm mất thông tin gốc
  • • Ranh giới token không bắt buộc trùng ranh giới ký tự UTF-8