詞語化為數字(分詞與嵌入)
分詞的陷阱(tokenization pitfalls)
分詞平時隱形,直到它突然咬你一口。因為模型看到的是詞元而不是字母,它在需要字元層級意識的任務上會吃力:數「strawberry」裡有幾個 r、把字串反過來寫、或拼出一個剛好是單一不透明詞元的單字。數字是惡名昭彰的例子——「1234」可能被切成「12」加「34」,於是算術出錯,不是因為推理糟糕,而是因為數字被切在哪裡。
其他怪癖也都源自同一個根本原因。一個結尾的空格、一個大寫字母、或一種不尋常的 Unicode 形式,都可能改變出現哪些詞元,悄悄地讓答案偏掉。罕見字串會碎成許多詞元,推高成本,偶爾還會從所謂的「故障詞元」(glitch tokens,訓練中幾乎沒見過的詞元)觸發奇怪行為。這些都不代表模型笨;它根本就看不到底層的字元。了解分詞器怎麼運作,能解釋許多令人摸不著頭緒的失敗。
如果模型數錯字母或算錯數,先懷疑分詞器,再懷疑推理。
另见