新智元報道
編輯:KingHZ
【新智元導讀】軟件3.0,不止Vibe Coding!Karpathy重磅演講,揭示軟件深刻重構——已從「寫代碼」走向「說人話就能編程」的新時代。
Karpathy的演講刷屏了!
基于在斯坦福大學、OpenAI和特斯拉的工作經驗,Karpathy觀察到軟件變革正在悄然發生——軟件正在再次進化。
他認為我們已進入「軟件3.0」時代,自然語言成為新的編程接口,而模型則完成剩余工作:
大語言模型LLM=可編程神經網絡
軟件一直在變,但在過去的70年里在根本層面上并沒有太大變化,而在過去幾年中卻快速變化了兩次。
因此,他認為:「未來還有大量軟件需要重寫、重構?!?/p>
在YC放出的軟件3.0的完整視頻,Karpathy深入探討了這種轉變對開發者、用戶及軟件設計本身的意義:
我們不僅在使用新工具,更是在構建一種新型計算機。
軟件3.0:盡情說出你的需求
從2023年以來,Karpathy就把下列推文置頂:
最火的新編程語言是英語。
他還發明了「Vibe Coding」(氛圍編程)這一詞匯,來描述直接用自然語言編程的情景。
Karpathy認為這是軟件工程領域的未來。這從開源代碼就能看出來。
「GitHub地圖」展示了所有已經被編寫的軟件,也就是計算機在數字空間中執行任務的指令。放大來看,包含了不同類型的代碼倉庫,也就是編寫的所有代碼。
幾年前,他注意到軟件正在發生變化,出現了新型的軟件,當時稱之為「軟件2.0」。
基本的想法是:
軟件1.0是程序員親自為計算機編寫的代碼。
軟件2.0則是神經網絡的權重參數。不再直接編寫這些代碼,而是更多地在調整數據集,并運行優化器來生成神經網絡的參數。
當時神經網絡只是被當作另一種分類器,比如決策樹之類,所以這個框架在當時還是很有意義的。
現在有了「軟件2.0」版GitHub平臺,比如HuggingFace就是軟件2.0世界中的GitHub。而Model Atlas也可以可視化這些模型全部參數的「代碼」。
所以,總結一下:
軟件1.0:編程計算機的傳統代碼。
軟件2.0:用來編程神經網絡的權重。
軟件3.0:現在我們有了可編程的神經網絡——大語言模型(LLM),而提示詞(prompt)成了「編程語言」,而且這些提示詞直接用人類語言寫的!
比如你要做情感分類,可以:
寫Python代碼(軟件1.0);
訓練神經網絡(軟件2.0);
直接提示大語言模型(軟件3.0)。
現在GitHub上的代碼已經不僅僅是代碼了,而是摻雜著大量英文,自然語言變成了新的「代碼」。
這是根本性的轉變:過去程序要把人類需求翻譯為「機器語言」,現在直接把需求輸入到LLM即可。
如果用語音模式,這就是「軟件3.0」的「言出法隨」:真正做到了用嘴編程!
人人都是程序員?
不僅擁有新的編程方式(用自然語言),而且每個人都能成為程序員。
因為大家都會用語言表達想法,忽然之間都有了編程能力。
這前所未有,也令人振奮。
過去,想要在軟件行業做點什么,通常需要花5到10年的時間學習編程語言、工具鏈、工程實踐等等。但現在,不再是這樣了。
現在,小孩子都做到Vibe Coding。
Karpathy認為,這會成為下一代「走進軟件開發」的入門方式,就像「網球王子」讓人愛上網球一樣。
Vibe Coding真的很有趣。特別是當想快速做一個非常定制化的小項目,市面上又沒有現成產品時,Vibe Coding非常合適。
Karpathy做了一個iOS應用Menu Gen雖然他并不懂需要的編程語言。
不是「電力」,而是新操作系統
吳恩達曾經說過:「AI是新的電力。」
Karpathy覺得LLM現在確實表現出了「基礎設施」的一些特性,但更貼切的類比也許是:LLM更像是新的操作系統。
不僅僅是像水電一樣的商品,AI是日益復雜的軟件生態系統。
這和過去的操作系統生態有些相似:有閉源的操作系統,比如Windows或macOS,同時也有Linux之類的開源系統。
在LLM領域,也看到了這種格局:幾個主流的閉源模型(如GPT、Claude等),再加上開源的LLaMA等。
不僅僅是LLM本身的能力在提升,還包括它們使用工具的方式、多模態能力的擴展等等。這一切構成了一個真正復雜的軟件生態系統。
在他看來,AI就像新型計算機,LLM像新的「CPU」:
上下文窗口相當于內存;
而整個LLM則負責在這些資源之間協調內存與計算,以解決問題。
從這個角度看,它確實非常像一個操作系統。
今天可以在GPT、Claude、Gemini上運行同一個「LLM應用」,就像過去的軟件一樣。
另一個讓他產生共鳴的類比是:現在的AI處于「1960年代的計算機時代」。
目前LLM的計算成本仍然非常高,必須集中在云端運行,用戶就像是當年的「啞終端」,通過網絡與交互,占用云端運行批處理任務中的一個維度。
這正對應早期計算時代的操作系統模型:一切都在云端處理,通過網絡傳輸,進行批量運行。
「個人化AI計算機」尚未真正到來,也尚不清楚未來會是什么樣子——或許在座的你們就將定義它。
另一個他喜歡的類比是:「當與ChatGPT利用文本交談時,我就像是在用終端和操作系統對話。」這是文字輸入,是最直接的操作系統訪問方式。
但目前還沒有真正意義上的「通用GUI」(圖形界面)來與這些模型交互,沒有一個統一的GUI適用于所有任務。
這就是一個巨大的空白。
當然,LLM在一些方面也和傳統操作系統或早期計算設備截然不同。LLM與傳統技術擴散路徑之間,存在關鍵差異:它們顛覆了技術擴散的方向。
回顧歷史,我們會發現很多變革性的技術,比如電力、密碼學、計算、飛行、互聯網、GPS等,最初都是由政府或大型企業首先使用的——因為這些技術昂貴且復雜,普通人無法早期接觸。
而LLM剛好相反,完全顛覆了以往「從上至下」的技術擴散模型。
這也讓大家反思未來該如何定義這些工具的用途、產品設計和早期應用場景。
「偽人」:人類隨機模擬器
LLM到底是什么?
Karpathy喜歡從「心理學」的角度來看待LLM。
他認為LLM就像「人類精神」的模擬體——它們是人類的「隨機模擬器」。
底層是「自回歸Transformer」(auto-regressive transformer),也就是神經網絡,逐個token預測,每個token的處理耗費計算量基本一致。
我們使用全網的文本數據訓練這個模型權重,因此這個模擬器具備了某種「人類心理」的涌現能力。
比如:
優點:LLM擁有百科全書般的知識與記憶能力,遠遠超過任何單一人類個體。它們可以輕松記住Git SHA哈希值、各種信息、文件結構等內容。就像電影《雨人》里的「自閉癥天才」,能一字不差地背下電話簿。
缺點:LLM同時也存在很多「認知缺陷」,比如容易幻覺(hallucination),胡編亂造,缺乏對自身知識狀態的良好感知。
智能參差不齊:它們在某些任務上表現超人,但有時卻會犯一些基本錯誤,比如說「9.11大于9.9」。這種「鋸齒形智能」現象很獨特。
前向性遺忘:LLM不具備持久學習的能力。
還有一個重要方面是:安全問題。
LLM非常容易受騙,容易受到「提示注入攻擊」(prompt injection),可能會泄露數據。
總而言之,我們面對的是超人般強大、同時也存在顯著認知缺陷的AI系統。
這場變革不僅重塑工具形態,更改變了軟件設計的哲學。
AI新時代,編程的價值
我們必須一邊利用它的超能力,一邊繞過它的弱點,學會如何與它協作、如何編程。
如果你正在開發一個產品或服務,要思考:
LLM能否像人類看到一切內容?
LLM能否像人類一樣操作一切?
人類能否保持在控制、監督LLM行為?
因為這些AI系統并非完美,它們會犯錯。
在LLM應用中還有一點往往被忽視,那就是:
我們正在與AI合作——AI負責生成,人類負責驗證。
我們需要盡可能地加快這個生成—驗證的循環,這樣才能真正提高效率。
有兩個主要策略可以實現這個目標:
加快驗證速度。GUI非常關鍵。視覺界面能調動人類大腦「圖像識別GPU」,而閱讀文本費力又不直觀。圖形界面是直通大腦的高速通道。
牢牢地把AI控制在手上。很多人現在對「AI智能體」(agent)過于興奮。但實際上,如果AI給軟件repo提交了10,000行代碼,那人類審查員就是最大瓶頸:還得逐行確保沒有引入bug,沒有安全問題等等。
在實際工作中,Karpathy總是害怕AI一次性給出太大改動。他追求的是高速、可控的協作循環。
最近,他讀到了「與LLM合作的最佳實踐」,認為很不錯:
它強調「明確的提示語」(prompt)很關鍵;
如果提示太模糊,AI可能偏離預期,導致驗證失??;
一旦驗證失敗,就要不斷試錯、反復循環;
所以花點時間寫更明確、清晰的prompt,其實是提高效率的關鍵。
「AI戰衣」:10年致富路
Karpathy非常喜歡鋼鐵俠的設定,它在許多方面都對技術的發展方向做了準確的預言。
他喜歡鋼鐵俠戰衣的一點在于:
它既是一種增強(augmentation),主人可以親自操控;
它也可以作為智能體(agent),在某些時候中它可以自己飛來找主人,自動完成任務。
這就體現了「自治滑塊」(Autonomy Slider):我們可以構建「增強型工具」(像戰衣),也可以構建「自主代理」(像戰衣自己飛行)。
我們想做的是「兩者兼備」。比如,在LLM應用Cursor中,可以選擇:
只用代碼補全(全權掌控);
選擇某段代碼,按Command+K改動一小部分;
修改整個文件(Command+L);
或者放手讓AI自由操作整個項目(Command+I)——這就是「全自治」模式。
再舉一個成功的例子:Perplexity,具備Cursor類似的特性:匯總大量信息、在后臺協調多個LLM、提供可供用戶「審核」的GUI等。
它也有自治滑塊:可以進行快速搜索、普通研究,或者更深入的研究,十分鐘后返回結果。這些選項代表賦予工具的不同程度的自治權。
但目前,面對尚不完美的LLM,Karpathy更傾向于「鋼鐵俠戰衣」式的AI系統:
少一些「獨立運行的機器人」,多一些「增強型工具」;
少一些花哨但不可控的自動化演示,多一些實用、可審核的「部分自治」產品。
這些產品應該擁有專屬的GUI和交互設計(UI/UX),確保人類可以快速生成與驗證結果。
產品設計中應包含「自治滑塊」,并思考如何逐步右移它,讓產品變得越來越自主。
這將是未來十年巨大的機會所在。
互聯網上的鬼魂
大致來說,他認為我們正在迎來一個新的數字信息消費者與操作者的時代。
過去,數字系統的用戶只有兩類:
終端用戶通過GUI(圖形界面)與系統互動;
程序通過API直接調用系統。
而現在,迎來了第三種實體:AI智能體(Agents)。
它們是計算機,但行為類似人類。它們就像「互聯網的靈魂」,需要與軟件基礎設施交互。
那我們能不能為它們構建專屬支持?
目前大量的文檔都是為「人類」寫的,里面包含各種列表、加粗、圖片……這對LLM來說很難直接理解。
但Karpathy看到一些公司,比如Vercel和Stripe,已經開始提供專為LLM優化的markdown文檔。
只要文檔對AI友好,LLM就能真正變成「超級助教」甚至「自動操作員」。
當然,僅僅把文檔變成markdown還不夠。我們還得改變文檔本身的寫法。
比如Vercel就正在做這件事:把文檔中所有「點擊」操作,替換成相應的curl
命令,這樣LLM就可以自動化處理。還有像Anthropic的Model Context Protocol,提供了與代理溝通的一種標準化協議。這是一個值得關注的方向。
總之,我們需要讓軟件更易于被AI理解和操控。
雖然未來LLM也許能點擊、能導航,但現在這些操作還成本高、效率低。我們應該主動迎合它們,以最低成本獲得最大效益。
最后總結一下:
現在是進入軟件行業的絕佳時機;
我們需要重寫大量代碼,也需要寫適配AI的新代碼;
LLM是新「操作系統」,就像1960年代的計算機;
大模型是「有缺陷的超級智能」,我們要學會與之合作;
在構建AI應用時,我們需要工具、范式和流程來高效協作;
我們也應該構建適合智能體直接使用的軟件接口和文檔結構。
軟件3.0是趨勢,更是機會。準備好與AI并肩作戰了嗎?
參考資料:
https://www.youtube.com/watch?v=LCEmiRjPEtQ
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.