TOKENIZATION LAB / v3 · 2026-10-07

同一句意思,
怎麼切成不同成本?

中文 Tokenization 實驗工作台
控制字形與用詞,檢查 token、位元組與比較的邊界。

自撰材料的探索實驗 · 兩個 tokenizer · 尚未母語者校訂

先問一個可檢查的問題

把「軟體」改成「软件」,差異來自繁簡轉換、用詞,還是兩者的交互作用?

從下方 2×2 格子開始。切換分析範圍,再看你的結論是否仍成立。

切分差異 → 使用成本情境 → 公平性論證
每一步都需要自己的證據。

先決定哪些材料能放在一起

字形用 OpenCC t2s / s2t 生成;用詞由作者撰寫。預設台中 2×2 比較排除 8 個額外措辭或指涉差異項目。香港版本另列為探索條件,部分涉及粵語語法。

底紋表示由作者原始版本轉換而來的控制字串;沒有底紋也只表示原始自撰版本,並非語料實證。「模板篩選」是作者檢查,不等於母語者驗證。字形轉換可能含一對多或上下文選擇,仍須人工核對。

哪些項目被排除?為什麼?

估計效果,也看結論對材料有多敏感

← 負值 | 0 | 正值 → 單位:tokens;橫線為平均差的 95% bootstrap 區間

主要估計量為項目內差值的平均。CI 是 10,000 次項目 bootstrap 的百分位區間;Wilcoxon 是補充性的符號秩檢定,與平均差 CI 的虛無假設不同。p 值未作多重比較校正;子類別分析屬探索,n 很小時區間不穩定。不顯著不等於無效果,區間跨零也不代表兩條件等價。

精確的基準路徑:直接差異如何相加?

台繁 − 中簡 =(台簡 − 中簡)+(台繁 − 台簡)。這是同一批項目的算術恆等式;三地平均字形效果與台中平均詞彙效果不能直接當成這條路徑的兩個貢獻。

切換篩選方式,結果改變多少?

這張表使用各範圍的全部類別。不同範圍改變了材料與條件數,差異不是篩選的因果效果。逐字相同控制只用字串完全一致的項目;詞彙差異應精確為零。

讓每一個 token 的 bytes 都可檢查

紅框表示該 token 的 bytes 無法單獨解碼為完整 UTF-8 字串。它可能包含多個位元組,也可能跨過字元邊界;這個觀察本身不能證明某個漢字缺少專屬 token。

字元位置與 token 邊界如何對齊?

兩者使用同一組 UTF-8 byte 座標。token 區間是左閉右開 [start, end);將所有 token bytes 串起來,必須完全還原輸入。

覆蓋率、合併順位、前置切分與上下文都可能影響結果。「單字未收錄」與「這次被切開」要分開查驗;單字未收錄也可能被包含在多字 token 中。

查的是詞表形式,推論要留在證據範圍內

比例的分母是「已在詞表中、且 OpenCC 會轉成不同繁/簡對應形式的單漢字」。不是所有繁體字的缺漏率。只計完全匹配的漢字 bytes,沒有把含前後空白的 token 當成單字。OpenCC 對應不是唯一的語言學字形標準。

檢視最長的純漢字條目(可能含廣告及成人內容)

條目可作為資料來源的線索,但不能只靠長度或排名推回訓練語料的比例、日期或實際頻率。提出來源假設後,還需要獨立資料驗證。

token 邊界與構式邊界,是兩個問題

下表量的是具體字串是否成為一個 token,及表面變體的切分。相同字串的兩欄是重複參照;其他配對也不全是語義最小對比。BPE 詞表並非形式—意義配對的構式庫。

「洗澡」是兩個 token,模型還能理解它嗎?

這裡的資料無法回答。可另做釋義判斷、插入成分的泛化及語義最小對比測試,並記錄模型版本、提示、重複次數與人工評分。將「邊界一致」與「掌握構式」分別提出假設。

把觀察換成明確的使用情境

價格與 context 屬於具體模型與服務方案,不屬於 tokenizer。本表使用你設定的假設情境;預設值不是任何供應商的現行報價。費用只計輸入,context 扣除你預留的提示與輸出額度。

換算率 = Σ tokens / Σ 所選字數,並非句子比率的平均。連接文本會改變切分邊界,因此 context 容量只是以本材料校準的近似值。混排文本若選漢字分母,非漢字的 tokens 也在分子,不能解讀為單一漢字的切分成本。

提出你自己的反例

輸入兩段文字,先說明你控制了什麼。結果只量字串;系統不判定語義等價。所有輸入在瀏覽器本地計算。

尚未載入。啟用後下載網站內的固定版本 tokenizer(約 3.4 MB)。

每欄最多 2,000 個 UTF-16 code units。單一反例不需要假造信賴區間;若要推論到一批文本,需建立抽樣框並以獨立項目或文件為重抽樣單位。

重現、證據與仍待完成的事

cd lab/session-9/tokfair
python -m pip install -r requirements.txt
bash vendor_ranks.sh
python run_study.py
python validate.py
python build_web.py --out ../zh-tokenizer.html
v2 → v3 更正紀錄
  • 移除普遍性的「字形稅」結論,保留可重算的條件差異。
  • 預設台中 2×2;另列原始、香港與逐字控制範圍。
  • UTF-8 有效性直接查 bytes,顯示 token ID 與區間;不再用替代字元猜碎片。
  • 修正漢字單 token 指標與 boundary F1 座標,將詞表覆蓋與實際切分分開。
  • 保留負值 CI 與零基準;區分平均差區間、Wilcoxon 與探索比較。
  • 成本由可調情境計算,構式部分只談表面邊界。
  • 提供資料、程式與 rank hash;官方 tiktoken 一致性及瀏覽器測試分別記錄。
查看 v2 歷史快照(含已更正的解釋)

技術參照:官方 tiktoken · js-tiktoken · OpenCC · Wilcoxon 定義