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