大型語言模型對編碼來說是錯誤的嗎?
當目標是準確性、一致性、精通游戲或找到一個正確答案時,強化學習模型會擊敗生成式人工智能。
像GPT-4這樣的大型語言模型的興起令人矚目,它們能夠生成高度流暢、自信的文本。可悲的是,炒作也是如此:微軟的研究人員屏氣地將微軟資助的OpenAI GPT-4模型描述為展示“人工通用智能的火花”。
當然,除非微軟指的是產生幻覺的傾向,生成的錯誤文本肯定是錯誤的。GPT還不擅長下棋和圍棋等游戲,不擅長數學,編寫的代碼可能有錯誤和微妙的漏洞。
這并不意味著大型語言模型都是炒作。一點也不相反,這意味著我們在關于生成式人工智能(GenAI)的對話中需要一些視角,而不是夸大其詞。
正如IEEESpectrum的一篇文章所詳述的那樣,一些專家,例如OpenAI的IlyaSutskever,認為添加帶有人類反饋的強化學習可以消除LLM幻覺。但是其他人,比如Meta的YannLeCun和GeoffHinton(最近從Google退休),認為大型語言模型中更根本的缺陷在起作用。兩人都認為,大型語言模型缺乏非語言知識,而非語言知識對于理解語言所描述的潛在現實是至關重要的。
在一次采訪中,Diffblue公司首席執行官MathewLodge認為,有一種更好的方法。他說,“小型、快速、運行成本低廉的強化學習模型,在從玩游戲到編寫代碼的各種任務中,都能輕松擊敗擁有千億參數的大型語言模型。”
我們是否在錯誤的地方尋找人工智能黃金?
正如Lodge所說,生成式人工智能肯定有它的一席之地,但我們可能正試圖將其強行引入強化學習更好的領域。以游戲為例。
國際象棋大師LevyRozman發布了一段他與ChatGPT對弈的視頻。這個模型做出了一系列荒謬和非法的動作,包括捕捉自己的棋子。最好的開源國際象棋軟件(Stockfish,它根本不使用神經網絡)讓ChatGPT在不到10步的時間里擊敗,因為大型語言模型找不到合法的走法。這是一個很好的證明,大型語言模型遠遠達不到通用人工智能的宣傳,這并不是一個孤立的例子。
谷歌AlphaGo是目前最好的圍棋人工智能,它是由強化學習驅動的。強化學習的工作原理是為一個問題生成不同的解決方案,嘗試它們,使用結果來改進下一個建議,然后重復這個過程數千次以找到最佳結果。
在AlphaGo的例子中,人工智能會嘗試不同的走法,并預測這是否是一個好走法,以及它是否有可能從這個位置贏得比賽。它使用反饋來“跟蹤”有希望的移動序列,并生成其他可能的移動。其效果是對可能的移動進行搜索。
這個過程被稱為概率搜索。你不可能嘗試所有的招式(招式太多了),但可以花時間搜索可能找到最佳招式的區域。這對于玩游戲來說非常有效。AlphaGo過去曾擊敗過圍棋大師。AlphaGo并非萬無一失,但它目前的表現比當今最好的大型語言模型還要好。
概率與準確性
當有證據表明大型語言模型的表現明顯落后于其他類型的人工智能時,支持者認為大型語言模型“會變得更好”。然而,根據Lodge的說法,“如果我們同意這個觀點,我們需要理解為什么他們會在這類任務中做得更好。”他繼續說,這就是事情變得困難的地方,因為沒有人能預測GPT-4對特定提示會產生什么效果。這種模式是人類無法解釋的。他認為,這就是“‘即時工程’不存在的原因。”他強調,對于人工智能研究人員來說,證明大型語言模型的“涌現特性”存在也是一場斗爭,更不用說預測它們了。
可以說,最好的論證是歸納法。GPT-4在一些語言任務上比GPT-3更好,因為它更大。因此,更大的模型會更好。
Lodge認為:“唯一的問題是,GPT-4仍在努力完成OpenAI指出的GPT-3所面臨的挑戰。數學就是其中之一;GPT-4在加法運算方面優于GPT-3,但在乘法和其他數學運算方面仍存在困難。
使語言模型更大并不能神奇地解決這些難題,甚至OpenAI也說更大的模型不是答案。原因歸結為大型語言模型的基本性質,正如OpenAI論壇所指出的那樣:“大型語言模型本質上是概率性的,并且通過根據他們在訓練數據中觀察到的模式生成可能的輸出來運行。在數學和物理問題中,可能只有一個正確答案,而且生成這個答案的可能性非常低。”
相比之下,由強化學習驅動的人工智能在產生準確結果方面要好得多,因為這是一個尋求目標的人工智能過程。強化學習有意地朝著期望的目標迭代,旨在產生它能找到的最接近目標的最佳答案。Lodge指出,大型語言模型課程“并不是為了迭代或尋找目標而設計的。它們的設計目的是給出‘足夠好’的一次或幾次回答。”
“一次性”答案是模型產生的第一個答案,它是通過預測提示中的一系列單詞而獲得的。在“幾次射擊”方法中,模型被給予額外的樣本或提示,以幫助它做出更好的預測。大型語言模型通常也會加入一些隨機性(也就是說,它們是“隨機的”),以增加更好的回答的可能性,所以他們會對同樣的問題給出不同的答案。
并不是說大型語言模型世界忽視了強化學習。GPT-4結合了“強化學習與人類反饋”(RLHF)。這意味著核心模型隨后由人類操作員訓練,使其更喜歡某些答案,但從根本上說,這不會改變模型首先生成的答案。例如,Lodge說,大型語言模型可能會生成以下選項來完成句子“韋恩?格雷茨基喜歡冰....”。
1.韋恩?格雷茨基喜歡冰淇淋。
2.韋恩?格雷茨基喜歡冰球。
3.韋恩?格雷茨基喜歡冰上釣魚。
4.韋恩?格雷茨基喜歡滑冰。
5.韋恩?格雷茨基喜歡冰酒。
人工操作員對答案進行排序,可能會認為加拿大傳奇冰球運動員更喜歡冰球和滑冰,盡管冰淇淋有著廣泛的吸引力。人類的排名和更多的人類寫的回答被用來訓練模型。請注意,GPT-4并沒有假裝準確地知道韋恩?格雷茨基的偏好,只是在提示下最可能的完成。
最后,大型語言模型的設計并不是高度準確或一致的。在準確性和確定性行為之間存在一種權衡,以換取普遍性。對Lodge來說,所有這些都意味著,在大規模應用人工智能方面,強化學習擊敗了生成式人工智能。
將強化學習應用于軟件
軟件開發呢?正如我所寫的,GenAI已經為那些使用GitHubCopilot或AmazonCodeWhisperer等工具提高生產力的開發人員提供了機會。這不是猜測——它已經發生了。這些工具根據集成開發環境中插入點前后的代碼預測接下來可能出現的代碼。
事實上,正如VisualStudio雜志的DavidRamel所言,最新版本的Copilot已經生成了61%的Java代碼。對于那些擔心這會減少軟件開發人員工作的人,請記住,這些工具需要勤奮的人工監督來檢查完成情況,并對其進行編輯,以使代碼正確編譯和運行。自IDE誕生之初,自動補全功能就一直是IDE的主要功能,而Copilot和其他代碼生成器使它變得更加有用。但是大規模的自主編碼(實際上需要編寫61%的Java代碼)就不是這樣了。
然而,強化學習可以進行精確的大規模自主編碼,Lodge說。當然,他這么說是出于既得利益:2019年,他的公司Diffblue發布了基于強化學習的商業單元測試編寫工具Cover。Cover在沒有人工干預的情況下編寫完整的單元測試套件,使大規模自動化復雜的、容易出錯的任務成為可能。
Lodge有偏見嗎?絕對的。但他也有很多經驗來支持他的信念,即強化學習在軟件開發方面可以勝過GenAI。如今,Diffblue使用強化學習來搜索所有可能的測試方法的空間,為每個方法自動編寫測試代碼,并在編寫的測試中選擇最佳測試。強化學習的獎勵函數基于各種標準,包括測試的覆蓋率和美學,其中包括看起來像是人類編寫的編碼風格。該工具平均在一秒鐘內為每種方法創建測試。
Lodge認為,如果目標是為一個沒有人理解的程序自動編寫10,000個單元測試,那么強化學習是唯一真正的解決方案。“大型語言模型無法競爭;人類沒有辦法有效地監督它們,并在這種規模上糾正它們的代碼,使模型更大、更復雜并不能解決這個問題。”
結論:大型語言模型最強大的地方在于它們是通用語言處理器。他們可以完成沒有受過明確訓練的語言任務。這意味著他們可以在內容生成(文案)和許多其他事情上做得很好。Lodge強調:“但這并不能使大型語言模型成為人工智能模型的替代品,人工智能模型通常基于強化學習,后者更準確、更一致,而且可以大規模使用。”