ChatGPT 等 AI 工具越來越普遍,與 AI 互動時,我們知道提示詞差異會影響輸出結果,如果意思相同但以不同語言輸入,差異是否也大?提示詞輸入和輸出和模型背後計算量直接掛鉤,因此不同語言 AI 輸出和成本消耗是否有天然差異或「不公平性」?這種「不公平性」又如何產生的?
提示詞其實不是對應文字,而是Token。當收到用戶提示詞後,模型會轉換成Token列表處理預測,再將預測的Token轉為輸出看到的文字。Token是模型處理和產生文本或語言的基本單位,各家廠商都會宣稱模型支援多少Token上下文,不會說英文單字或中文字數。
影響Token計算的因素
首先,一個Token並不是對應一個英文單字或一個中文字,Token與單字沒有確定換算關係。如OpenAI的Token計算工具,hamburger是拆成ham、bur和ger三個Token,同個字如果在兩句話裡的結構不同,會算成不同數目Token。
Token如何計算取決於廠商的標記化(tokenization)法。標記化是將輸入和輸出文本拆為語言模型處理的Token過程,幫助模型處理不同語言、詞彙表和格式。ChatGPT採用「位元組對編碼」(Byte-Pair Encoding,BPE)標記化。
一個單字分解成多少個Token,與發音和句子內結構有關,不同語言的計算差異也頗大。以「hamburger」中文「漢堡」來說,兩個字卻有六個Token,也就是分解成六部分。
(Source:,下同)
再以一段話計算中英文Token的「不公平性」。
OpenAI官網說:「You can use the tool below to understand how a piece of text would be tokenized by the API, and the total count of tokens in that piece of text.」這段話共計33個Token。
中文為:「您可以使用下面的工具來理解API如何將一段文本標記化,以及該段文本中標記的總數。」共82個Token。
AI對中文的天然「不公平」
相同意思的中文Token數是英文兩倍多,中文和英文訓練和推理時「不公平性」,也許是因中文通常一個字有多種意義,語言組成較靈活,語境更多,也增加歧義性和處理難度;英文結構較簡單,故英文自然語言任務比中文更容易處理理解。中文要處理的Token更多,模型消耗記憶體和計算資源也越多,當然成本就越高。
ChatGPT雖能辨識中文等多種語言,但訓練資料庫都為英文文本,處理非英文時可能面臨語言結構、文法等挑戰,影響輸出效果。最近論文〈多語言模型英文表現更好嗎?〉(Do Multilingual Language Models Think Better in English?)提到,非英文翻成英文輸出結果,比直接用非英文提示詞效果更好。
對中文用戶來說,先把中文翻成英文,然後再詢問AI,也似乎效果更好,還更劃算。畢竟用OpenAI的GPT-4模型API,每輸入千個Token至少收費0.03美元。
由於中文的複雜性,AI模型用中文準確訓練和推理可能挑戰更大,並增加中文模型應用和維護難度;對開發大型模型的公司來說,開發中文大型模型需額外資源,可能要承擔更高成本。
(本文由 授權轉載;首圖來源:)
標題:中文大型模型比英文更燒錢,竟然是由 AI 底層原理決定?
地址:https://www.utechfun.com/post/259080.html