17000 字 Claude 系統(tǒng)提示啟示:Karpathy 揭秘 LLM 學(xué)習(xí)缺失“第三范式”
來自Andrej Karpathy的最新洞察,以及一份意外曝光的Claude系統(tǒng)提示詞引發(fā)的思考。
Andrej Karpathy提出一個(gè)觀點(diǎn):我們當(dāng)前的LLM學(xué)習(xí)范式中,至少缺失了一個(gè)重要環(huán)節(jié)。他將其暫稱為“系統(tǒng)提示詞學(xué)習(xí)”(System Prompt Learning)
他認(rèn)為:
預(yù)訓(xùn)練(Pretraining) 是為了讓LLM掌握海量知識
微調(diào)(SL/RL) 則是為了塑造其習(xí)慣性行為
這兩者都涉及模型參數(shù)的改變。但Karpathy指出,很多人類學(xué)習(xí)更像是“系統(tǒng)提示詞”的調(diào)整:遇到問題、想出辦法,然后用明確的語言“記住”下次如何應(yīng)對。比如,“當(dāng)遇到這類問題時(shí),我應(yīng)該嘗試那種方法?!?這更像給自己寫備忘錄,是全局性的問題解決策略,而非針對特定用戶的零散記憶。Karpathy打了個(gè)比方:LLM目前就像《記憶碎片》里的主角,我們還沒給它配備“便簽本”或“草稿紙”。
這種新范式如果能實(shí)現(xiàn),將非常強(qiáng)大且數(shù)據(jù)高效。因?yàn)橐粋€(gè)由知識引導(dǎo)的“復(fù)盤”階段,其反饋維度遠(yuǎn)高于簡單的獎勵(lì)標(biāo)量。
Claude的“天書”級系統(tǒng)提示詞
Karpathy的這番思考,部分源于對Claude系統(tǒng)提示詞的觀察。最近,Claude的系統(tǒng)提示詞被一位用戶“套”了出來,內(nèi)容之詳盡令人咋舌:
長度驚人:約17000詞,110kb大小。相比之下,OpenAI o4-mini的系統(tǒng)提示詞僅約2200詞(15.1kb),只有Claude的13%左右
Claude的系統(tǒng)提示詞地址:
https://github.com/asgeirtj/system_prompts_leaks/blob/main/claude.txt
這份龐大的提示詞里都有些什么呢?
1.工具定義 (Tool Definitions):這是最大頭,信息主要來自MCP服務(wù)器。MCP服務(wù)器不僅提供API,還詳細(xì)說明了LLM何時(shí)及如何使用這些工具。提示詞中列出了14種不同工具。例如,一個(gè)簡單的網(wǎng)頁搜索工具定義可能只有幾行,但像Google Drive搜索工具的描述就超過1700詞。
2.工具使用指南:除了MCP提供的工具定義,還有大量關(guān)于如何及何時(shí)使用這些工具的指令,散布在“引用說明”、“工件說明”、“搜索說明”和“Google集成注意事項(xiàng)”等部分。比如,反復(fù)提醒Claude不要對其已知信息使用搜索工具(可見這是個(gè)頑固問題)。
值得注意的是,Karpathy認(rèn)為這種內(nèi)外分離是合理的“關(guān)注點(diǎn)分離”:MCP包含通用工具信息,適用于任何程序;而非MCP部分則針對聊天機(jī)器人應(yīng)用的特定需求。這是標(biāo)準(zhǔn)程序設(shè)計(jì)思路在提示詞工程上的應(yīng)用。
總計(jì),近80%的提示詞內(nèi)容都與工具的使用和定義相關(guān)。
3.“熱修復(fù)”與行為規(guī)范 (Claude Behavior & Hotfixes):這部分更像是我們傳統(tǒng)理解中的系統(tǒng)提示,規(guī)定了Claude的行為方式、回應(yīng)風(fēng)格和禁忌。其中不乏針對LLM常見“陷阱”的“補(bǔ)丁”:
? 計(jì)數(shù)問題:“如果Claude被要求計(jì)算單詞、字母和字符數(shù),它會先分步思考,明確地給每個(gè)計(jì)數(shù)對象編號,完成計(jì)數(shù)后再回答?!薄@顯然是為了解決類似“strawberry里有幾個(gè)r”這類LLM常見難題
? 經(jīng)典謎題:“如果Claude遇到經(jīng)典謎題,它會先逐字引用所有約束條件,確認(rèn)不是變體。”——防止LLM被稍作修改的經(jīng)典邏輯題繞進(jìn)去
? 知識更新:“特朗普是現(xiàn)任美國總統(tǒng),于2025年1月20日就職?!薄b于Claude知識截止日期是2024年10月,這條信息顯然是硬編碼的
? 詩歌創(chuàng)作:Karpathy最喜歡的一條:“如果被要求寫詩,Claude會避免使用陳詞濫調(diào)的意象、隱喻或可預(yù)測的押韻?!?/span>
從人工“補(bǔ)丁”到系統(tǒng)自主學(xué)習(xí)
Claude這份巨細(xì)的系統(tǒng)提示詞,恰恰印證了Karpathy的觀點(diǎn):目前大量的問題解決策略,是工程師們手動寫入系統(tǒng)提示的。 而Karpathy認(rèn)為,這些本不應(yīng)完全依賴人工,也不應(yīng)立即或完全通過強(qiáng)化學(xué)習(xí)(RL)融入模型權(quán)重
理想情況下,這些策略應(yīng)通過“系統(tǒng)提示詞學(xué)習(xí)”產(chǎn)生。這種學(xué)習(xí)過程類似于RL的設(shè)置,但學(xué)習(xí)算法不同(編輯提示詞 vs. 梯度下降)。LLM的系統(tǒng)提示詞中,有相當(dāng)一部分可以通過這種方式“自我撰寫”,就像LLM為自己寫一本解決問題的指南。
當(dāng)然,這其中還有很多細(xì)節(jié)待明確:編輯如何工作?編輯系統(tǒng)本身能否學(xué)習(xí)?如何像人類一樣,將顯性文本知識逐漸內(nèi)化為習(xí)慣性權(quán)重?
寫在最后
Claude的系統(tǒng)提示詞,無疑是提示工程復(fù)雜性的一個(gè)縮影。Anthropic通過大量使用XML風(fēng)格標(biāo)簽來增強(qiáng)可讀性(這對人還是LLM更友好值得商榷),以及其MCP服務(wù)器的發(fā)明和采用,都是其管理這種復(fù)雜性的努力。但這也引出新問題:如何進(jìn)行版本控制?這些“熱修復(fù)”是逐個(gè)添加還是批量評估后上線?什么時(shí)候才需要“推倒重來”?
這份提示詞也再次提醒我們:聊天機(jī)器人遠(yuǎn)不止模型本身,其背后是不斷積累、迭代優(yōu)化的指令、工具集和精心設(shè)計(jì)