Karpathy 教他的 nanochat 數單詞里有幾個“r”
Andrej Karpathy 剛剛分享了一件挺有意思的事:教他的超小型語言模型 nanochat d32 數單詞里有幾個字母 r。
這聽起來簡單,但對一個"大腦只有蜜蜂大小"的模型來說,難度不小。要知道,連 ChatGPT 這樣的大模型都經常在這種任務上翻車。
Karpathy 的解決方案很實用:創(chuàng)建一個叫 SpellingBee 的合成任務(代碼見文末),生成大量用戶詢問字母計數的例子,然后用這些數據對模型進行微調。

關鍵在于細節(jié)。對小模型來說,你得把任務拆得很細:先把單詞標準化加引號,然后逐字母拼出來(避免分詞問題),最后用顯式計數器一個個數過去。還得教模型用兩種方法解決:手工計算和調用 Python 解釋器驗證。
這種做法有點像填鴨式教學。如果模型夠大,這種能力可能會自然涌現。但對于參數量極小的 nanochat,你只能通過在數據中過度表示這類任務,強迫它早點學會。
有人質疑這是不是過擬合。Karpathy 在回復中提到,目前所有解決方案都是"干凈的",沒有錯誤示例。理想情況下,應該加入一些錯誤和恢復的例子,或者用強化學習讓它更魯棒。

不過,有用戶測試發(fā)現,這個功能在多輪對話中不太穩(wěn)定,Karpathy說需要清空對話歷史重新開始才最可靠。這從側面說明小模型的上下文處理能力還是有限的。
Karpathy 用這個例子現場示范了在資源受限的情況下,針對性的數據增強仍然是讓小模型掌握特定能力的有效方法。雖然不夠優(yōu)雅,但確實管用。
本文轉載自??AI工程化??,作者:ully
已于2025-10-30 07:51:28修改
贊
收藏
回復
分享
微博
QQ
微信
舉報
回復
相關推薦

















