編譯 | 言征
出品 | 51CTO技術棧(微信號:blog51cto)
生成式人工智能是否會取代人類程序員?
可能不會。但使用生成式人工智能的人類可能會,可惜的是,現在還不是時候。
目前,我們正在見證LLM領域的激烈競爭。僅僅是谷歌的生成式人工智能產品就已經變得非常豐富——其最新的開放模型Gemma就是LLM快速縮小的最新例證(是時候稱它們為小型語言模型了嗎?)。
對于DevOps社區來說,更重要的是我們看到專門針對代碼生成的其他LLM的開發速度非常快,例如Meta最近更新的Code Llama 70B。自然,生成式人工智能讓不少開發者感到緊張。最近的一項研究中,近一半的開發者表示擔心自己當前的技術能力集在生成式人工智能世界中能否成功。
但這種擔憂真的有必要嗎?人類程序員消亡的報道可能言過其實了。人類甚至可能比他們意識到的有更多的時間為生成式人工智能主導的世界做準備。
事實上,開發者應該問的更恰當的問題不是“生成式人工智能會取代我的工作嗎?”而是“我應該使用哪個LLM?”
1.對于編程而言,大模型太大
大型語言模型(LLM)對軟件開發世界的承諾正在將程序員轉變為架構師。然而,并非所有LLM都完全相同,探討為什么甚至出現了更小型的LLM是值得的。
更強大的主流模型,如GPT-4和Claude 2,仍然幾乎無法解決不到5%的實際GitHub問題。ChatGPT仍然有很多幻覺:假變量,甚至是已經被棄用十多年的概念。此外,它讓無意義的東西看起來非常棒。你可以嘗試通過“提示工程”擺脫這種無意義,但對有益于上下文的數量有一個最佳點——過多會導致更混亂和隨機的結果,同時犧牲更多的處理能力。
2.大型語言模型在編程中的信任問題
大型語言模型(LLM)在編程中面臨的最大問題是信任。從歷史上看,主流LLM像大型數字吸塵器一樣不加選擇地吸收網上的一切,而沒有太多透明度來源數據。如果公司運輸的代碼中包含另一組織的版權代碼,即使只有百分之一,這也是一個問題。你可以想象一個噩夢般的召回場景,已經賣出的產品沒有可靠的功能來解決掉可疑代碼。
不過,LLM領域正在迅速變化。也許不久會搞定這個問題。
3.定制LLM方法的缺陷
不論是否存在缺陷,Meta的定制LLM方法已經引起了人們的重要關注,即大型語言模型并不是AI輔助代碼生成的唯一成功途徑。我們看到這一點在行業中得到了體現,行業正在為更小、更專注于編程的LLM(如BigCode、Codegen和CodeAlpaca)積聚動力。StarCoder是另一個例子,盡管它只有155億個參數,但在評估基準測試中發現它比最大的模型(如PaLM、LaMDA和LLaMA)表現更好。
這些選項各有優缺點,但最重要的是,小型模型將比大型模型更安全。如果你正在使用C++編程,你真的需要你的LLM充滿與“美國第三任總統是誰?”等無關的知識嗎?數據池越小,保持內容的相關性就越容易,模型的訓練成本就越低,你無意中竊取他人版權數據的可能性就越小。
2024年的DevOps團隊應該徹底研究市場上所有可用的LLM選項,而不是默認選擇最顯眼的。甚至可能值得為不同的用例使用多個LLM。
4.回到當前存在的問題:編碼不等于開發
如果生成式人工智能能夠完全勝任端到端的開發和構建人機界面,不會很快到來。
誠然,LLM能夠很好地與文本和圖像的元素進行交互。甚至還有一些工具可以將網頁設計轉換為前端代碼。然而,與編碼相比,人工智能單獨承擔與圖形和UI/UX工作流程相關的設計要困難得多(盡管并非不可能)。
編碼也只是開發的一部分。剩下的部分是投資于一些新穎的東西,弄清楚受眾是誰,將想法轉化為可構建的東西,以及進行完善。這就是人為因素的作用。
無論LLM變得多好,程序員都應該始終遵循一個原則:將每段代碼都視為自己的代碼。進行同行評審,并問你的同事:“這是好代碼嗎?”永遠不要盲目信任它。