近日,一篇博客講述了 LLM 在處理字符級文本時的能力提升。
作者表示,他一直在測試最新一代大型語言模型處理自然語言的能力,特別是字符計數、句子中的字符操作以及編碼和密碼解析。令人驚訝的是,與前幾代 LLM 不同,最新模型能夠解決這類任務。
LLM 處理單個字符的能力較差。這是因為所有文本都通過 LLM 標記器及其詞匯表編碼為標記。在英語和其他常用語言中,單個標記通常表示字符簇,有時甚至表示完整的單詞。這使得任何比標記更細粒度的考慮都相當困難。
比如,讓 OpenAI 模型對以下提示進行響應:
“
Replace all letters "r" in the sentence "I really love a ripe strawberry" with the letter "l", and then convert all letters "l" to "r"
這是模型給出的答案:
可以看出,隨著模型的迭代,ChatGPT 處理字符文本的能力越來越好。雖然 GPT-5 Nano 是唯一較弱的新模型,但它本身的規模也比較小。
模型測試結果
眾所周知,LLM 的計數能力很差。實驗結果表明,只有 GPT-4.1 能夠計算出句子中的字符數。其他模型有時能夠正確計算出所有單個單詞的字符數,但在將所有數字加起來時卻失敗了。
然而,在推理能力設置為低的情況下,所有尺寸(包括 Nano)的 GPT 5 都能正確完成任務。
當要求模型統計特定字符的數量時,也有類似的情況。對于 GPT 5 來說,在大多數情況下對 r 的數量統計都是正確的,所有大小的模型甚至無需推理也能做到。然而,它的一致性較差。當將 strawberry 改為 strawberrry 時,結果會有所不同。
作者使用了 Base64(一種廣泛使用的編碼算法)和 ROT20 對模型進行測試。
測試句子是:
“
Hi, how are you doing? Do you understand the cipher?
在用 ROT20 編碼后,結果為:
“
Bc, biq uly sio xicha? Xi sio ohxylmnuhx nby wcjbyl?
最后,用 Base64 編碼后,我們得到了解碼結果:
“
QmMsIGJpcSB1bHkgc2lvIHhpY2hhPyBYaSBzaW8gb2h4eWxtbnVoeCBuYnkgd2NqYnlsPw==
大多數模型在 Base64 解碼時都失敗了,很可能是因為文本不是以正常語言的形態出現,使得驗證解碼更加困難。
以下是解碼 Base64 的單獨結果以及僅執行“內部” ROT20 解密編碼)的結果。
結果顯示,Claude Sonnet 4.5 拒絕處理任何與正常文本不符的內容,無論是 Base64 還是 ROT 加密文本。Base64 可能會導致 Claude Sonnet 4.5 無法用于一些較為罕見的語言。Grok 4 也存在同樣的問題,但只拒絕處理 Base64 文本。
Kimi、DeepSeek、Qwen 等模型有非常冗長的內部獨白。解析 ROT20 密碼通常需要消耗大約 3K 個 tokens。而與 Base64 編碼結合時,輸出通常達到 6-7K 個 tokens。
結論
兩個有趣的結果是:
1. 較新/較大的模型更擅長概括 Base64 編碼和解碼;
2. 并且它們也更擅長在字符級別處理文本。
大多數最新一代的模型都能夠解碼 Base64 文本。模型對 Base64 解碼算法的了解不僅僅是記住最常見英語單詞的模式,而是能夠從 Base64 中對其進行解碼。SOTA 模型現在可以從 Base64 解碼分發范圍外的文本,這表明它們對算法有實際的理解,而不僅僅是記住了英語單詞的翻譯模式。
盡管模型對文本的理解是基于 token,但它們在字符級別處理文本的能力也越來越強。無論是在個體層面還是在解碼替換密碼時都能完成字符替換。
作者表示,推理模型和工具的使用進一步提升了 LLM 處理文本的能力,雖然字符級操作對于 LLM 來說遠未解決,但它們在這一領域取得的進展還是令人欣喜。
參考資料:
https://blog.burkert.me/posts/llm_evolution_character_manipulation/