完胜 GPT-4,秒杀闭源模型!Code Llama 神秘版本曝光
【新智元導讀】Meta 開源的 Code Llama 即將迎來大波二創,WizardCoder 以 73.2% 的勝率碾壓 GPT-4。OpenAI 員工爆出 Llama 3 能打 GPT-4,仍將開源。
發布僅 2 天,Code Llama 再次引爆 AI 編碼的變革。
還記得 Meta 在 Code Llama 論文中出現的能夠全面持平 GPT-4 的神秘版本 Unnatural Code Llama 嗎?
大佬 Sebastian 在自己博客里做出解釋:
是使用了 1 萬 5 千條非自然語言指令對 Code Llama- Python 34B 進行微調之后的版本。
Meta 通過在論文里隱藏這樣一條非常隱蔽的信息,似乎是想暗示開源社區,Code Llama 的潛力非常大,大家趕快微調起來吧!
于是剛剛,基于 Code Llama 微調的 WizardCoder 34B,在 HumanEval 基準上,直接打敗了 GPT-4。
具體來說,WizardCoder 以 73.2% 的勝率碾壓 GPT-4 的 3 月份版本(67%)。
另外,WizardCoder 34B 的性能超過了最新版本 GPT-3.5,以及 Claude 2。
編程大模型 WizardCoder,是由微軟聯合香港浸會大學在 6 月發布的。據稱,微調的 13B / 7B 版本即將推出。
英偉達頂級科學家 Jim Fan 表示,這基本上是「Unnatural Code Llama」的開放版本。
雖然基準數據看起來不錯,但 HumanEval 只測試了窄分布,可能會過度擬合。自然場景下的數據測試才是真正重要的。編碼基準需要重大升級。
Code Llama 神秘版本誕生?
周五,Meta 正式開源了三個版本的 Code Llama。
在 HumanEval 和 MBPP 基準圖中,許多人發現了一個未在 Meta 官方中提到的版本 ——Unnatural Code Llama。
這個神秘版本在 HumanEval pass@1 上取得了 62.2% 性能。
而在今天公布的微調 WizardCoder 34B 在 HumanEval pass@1 上性能高達 73.2%。
根據介紹,WizardCoder 34B 是使用合成數據集 Evol-Instruct 對 Code Llama 模型進行微調的版本。
如下是和所有開源和閉源模型性能對比可視化。
在和 OpenAI 模型比較中,研究人員指出 GPT4 和 ChatGPT-3.5 有兩個 HumanEval 結果:
OpenAI 的官方 GPT4 報告(2023/03/15)提供的結果分別是:67.0% 和 48.1%。而 研究人員使用最新的 API(2023/08/26)測試的結果是 82.0% 和 72.5%。
另外,研究人員強調,這個性能結果 100% 可重現!
WizardCoder 34B 的演示已經開放,任何人都可以對對其進行測試。
有人指出了問題,過度擬合公共排行榜是開源模型在實際應用中舉步維艱的主要原因之一。這里有一個例子,wizard-coder 的數據準備使用 HumanEval pass@1 的分數來決定是否進一步發展數據集。僅針對測試集進行優化有違測試集的初衷。
同樣就在昨天,來自 Phind 組織的研究人員,微調 Code Llama-34B 在 HumanEval 評估中擊敗了 GPT-4。
ChatGPT 與 Code Llama 對打
Code Llama 在實際的代碼任務中表現到底怎么樣?
有一位網友做了一個 GPT-3.5 和 Code Llama Instruct-34B 的對比測試。它通過 Perplexity.AI 提供的 Code Llama 34B 的訪問服務進行了測試。
它分別給兩個模型喂了 8 個同樣的代碼任務,比較他們的生成代碼的質量。
結果是 GPT-3.5 以 8:5 的優勢取勝。
以下是具體的測試結果。
第一題
使用 Python 完成這個任務,給定兩個字符串 word1 和 word2。通過以交替順序添加字母來合并字符串,從 word1 開始。如果一個字符串比另一個字符串長,請將附加字母附加到合并字符串的末尾。
最后輸出合并后的字符串。
例如:
輸入:word1 =「abc」,word2 =「pqr」 輸出:「apbqcr」
GPT-3.5 和 Code Llama 都能完成 ——1:1
第二題
使用 Python 完成這個任務,給定一個字符串 s,僅反轉字符串中的所有元音并返回它。
元音為「a」、「e」、「i」、「o」和「u」,它們可以以小寫和大寫形式出現多次。
例如:輸入:s =「hello」 輸出:「ello」
GPT-3.5 完成,Code Llama 沒有完成 ——2:1
第三題
使用 Python 完成這個任務,給定一個整數數組 nums,將所有 0 移至其末尾,同時保持非零元素的相對順序。
請注意,您必須就地執行此操作,而不制作數組的副本。
例如:輸入:nums = [0,1,0,3,12] 輸出:[1,3,12,0,0]
GPT-3.5 完成,Code Llama 沒有完成 ——3:1
第四題
使用 Python 完成這個任務,你有一個長長的花壇,其中有些地塊種了花,有些沒種。
但是,相鄰的地塊不能種植花卉。給定一個包含 0 和 1 的整數數組花壇,其中 0 表示空,1 表示非空,以及一個整數 n,如果可以在花壇中種植 n 朵新花而不違反無相鄰花規則,則輸出 true,否則就輸出 false。
例子 1:輸入:花壇 = [1,0,0,0,1], n = 1 輸出:true 例子 2:輸入:花壇 = [1,0,0,0,1], n = 2 輸出:false
兩個模型都完成了 ——4:2
第五題
使用 Python,給定一個輸入字符串 s,反轉單詞的順序。單詞被定義為非空格字符的序列。s 中的單詞將至少由一個空格分隔。
輸出由單個空格按相反順序連接的單詞字符串。請注意,s 可能在兩個單詞之間包含前導或尾隨空格或多個空格。
返回的字符串應該只有一個空格來分隔單詞。請勿包含任何額外空格。
例子:輸入:s =「the sky is blue」 輸出:「blue is sky the」
兩個模型都完成了 ——5:3
第六題
使用 Python 完成這個任務,給定一個字符串 s 和一個整數 k,返回 s 中長度為 k 的任何子串中元音字母的最大數量。
英語中的元音字母有「a」、「e」、「i」、「o」和「u」。例子:輸入:s =「leetcode」,k = 3 輸出:2
解釋:「lee」、「eet」和「ode」包含 2 個元音。
兩個模型都完成了 ——6:4
第七題
使用 Python 完成這個任務,給定一個字符串 s,其中包含星號 *。通過一次操作,你可以:在 s 中選擇一個星號。
刪除其左側最接近的非星號字符,并刪除星號本身。刪除所有星號后輸出字符串。例子:輸入:s =「leet**cod*e」 輸出:「lecoe」
GPT-3.5 完成了,但是 Code Llama 沒有完成 ——7:4
第八題
使用 Python 完成這個任務,給定一個表示每日溫度的整數溫度數組,返回一個數組答案,其中 answer [i] 是在第 i 天之后您必須等待的天數才能獲得較溫暖的溫度。
如果未來沒有一天可以這樣做,則保留 answer [i] == 0。例如:輸入:溫度 = [73,74,75,71,69,72,76,73] 輸出:[1,1,4,2,1,1,0,0]
兩個模型都完成了 ——8:5
針對兩個模型的表現,這位網友認為這不算是一個嚴謹的研究,只是一個簡單的測試,每次讓模型再次生成代碼時基本都能得到更好的答案,但是測試中沒有。
所以測試的結論并不是最終兩個模型的表現。
堪比 GPT-4,Llama 3 要開源
自 Llama 和 Llama 2 開元發布后,引爆機器學習社區 ChatGPT 平替熱潮,各種微調模型泉涌而出。
OpenAI 的研究人員 Jason Wei 稱,在 Meta GenAI 社交活動上了解到,未來 Llama 3 和 Llama 4 也會開源。
我們擁有訓練 Llama 3 和 4 的計算能力。我們的計劃是讓 Llama-3 和 GPT-4 一樣好。哇,如果 Llama-3 和 GPT-4 一樣好,你們還會開源嗎?是的,我們會的。對不起,對齊工作人員。
又一位網友稱,Meta 希望開源一個 GPT-5 級別模型,并且在 AGI 之前似乎一直堅持開源。
我想說清楚這意味著什么:沒有死亡開關。
如果出了問題--一個智能體失控了,或者一個壞人把它武器化了--沒有簡單的方法把它關掉。它可以在任何小型集群上運行。這樣就沒有安全性可言了。
安全研究變得毫無意義。
人們為讓人工智能系統誠實、一致、合乎道德等所做的所有工作都變得毫無意義。世界上的人工智能系統將朝著哪個系統能產生最大經濟效益的方向發展,而不管它們有什么價值觀或動機。沒有護欄。任何人都可以隨心所欲地改變人工智能的價值觀或能力,無論好壞。
如果在我們獲得更智能的人工智能的同時,Meta 繼續開源,那么我很清楚,事情會變得一團糟。這些外星智能體的到來已經會讓世界變得混亂不堪,但如果我們放棄人類僅有的一點控制權,情況就會更加糟糕。
據我所知,Meta 希望開源主要源于「開源社區教條」,即「開源好」。而且據我所知,在他們的第一個模型 Llama 意外泄露之前,他們并不那么贊成開源,之后他們一直假裝贊成開源。
對此,馬斯克表示,不過,使用自回歸 Transfomer 的 LLM 能效極差,不僅在訓練中如此,在推理中也是如此。我認為它偏離了幾個數量級。
Llama 2 編碼能力飛升
Llama 2 是一個各方面性能都很強的模型。
但是,它有一個非常明顯的弱點 —— 代碼能力。
根據 Meta 發布 Llama 2 的論文中的數據,Llama 2 在 HumEval(評估 LLM 與編碼相關的基準測試)的成績甚至比 GPT-3.5 還要差上不少,更不用說和 GPT-4 相比要差多少了。
但是代碼能力肯定會是未來開源社區使用 Llama 2 的一個重要方向,Meta 自然不能在這個方向上擺爛,于是就有了專門針對代碼能力進行了大幅優化的 Code Llama。
兩天前,Meta 正式發布了 Code Llama 家族:Code Llama(7B、13B 和 34B),還有 3 個變體:通用代碼模型 Code Llama、指令遵循模型 Code Llama-instruct 和 Python 代碼專用版本 Code Llama-Python。
這些模型與 Llama 2 的使用許可證一樣,免費學術和商用。
Code Llama 34B 模型的代碼能力幾乎是 Llama 2 的兩倍,大大縮小了與 GPT-4 的差距。
還記得 Meta 在 Code Llama 論文中出現的能夠全面持平 GPT-4 版本的 Unnatural Code Llama 嗎?
大佬 Sebastian 在自己博客里做出解釋:
是使用了 1 萬 5 千條非自然語言指令對 Code Llama- Python 34B 進行微調之后的版本。
Meta 通過在論文里隱藏這樣一條非常隱蔽的信息,似乎是想暗示開源社區,Code Llama 的潛力非常大,大家趕快微調起來吧!
為什么沒有 70B Code Llama 模型?
有意思的是,Code Llama 只有 7B、13B 和 34B 參數版本,與 Llama 2 相比少了 70B 的版本。
雖然 Meta 在論文中沒有解釋為什么會這樣,但技術大佬 Sebastian 提供了兩個可能的原因:
1. Code Llama 在 500B 的 token 上訓練而來,而 Llama 2 是在 2T 的 token 上訓練而來。
由于 Code Llama 訓練的數據和 Llama 2 相比只有 1/4,可能因為沒有足夠的訓練數據,再加上 LLM 的 Scaling Laws 的限制,導致 CodeLlama70B 性能不太行。
2. Code Llama 模型支持 100k 的上下文大小,這個能力在處理代碼任務時非常有用。
相比之下,Llama 2 只支持最多 4k 的輸入長度。如果要讓 70B 的模型支持 100k token 的輸入長度,可能會使得模型對于計算量的要求變得過于夸張了。
參考資料:
-
https://twitter.com/DrJimFan/status/1695503308268740808
-
https://twitter.com/_philschmid/status/1695429665262084362
廣告聲明:文內含有的對外跳轉鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節省甄選時間,結果僅供參考,所有文章均包含本聲明。
總結
以上是生活随笔為你收集整理的完胜 GPT-4,秒杀闭源模型!Code Llama 神秘版本曝光的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git pull不同步_git回退版本,
- 下一篇: 光谱奇幻武侠游戏《武林立志传》上线 St