編者按: 難道語言模型對破折號的偏愛,真的只是因為它們“喜歡”嗎?
我們今天為大家帶來的文章,作者的核心觀點是:當前主流大語言模型對破折號的偏愛,很可能源於其訓練數據中大量引入了 19 世紀末至 20 世紀初的紙質書籍 —— 這些文本本身就比當代英語更頻繁地使用破折號。
文章系統梳理並逐一反駁了多種主流解釋,然後通過分析標點使用的歷史趨勢、尼日利亞英語語料庫統計數據,以及 GPT-3.5 到 GPT-4o 破折號使用激增的時間節點,有力支撐了“舊書數字化”這一最合理的假説。
儘管這一解釋屬於猜想,尚未得到官方證實,但它為我們理解 AI 寫作風格提供了一條有趣的線索。
作者 | Sean Goedecke
編譯 | 嶽揚
如果你讓大多數人説出 AI 生成文本的一個標誌性特徵,他們很可能會説破折號 —— 就像這樣。語言模型對破折號的使用已頻繁到讓真正喜愛破折號的真人使用者望而卻步[1],生怕自己的文字被誤認為 AI 所作。更令人意外的是,要想通過提示詞讓模型避免使用破折號,竟出奇地困難:比如 OpenAI 論壇上的這個帖子[2],許多用户在此分享了自己失敗的嘗試經歷。既然如此,我們居然至今未能真正破譯語言模型痴迷破折號的原因,着實有些詭異。
01 難以令我信服的幾種解釋
一種常見説法是,正常的英語文本中本來就大量使用破折號,因此這只是模型從訓練數據中學到的行為。我覺得這很難令人信服,原因很簡單:如果 AI 使用破折號的頻率與人類相當,那它就不會比其他標點符號更引人注意了。
另一種我不太認同的解釋是:AI 模型喜歡破折號,是因為它用途太靈活。當模型試圖預測下一個 token 時,使用破折號能讓它保留更多選擇 —— 既可以繼續當前話題,也可以突然轉向新觀點。既然模型的目標只是選擇下一個最可能出現的 token,那它會不會只是因為想“穩妥行事”,所以選了破折號?我不這麼認為。首先,其他標點符號同樣具備靈活性;其次,“穩妥行事”這個説法本身也不太適合用來理解模型如何生成文本。
還有人認為[3],AI 使用破折號是因為模型訓練過程顯式地偏向簡潔性,而破折號的詞元效率很高。根據我對 OpenAI 分詞器[4]的測試,破折號本身並不天然更省 token,但可以想象,不用它的話可能就得寫一些連接詞,比如 “, therefore”。儘管如此,我依然不信這套説法。許多破折號(比如常見的 “it’s not X – it’s Y” 結構)完全可以換成逗號,而逗號同樣簡潔。此外,我也不認為 GPT-4o 會執着於簡潔到這種程度,非要對標點符號做這種優化:如果它真想節省 token,大可少説些廢話。
02 破折號的使用會不會是通過 RLHF 從非洲英語中引入的?
我花了不少時間研究的一種理論認為,破折號的使用可能反映了 RLHF 標註人員的英語使用習慣。語言模型訓練的最後階段包含 RLHF(基於人類反饋的強化學習):簡單來説,數百名測試人員會與模型互動,並對模型的輸出進行打分,這些評分再被反饋給模型,以提升其友好度和實用性。
出於成本考量,AI 公司傾向於在生活成本較低但擁有大量英語流利者的國家開展此項工作。對 OpenAI 而言,就是肯尼亞、尼日利亞等非洲國家。但這一決策帶來了一個有趣的副作用:非洲英語與美式或英式英語存在細微的差異。例如,非洲英語更頻繁使用 “delve” 這個詞,這也解釋了[5]為什麼 GPT-4o 特別喜歡 “delve”(以及其他華麗辭藻,比如 “explore” 和 “tapestry”)。
那麼,非洲英語是否大量使用破折號,從而導致非洲的 RLHF 工作者更傾向於給包含破折號的回答打高分?這個解釋看似完美,但我認為並不成立。我獲取了一份尼日利亞英語文本的數據集[6],並統計了破折號的出現頻率。結果顯示,破折號僅佔全部詞彙的0.022%。而一篇關於英語文本中標點符號使用頻率的論文[7]估計,整體破折號的使用率通常在 0.25% 到 0.275% 之間:
破折號的使用在 1750 年後開始增加,並在 1860 年左右達到頂峯(約 0.35%),此後持續下降,直到 1950 年代,之後開始在 0.25% 至 0.275% 之間波動。本研究中標點符號的頻率是相對於語料庫的總詞量計算得出的。
請先記住 1860 年破折號使用率達到頂峯這一點,後文會提及。但就目前來看,尼日利亞英語實際上更少使用破折號。因此,我認為破折號的過度使用與 “delve” 的高頻出現並非源於同一機制。
03 紙質媒體的數字化
關於破折號,有一個有趣的現象:GPT-3.5 並不怎麼使用它。而 GPT-4o 使用的破折號數量大約是前代模型的 10 倍,GPT-4.1 則更為嚴重。 不過,Anthropic 和 Google 的模型確實也會使用破折號,甚至連開源的中文模型也使用破折號。那麼,在 2022 年 11 月到 2024 年 7 月之間,究竟發生了什麼變化?
一個關鍵變化是訓練數據的構成。2022 年時,OpenAI 幾乎可以肯定是使用公開互聯網數據和來自 LibGen 等網站的盜版書籍混合進行訓練。然而,隨着語言模型的強大能力顯現出來,AI 實驗室迅速意識到,他們需要更多高質量的訓練數據 —— 這意味着要掃描大量紙質書籍。只有 OpenAI 員工知道他們是否以及何時開始掃描書籍,但法庭文件[8]已披露,Anthropic 是在 2024 年 2 月啓動這一流程的。我們有理由推測 OpenAI 也採取了類似的行動。換句話説,2022 到 2024 年間,訓練數據中新增了大量紙質書籍。
還記得上文提到的那項標點使用頻率研究嗎?它指出破折號的使用率在 1860 年左右達到頂峯。我認為一個合理的假設是:AI 實驗室所數字化的書籍,相比盜版書籍更接近 1860 年的語言風格。直觀來看,盜版內容往往傾向於當代流行文學 —— 因為這些才是讀者願意下載的。如果 AI 實驗室希望超出這一範圍,他們就得去購買更古老的書籍,而這些書很可能包含更多破折號。由此,我們得出了我認為最合理的解釋:
當前最先進的模型依賴 19 世紀末到 20 世紀初的紙質書籍作為高質量訓練數據,而這些書籍使用的破折號比當代英語散文多出約 30%。這就是為什麼很難讓模型停止使用破折號 —— 因為它們是從充滿破折號的文本中學到英語的。
我要感謝 Maria Sukhareva 的這篇博客[9],正是她讓我注意到這一點。雖然我不同意她關於破折號具有 structurally preferred(譯者注:模型本身更“喜歡”或“偏向”使用破折號,即使輸入數據中破折號並不特別多。)的觀點(原因已在上文簡要説明),但我認為她提出的“數字化進程推動破折號的使用”這一説法非常可信。若想看更具體的例子以及類似觀點,也可以參考這篇文章[10],其中展示了一些經典著作中破折號的驚人數量 —— 我最愛的《白鯨》(Moby-Dick)竟包含 1728 個破折號!
04 總結
關於模型過度使用破折號的現象,現有解釋可歸納為三大類:
第一類是模型結構驅動論,認為自迴歸模型天生偏好破折號 —— 比如因為它節省 token、保留更多表達可能性,或者其他類似原因。此説法難以令人信服,因為 GPT-3.5 並沒有過度使用破折號,而且這也不符合我對模型推理機制的直覺。
第二類是 RLHF 影響論,主張人類評分者更青睞破折號,因其能使行文更口語化,或符合 RLHF 工作者所處英語區的使用習慣。我認為地域差異論缺乏依據,但“更口語化”的説法或許有道理,只是目前難以找到確鑿證據支撐或否定它。
第三類是訓練數據決定論,強調破折號本就大量存在於訓練數據中。雖然我不認同這是根本原因,但確實認為某些高質量訓練數據(特別是 20 世紀初的印刷書籍)中破折號比例過高。總體而言,這仍是目前最具説服力的解釋。
05 Final thoughts
以上推論目前仍主要基於推測。 也許我對 OpenAI 開始數字化書面文本的時間判斷有誤。如果他們在 GPT-3.5 之前就已開始,那破折號的泛濫就不能歸因於此。當然,如今訓練的模型至少部分受到了其他 AI 模型輸出的“污染” —— 要麼是故意用合成數據訓練,要麼就是在抓取互聯網文本時不可避免地吸入了大量 AI 生成內容。
我仍有些困惑的一點是:如果破折號之所以常見,是因為它是 19 世紀末到 20 世紀初寫作風格的特徵,那為什麼 AI 生成的文本讀起來並不像《白鯨》? 模型是否有可能只吸收了舊式英語寫作中的一些碎片化元素(比如標點符號),卻仍產出聽起來很現代的文本?
我也可能錯了 —— 新數字化的內容未必就出版年代更早。盜版書籍確實可能偏向當代作品,但大量已進入公有領域的舊書是否足以壓倒這種偏向?
還可能存在一個更簡單的解釋:比如,破折號讀起來更口語化,因此受到 RLHF 評分員的青睞,從而形成惡性循環,導致模型越來越頻繁地使用破折號。這似乎與 Sam Altman 某次訪談[11]中“因用户喜愛而增加破折號”的説法吻合。但我不知道該如何證實或證偽這一點。
總的來説,我仍然驚訝於:對於 AI 文本最顯著的特徵之一,居然沒有廣泛的共識解釋其成因。 我個人仍傾向於認為,數字化 19 世紀末至 20 世紀初的著作是主要原因 —— 但如果曾參與 GPT-3.5 到 GPT-4o 之間 OpenAI 工作(或因其他原因知情)的人能確認這一點,那就再好不過了。
編輯補充:這篇文章在 Hacker News[12] 上收到了一些評論。其中有一條有趣的評論[13]指出,Medium 的 CEO 認為責任在 Medium —— 因為 Medium 會自動將兩個連字符(”—”)轉換為一個破折號,而 Medium 曾是高質量訓練數據的來源。
我完全無法認同這種説法。如果問題是“為什麼人類常用連字符或雙連字符代替破折號,而 LLM 卻輸出真正的破折號字符”,那我或許會考慮這種排版相關的解釋。但真正的問題是:“為什麼 LLM 使用破折號的頻率遠高於人類?” —— 這裏指的是那種功能類似括號、或比逗號更強調語氣的標點用法。
因此,那些提及 Unicode[14]、俄語訓練數據[15]、維基百科排版規範[16]或 OCR 識別錯誤[17]的評論令我費解。這些因素根本無法解釋模型為何會“像人類那樣使用破折號”!如果在訓練中把連字符(比如 “double-crossed” 中的)誤讀為破折號,模型更可能學會把破折號當連字符用,而不是學會用破折號來插入補充説明或製造語氣停頓。其他類似解釋也存在同樣問題。
END
本期互動內容 🍻
❓你覺得語言模型偏愛使用破折號是什麼原因呢?
文中鏈接
[1]https://www.reddit.com/r/OpenAI/comments/1mk62b1/comment/n7gn...
[2]https://community.openai.com/t/cannot-get-responses-to-not-in...
[3]https://msukhareva.substack.com/p/the-mystery-of-emdashes-par...
[4]https://platform.openai.com/tokenizer
[5]https://www.theguardian.com/technology/2024/apr/16/techscape-...
[6]https://varieng.helsinki.fi/CoRD/corpora/ICE-NIG/
[7]https://www.researchgate.net/profile/Kun-Sun-5/publication/32...
[8]https://www.publishersweekly.com/pw/by-topic/digital/copyrigh...
[9]https://msukhareva.substack.com/p/the-mystery-of-emdashes-par...
[10]https://medium.com/ghost-channel/the-em-dash-debate-is-broken...
[11]https://www.linkedin.com/posts/curtwoodward_chatgpt-em-dash-d...
[12]https://news.ycombinator.com/item?id=45788327
[13]https://news.ycombinator.com/item?id=45789077
[14]https://news.ycombinator.com/item?id=45790985
[15]https://news.ycombinator.com/item?id=45795391
[16]https://news.ycombinator.com/item?id=45788891
[17]https://news.ycombinator.com/item?id=45789129
本文經原作者授權,由 Baihai IDP 編譯。如需轉載譯文,請聯繫獲取授權。
原文鏈接:
https://www.seangoedecke.com/em-dashes/