![]()
Andrej Karpathy有個Github項目,叫Micrograd。
100行Python代碼,就把神經網絡訓練的核心講清楚了。
別人需要幾百頁教科書、幾十個小時的課程才能講明白的反向傳播,他用100行代碼就讓你看懂。
為什么他能把復雜講簡單?
因為他是物理學出身,且具備查理芒格所說的「多元思維模型」,善于找到問題的本質。
我一直從Andrej Karpathy這獲益良多,他的YouTube頻道的每次更新再長我都會看。我一直很好奇他平時是怎么思考的,以及,作為一個AI領域走在前沿的科學家,為什么會愿意放棄在Tesla和OpenAI的工作,轉身做一個AI教育者。![]()
10月17日的Dwarkesh播客訪談里,Karpathy分享了他的思維方式,他對AI現階段發展的思考,以及他做AI教育的思路。
這些想法AI研究能用,學AI編程能用,學任何東西都能用。
今天聊聊這些方法。
第一性原理:找到"一階項"
物理學有個概念叫"一階項"(first order terms)。
來自泰勒級數展開(Taylor series)。
當你要分析一個復雜系統,可以把函數展開成:常數項 + 一階項 + 二階項 + 三階項...
一階近似就是:只保留前兩項,忽略后面所有高階項。
這樣做,精度夠用(通常能達到10%以內),但計算簡單很多。
簡單說,就是找到系統中最重要的那一項。其他的都是次要的。
Karpathy做研究、寫代碼、教學的時候,一直在用這個思維。
案例1:神經網絡的核心是什么?
Karpathy說,神經網絡訓練的核心是反向傳播。
其他的——優化算法、正則化、數據增強——都是效率問題。
反向傳播才是"一階項"。
所以Micrograd項目,100行代碼,只講反向傳播。
其他的,都省略了。
這就是抓住"一階項"的威力。
案例2:AI的本質是什么?
訪談里,Karpathy說了個挺有意思的觀點。
他說,AI不是"動物",是"幽靈"(ghosts or spirit entities)。
什么意思?
動物是通過進化產生的。進化會在神經網絡的權重里內置大量"硬件"。
但AI是完全數字化的,通過模仿人類在互聯網上發布的數據訓練出來的。
這是兩種根本不同的智能。
所以,不要用進化的思路去理解AI。
這就是抓住"一階項"——AI的訓練方式,而不是AI的表現。
案例3:為什么編碼是LLM的完美切入點?
Karpathy說,代碼本身就是文本。
而且有大量的文本數據可供訓練。
再加上,我們有現成的基礎設施(VS Code、Diff工具)來處理代碼。
這就是"一階項"。
其他應用(客服、寫作、翻譯)都是次要的。![]()
LLM最先在編碼領域爆發,不是偶然。
怎么應用?
學新東西的時候,問自己:
核心是什么?
其他是什么?
如果只能學一個東西,我學什么?
這就是第一性原理的思考方式。
這讓我想到芒格說的多元思維模型——從不同學科借鑒思維方式來解決問題。
Karpathy就是把物理學的"一階項"思維應用到AI研究。馬斯克推崇的第一性原理也是類似的——找到問題的本質,而不是被表面現象迷惑。
不同領域的頂尖思考者,用的其實是同一套底層邏輯。
"先痛苦,再解決"
Karpathy說,他教學的時候有個原則:
先讓學生經歷問題,再給出解決方案。
為什么?
因為這樣學生才會真正理解和欣賞這個解決方案。
舉個例子。
教神經網絡的時候,很多老師會直接講反向傳播。
公式、推導、代碼,一氣呵成。
但學生聽完,可能還是一臉懵。
Karpathy的做法不一樣。
他會先讓學生嘗試手動調參數。
你會發現,手動調參數超級慢,而且完全調不準。
這時候,你會開始思考:有沒有更好的方法?
然后,Karpathy才引入反向傳播。
這時候,學生就會有種"臥槽,原來可以這樣"的頓悟感。
這就是"先痛苦,再解決"的威力。
為什么有效?
因為人類的大腦天生就是"問題導向"的。
你沒有痛苦,就不會珍惜解決方案。
你沒有嘗試過失敗,就不會理解成功的價值。
怎么應用?
學習新東西的時候,別直接看答案。
先自己嘗試解決問題。
碰壁了,再去看教程、看文檔。
這時候,你會發現,理解速度快很多。
這也是為什么"做項目"是最好的學習方式。
你先遇到問題(痛苦),然后去找解決方案。
這個過程,就是學習。
我自己就是這么過來的。
之前我在即刻上說過:邊學、邊做、邊分享,是我的事業飛輪。
當你嘗試分享的時候,費曼學習法的邏輯會逼你把東西梳理得更清楚。
表達是檢驗理解的過程。你能不能流暢地講出來,就能驗證你是不是真的懂了。
這跟Karpathy的"先痛苦再解決"是一個道理。
"構建知識坡道"
Karpathy現在在做Eureka Labs,一個AI教育公司。
他的愿景很簡單:打造"星際艦隊學院"(Starfleet Academy)。
什么意思?
就是讓AI成為完美的導師。
他說,理想的AI導師應該能:
立即理解學生的水平
精確探查學生的知識模型
提供持續、恰當的挑戰(既不太難,也不太簡單)
他把這叫做 "構建知識坡道"(building ramps to knowledge)。
目標是優化 "每秒頓悟次數"(Eurekas per second)。
這個概念我很喜歡。
學習最怕什么?
太難了,聽不懂,放棄。
太簡單了,沒挑戰,無聊。
最好的狀態是:有點難,但努把力能搞定。
這就是"知識坡道"。
Karpathy說,如果有一個完美的AI導師,學習任何東西都會變得"微不足道且令人向往"。
人們會為了樂趣而學習,就像現在去健身房一樣。
怎么應用?
學習的時候,找到合適的"坡道"。
不要一上來就挑戰Hard難度。
從Easy開始,慢慢提升難度。
比如學編程,不要一上來就寫分布式系統。
先寫個To-Do List,再寫個博客,再寫個小工具。
每一步都有點挑戰,但又不會太難。
這就是"知識坡道"。
克服"知識的詛咒"
Karpathy說,專家不擅長解釋東西。
為什么?
因為他們把某些概念視為理所當然。
這叫"知識的詛咒"(curse of knowledge)。
你知道得太多,反而忘了新手的困惑。
舉個例子。
一個資深程序員可能覺得"變量"、"函數"、"循環"這些概念很簡單。
但對新手來說,這些概念可能很抽象。
專家會跳過這些"顯而易見"的解釋,直接講更高級的內容。
結果,新手聽不懂。
Karpathy的解決方法:
通過與他人(或LLM)分享"愚蠢的問題",來理解新手的困惑。
他會主動問一些很基礎的問題。
"為什么要用反向傳播?"
"損失函數到底是什么?"
"梯度下降為什么有效?"
這些問題,對專家來說可能"太簡單了"。
但對新手來說,這才是最需要弄清楚的。
怎么應用?
如果你要教別人(或寫教程、做分享),先問自己:
什么是"理所當然"的?
新手可能在哪里卡住?
我能不能解釋得更簡單?
甚至,可以找個完全不懂的人,試著給他講一遍。
他聽不懂的地方,就是你需要改進的地方。
"認知核心":知識可能拖累模型
訪談里,Karpathy提了個挺反直覺的觀點。
他說,知識可能拖累模型。
什么意思?
預訓練的時候,模型既學到了知識,也學到了智能。
但知識可能會讓模型過度依賴已知數據,無法探索數據分布之外的可能性。
Karpathy提出了一個概念:"認知核心"(cognitive core)。
就是剝離知識,只保留智能算法、問題解決能力和策略。
他預測,這個核心可能只需要約十億參數。
然后,他說了個更有意思的觀點:
人類記憶差,反而是優勢。
為什么?
因為記憶力不好,迫使人類去尋找模式。
人類不會記住所有細節,只會記住可以泛化的規律。
而LLM的問題是:過度記憶,反而忽略了可以泛化的規律。
怎么應用?
學習的時候,少記憶,多理解。
別死記硬背公式、代碼、知識點。
試著理解背后的原理。
問自己:
這個公式為什么成立?
這個代碼為什么這樣寫?
這個概念的核心是什么?
理解了原理,知識就有了泛化能力。
可以應用到其他場景。
這才是真正的學習。
最后
Karpathy在訪談里說了很多技術細節。
但我覺得,最有價值的是他的思維方式。
物理學家的思維,就是抓住"一階項"。
找到最核心的東西,其他的都是次要的。
教育家的思維,就是"構建知識坡道"。
讓學習變得既有挑戰,又不至于太難。
研究者的思維,就是"先痛苦,再解決"。
經歷過問題,才會珍惜答案。
這些思維方式,不只適用于AI研究。
它們適用于任何領域的學習和思考。
Karpathy說,AI時代,知識會過時。
但思維方式不會。
這套物理學思維,是可以用一輩子的框架。
基于:Andrej Karpathy在Dwarkesh播客的2小時訪談(2025年10月17日)
播客鏈接:https://www.dwarkesh.com/p/andrej-karpathy
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.