← 返回 Session 9 tokfair 說明

這份練習要練的事

一句「繁體中文比簡體中文多花 29% 的 token」是觀察,不是發現。把它變成發現,需要四件在這門課裡會反覆出現的東西:

  1. 把混淆的因子拆開。 29% 裡有多少來自字形、多少來自詞彙?兩者的成因與解法完全不同。
  2. 指標要有分母、有基準線、有區間。 沒有區間的百分比無法判斷是否值得在意。
  3. 抽樣框要能撐得起結論。 手寫十五句能支持什麼樣的推論?
  4. 語言學論證要做事。 效果的方向通常可以從語言學預測;預測錯了,比預測對了更有資訊。

研究平台(zh-tokenizer.html)與分析程式碼(tokfair/)是起點,不是終點。

兩條路徑,擇一

路徑 A | 系統擴充

提出一個新的想法,用程式把它實作進這個專案。評分看的不是程式量,而是你加的那個變項讓原本看不見的什麼東西變得可見。

#題目要回答的問題
A1加入其他 tokenizer 家族:Llama-3、Qwen、Gemma、DeepSeek、XLM-R、bert-base-chinese字形效果的大小是否隨「誰訓練詞表」而變?中文團隊訓練的詞表是否對繁體較友善?
A2換掉抽樣框:維基百科 zh-tw/zh-cn/zh-hk,或 FLORES-200 的 zho_Hant/zho_Hans,n ≥ 500手寫語料得到的效果量,在真實文本分布上還成立嗎?
A3實作 CKIP 斷詞版的 fertility 與 boundary F1tokenizer 與人類斷詞標準的一致率有多高?繁簡之間是否不同?
A4詞表標註:抽樣 200 個多字漢字 token,兩位標註者分類並報 Cohen's κ一個 BPE 詞表在語言學上是什麼樣的清單?
A5加入台語漢字、客語漢字、族語羅馬字、注音、全形/半形等條件「公平性」的邊界在哪裡?誰的書寫系統從來沒被計入?
A6實作熵切分(BLT 式 dynamic patching)的小型復刻動態切分是否比 BPE 更接近人類詞界?
A7偵測訓練不足的 token(undertrained / glitch tokens)詞表的哪一部分是被浪費掉的?

繳交物:pull request 或 repo fork(含可執行的 run_study.py 路徑)+ 3–5 頁說明文件。須包含:動機、實作的變項、結果,以及你的擴充推翻或修正了原本的哪一個說法。

路徑 B | 評量報告

使用現有系統(可小幅修改輸入),設計並執行一項評量。評分看的不是效果有多大,而是你的效果不能是設計的副產品。

#題目假設範例
B1罕見句式/語體:文言文、法律、學術中文、注音文、火星文語體愈偏離網路白話,tokens/字 愈高;繁簡差距在文言文中縮小
B2外來詞:音譯 vs 意譯(雷射/激光、維他命/维生素)意譯詞由常用語素組成,應比音譯詞省 token
B3專名與譯名:川普/特朗普、雪梨/悉尼、梵谷/梵高譯名的 token 成本反映該譯名在訓練語料中的頻率
B4領域混排:中英夾雜、程式碼與中文註解語言切換點會產生額外的 token 邊界成本
B5標點與排版:全形/半形、直書引號、數字書寫排版慣例的地域差異本身就是一種稅
B6歷時比較:《紅樓夢》vs 現代白話 vs 2020s 網路中文詞表是近年網路語料的快照,愈接近該分布愈省
B7構式完整性:成語、越 X 越 Y、離合詞、重疊式BPE 對固化程度不敏感,只對字串頻率敏感

繳交物:4–6 頁報告 + 可重現的 notebook 或 script。

兩條路徑共同的最低要求

  1. 研究問題與假設:至少一個具方向性的假設,以及它為什麼是語言學上合理的預測。
  2. 設計:說明你控制了什麼、沒控制什麼。若比較同時變動兩個因子,請說明為什麼可以接受。
  3. 抽樣框與 datasheet:語料從哪裡來、怎麼選的、n 是多少、有什麼已知偏誤。
  4. 指標定義:每個指標寫出公式或程式碼,並說明分母是什麼。
  5. 不確定性:所有效果須附 95% 區間。只報百分比而無區間者不予計分。
  6. 至少一個 null 結果或反例:你預測會有效果但沒有的地方,或與假設相反的個案。
  7. 限制:你的結論不能推論到什麼。
  8. LLM 使用聲明:你用了哪些模型做了什麼。使用不扣分,不聲明扣分。

評分標準(100 分)

面向配分好的樣子
問題與假設20假設有方向、可被推翻,且理由來自語言學而非直覺
設計與控制25因子分離乾淨;控制條件說得出理由;知道設計會產生什麼假效果
測量與統計25指標定義清楚;分析單位正確(項目內對比);區間與效果量齊備
詮釋與語言學論證20從數字回到語言學問題;能說明機制而不只是相關
可重現性10別人跑得起來;隨機種子、版本、資料來源齊備

加分(最多 +5):發現並記錄研究平台本身的錯誤、或提出一個我們沒想到但可測的反例。

常見的失分方式

研究平台裡標記 hk_confidence="low" 的構式題目前混了書面粵語(我哋/冇/畀)。 那是已知限制,不是範本。作業若沿用香港欄,請先改成香港書面中文,或把它當成單獨的語法條件並說清楚。

起步

git clone https://github.com/lopentu/genai4humanities2026
cd genai4humanities2026/lab/session-9/tokfair
pip install regex opencc-python-reimplemented jieba numpy scipy
bash vendor_ranks.sh
python run_study.py
python build_web.py --out ../zh-tokenizer.html

先把課堂數字跑出來,確認環境正確,再開始改。 stimuli.py 的 docstring 說明了設計為什麼長這樣; metrics.py 的 docstring 列出每個指標的文獻出處(請自行查核,那些引用是憑記憶寫的)。

原始 Markdown 規格也留在同目錄的 assignment1-tokenization-unfairness.md。