別掉進反 AI 的炒作陷阱
原文由 Salvatore Sanfilippo 于 發布,訂閱此部落格
我熱愛一行一行地寫軟體。可以說,我的整個職涯就是持續不斷地努力,打造寫得好、極簡、而人的手感是其根本特色的軟體。我也期盼一個不遺忘弱勢者的社會。再說,我並不希望 AI 在經濟上取得成功,我也不在乎現行的經濟體制是否被顛覆(老實說,如果走向大規模的重分配財富,我會非常樂見)。但是,如果我對軟體與社會的理念蒙蔽了我的視野,我就無法尊重我自己與我的判斷:事實就是事實,AI 將永遠改變程式設計。
2020 年我辭去工作,去寫一本關於 AI、全民基本收入,以及一個適應工作自動化、面臨諸多挑戰的社會的小說。2024 年底,我開了一個 YouTube 頻道,專注於 AI、它在程式開發任務上的應用,以及它可能帶來的社會與經濟影響。但即便我很早就看見將會發生的事,我原本以為在程式設計被徹底重塑之前,我們還有更多時間,至少還有幾年。我現在已不再這麼認為。最近,最先進的 LLM 只要給予一套清楚的提示、說明最終成果應該是什麼樣子,就能幾乎在無人協助的情況下,獨自完成大型子任務或中型規模的專案。你能獲得多大的成功,取決於你做的程式類型(越是獨立、越能以文字完整表達的就越適合:系統程式設計尤其如此),以及你能否在心中建立對問題的清晰表徵,並有效地傳達給 LLM。但整體而言,現在已經很清楚,對於大多數專案來說,除非是為了樂趣,否則自己動手寫程式已經不再合理。
過去一週裡,我僅僅透過下提示、偶爾檢視程式碼給予指引,就在短短幾小時內完成了以下四件事——這些原本需要數週時間的事:
- 我修改了自己的 linenoise 函式庫以支援 UTF-8,並打造了一個用於行編輯測試的框架,它使用一個能回報每個字元單元格顯示內容的模擬終端機。這是我一直想做的事,但為了測試一個自己的 side project 而投入這麼多工夫,很難說得過去。但如果你只要描述想法,它就能在程式碼中實現,情況就完全不同了。
- 我修復了 Redis 測試中偶發性的失敗。這是非常惱人的工作,涉及時序相關的問題、TCP 死結狀況等等。Claude Code 花了所有必要的時間反覆嘗試以重現問題,檢視行程狀態來釐清發生了什麼,然後修好了這些錯誤。
- 昨天我想要一個能對 BERT 這類嵌入模型做推論的純 C 函式庫。Claude Code 在 5 分鐘內就把它做出來了。輸出結果相同,速度也相當(只慢了 15%)——相較於 PyTorch。700 行程式碼。還有一個用來轉換 GTE-small 模型的 Python 工具。
- 過去幾週我對 Redis Streams 的內部實作做了修改。我手上有一份為這份工作寫的設計文件。我試著把它交給 Claude Code,它就在大概 20 分鐘甚至更短的時間內重現了我的成果(主要是因為我檢查和授權執行指令的速度比較慢)。
要無視正在發生的現實,根本是不可能的事。在很大程度上,寫程式已經不再是必要的工作。現在更有意思的是去理解要做什麼,以及該怎麼做(而關於後者,LLM 也是絕佳的夥伴)。AI 公司能否回本、股市會不會崩盤,都不重要。長期來看,那些全都無關緊要。某家獨角獸的這個或那個執行長說了什麼讓人不舒服或荒謬的話,也無關緊要。無論如何,程式設計已經永遠改變了。
那我對於自己寫過、被 LLM 拿去訓練的那些程式碼,有什麼感覺?我感到很榮幸能成為其中的一部分,因為我將此視為我一生努力的延續:讓程式碼、系統、知識走向民主化。LLM 將幫助我們更快地寫出更好的軟體,也將讓小團隊有機會與大公司競爭。就像開源軟體在 90 年代所做的一樣。
然而,這項技術實在太重要,不能只掌握在少數幾家公司手裡。就目前而言,你或許能在預訓練上做得更好,或用遠比他人更有效的方式做強化學習,但開放模型,特別是中國產出的那些,仍持續與封閉實驗室的前沿模型競爭(即使仍有落後)。到目前為止,AI 的民主化還算足夠,儘管並不完美。但是:未來是否仍會如此,完全無法保證。我對集中化感到恐懼。同時,我相信大規模的神經網路確實能做到不可思議的事,而且當前的前沿 AI 並沒有多到讓其他實驗室與團隊無法追上的魔法(否則就很難解釋,為何 OpenAI、Anthropic 和 Google 的成果多年來會如此接近)。
身為一名程式設計師,我現在想比以往寫更多開源程式。我想改進那些因時間不足而被我擱置的儲存庫。我想把 AI 應用到我的 Redis 工作流程中。改進 Vector Sets 的實作,然後是其他資料結構,就像我現在對 Streams 做的那樣。
但我擔心那些將會被解僱的人。未來的動態會如何發展,仍不明朗:企業會試圖雇用更多人、打造更多東西嗎?還是會試圖削減人事成本,只留下少數更擅長下提示的程式設計師?而且,恐怕還有其他領域的人類將變得完全可被取代。
那麼,社會的解方是什麼?畢竟,創新是無法收回的。我認為我們應該投票給那些認清正在發生的事、並願意支持失業者的政府。而且,被解僱的人越多,要求投票給能提供一定保障者的政治壓力就越大。但我也期待 AI 可能帶來的好處:在科學上的新進展,或許能減輕人類處境中那些並不總是快樂的苦難。
總之,回到程式設計。我只有一個建議要給你,我的朋友。無論你相信什麼才是正確的事,你都無法透過拒絕眼前正在發生的事來掌控它。跳過 AI 對你或你的職涯不會有任何幫助。好好想一想。用心地、投入數週的時間去測試這些新工具,而不是做個五分鐘的測試,只為了強化你既有的信念。找到一種讓自己倍增的方法,如果這次對你行不通,過幾個月再試一次。
是的,也許你會想,你如此辛苦才學會寫程式,現在卻由機器代勞了。但當年你熬夜寫程式、只為看到專案跑起來的那股內心的熱火是什麼?那是創造。現在,只要你找到有效運用 AI 的方法,你就能打造得更多、更好。那份樂趣依然存在,絲毫未減。
隨機一篇部落格
留言
登入後參與討論