Meta發佈程式碼生成 AI 模型 Code Liama

Author Avatar

葉孝明

Joined: Feb 2022

Meta 打算在充滿競爭的生成式 AI 領域引起轟動,正在進行一場開源熱潮

來源: TechCrunch

照片來源: meta

繼發佈用於生成文本、語言翻譯和創建音訊的人工智慧模型后,該公司今天開源了Code Llama,這是一個機器學習系統,可以用自然語言(特別是英語)生成和解釋代碼。

類似於GitHub Copilot和Amazon CodeWhisperer,以及開源AI驅動的代碼生成器,如StarCoder,StableCode和PolyCoder,Code Llama可以完成代碼並調試各種程式設計語言的現有代碼,包括Python,C++,Java,PHP,Typescript,C#和Bash。  

“在 Meta,我們相信人工智慧模型,尤其是用於編碼的大型語言模型,在創新和安全性方面,從開放方法中受益最多,”Meta 在與 TechCrunch 分享的一篇博客文章中寫道。“公開的、特定於程式碼的模型可以促進新技術的開發,從而改善人們的生活。通過發佈像Code Llama這樣的代碼模型,整個社區都可以評估它們的能力,識別問題並修復漏洞。

Code Llama有多種風格,包括針對Python優化的版本和為理解指令而微調的版本(例如 “給我寫一個輸出斐波那契數列的函數”),它基於Meta本月早些時候開源的Llama 2文本生成模型。雖然Llama 2可以生成程式碼,但它不一定是好的程式碼 – 當然達不到像Copilot這樣的專用模型可以產生的品質。

在訓練Code Llama時,Meta使用了與訓練Llama 2相同的數據集 – 來自網路的公開來源的混合。但它的模型“強調”了包含代碼的訓練數據的子集。從本質上講,Code Llama 比 Llama 2(它的“父”模型)有更多的時間來學習代碼和自然語言之間的關係。

每個 Code Llama 模型的大小從 70 億個參數到 340 億個參數不等,使用 5000 億個代碼令牌以及與代碼相關的數據進行訓練。特定於Python的代碼Llama在1000億個Python代碼令牌上進行了進一步的微調,同樣,指令理解代碼Llama使用人類註釋者的反饋進行了微調,以生成“有用”和“安全”的問題答案。

對於上下文,參數是從歷史訓練數據中學習的模型部分,本質上定義了模型在問題上的技能,例如生成文本(或代碼,在這種情況下),而標記表示原始文本(例如“fan”,“tas”和“tic”表示單詞“太棒了”)。

幾個 Code Llama 模型可以將代碼插入到現有程式碼中,並且都可以接受大約 100000 個程式碼令牌作為輸入,而至少一個 – 70 億參數模型 – 可以在單個 GPU 上運行。其他需要更強大的硬體。Meta 聲稱,340 億個參數的模型是迄今為止開原始程式碼生成器中性能最好的,也是參數數量最多的。

你會認為代碼生成工具對程式師甚至非程式師都有巨大的吸引力——你不會錯的。

GitHub聲稱,目前有400多個組織正在使用Copilot,這些組織中的開發人員的編碼速度比以前快55%。在其他地方,程式設計問答網站Stack Overflow在最近的一項調查中發現,今年有70%的人已經在使用或計劃使用人工智慧編碼工具,理由是提高生產力和加快學習速度等好處。

但就像所有形式的生成式人工智慧一樣,編碼工具可能會脫軌,或者帶來新的風險。

斯坦福大學附屬的一個研究小組發現,使用人工智慧工具的工程師更有可能在其應用程式中造成安全漏洞。該團隊表示,這些工具通常會生成表面上正確的程式碼,但通過調用受感染的軟體和使用不安全的配置來帶來安全問題。

然後,房間裡有智慧財產權大象。

一些代碼生成模型——不一定是 Code Llama,儘管 Meta 不會斷然否認它——是在受版權保護或限制性許可證下的代碼上進行訓練的,這些模型可以以某種方式提示時反芻這些程式碼。法律專家認為,如果公司無意中將這些工具中的受版權保護的建議納入其生產軟體,這些工具可能會使公司面臨風險。

而且,雖然沒有證據表明它正在大規模發生,但開原始程式碼生成冷卻可用於製作惡意代碼。駭客已經嘗試微調現有模型,以執行諸如識別程式碼中的洩漏和漏洞以及編寫詐騙網頁等任務。

那麼 Code LIama呢?

※版權所有,歡迎媒體聯絡我們轉載;登錄本網按讚、留言、分享,皆可獲得 OCTOVERSE 點數(8-Coin),累積後可兌換獎品,相關辦法以官網公布為準※

新增留言