- 軟體 1.0 → 2.0 → 3.0 的典範轉移:軟體從傳統程式碼(1.0)到神經網路權重(2.0),再到用自然語言「提示」LLM(3.0),是一次根本性的編程革命。三種範式長期共存,開發者需靈活運用。
- LLM 最貼切的類比是 1960 年代的作業系統:LLM 同時具備公用事業(按需計費)和晶圓廠(龐大資本支出)的特性,但最本質的是:它是一台共享的新型電腦,目前仍處於「時間共享」的早期。
- 部分自主產品 > 全自主 Agent:Karpathy 警告對 2025 年「代理年」的盲目樂觀——自動駕駛花了 12 年仍未完全解決,AI Agent 同理。應建立「鋼鐵人裝甲」式產品:有自主程度滑桿、讓人類能快速驗證 AI 的輸出。
- vibe coding 讓每個人都能編程:用英語「提示」LLM 就能寫軟體,是技術史上前所未有的民主化。Karpathy 幾小時內用 vibe coding 打造出 Menu Gen 應用,但從原型到上線仍需大量非程式碼的 DevOps 工作。
- 為 Agent 重新設計數位基礎設施:文件應從 HTML 轉為 Markdown 格式(
llms.txt取代robots.txt),讓 AI Agent 能讀懂並執行——Vercel 和 Stripe 已是先行者。
Andrej Karpathy [00:03]
請歡迎前 AI 特斯拉總監安德烈·卡帕西 (Andre Carpathy)。[音樂] 你好。哇,這裡有很多人。你好。嗯,好吧。所以我今天很高興能在這裡與大家談論 AI 時代的軟體。我聽說你們中的許多人都是學生,例如學士、碩士、博士等等,而你們即將進入行業。我認為現在進入行業其實是一個極其獨特且非常有趣的時期。我認為根本原因是,軟體再次發生了變化。我之所以說再次,是因為我其實已經做過這個講座了。但是問題是,軟體一直在變化。所以我其實有很多材料可以創造新講座,我認為這種變化是相當根本的。大致而言,過去 70 年來,軟體在如此根本的層面上並沒有改變太多。然後在過去幾年中,它大約改變了兩次,而且變化相當迅速。因此,這裡確實有大量的工作要做,有大量的軟體需要編寫和重寫。讓我們來看看軟體的領域。如果我們把這個看作是軟體的地圖,這是一個非常酷的工具,叫做 GitHub 地圖。這有點像所有已經編寫的軟體。這些都是指示計算機在數位空間中執行任務的指令。所以如果你在這裡放大一下,這裡有各種不同的資料庫,這是所有已經編寫的程式碼。幾年前,我觀察到軟體正在改變,出現了一種新類型的軟體,我當時稱之為軟體 2.0,這裡的想法是軟體 1.0 是你為計算機編寫的代碼。軟體 2.0 基本上是神經網絡,特別是神經網絡的權重,你並不直接編寫這段碼,而是更多地對數據集進行調整,然後運行優化器來創建這個神經網絡的參數。我認為在當時,神經網絡被視為只是一種類似於決策樹的不同分類器,因此我認為這種框架是更為合適的。現在我們擁有的實際上是一個類似 GitHub 在軟體 2.0 廠域的等價物。我認為 Hugging Face 基本上算是軟體 2.0 的 GitHub。還有模型圖譜,你可以視覺化那裡已經編寫的所有代碼。如果你感興趣的話,順便提一下,
Andrej Karpathy [02:25]
有興趣的話,這個巨大的圓圈,中央的點,這是 flux 的參數,即圖像生成器。因此,每當有人對一個 flux 模型進行調整時,你基本上會在這個空間中創建一個 git 提交,並且你會創建一種不同類型的圖像生成器。所以基本上,我們有的是軟體 1.0 是用來編程計算機的代碼。軟體 2.0 是用來編程神經網絡的權重。這裡是 Alexet 圖像識別神經網絡的一個例子。到目前為止,所有我們熟悉的神經網絡在最近都是類似於固定功能的計算機,將圖像映射到類別或類似的東西。我認為發生的變化,以及我認為相當根本的變化是,神經網絡變得可編程,可與大型語言模型合作。因此,我將此視為相當新穎、獨特。這是一種全新的計算機,所以在我看來,值得給予它一個全新的名稱:軟體 3.0。基本上,你的提示現在都成為了編程 LLM 的程序。而且顯著的是,這些提示是用英語編寫的。所以這是一種非常有趣的編程語言。嗯,總之,如果你在做情感分類,比如說,你可以想像編寫一些 Python 語言來進行情感分類,或者你可以訓練一個神經網絡,或者你可以提示一個大型語言模型。這裡有幾個簡短的提示,你可以想像修改這些提示,以稍微不同的方式編程計算機。因此,基本上我們有軟體 1.0、軟體 2.0,而我認為我們又看到許多 GitHub 上的代碼已經不再僅僅是代碼了。這裡有一大堆像英文這樣與代碼交錯的東西,因此我認為這裡出現了一個越趨增長的新代碼類別。因此,它不僅是新的編程範式,對我來說,這令人驚奇的是,它是用我們的母語英語編寫的。因此,當幾年前這件事震撼了我的時候,我在 Twitter 上發了這條微博,我想這吸引了很多人關注,而這是我目前固定的推文,這令人矚目的是我們現在正用英語編程計算機。當我在特斯拉時,我們正在從事自動駕駛工作,我們試圖讓汽車駕駛。而我當時展示了這張幻燈片,你可以想像汽車的輸入在底部,並經過一個軟體堆棧來產生轉向和加速,我當時做了觀察。
Andrej Karpathy [04:48]
我當時做了觀察,有大量的 C++ 代碼存在於自動駕駛中,這是軟體 1.0 的代碼,還有一些神經網絡在做圖像識別。我觀察到隨著時間的推移,隨著我們不斷改進自動駕駛,神經網絡的能力和規模都在增長,除此之外,所有的 C++ 代碼都被刪除,許多最初在 1.0 中編寫的功能和能力被遷移到 2.0。舉一個例子,不同攝像頭之間以及隨著時間推移的信息拼接是由神經網絡完成的,我們能夠刪除大量代碼,因此,軟體 2.0 的堆棧字面上吞噬了自動駕駛的軟體堆棧。因此,我當時認為這非常引人注目,現在我們又看到同樣的情況,基本上我們擁有了一種新的軟體,它正在吞噬堆棧。我們有三種完全不同的編程範式,我認為如果你進入這個行業,精通所有這些范式是個很好的主意,因為它們都有一些優缺點,你可能想在 1.0、2.0 或 3.0 中編寫某些功能。你會訓練神經網絡嗎?你會只是提示一個 LLM嗎?這會是一段明確的代碼嗎等等。我們都必須做出這些決策,其實可能要在這些範式之間流暢過渡。因此,我現在想討論的是,首先我想在第一部分談談 LLM,如何理解這種新的範式和生態系統,以及它的樣子。像這樣,這種新計算機是什麼樣子,生態系統又是什麼樣子?我被安德魯的這句話深深打動,事實上,這是許多年前,他的言論是人工智能是新的電力。而我認為這捕捉了一些非常有趣的東西,LLM 目前確實感覺有著公用事業的屬性。
Andrej Karpathy [07:03]
LLM 實驗室,比如 OpenAI、Gemini、Enthropic 等等,他們花費資本來訓練 LLM,這有點等同於建設一個網格然後就能透過 API 為我們提供服務,這是通過計量訪問來完成的,我們按百萬個標記等支付費用,我們有很多需求,這些需求非常像公用事業的需求。我們要求低延遲、高正常運行時間、一致的質量等等。在電力方面,你會有一個轉移開關。這樣你可以根據需要從網格轉換到太陽能或電池或發電機。在 LLM 中,我們可能會有開放路由器,能夠輕鬆切換當前存在的不同類型的 LLM。因為 LLM 是軟體,它們不會競爭物理空間。因此,擁有六個電力供應商並可以在它們之間切換是可以的,因為它們不會以這種直接的方式進行競爭。我認為還有一個有趣的地方,我們最近幾天實際上看到了許多 LLM 停機,大家都陷入困境,無法工作。我認為對我來說相當有趣的是,當最先進的 LLM 停機時,這實際上就像是一種智力的停電。就像當網格中的電壓不穩定一樣,整個星球越依賴這些模型就變得越愚蠢,而這已經相當戲劇化,我認為會持續增長。但 LLM 不僅僅具有公用事業的特性,我認為也可以說它們還有一些晶圓廠的特性。原因在於,構建 LLM 所需的資本支出實際上相當龐大。這不僅僅是例如建造某個發電站的事情,對吧?你在投入巨額資金,我認為這項技術的技術樹也在迅速增長。我們正處於一個擁有深厚技術樹的世界中,研究和開發的秘密正在中央化於 LLM 實驗室。但我認為這個類比也稍微混淆了,因為正如我提到的,這是軟體,而軟體的防禦性稍微弱一些,因為它是如此可塑的。因此,我認為這是個有趣的事,值得思考可能的情況。就像有許多類比可以做,比如一個 4 奈米的製程節點也許像是一個最大運算速度的集群。你可以想像當你使用 Nvidia GPU 時,你只是在進行軟體,而不是在做硬體。這有點像無晶圓廠的模型。但是如果你實際上也建立了自己的硬體,並且你在 TPUs 上訓練,像谷歌那樣,這有點像是英特爾的模型,你擁有自己的晶圓廠。因此,我認為這裡有一些合理的類比。但是,實際上我認為最合適的類比是,在我看來 LLM 有著非常強烈的操作系統的類比。這不僅僅是電力或水,這不是什麼像商品一樣從水龍頭出來的東西。這都是愈來愈復雜的軟體生態系統,因此它們不再僅僅是簡單的像電力這樣的商品,對我來說有趣的是,這個生態系統正在以非常相似的方式形成,其中你有一些封閉源供應商,比如 Windows 或 Mac OS,然後你有一個開源的替代品,比如 Linux。我認為對於 LLM,我們也有一些競爭的封閉源供應商,而也許目前的 Llama 生態系統則可能是接近於某個將來可能會像 Linux 一樣增長的東西。再次強調,我認為仍然為時尚早,因為這些僅僅是簡單的 LLM,但我們開始看到這些將變得複雜得多。這不僅僅是關於 LLM 本身,還關於所有的工具使用和多模態性,以及這些如何運作。因此,當我一段時間前有這個意識時,我試著把它概述出來,讓我覺得 LLM 稍微像是一個新操作系統。所以 LLM 是一種新的計算機。它就座在 CPU 的等價位置,情境窗口就像記憶,而 LLM 正在協調記憶和計算,用於解決問題,利用所有這些能力,因此肯定地,如果你從那個角度看,它非常像操作系統。
Andrej Karpathy [09:12]
嗯,再給幾個類比。例如,假如你想下載一個應用程式,說我進入 VS Code 並下載,你可以在 Windows、Linux 或 Mac 上運行它,和你可以將 LLM 應用程式像 cursor 一樣進行相同的操作,你可以選擇在 GPT、雲端或 Gemini 系列上運行,對吧?這只是下拉選單而已。所以在這方面也算相似。嗯,更多的類比讓我印象深刻的是,我們就像處於這個 1960 年代的時代,因為 LLM 的計算對於這種新類型的計算機仍然非常昂貴,這使得 LLM 必須集中在雲端,而我們都只是客戶,通過網路與之互動,沒有人完全利用這些計算機,因此使用時間分配是合理的,因為我們都只是哦,當它們在雲端運行計算機時的批次維度。這在那個時候非常類似電腦的樣子。操作系統是在雲端。所有東西都是以串流的形態運行,並且有批處理。所以個人計算革命還沒有發生,因為這不符合經濟利益。不合邏輯。但我認為有人在嘗試。結果證明像 Mac mini 這種設備是相當適合一些 LLM 的,因為如果你在進行批量推理,這一切都是超級內存綁定的。因此這其實可行。我認為這是一些或許是個人計算的早期跡象,但這還沒真正發生,也不清楚這是什麼樣子。或許你們中的一些人可以發明這是什麼或如何運作或這應該是什麼。而我還想提到的一個類比是每當我與 Chach 或某個 LLM 在文本中直接交流時,我感覺就像透過終端機與操作系統進行對話。就只是這樣,它是文本,直接訪問操作系統。我認為 GUI 尚未真正以通用的方式發明出來,比如應該有一個不同於文本框的 GUI。例如,確實有一些應用程式會有所涉及,但沒有一個 GUI 是適用於所有任務的,如果那有意義的話。嗯,LLM 與某些早期計算機和操作系統在一些相當獨特的方式上是不同的。我寫過一篇關於這個特性的文章,這讓我覺得這次變化非常不同。這就是 LLM flip 翻轉了技術擴散的方向,這通常在技術中是存在的。因此,例如從電力、密碼學、計算、飛行、互聯網、GPS等所有新技術,這些轉變技術並不多見。一般來說,首先使用它們的是政府和企業,因為這是新產品,且昂貴等特性,因此它總是在之後才會普及到消費者。不過,我感覺 LLM 翻轉了這一點。所以也許早期計算機與彈道學和軍事用途相關,但 LLM 則完全是在討論如何煮雞蛋或那些東西。這無疑是我使用 LLM 的許多例子之一。因此,對我來說,這是非常吸引人的。我們有一台新的神奇計算機,正在幫我煮雞蛋,而不是幫政府做一些非常瘋狂的事情,像是軍事彈道學或某些特殊技術。事實上,企業和政府在這些技術的採用上確實落後於我們所有人。因此,這是顛倒的。我認為這對於我們如何想用這的位置是有啟示意義的,或是最初的應用程式等等。因此,總體上,LLM 實驗室 LLM。我認為這是準確的語言,但 LLM 是複雜的操作系統。它們成立於 1960 年代的計算領域,我們正在重新進行計算。並且它們目前可透過時間共享及如公用事業般的方式分配。新的且前所未有的是,它們不再在少數幾個政府和企業手中。它們在我們所有人手中,因為我們都有計算機,而這一切就只是軟體,而 Chaship 就像數十億人一夜之間被傳送到我們的計算機,自然是瘋狂。這對我而言,這種情況讓我感到驚訝,現在是我們進入這一行業、編程這些計算機的時刻。這簡直瘋狂。所以我認為這是非常引人注目的。在我們編程 LLM 之前,我們必須花一些時間思考這些東西是什麼。我尤其想談談他們的心理學。
Andrej Karpathy [11:33]
我喜歡將 LLM 想像成類似於人類的靈魂。它們是對人們的隨機模擬。此模擬器在這種情況下碰巧是一個自回歸轉換器。因此,轉換器是一種神經網絡,它只是依照標記層面出現。它一段接一段地運行,每一個片段的計算幾乎是等量的。這個模擬器當然只是其中有一些涉及的權重,而我們將其調整至互聯網上所有文本之類的資料,最終得到了這種模擬器,因為它經歷了對人類進行訓練,並且有了這種自然產生的像人類一樣的心理學。因此,你首先會注意到的是,當然 LLM 具有百科全書式的知識和記憶。它們能夠記住很多東西,比任何單一個體人類能記住的還要多,因為它們閱讀了那麼多東西。這其實讓我想起了電影《大亨小傳》(Rain Man),我真的很推薦大家去看。這是一部驚人的電影,我愛這部電影。嗯,達斯汀·霍夫曼在影片中是一位自閉症天才,他擁有幾乎完美的記憶。因此,他可以閱讀一個電話簿,並記住所有的名字和電話號碼。我覺得 LLM 就是如此相似。它們可以非常容易地記住多種不同類型的哈希值和各種不同的哈希。因此在某些方面它們確實擁有某種超能力。但我也會說,它們也有一些認知缺陷。因此,它們相當經常出現幻覺。嗯,它們會捏造資訊,並且對於自我知識的內部模型並不完全充分。這已經得到改善,但尚未完美。它們展現出不規則的智慧。在某些問題解決領域,它們會表現出超人類的能力,然後它們會犯下世上任何人都不會犯的錯誤。就像你知道,它們會堅持認為 9.11 大於 9.9,或者在草莓中有兩個 R,這些都是一些著名例子,但基本上有些不圓滿的地方讓你會被絆倒,因此我覺得這也是非常獨特的。嗯,它們還會遭受逆行性失憶症,因此我想我提到的就是,當如果你有同事加入了你的組織,這位同事會隨著時間學習你的組織,他們會理解並獲得對該組織龐大的背景情報。他們下班後會回家睡覺,然後鞏固知識並隨著時間發展專業技能。LLM 不會自然地做到這些,而這也是目前 LLM 的研發中尚未真正解決的問題。我認為,因此上下文窗口真正有點像是工作記憶。你必須直接編程工作記憶,因為它們不會僅僅通過默認的方式變得更聰明。我認為許多人在這方面會被類比困住。在流行文化中,我建議大家去看這兩部電影《記憶碎片》(Momento)和《51個第一次的約會》(51st Dates)。在這兩部電影中,主角的權重是固定的,並且他們的上下文窗口每天早上都被清除。當這發生時,在工作或進行人際關係會非常困難,這實際上時刻發生。我想再指向的一件事是與 LLM 使用限制相關的安全性。因此,例如,LLM 是相當容易受騙的。嗯,它們會受到提示注入的風險影響,它們可能會洩漏你的數據等等。還有許多其他考慮事項,與安全性有關。因此,基本上長話短說,你必須同時思考這超人類的事物,這有著許多認知缺陷和問題。它們非常有用,所以我們該如何編程它們,以及怎樣合織它們的缺陷以及如何享受它們的超人類能力。因此,我想現在轉變主題,談談我們如何使用這些模型的機會以及一些最重大的機遇。這不是一個全面的列表,只是我認為在這次演講中有趣的一些事情。首先,我對於部分自主應用感到有些興奮。
Andrej Karpathy [13:47]
例如,讓我們以編碼為例來工作。你當然可以直接進入 Chach,開始複製粘貼代碼、錯誤報告等等,並不斷複製粘貼所有內容。你為什麼要直接轉向操作系統?專門針對這個問題的應用程序顯然是更有意義的。因此你們中的許多人都會使用 Cursor。我也是如此。Cursor 和你想要的東西相似。你不想要直接進入 Chash,對吧?我認為 Cursor 是一個很好的例子,代表一個早期的 LLM 應用,擁有我認為在所有 LLM 應用中都有用的眾多特性。特別是,你會注意到我們有一個傳統的界面,允許人類進入手動完成所有的工作,就像以前一樣。但是除了這些,我們現在有 LLM 的整合,讓我們能夠採取更大的一塊。因此,我認為 LLM 應用中的若干特性是值得指出的:第一,LLM 基本上會進行大量的上下文管理;第二,它們協調多次對 LLM 的調用,因此,在使用 Cursor 的情況下,所有文件背後有嵌入模型,實際的聊天模型、對代碼應用差異的模型,這一切都是為你協調的。我認為一個重要的方面,我認為人們未必充分認識到的是,應用特定的 GUI 及其重要性。因為你不僅想在文本中直接和操作系統進行交互。文本非常難以閱讀、解釋、理解,而且你也不想以文本形式本土化某些行為。因此,看到差異以紅色和綠色變化的方式,看看什麼添加或減去的顯然會更好。手動接受或拒絕的方式會比我在文本中輸入命令更便易。對吧?所以 GUI 使得人類能夠審核這些不可靠系統的工作,並加快工作效率。我會再回到這一點。最後,我希望指出的一種特性,我所謂的自主滑桿。舉個例子,在 Cursor 中,你只需進行提示完成。你主要掌控過程。你可以選擇一段代碼,並使用命令 K 僅更改該代碼的一部分。你可以使用命令 L 更改整個文件。或者用命令 I 讓它在整個資源庫中隨意運行,這就是完全自主的代理版本,因此你主導著自主滑桿,根據當前任務的複雜性,你可以調整甘願放棄的自主程度。也許讓我再舉一個相當成功的 LLM 應用 Perplexity 的例子,它也擁有與我剛才指出的相似的特性。它有效地封裝了大量信息,並協調多個 LLM。它的 GUI 使你能夠審核其部分工作。因此,舉個例子,它會引用來源,你可以想像檢查它們。它還提供自主滑桿。你可以快速完成一次搜索,也可以進行研究,或者深入研究,然後 10 分鐘後再回來。因此,這一切都是你放棄給工具的自主程度的不同層次。所以,我的問題是,我覺得許多軟體可能會變得部分自主。我試著思考這會是什麼樣子。而對於許多維護產品和服務的人來說,你將如何使你的產品和服務變得部分自主?一個 LLM 能否看到人類能看到的一切?一個 LLM 是否能以人類能行動的所有方式行動?人類能否監督並保持在這個活動的過程中?因為再說一次,這些都是不可靠的系統,尚未完美。那麼在 Photoshop 中,差異是什麼樣子的?你知道的,以及許多現有的傳統軟體,現在它們有所有這些開關,這所有這些東西都設計給人類使用的。一切都必須發生變化,以適應 LLM。因此,我想強調的是,與許多這些 LLM 應用程序我不確定得到的關注是否足夠,我們現在有點像是與 AIS 合作,通常它們執行生成,而我們作為人類則執行驗證。我們的利益在於讓這個循環運行得越快越好。因此,我們的工作完成了。我認為有兩種主要方式可以實現這一點。第一,你可以大幅加快驗證的速度。
Andrej Karpathy [16:00]
你可以大幅加快驗證的速度。我認為 GUI 是一個特別重要的因素,因為 GUI 利用的是你大腦中的計算視覺 GPU。閱讀文本是費力的,而且不有趣,但觀看東西是有趣的,這是一條通往你大腦的高速公路。因此,我認為 GUI 對於審核系統和視覺表達來說非常有用。而第二,我想是我們必須把 AI 拴住。許多人對 AI 代理感到過於興奮,這對我來說並不有用,因為我不需要一個 10,000 行代碼的變更至我的資源庫。但我仍然是瓶頸,對吧?即使那 10,000 行即時產生,但我必須確保這東西沒有引入漏洞。也就是說,它正在執行正確的操作,並且沒有安全性問題等等。因此,我覺得,是的,基本上我們要以某種方式使這二者的流動速度更快,同時要以某種方式把 AI 想辦法控制住。因為它過於敏感。就像這樣,這是我感覺做 AI 助理編碼時的樣子。當我僅僅是撰寫代碼時,一切都很好,但如果我真的在試圖完成工作,擁有一個過度反應的代理來執行所有這些事情就不是那麼理想。所以這張幻燈片並不好。對不起,但我想我正試圖發展出一些像你們許多人一樣的方法,在我的編程工作流中利用這些代理,進行 AI 協助的編碼。在我自己的工作中,我時常擔心以同樣的方式獲取過大的變更。在小增量的範圍內工作。我想要確保一切都好。我想要讓這個循環非常快速。我工作在小的具體問題上。因此,我認為你們很多人可能也在與 LLM 一起發展類似的工作方法。我還看到一些博客文章試圖提出與 LLM 工作的最佳實踐。以下是我最近讀到的一篇,我認為它寫得相當不錯。它討論了一些技術,其中一些與你怎樣把 AI 拴住有關。因此,舉個例子,如果你的提示模糊,則 AI 可能無法完全按照你的要求執行,這種情況下驗證將失敗。你將要求其他什麼。如果驗證失敗,你將開始出現旋轉。因此,花點時間在你的提示上,讓它們更具實質性,這樣能提高成功驗證的機率,這樣你就能向前推進。因此,我認為我們中的許多人最終會找到類似的技術。我在自己工作上也同樣感興趣的是,在擁有 AI 及 LLM 的情況下,教育會是什麼樣子?對我而言,有大量的思考投入,在於如何把 AI 拴住。我不認為僅僅去問 Chach「嘿,教我物理學」是行得通的。我不認為這有效,因為 AI 就會迷失方向。因此對我而言,這實際上是兩個不同的應用。例如,有一個應用程序是教師創建課程,然後有一個應用程序是接受課程並提供給學生。在這兩種情況下,我們現在都有一個可進行審核的課程中介物,使我們能夠確保教育是良好的。我們能確保它的一致性。這樣 AI 就可以保持在某一特定課程、某一特定的項目進展上。因此,這是把 AI 拴住的一種方式,我認為這有更高的成功機會,AI 不會迷失方向。
Andrej Karpathy [18:12]
另一個令人想起的類比是,我對部分自主並不陌生,我在特斯拉工作期間大約花了五年時間在此上,這也是一個部分自主的產品,且共享了許多特性。例如,儀表板上就是自動駕駛的 GUI,它顯示了神經網絡所能見的內容等等,我們有自主滑桿。隨著我在那裡任職的期間內,我們對用戶的自主任務進行了越來越多的任務。或許我想要簡單地講述的是,我第一次駕駛自駕車是在 2013 年,我有一位朋友在 Whimo 工作,他主動給我提供了在帕洛阿爾托試駕的機會。我當時用谷歌眼鏡拍了這張照片,你們中的許多人可能還年輕到連那是什麼都不知道。但是,是的,這在當時非常流行。我們上了這輛車,周圍大約駕駛了 30 分鐘,穿過帕洛阿爾托的高速公路、街道等等,而這段駕駛是完美的,完全沒有干預,這是 2013 年,現在距今已有 12 年。這讓我驚訝的是,在我享受這次完美駕駛、完美演示的時候,我感到,哇,自動駕駛就要來了,因為一切運行得非常令人難以置信。但 12 年後的現在,我們仍然在致力於自主駕駛,我們仍然在研究駕駛代理,即使到現在我們並未真正解決問題。也許你會看到 Whimos 開車而不需要司機,但你知道,仍然有很多遠程操作,還是需要人類介入,這當中還有很多駕駛的過程,因此我們甚至未曾宣佈成功,但我認為在這個時候肯定會成功,但這花了很多時間,因此,像這樣的軟體真的非常棘手。就像駕駛一樣棘手。所以當我看到像是 2025 年是代理的年份時我會非常擔心,並且我會感覺這將是一個代理的數十年,這將需要相當長的時間。 我們需要有人的介入。我们需要謹慎行事。這是軟體,讓我們認真對待。
Andrej Karpathy [20:23]
另一個我總是思考的類比是鋼鐵人服裝,我總是喜歡鋼鐵人。我覺得這在許多關於技術及如何發展的方面是非常正確的,我喜歡鋼鐵人服裝這一點是因為它同時是增強的,托尼·斯塔克可以駕駛它,也是一種代理。在某些電影中,鋼鐵人服裝是相當自主的,能夠飛行並找到托尼,還有許多其他的東西。因此,這就是自主滑桿,我們可以建設增強裝置,或者建造代理,兩者並沒有優劣之分。但在此階段,我會說與這些不可靠的 LLM 等等。但我會說,你要的不是鋼鐵人機器人,而是鋼鐵人服裝的設計。這不再是建造炫酷的自動代理,而是建造部分自主的產品。這些產品擁有定制的 GUI 和 UIUX。我們正在努力,如此一來人類的生成驗證迴圈會變得非常快速。但我們並不失去核心的想法,從原則上來說這是有可能自動化的工作。你的產品中應該有一個自主滑桿,並且你應該思考如何將這一滑桿不斷提高,讓你的產品能夠參與更多的自主過程。但這便是我認為這類產品中有很多機會的原因。我現在想稍微切換一下主題,談談另一個非常獨特的維度。不僅是有一種新的編程語言可以實現軟體的自主性,而且正如我所提到的,這是用英語編寫的,這是一個自然界面,突然之間每個人都是程序員,因為每個人都會說自然語言,比如英語。因此,這對我來說是非常看好的,並且也非常有趣,也毫無前例。我會說,以前需要花費五到十年的時間研究某個主題才能進行某些軟體操作,現在這已經不再是情況。
Andrej Karpathy [22:32]
因此,我不知道是否有人聽過 vibe programming 的術語。這是那條引入這個概念的推文,但我聽說這現在成為了一個主要的流行語。有趣的是這個事情,我在 Twitter 上已經待了大約 15 年,但我仍然不知道哪條推文會變成病毒推文,而哪條會熄滅,我以為這條推文會是後者。我不知道,它只是我的一時心血來潮。但這變成了一個完全的迷因,我真的不能說。可是我想,這觸動了某個弦音,並給某件每個人感受到卻無法說出來的東西命名。現在它甚至在維基百科上有條目,這已經是相當大的貢獻了。因此,來自 Hugging Face 的 Tom Wolf 分享了這段我非常喜愛的美麗視頻。這些是孩子們進行 vibe programming 的過程,這對我來說是那麼幸福的視頻。像這视频网站 ,你怎能看完這段視頻來對未來產生不好的想法呢?未來是美好的。我認為這將成為軟體開發的一個入口。我不會對未來感到失望,關於創造方面,我確實愛這段視頻。因此,我嘗試了一會兒 vibe coding,因為這太有趣了。因此,vibe coding 當你想構建某些超級自定義的東西時,這是非常棒的,這些東西似乎不存在,而你只想隨意試一下,因為是周六。於是,我建造了這個 iOS 應用程式,而我其實並不會使用 Swift 進行編程,但我非常驚訝的是,我能夠建造一個超級基本的應用程序,而我並不想詳細解釋,這真的很愚蠢。但我就是這樣一天的工作,而在當天稍晚時它就在我的手機上運行「哇,這太不可思議了」。我不必花五天的時間閱讀 Swift 才能入手。我還為一個名為 Menu Genen 的應用程序進行了 vibe coding,這個應用程序是活的。你可以在 menu.app 試試。而我簡直出了個問題,當我在餐館的時候,閱讀菜單,但我對菜單上的事情一無所知,我需要圖片。因此這不存在。於是我想,「好吧,我要這樣嘗試 vibe coding」。這是它的樣子。你進入 menu.app,然後,你拍一張菜單的照片,然後,菜單生成圖片,當你註冊時,每個人都會獲得 5 美元的免費信用。因此,這對我來說是生命中的一個主要支出。所以這對我來說是一個負收入應用。是的,我在 Menu 上損失了很多錢。但是,Menu Genen 對我而言引人入勝的地方是,vibe coding 部分的代碼對我來說實際上是 v coding Menu 的簡單部分,而後來使它變得真實的過程,讓你實際執行認證、付款、域名和整個部署等,這是非常困難的,這些全部都不涉及代碼,這些開發操作都在我瀏覽器中點擊完成,這是極其緩慢的,而且花了一整個星期。因此,讓人驚訝的是,我在幾個小時內在我的筆記本電腦上成功運行了 Menu Genen 的演示,而後來花了一個星期,因為我試圖讓它變得真實,這是因為這讓我非常沮喪。因此,例如,如果你嘗試給你的頁面添加 Google 登錄,我知道這個字很小,但沒辦法大量指導這個庫如何結合這個操作。並對我來說,這是瘋狂的。就像這樣,它告訴我去這個 URL,然後點擊這個下拉選單,然後選擇這個,然後去這個,再點這個。它在告訴我應該採取哪些行動。你去做啊!為什麼我要這麼做?這太瘋狂了。因此,我認為我的演講的最後一部分專注於我們能否為這些代理創建某種新的東西。我不想做這樣的工作,這些代理能完成嗎?謝謝。
Andrej Karpathy [24:46]
好吧,簡單來說,我認為出現了一個新的消費者類別及數位資訊的操控者,以前只是通過 GUI 的人類或是通過 API 的計算機。而現在我們有了全新的東西,這些代理,它們是計算機,但它們有點像人類的靈魂。它們在互聯網上運作的時候,需要與我們的軟體基礎設施互動。那麼我們能否針對這些新事物進行建設呢?這是一件新鮮的事情。所以舉個例子,你可以在你自己的域名上使用 robots.txt 文件,來指導或建議 網頁爬蟲在你網站上的行為,與此類似,你也許能夠擁有 lm.txt 文件,這是一個簡單的 Markdown 文件,告訴 LLM 這個域名是關於什麼的,這對 LLM 是非常可讀且可用的。如果它必須去獲取你的網頁的 HTML 並試圖解析,其實這是相當容易出錯且非常棘手的,根本行不通。因此,我們可以直接與 LLM 交流,這是非常值得去做的。嗯,絕大多數文檔是為人類編寫的。因此,你會看到像列表、加粗字和圖片,這對 LLM 是不直接可及的。因此,我現在看到有一些服務正在將其文檔轉換為專為 LLM 設計的格式。舉個例子,Versell 和 Stripe 是早期的先行者,但我已經看到還有其他幾個,它們將自己的文檔提供為 Markdown 格式。Markdown 對 LLM 來說超級容易理解。這太好了。或許有一個簡單的例子,來自我自己的經驗。或許你們中的一些人認識三藍一棕。他在 YouTube 上製作了美麗的動畫影片。[掌聲] 是的,我喜歡這個庫。因此,他寫的 Manon,我想創建我自己的版本,因此,關於如何使用 manon 的文檔非常詳細,我不想實際閱讀。因此,我把整個文檔複製粘貼到一個 LLM中,並描述了我想要的東西,它完全按預期運行。這計算就是這樣的,因此,如果我們能讓這些文檔對 LLM 可讀,將會解鎖出大量的使用潛力,我認為這是美妙的,應該更多地發生。另一件我想指出的事情是,不幸的是,我們不僅僅是把你的文檔轉為 Markdown 的問題。那是簡單的一部分。其實我們需要調整文檔,因為每當你的文檔提到「點擊」時,這是有問題的。LLM 在當前階段無法直接執行這些行動。因此,舉個例子,Versell 正在將每一個提及「點擊」的地方替換成你 LLM 代理可以代表你執行的等效 curl 命令。因此,我認為這非常有趣。此外,還有來自 Enthropic 的模型上下文協定。這也是一種方法,是一種直接與代理交談的協定,作為數位資訊的新消費者和操控者。我對這些想法非常看好。另一件我非常喜歡的是一些小工具,這些小工具正在幫助導入數據,以非常 LLM 友好的格式。例如,當我進入 GitHub 倉庫例如我的 nanoGPT 倉庫時,我不能直接將其輸入 LLM 並詢問,因為這是 GitHub 的人類界面。因此,只需將 URL 從 GitHub 更改為 get ingest,然後,這將實際上將所有文件串接在一起,並創建一個單一的大文本文件,並創建目錄結構等。這將準備好被複製並粘貼到你最喜愛的 LLM 中,你可以進行操作。也許甚至更戲劇的例子是 deep wiki,這不僅僅是這些文件的原始內容,這是來自 Devon 的,但他們還有 Devon 實際上對 GitHub 倉庫進行分析,並為你的倉庫構建完整的文檔頁面,想像一下,這對粘貼進你的 LLM 會更加有幫助。因此,我喜歡所有這些小工具,它們基本上通過改變 URL 使 LLM 可用。這一切都很好,我認為應該有更多。還有一點我想強調的是,未來 LLM 絕對有可能這不僅僅是未來,而是今天,它們將能夠四處走動並點擊一些東西等等,但我認為將 LLM 與我們的鏈接相接是很值得的。我仍然認為這有點代價高昂,也難以使用,因此我確實認為許多軟體將有長尾,這並不會適應應用程式,因為這些並不是像現場播放的那種存儲庫或數字基礎設施,並且仍然需要這些工具。但我對於其他所有人來說,我覺得與 LLM 的中間點會有更值得的做法。那麼,簡而言之,進入這個行業的時機是如此美好。我們需要重寫大量代碼,由專業人士和程式設計師撰寫大量代碼。這些 LLM 就像公共事業,非常像晶圓廠,但它們特別像操作系統。但是目前階段仍然很早,就像 1960 年代的操作系統,我認為很多類比相互重疊。這些 LLM 就像這些不可靠的靈魂一樣,我們必須學會如何與之合作。因此,為了能妥善做到這一點,我們需要調整我們的基礎設施。因此,在構建這些 LLM 應用時,我描述了幾種與這些 LLM 有效合作的方式以及使這成為可能的一些工具,這樣你可以快速旋轉這個迴圈,基本上創建部分自主產品。接下來,還需為代理更直接地撰寫大量代碼。但無論如何,回到鋼鐵人服裝的類比,我認為在接下來的十年中,我們會將滑桿從左側滑向右側。我非常有興趣看到那樣的情況會怎麼樣,我迫不及待想與大家一起構建。謝謝。
Andrej Karpathy [26:59]
哇,自駕真的迫在眉睫,因為這剛剛成功了。這真是太不可思議了。嗯,但12年後的今天,我們仍然在致力於自主駕駛。嗯,我們仍在開發駕駛代理,目前甚至還沒有真正解決這個問題。你可能會看到無人車在街上行駛,看起來是無人駕駛的,但你知道,這其中仍然有大量的遠程操作,還有許多人的介入,所以我們甚至還沒有宣告成功。我認為現在絕對會成功,但這確實花了很長時間。我認為這種軟體真的非常棘手,就像駕駛一樣棘手。所以當我看到像是2025年是代理人的時候,我感到非常擔心,並且有點覺得,這是代理人的十年,這還需要相當一段時間。我們需要人在迴路中。我們需要小心謹慎地進行這個,這是軟體。讓我們認真對待。另一個我一直思考的類比是鋼鐵人裝甲。我一直很喜歡鋼鐵人,我認為它在技術方面是非常正確的,並且看起來會如何發展。鋼鐵人裝甲令我喜愛的是,它既是一種增強,托尼·史塔克能駕駛它,也是一種代理。在一些電影中,鋼鐵人裝甲是相當自主的,能夠飛行並找到托尼,還有其他各種事情。因此,這就是自主權的滑桿,我們可以建造增強設備,也可以建造代理,我們有些希望能兩者兼顧。但在這個階段我會說,與易錯的大型語言模型合作,像這樣。我會說,你知道,不是鋼鐵人機器人,更像是鋼鐵人裝甲,你想要建造的。與其建立耀眼的自主代理demo,倒不如建立部分自主的產品。這些產品有定制的指令和UIUX。我們正在嘗試,這是為了使人類的生成驗證迴路非常快。但我們並沒有失去視野,即原則上能自動化這項工作。你的產品中應該有一個自主性滑桿。你應該思考如何滑動那個自主性滑桿,讓你的產品隨著時間變得更自主。但這就是我認為這類產品有很多機會的方式。我想現在稍稍轉換一下話題,談一個我認為非常獨特的維度。不僅有一種新的程式語言允許軟體中的自主性,而如我之前提到的,它是用英語編程,這是一種自然的介面,突然間每個人都是程序員,因為每個人都會講像英語這種自然語言。所以這對我來說非常看好且非常有趣,並且完全是前所未有的。我會說,過去你需要花五到十年的時間學習某些東西才能在軟體中做某些事情。但這現在不再是這樣了。
Andrej Karpathy [29:11]
我不知道是否有任何人聽說過 vibe coding。這是一條引入這個概念的推文,但我聽說現在這已經成為一個主要的迷因。嗯,關於這個的有趣故事是,我在 Twitter 上已經待了15年或類似的時間,但我仍然不知道哪條推文會變得病毒式傳播,而哪條推文會淡出,沒人關心。我以為這條推文會是後者。我不知道,這只是一場思想的沮喪。但這成了一個完全的迷因,我真的無法分辨。但我想它感動了很多人,並且為每個人感受到卻無法用語言表達的東西起了個名字。現在有了維基百科頁面等等。這就像 [掌聲] 是的,這現在是一項重大的貢獻。嗯,所以,HuggingFace 的 Tom Wolf 分享了這段我非常喜愛的美麗視頻。嗯,這是孩子們在 vibe coding。我覺得這太純真的視頻了。我喜歡這段視頻。你怎麼能看這段視頻,卻對未來感到不安呢?未來是美好的。我想這會成為軟體開發的入門藥物。嗯,我對於生成的未來並不悲觀,我想是的,我愛這段視頻。所以,我也嘗試 vibe coding,因為這太有趣了。嗯,當你想要建立一個超級自定義、似乎不存在的東西時, vibe coding 是非常棒的,因為你只想隨意做一些事情,因為今天是星期六或類似的。因此,我建立了這個 iOS 應用程式,我其實不會用 Swift 程式設計,但我真的很震驚,能夠建立一個非常基本的應用程式,我不會多做解釋,這真的很簡單,但我有點像這只是一天的工作,然後當天就在我的手機上運行了,我覺得,“哇,這太神奇了。”我不需要花五天的時間閱讀 Swift 才能開始。我還有。
Andrej Karpathy [31:38]
我還有 vipcoded 這個名為 Menu Genen 的應用程式。這是實時的,你可以在 menu.app 嘗試。我基本上碰到了一個問題:當我到達一家餐廳時,我瀏覽菜單,但對任何菜的名稱都毫無頭緒。我需要圖片。因此這個功能並不存在。所以我心想,“嘿,我要來手動編碼。”所以,這就是它的樣子。你去到 menu.app,然後,你拍攝菜單的照片,然後菜單生成圖片,當你註冊時,大家都會獲得5美元的信用額度。因此,這在我生活中是一個主要的費用中心。所以,目前這個應用對我來說是負收入的。我在 Menu 上虧了很多錢。好吧。但對我來說,Menu Genen 的迷人之處在於,Vite coding 的代碼實際上是編寫 Menu 的簡單部分,大多數時間實際上是在我嘗試讓它真正工作的時候,讓你能夠進行身份驗證和付款、域名和綜合部署。這真的很難,所有這些都不是代碼。所有這些 DevOps 的東西都是我在瀏覽器中點擊的,這樣的過程極其緩慢,花了我另一周。因此,當我發現 Menu Genen 在我的筆記本電腦上能在幾個小時內工作,而接下來花了一周的時間幫我把它改成實際版本時,這真的很迷人,原因是因為這個過程真的讓我很煩躁。嗯,因此,比如說,如果你嘗試將 Google 登入添加到你的網頁,我知道這非常小,但卻有大量有關這個圖書館如何集成的指導。這簡直太瘋狂了。它告訴我去這個 URL,點擊這個下拉菜單,選擇這個,然後去這個,再點擊那個。它就像在告訴我應該做什麼。一台電腦在告訴我我應該採取的行動。我為什麼要做這些事情?這太奇怪了。我不得不遵循所有這些指導。這真是瘋狂。所以,我想我演講的最後部分專注於我們能否為代理人建造。有時我不想做這份工作,代理人在這方面能做嗎?謝謝。好吧,粗略來說,我認為出現了一類新的消費者和數位資訊操縱者。他們過去只是通過 GUI 的人類或通過 API 的計算機。而現在我們有了一種完全新的事物,代理人,它們是計算機,但它們在某種程度上像人類對吧,他們是人類的精神,互聯網上有人的精神,他們需要與我們的軟體基礎設施互動。我們是否可以。
Andrej Karpathy [34:08]
我們是否可以為他們建造,這是一種新事物。因此,例如,你可以在你的域上擁有 robots.txt,並且可以指導或建議網路爬蟲如何在你的網站上行為。同樣地,你可以擁有可能的 lm.txt 文字檔,這是一個簡單的 markdown,告訴大型語言模型這個域是關於什麼的,這對於大型語言模型來說是非常可讀的。如果它不得不取得你網頁的 HTML 嘗試解析,這是非常容易出錯且困難的,並將搞砸,這是不會工作的。因此,我們可以直接與大型語言模型溝通。這是值得的。嗯,大量文件目前都是為人編寫的。因此你會看到像清單、粗體和圖片這樣的東西,這對大型語言模型來說並不直接可接觸。因此,我看到一些服務現在正將他們的大部分文檔轉移到特別為大型語言模型服務之中。例如,Vercel 和 Stripe 在這方面是先行者,但我已經看到其他一些,並且他們以 markdown 的方式提供他們的文件。Markdown 對大型語言模型來說非常容易理解。這真是太棒了。嗯,或許我也想分享一個簡單的例子。也許你們中的一些人知道三藍一棕,它在 YouTube 上製作美麗的動畫視頻。 [掌聲] 是的,我愛這個庫。所以他所寫的 Manon,我想做自己的版本,嗯,這有詳盡的使用文檔,我不想真的閱讀它。所以我把整個內容複製粘貼到大型語言模型中,描述了我想要的東西,而它就這樣一鍵工作,大型語言模型就直接生成了我想要的動畫,我感覺哇,這真讓人驚嘆。因此,如果我們能夠製作對大型語言模型可讀的文檔,將會釋放出大量的用處,我認為這太棒了,應該更常發生。另一件我想指出的事情是,不幸的是,你不僅需要把你的文件轉換成 markdown 格式。這是簡單的部分。我們實際上必須更改文件,因為每當你的文件說點擊的時候,這是壞的。大型語言模型現在無法原生執行這個動作。因此,Vercel 例如,是將每次出現的點擊替換為等效的 curl 命令,這樣你的 LM 代理就可以代表你執行。此外,當然,還有一個來自 Enthropic 的模型上下文協議。這也是一種方式,它是一個協議,直接與代理進行交互,作為這種新的數位資訊的消費者和操縱者。
Andrej Karpathy [36:28]
消費者和數位資訊的操縱者。因此,我對這些想法非常看好。還有一件我非常喜歡的事情是,一些小工具正在幫助吸收數據,以非常適合大型語言模型的格式。因此例如,當我去 GitHub 倉庫,例如我的 nanoGPT 倉庫,我無法將其提供給大型語言模型並詢問問題,因為這是 GitHub 上的人工介面。所以當你改變 URL 從 GitHub 到 ingest 時,這實際上會將所有檔案串聯成一個巨大的文本,並創建目錄結構等等。這可以隨手複製粘貼到你喜愛的大型語言模型中,並讓你可以操作。或許更戲劇性的例子是 deep wiki,不僅僅是這些文件的原始內容,這來自 Devon,但它們還讓 Devon 進行 GitHub 倉庫的分析,並基本上為你的倉庫建立整整的文檔頁面,你可以想像這對複製粘貼到你的大型語言模型來說是更有幫助的。因此,我喜歡所有這些小工具,只需改變 URL 就使其能夠被大型語言模型訪問。這一切都很好,我認為應該有很多這樣的工具。我想要再補充一點的是,未來大型語言模型能夠,這不僅是未來,這今天他們能夠到處走,點擊東西等等,但我仍然認為基本上與大型語言模型相遇是非常值得的,並讓他們更容易訪問所有這些信息,因為使用起來仍然相當昂貴,我會說,並且更加困難,因此我確實認為有很多軟體會有長尾現象,因為這些並不是像即時玩家那樣的儲存庫或數字基礎設施,我們仍然需要這些工具。嗯,但我認為對於其他所有人,這非常值得在某個中間點會合。因此我對這兩者都抱有很大的希望,如果這樣說易於理解的話。總之,這是一個進入這個行業的驚人時刻。我們需要重寫大量代碼。一大堆代碼將由專業人士和程序員書寫。這些大型語言模型簡直像公用事業、像工廠,但也特別像作業系統。但這還太早了。這就像1960年代的作業系統,我認為許多類比都可以互通。而這些大型語言模型就像這些易錯的,你知道的人類精神,我們必須學會與之合作。
Andrej Karpathy [38:43]
我們必須學會與之合作。為了妥善完成這一點,我們需要調整我們的基礎設施。因此,當你在建立這些大型語言模型應用程式時,我描述了一些有效與這些大型語言模型合作的方法和一些使這拍環流得以實現的工具,以及你如何能夠非常快速地啟動這個迴圈,並基本上創建部分隧道產品。此外,嗯,還需要大量代碼更直接地為代理編寫。但無論如何,回到鋼鐵人裝甲的類比,我認為在接下來的十年內,粗略地說,我們將會將滑桿從左移到右。這將是非常有趣的,能看到這會是什麼樣子。我迫不及待想和大家一起實現這個目標。謝謝。