Video thumbnail for AI大神给智能体泼冷水|氛围编码|软件1.0|神经网络驱动软件2.0|LLM软件3.0

AI大神潑冷水:軟體開發的未來、LLM機遇與挑戰全解析

Summary

Language:

Quick Abstract

想了解軟體開發的未來嗎?本文將深入探討軟體開發的三個時代 (Software 1.0, 2.0, 3.0),從傳統程式碼到神經網路再到自然語言模型 (LLM),揭示技術變革如何重塑我們的世界,特別是關於 Rick Rubin 提出的「Vibe Coding」的相關概念。

Quick Takeaways:

  • Software 1.0: 人工編寫程式碼,指令需精確,例如 C++, Python, Java。

  • Software 2.0: 基於神經網路與深度學習,透過大量數據訓練模型,例如 Hugging Face。

  • Software 3.0: 大型語言模型 (LLM) 時代,以自然語言 (如英文、中文) 編程,降低編程門檻。

  • Vibe Coding: 像龐克音樂般簡單直接的編碼方式,讓更多人參與軟體創作。

  • LLM 像是新型作業系統,但存在缺陷,例如幻覺、記憶限制、容易被攻擊。

  • 未來開發者需同時掌握三種軟體開發模式,並利用 AI 輔助工具,加速驗證週期。

文章也將探討LLM帶來的機會與挑戰,以及「Web Coding」背後的文化哲學意義。此外,本文更探討AI是否具有創造力,以及科技如何影響我們的思考模式,提供您更深入的見解。

軟體開發的革命:從 1.0 到 3.0,LLM 與 Web Coding 的時代

軟體開發的變革與重要觀點

今天我們要談一個非常令人興奮的話題——軟體開發。這個領域正在經歷一場根本性的變革,它與我們如何應對科技密切相關。我們主要參考了 Andrew Capaci 和 Rick Rubin 的一些演講,他們分別從技術以及哲學和文化的角度,提出了深刻的見解。這次的內容適合所有人,即使你對軟體開發一無所知,也能有所收穫。

軟體 1.0:傳統編程的時代

軟體 1.0 已經存在了幾十年甚至 70 年。它使用 C++、Python 和 Java 等編程語言,需要開發者詳細地告訴電腦要做什麼,指令必須非常清晰,就像為電腦寫一本超級詳細的操作手冊,不能有任何錯誤。

例如,要製作一個情緒分析器來判斷句子的正負面情緒,在軟體 1.0 時代,你可能需要自己寫很多規則,如分析詞彙、計算詞語,甚至進行複雜的語法分析。這不僅複雜,而且效果往往不理想。尤其是在處理那些更複雜、需要大量背景知識的任務時,軟體 1.0 就顯得力不從心,比如在圖片中檢測貓,或理解充滿隱喻的對話,很難用清晰的規則來定義。

軟體 2.0:神經網絡驅動的時代

為了解決軟體 1.0 的問題,軟體 2.0 應運而生。它主要基於神經網絡,尤其是深度學習的力量。Andrew Capaci 在 2017 年提出了這個概念,他認為神經網絡的力量在於通過大量數據訓練優化的參數,這是一種新的軟體形式。

傳統的軟體 1.0 代碼是人寫的邏輯命令,而軟體 2.0 雖然都是數字,但它們包含了從數據中學習到的複雜模型和邏輯,決定了如何在神經網絡上處理輸入和輸出。所以軟體 2.0 階段更像是收集、清理標準數據,然後訓練模型,而不是傳統意義上的編程代碼,程序員的角色也發生了變化。

其核心思想是使用數據訓練代替人工編碼邏輯。像 Hugging Face 這樣的平台,就有點像軟體 2.0 階段的 GitHub,大家在上面分享好的模型權重,就像分享代碼庫,其他人可以下載並調整用於自己的任務。早期比較成功的例子有 AlexNet,它可以看作是一個固定功能的電腦,你給它一張圖片,它能告訴你圖中有什麼,但它只能解決特定問題。

軟體 2.0 真正顯示出顛覆性力量的關鍵轉折點,是 Andrew Capaci 在特斯拉自動駕駛的經歷。他觀察到基於神經網絡的軟體 2.0 系統開始逐漸取代原來用 C++ 寫的軟體 1.0。也就是說,自動駕駛的許多功能,如感知和決策,原本可能由許多 C++ 模塊組成,但隨著神經網絡越來越強大,它們能更好地處理更複雜的數據,比如整合多個攝像頭的信息來了解周圍環境。

團隊發現,使用端到端的神經網絡模型比一堆 C++ 代碼效果更好,於是他們刪除了大量 C++ 代碼,用神經網絡模型代替。這不僅是技術上的替代,更是開發過程的根本改變。

軟體 3.0:大語言模型的新時代

軟體 3.0 是大語言模型的新時代。Andrew Capaci 認為 LLM 本質上是一種可以通過自然語言(如英語和中文)編程的新型電腦。其核心概念是提示和程序,你給 LLM 的自然語言命令實際上是在定義它要執行的任務和邏輯,這是一種全新的編程方式。

還以情緒分析為例,在軟體 3.0 時代,你不需要寫 Python 代碼,也不需要收集大量數據來訓練特殊模型,只需給 LLM 一個清晰的指令,比如「請判斷文本的情緒是正面、負面還是中性」,再給幾個例子,它通常就能做得很好。自然語言一下子成了編程接口,這極大地降低了編程的門檻。以前需要學習特定的編程語言和複雜的框架,現在理論上只要會說話、會提問,就能讓電腦為你工作。所以 Andrew Capaci 在 X 上發推文說:「最熱門的新編程語言是英語。」

當然,這三種方法並不是完全可替代的,在實踐中它們各有優勢,通常需要結合使用。比如一些底層或高性能要求可能仍然需要 1.0,許多感知任務依賴 2.0,而在設計自然語言理解、深化或快速循環驗證時,3.0 非常有優勢。

LLM:新的電腦還是操作系統?

深入軟體 3.0 的核心——LLM,Andrew Capaci 將其比作一種新型電腦,甚至是操作系統。早期有人提出 AI 是一種新的力量,強調 AI 將像電一樣成為無處不在的基礎設施。像 OpenAI 和 Google 這樣的 LLM 實驗室,投入大量資金建立模型和購買計算能力,就像建設電網,然後通過 API 提供智能服務,收取運營費用和代幣,用戶也期待低延遲、高可用性和穩定的質量。

LLM 也可以比作芯片製造廠,因為大型訓練模型需要巨大的資本投入,核心技術和研發秘密也高度集中在少數 LLM 手中。但軟體和硬件不同,軟體很容易重複,一旦芯片創造出來,物理實體有很高的門檻,而軟體模型,尤其是開源模型,一旦發布就很容易複製和傳播。

Andrew Capaci 最認同將 LLM 視為新的操作系統,因為 LLM 正在演變成一個複雜的軟體生態系統,而不僅僅是一個簡單的產品或工具。在操作系統領域,有 Windows 和 macOS 等少數主流系統,同時也有像 Linux 這樣強大的開源替代品,這與當前 LLM 領域的情況非常相似,有像 GPTCloud 這樣的主流模型,也有像 LAMA 這樣的開源生態系統。

從架構上看,Andrew Capaci 將 LLM 比作 CPU,負責核心計算和推理,上下窗口就像內存,存儲當前任務所需的信息。LLM 需要協調這些內存和計算資源來解決問題,還可以使用外部工具處理各種類型的數據,如圖像和聲音,整個操作越來越像現代操作系統。

目前我們主要通過文本與 LLM 交互,比如在 ChatGPT 界面輸入文本,這就像過去通過命令行終端與操作系統交互。操作系統上可以安裝各種軟體,這也是一個重要的相似之處。比如你下載一個 VS Code,它可以在 Windows、Linux 和 Mac 上運行,同樣,也有很多基於 LLM 的應用,如編程助手 Cursor,它可以在底層切換 GPT - 4、Cloud 或 Jamla。

Andrew Capaci 還提到 20 世紀 60 年代的計算,強調計算資源的集中和訪問方式。因為現在大規模的 LLM 訓練和運行非常昂貴,所以計算資源主要集中在雲上的大型數據中心。就像過去的大型機時代,用戶大多通過網絡連接到客戶端,如瀏覽器或簡單的應用程序,訪問基於雲的 LLM 服務,共享這些昂貴的計算資源,這與 20 世紀 60 年代的分時系統非常相似。

他還說,在 LLM 領域,個人計算革命尚未到來,在自己的電腦上運行強大的 LLM 並不現實,至少在經濟上不划算。雖然現在有一些進展,比如在 Mac Mini 上運行一些本地模型,但這只是早期趨勢,要實現個人電腦的普及,需要降低時間和技術成本。

技術傳播方式的逆轉

Andrew Capaci 還提到一個有趣的現象,即技術傳播方式的逆轉。傳統的顛覆性技術,如電、電腦、互聯網和 GPS,通常是政府或大型企業先投資開發,然後技術成熟、成本降低,最後普及到消費者。

但 LLM 有點反常,我們看到消費者,比如用 ChatGPT 問如何煮雞蛋或寫郵件,他們走在了許多大公司和政府機構的前面。這項技術幾乎瞬間通過軟體和互聯網傳播到全球數十億人。這可能主要是因為軟體的功能性,一旦像 ChatGPT 這樣的產品製作完成並直接發布給消費者,其分發速度是以往硬件或基礎設施技術無法比擬的。

LLM 的內在世界

談了這麼多 LLM 的外部特徵和生態系統,讓我們看看它的內在世界。Andrew Capaci 將其描述為一個具有心理特徵的人造靈魂。他認為 LLM 是一個基於大量人類文本的隨機模擬器,但在這個過程中,它產生了一些與人類非常相似的心理特徵,既有超能力,也有認知缺陷。

它最明顯的超能力是擁有數百本書的知識儲備和幾乎完美的記憶力,只要信息在它的訓練數據或當前上下窗口中,它就能非常準確地記住。但它的缺點也很明顯,首先是幻覺,即嚴重捏造事實,而且它自己並沒有意識到在捏造;其次是能力不平衡,在某些方面,如語言和編碼能力,它可能超過普通人,但在一些看似簡單的方面,如基本計算、常識推理,它會犯錯。

然後是副交感神經性健忘症,它不像人類同事那樣能通過持續工作和交流積累經驗、穩定知識,它的記憶力只限於當前上下窗口,一旦對話結束或窗口滿了,之前的信息就會被遺忘,需要不斷給它提供背景信息。最後還有安全漏洞,尤其是容易受到提示攻擊,別人可以用惡意提示泄露不該泄露的信息或執行一些危險操作。

人機合作的新方式

現在的核心挑戰是如何在利用其超能力的同時有效避免這些缺陷,這既是提示工程的藝術,也是設計人機交互界面的關鍵。Andrew Capaci 認為,更有效和安全的方法不是直接與底層的 LL 操作系統打交道,而是通過一些專門構建的部分獨立的應用程序與之合作。

自主應用程序的部分核心概念是,這些應用程序提供熟悉的結構化接口,同時在後台積累 LLM 的能力。它們幫助我們管理與 LLM 的交互,安排複雜的調用過程,非常重要的是提供良好的用戶界面,讓人類可以審查和控制。比如 Cursor 的編程助手,它看起來像一個普通的 VS Code 編輯器,這是開發者熟悉的界面,但它集成了 LLM 功能。

當你需要修改代碼時,可以選擇一段代碼,用自然語言描述需求,Cursor 會幫你打包相關的代碼片段、文件括號等,發送給 LLM。LLM 生成修改建議後,Cursor 不會直接使用,而是用非常清晰的紅綠對比顯示給你,紅色表示刪除,綠色表示添加,這種可視化方式讓你能快速掃描確定修改是否可靠,然後只需按 command + y 接受或 command + n 拒絕。

這個審查過程非常快,比閱讀一大段純文本效率高得多,它利用了我們大腦強大的視覺處理能力,這就是所謂的加速人機合作循環中的驗證速度。另一個例子是像 Perplexity 這樣的研究工具,它會幫你搜索信息,然後用 LLM 總結答案,但它會清楚地列出信息來源並提供鏈接,方便你驗證,這也是通過 GUI 加速驗證。

這些應用程序通常是自足的,以 Cursor 為例,最低程度的自足可能是自動在 TAP 中添加一行代碼,然後你可以讓它修改一個代碼塊、整個文件,甚至在整個代碼庫中執行更複雜的操作,這種自主性逐漸增加,你可以根據任務的複雜性和對 AI 的信任程度進行調整。Perplexity 也類似,從快速搜索到深入研究報告,自主性也不同。所以,與其追求全自動的 AI 代理,不如先做這種人工的、部分自主的工具。

Andrew Capaci 將這種工具比作鋼鐵俠的戰鬥服,戰鬥服可以增強托尼·斯塔克自己的能力,在某些情況下也可以獨立行動。但在這個階段,由於 LLM 還不夠完美,我們應該先建立一個好的戰鬥服,即增強我們能力的工具,而不是直接建造一個完全獨立的機器人。

構建「戰鬥服」的關鍵

構建這種「戰鬥服」的關鍵,一是易用的 GUI 或 UI,旨在加速人機整合;二是有效管理人機合作循環,即 Andrew Capaci 的生成驗證循環。一方面,通過 GUI 優化循環以加快驗證速度;另一方面,要學會控制 AI,不要讓它太過失控,避免 AI 一次生成太多東西或進行過多難以理解和驗證的修改。

Andrew Capaci 分享了他的經驗,如果 AI 突然給你一個有 10000 行代碼變化的 DIV,你幾乎無法驗證,人類的驗證速度就會變得緩慢。你需要確保 AI 的每一個操作都在你的控制之下,不會引入隱藏的錯誤或安全問題。讓 AI 做一些小規模、清晰的任務,然後你可以快速驗證並進行下一步。

他還提到一些 AI 輔助編程的最佳實踐,比如使用特定的提示格式,讓 AI 輸出更易於驗證,提高一次性通過率。這就像引導和約束 AI,而不是讓它自由發揮。

在教育領域,如果你直接讓 AI 教物理,它可能會說著說著就跑題,甚至開始產生幻覺。但如果你提供一個結構化的課程大綱作為指導,讓 AI 在這個框架內解釋概念和回答問題,效果會好得多。將課程設計和學習執行分開,這個想法類似於特斯拉自動駕駛的開發,也是一個獨立且有清晰接口反饋、自主性逐漸提高的產品。自動駕駛的儀表盤顯示神經網絡看到了什麼、要做什麼,讓人類司機可以理解和控制,自主性也是逐漸開放的。

對 AI 代理發展的思考

這就是為什麼 Andrew Capaci 對 AI 代理的概念有深刻的理解。他分享了 2013 年在 Wemo 體驗無人車的經歷,當時的演示非常完美,他覺得自動駕駛技術即將實現。但在過去的十年裡,自動駕駛的發展仍然困難重重,仍然需要大量的人工干預,比如遠程操作。

他想用這個例子提醒大家不要對代理的發展過於樂觀,他認為軟體開發和自動駕駛一樣,都是非常複雜和棘手的問題。所以對於「2025 年是代理之年」的說法,他表示有點擔心,覺得更有可能是「代理的第十年」,我們需要耐心,讓人類始終參與並謹慎推進。

Web Coding:軟體開發的朋克搖滾

了解了 AI 大神 Andrew Capaci 的先見之明後,我們來談談更有趣的概念——Web Coding。Rick Rubin 說它是軟體開發的朋克搖滾。這個概念最初是 Andrew Capaci 在 Twitter 上偶然提到的,但並沒有引起注意。

他自己也嘗試過,比如他完全不懂蘋果的 Swift 語言,但通過與 LLM 交談,用自然語言描述自己的想法和感受,他竟然開發了一個 iOS 應用程序。後來他又做了一個叫 Manu Division 的應用程序,也是類似的方式。

他的經驗是,用 Web Coding 的方式寫代碼變得相對容易,因為大部分具體的語言和 API 調用都交給 LLM 處理了。但他也發現,後期部署蘋果的商業證書來支付這些 DevOps 環節仍然非常痛苦,需要大量的手動點擊和配置。

所以 Web Coding 主要解決了編碼的問題。而 Rick Rubin 從一個完全不同的角度,以音樂製作人身份,解釋了 Web Coding。朋克搖滾的比喻特別精彩,朋克音樂的特點是簡單直接,不需要高端技巧,也許三個和弦就能組成一個樂隊,極大地降低了音樂創作的門檻。

Rick Rubin 認為 Web Coding 在軟體開發中也起到了類似的作用,它讓那些不懂傳統編程語言和複雜算法的人,通過表達自己的氛圍、感受和意圖,就能參與軟體創作,這是一種強大的民主力量,意味著更多非技術背景的人也能成為創造者。

Rick Rubin 甚至寫了一本書《The Created Act, A Way of Being》,探索在科技時代我們應該如何存在,試圖為科技開發者提供一些古老的智慧。

對 AI 創造性的思考

我們討論了軟體的演變、LLM 的本質、人機合作的新模式和 Web Coding,接下來讓我們思考一些更深層次的問題,比如 AI 有創造力嗎?Rick Rubin 有自己獨特的看法。

他認為藝術上真正的突破往往來自那些看似不合理或不可能的事情,而 AI 主要還是在基於它所學的東西進行融合的過程中,它擅長組合、模仿和優化,但很難創造出真正有意義和創新的東西。

Rick Rubin 認為人類的優勢在於我們可以相信不可能,我們有一種非理性、橫向的思維能力,如果 AI 完全理性,它可能無法達到這種非理性的創造力高峰。你可能會說人類的創造力不也常常是在前人的基礎上整合和改進嗎?比如智能手機不是一天發明出來的。

是的,這是一個有爭議的觀點,科技史上許多偉大的發明都是長期積累的結果。但也許在藝術或思想領域,那種打破常規的原創性靈感閃現仍然是人類的獨家領地,至少 Rick Rubin 是這麼認為的。

集體無意識與信息時代

另一個有趣的點是,Rick Rubin 提到了集體無意識與信息時代的關係。他引用了英國生物學家和超心理學家 Robert Sheldrake 的經典猴子效應,說明想法和行為模式似乎可以在一個群體中無限傳播。

比如,一旦有人打破了四分鐘跑一千米的紀錄,很快就會有更多人做到,就像那個不可能的障礙被打破了。互聯網在這個過程中扮演了什麼角色?它是加強了這種集體共鳴嗎?這值得思考。

一方面,互聯網極大地加速了信息的傳播,連接了全球的思想,讓各種中小微社區得以形成和共鳴;但另一方面,Rick Rubin 也表達了他的擔憂,過多的信息和過多的連接會淹沒個人的獨立性和深度思考,會讓我們滿足於表面的答案,而不是追求更深層的真理。

此外,還有文化歧視的風險,當大家都接觸到類似的信息,追求同樣的熱點時,很可能導致文化的統一和寶貴多樣性的喪失。所以他特別強調內心的重要性,要轉向內在,保持獨立思考。

對 AI 偏見的看法

這也關係到他對 AI 偏見的看法。他觀察到 AI 似乎不相信上帝,並對當前主流的在 AI 上反映人類價值觀的方式提出了質疑。他擔心這樣訓練出來的 AI 可能只反映了特定群體的人,比如古代科技精英,或者他提到的進步價值觀和世界觀,而不是更廣泛、更多樣的人類感知。

Rick Rubin 似乎期待看到一種真正能自我存在的 AI,而不是僅僅基於人類告訴它的東西來形成認知的 AI,但這可能還很遙遠。

AI 時代的教育與個人發展

你可能會提到,今天我們談了這麼多,感覺在 AI 時代,我們過去重視的許多專業或硬技能似乎變得不那麼重要了。

是的,確實有這種趨勢。當 AI 可以幫你寫代碼、寫文章、做設計時,純粹的技術執行能力可能就不那麼稀缺了。相反,那些更軟性的素質,比如你的品味、判斷好壞的能力、好奇心、提出好問題的能力、對新事物的開放心態,以及了解自己想要什麼、自己的獨特價值在哪裡的深刻自我認知,變得越來越重要。

這可能對我們未來的教育系統提出了巨大的挑戰和新的要求,也許未來教育的關鍵需要從簡單的知識傳輸和技能訓練轉向這些難以被 AI 取代的核心技能。

結語與思考問題

最後,我給大家留一個思考問題。當我們掌握了越來越多能放大甚至模擬我們思維的強大工具時,我們應該如何應對?你會如何利用這些新能力快速高效地完成已知的工作,並不斷優化可能的日常思維?

還是會用這些工具勇敢地探索那些曾經被認為不合理甚至不可能的領域,創造出真正屬於你自己的、獨一無二的、能加深你對這個世界和自己理解的東西?好了,今天的視頻就到這裡。如果你喜歡今天的節目,不要忘了點贊、分享和訂閱我的頻道,以獲取及時的科技信息和深度內容。謝謝觀看,下次再見。

Was this summary helpful?