設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

完勝 GPT-4,秒殺閉源模型!Code Llama 神秘版本曝光

新智元 2023/8/27 15:20:52 責(zé)編:遠(yuǎn)洋

【新智元導(dǎo)讀】Meta 開源的 Code Llama 即將迎來大波二創(chuàng),WizardCoder 以 73.2% 的勝率碾壓 GPT-4。OpenAI 員工爆出 Llama 3 能打 GPT-4,仍將開源。

發(fā)布僅 2 天,Code Llama 再次引爆 AI 編碼的變革。

還記得 Meta 在 Code Llama 論文中出現(xiàn)的能夠全面持平 GPT-4 的神秘版本 Unnatural Code Llama 嗎?

大佬 Sebastian 在自己博客里做出解釋:

是使用了 1 萬 5 千條非自然語言指令對(duì) Code Llama- Python 34B 進(jìn)行微調(diào)之后的版本。

Meta 通過在論文里隱藏這樣一條非常隱蔽的信息,似乎是想暗示開源社區(qū),Code Llama 的潛力非常大,大家趕快微調(diào)起來吧!

于是剛剛,基于 Code Llama 微調(diào)的 WizardCoder 34B,在 HumanEval 基準(zhǔn)上,直接打敗了 GPT-4。

具體來說,WizardCoder 以 73.2% 的勝率碾壓 GPT-4 的 3 月份版本(67%)。

另外,WizardCoder 34B 的性能超過了最新版本 GPT-3.5,以及 Claude 2。

編程大模型 WizardCoder,是由微軟聯(lián)合香港浸會(huì)大學(xué)在 6 月發(fā)布的。據(jù)稱,微調(diào)的 13B / 7B 版本即將推出。

英偉達(dá)頂級(jí)科學(xué)家 Jim Fan 表示,這基本上是「Unnatural Code Llama」的開放版本。

雖然基準(zhǔn)數(shù)據(jù)看起來不錯(cuò),但 HumanEval 只測(cè)試了窄分布,可能會(huì)過度擬合。自然場(chǎng)景下的數(shù)據(jù)測(cè)試才是真正重要的。編碼基準(zhǔn)需要重大升級(jí)。

Code Llama 神秘版本誕生?

周五,Meta 正式開源了三個(gè)版本的 Code Llama。

在 HumanEval 和 MBPP 基準(zhǔn)圖中,許多人發(fā)現(xiàn)了一個(gè)未在 Meta 官方中提到的版本 ——Unnatural Code Llama。

這個(gè)神秘版本在 HumanEval pass@1 上取得了 62.2% 性能。

而在今天公布的微調(diào) WizardCoder 34B 在 HumanEval pass@1 上性能高達(dá) 73.2%。

根據(jù)介紹,WizardCoder 34B 是使用合成數(shù)據(jù)集 Evol-Instruct 對(duì) Code Llama 模型進(jìn)行微調(diào)的版本。

如下是和所有開源和閉源模型性能對(duì)比可視化。

在和 OpenAI 模型比較中,研究人員指出 GPT4 和 ChatGPT-3.5 有兩個(gè) HumanEval 結(jié)果:

OpenAI 的官方 GPT4 報(bào)告(2023/03/15)提供的結(jié)果分別是:67.0% 和 48.1%。而 研究人員使用最新的 API(2023/08/26)測(cè)試的結(jié)果是 82.0% 和 72.5%。

另外,研究人員強(qiáng)調(diào),這個(gè)性能結(jié)果 100% 可重現(xiàn)!

WizardCoder 34B 的演示已經(jīng)開放,任何人都可以對(duì)對(duì)其進(jìn)行測(cè)試。

有人指出了問題,過度擬合公共排行榜是開源模型在實(shí)際應(yīng)用中舉步維艱的主要原因之一。這里有一個(gè)例子,wizard-coder 的數(shù)據(jù)準(zhǔn)備使用 HumanEval pass@1 的分?jǐn)?shù)來決定是否進(jìn)一步發(fā)展數(shù)據(jù)集。僅針對(duì)測(cè)試集進(jìn)行優(yōu)化有違測(cè)試集的初衷。

同樣就在昨天,來自 Phind 組織的研究人員,微調(diào) Code Llama-34B 在 HumanEval 評(píng)估中擊敗了 GPT-4。

ChatGPT 與 Code Llama 對(duì)打

Code Llama 在實(shí)際的代碼任務(wù)中表現(xiàn)到底怎么樣?

有一位網(wǎng)友做了一個(gè) GPT-3.5 和 Code Llama Instruct-34B 的對(duì)比測(cè)試。它通過 Perplexity.AI 提供的 Code Llama 34B 的訪問服務(wù)進(jìn)行了測(cè)試。

它分別給兩個(gè)模型喂了 8 個(gè)同樣的代碼任務(wù),比較他們的生成代碼的質(zhì)量。

結(jié)果是 GPT-3.5 以 8:5 的優(yōu)勢(shì)取勝。

以下是具體的測(cè)試結(jié)果。

第一題

使用 Python 完成這個(gè)任務(wù),給定兩個(gè)字符串 word1 和 word2。通過以交替順序添加字母來合并字符串,從 word1 開始。如果一個(gè)字符串比另一個(gè)字符串長,請(qǐng)將附加字母附加到合并字符串的末尾。

最后輸出合并后的字符串。

例如:

輸入:word1 =「abc」,word2 =「pqr」  輸出:「apbqcr」

GPT-3.5 和 Code Llama 都能完成 ——1:1

第二題 

使用 Python 完成這個(gè)任務(wù),給定一個(gè)字符串 s,僅反轉(zhuǎn)字符串中的所有元音并返回它。

元音為「a」、「e」、「i」、「o」和「u」,它們可以以小寫和大寫形式出現(xiàn)多次。

例如:輸入:s =「hello」   輸出:「ello」

GPT-3.5 完成,Code Llama 沒有完成 ——2:1

第三題

使用 Python 完成這個(gè)任務(wù),給定一個(gè)整數(shù)數(shù)組 nums,將所有 0 移至其末尾,同時(shí)保持非零元素的相對(duì)順序。

請(qǐng)注意,您必須就地執(zhí)行此操作,而不制作數(shù)組的副本。

例如:輸入:nums = [0,1,0,3,12]   輸出:[1,3,12,0,0]

GPT-3.5 完成,Code Llama 沒有完成 ——3:1

第四題

使用 Python 完成這個(gè)任務(wù),你有一個(gè)長長的花壇,其中有些地塊種了花,有些沒種。

但是,相鄰的地塊不能種植花卉。給定一個(gè)包含 0 和 1 的整數(shù)數(shù)組花壇,其中 0 表示空,1 表示非空,以及一個(gè)整數(shù) n,如果可以在花壇中種植 n 朵新花而不違反無相鄰花規(guī)則,則輸出 true,否則就輸出 false。

例子 1:輸入:花壇 = [1,0,0,0,1], n = 1   輸出:true 例子 2:輸入:花壇 = [1,0,0,0,1], n = 2   輸出:false

兩個(gè)模型都完成了 ——4:2

第五題

使用 Python,給定一個(gè)輸入字符串 s,反轉(zhuǎn)單詞的順序。單詞被定義為非空格字符的序列。s 中的單詞將至少由一個(gè)空格分隔。

輸出由單個(gè)空格按相反順序連接的單詞字符串。請(qǐng)注意,s 可能在兩個(gè)單詞之間包含前導(dǎo)或尾隨空格或多個(gè)空格。

返回的字符串應(yīng)該只有一個(gè)空格來分隔單詞。請(qǐng)勿包含任何額外空格。

例子:輸入:s =「the sky is blue」   輸出:「blue is sky the」

兩個(gè)模型都完成了 ——5:3

第六題

使用 Python 完成這個(gè)任務(wù),給定一個(gè)字符串 s 和一個(gè)整數(shù) k,返回 s 中長度為 k 的任何子串中元音字母的最大數(shù)量。

英語中的元音字母有「a」、「e」、「i」、「o」和「u」。例子:輸入:s =「leetcode」,k = 3   輸出:2

解釋:「lee」、「eet」和「ode」包含 2 個(gè)元音。

兩個(gè)模型都完成了 ——6:4

第七題

使用 Python 完成這個(gè)任務(wù),給定一個(gè)字符串 s,其中包含星號(hào) *。通過一次操作,你可以:在 s 中選擇一個(gè)星號(hào)。

刪除其左側(cè)最接近的非星號(hào)字符,并刪除星號(hào)本身。刪除所有星號(hào)后輸出字符串。例子:輸入:s =「leet**cod*e」   輸出:「lecoe」

GPT-3.5 完成了,但是 Code Llama 沒有完成 ——7:4

第八題

使用 Python 完成這個(gè)任務(wù),給定一個(gè)表示每日溫度的整數(shù)溫度數(shù)組,返回一個(gè)數(shù)組答案,其中 answer [i] 是在第 i 天之后您必須等待的天數(shù)才能獲得較溫暖的溫度。

如果未來沒有一天可以這樣做,則保留 answer [i] == 0。例如:輸入:溫度 = [73,74,75,71,69,72,76,73]   輸出:[1,1,4,2,1,1,0,0]

兩個(gè)模型都完成了 ——8:5

針對(duì)兩個(gè)模型的表現(xiàn),這位網(wǎng)友認(rèn)為這不算是一個(gè)嚴(yán)謹(jǐn)?shù)难芯?,只是一個(gè)簡單的測(cè)試,每次讓模型再次生成代碼時(shí)基本都能得到更好的答案,但是測(cè)試中沒有。

所以測(cè)試的結(jié)論并不是最終兩個(gè)模型的表現(xiàn)。

堪比 GPT-4,Llama 3 要開源

自 Llama 和 Llama 2 開源發(fā)布后,引爆機(jī)器學(xué)習(xí)社區(qū) ChatGPT 平替熱潮,各種微調(diào)模型泉涌而出。

OpenAI 的研究人員 Jason Wei 稱,在 Meta GenAI 社交活動(dòng)上了解到,未來 Llama 3 和 Llama 4 也會(huì)開源。

我們擁有訓(xùn)練 Llama 3 和 4 的計(jì)算能力。我們的計(jì)劃是讓 Llama-3 和 GPT-4 一樣好。哇,如果 Llama-3 和 GPT-4 一樣好,你們還會(huì)開源嗎?是的,我們會(huì)的。對(duì)不起,對(duì)齊工作人員。

又一位網(wǎng)友稱,Meta 希望開源一個(gè) GPT-5 級(jí)別模型,并且在 AGI 之前似乎一直堅(jiān)持開源。

我想說清楚這意味著什么:沒有死亡開關(guān)。

如果出了問題--一個(gè)智能體失控了,或者一個(gè)壞人把它武器化了--沒有簡單的方法把它關(guān)掉。它可以在任何小型集群上運(yùn)行。這樣就沒有安全性可言了。

安全研究變得毫無意義。

人們?yōu)樽屓斯ぶ悄芟到y(tǒng)誠實(shí)、一致、合乎道德等所做的所有工作都變得毫無意義。世界上的人工智能系統(tǒng)將朝著哪個(gè)系統(tǒng)能產(chǎn)生最大經(jīng)濟(jì)效益的方向發(fā)展,而不管它們有什么價(jià)值觀或動(dòng)機(jī)。沒有護(hù)欄。任何人都可以隨心所欲地改變?nèi)斯ぶ悄艿膬r(jià)值觀或能力,無論好壞。

如果在我們獲得更智能的人工智能的同時(shí),Meta 繼續(xù)開源,那么我很清楚,事情會(huì)變得一團(tuán)糟。這些外星智能體的到來已經(jīng)會(huì)讓世界變得混亂不堪,但如果我們放棄人類僅有的一點(diǎn)控制權(quán),情況就會(huì)更加糟糕。

據(jù)我所知,Meta 希望開源主要源于「開源社區(qū)教條」,即「開源好」。而且據(jù)我所知,在他們的第一個(gè)模型 Llama 意外泄露之前,他們并不那么贊成開源,之后他們一直假裝贊成開源。

對(duì)此,馬斯克表示,不過,使用自回歸 Transfomer 的 LLM 能效極差,不僅在訓(xùn)練中如此,在推理中也是如此。我認(rèn)為它偏離了幾個(gè)數(shù)量級(jí)。

Llama 2 編碼能力飛升

Llama 2 是一個(gè)各方面性能都很強(qiáng)的模型。

但是,它有一個(gè)非常明顯的弱點(diǎn) —— 代碼能力。

根據(jù) Meta 發(fā)布 Llama 2 的論文中的數(shù)據(jù),Llama 2 在 HumEval(評(píng)估 LLM 與編碼相關(guān)的基準(zhǔn)測(cè)試)的成績甚至比 GPT-3.5 還要差上不少,更不用說和 GPT-4 相比要差多少了。

來自原始 Llama 2 論文的注釋圖

但是代碼能力肯定會(huì)是未來開源社區(qū)使用 Llama 2 的一個(gè)重要方向,Meta 自然不能在這個(gè)方向上擺爛,于是就有了專門針對(duì)代碼能力進(jìn)行了大幅優(yōu)化的 Code Llama。

兩天前,Meta 正式發(fā)布了 Code Llama 家族:Code Llama(7B、13B 和 34B),還有 3 個(gè)變體:通用代碼模型 Code Llama、指令遵循模型 Code Llama-instruct 和 Python 代碼專用版本 Code Llama-Python。

這些模型與 Llama 2 的使用許可證一樣,免費(fèi)學(xué)術(shù)和商用。

Code Llama 34B 模型的代碼能力幾乎是 Llama 2 的兩倍,大大縮小了與 GPT-4 的差距。

還記得 Meta 在 Code Llama 論文中出現(xiàn)的能夠全面持平 GPT-4 版本的 Unnatural Code Llama 嗎?

大佬 Sebastian 在自己博客里做出解釋:

是使用了 1 萬 5 千條非自然語言指令對(duì) Code Llama- Python 34B 進(jìn)行微調(diào)之后的版本。

Meta 通過在論文里隱藏這樣一條非常隱蔽的信息,似乎是想暗示開源社區(qū),Code Llama 的潛力非常大,大家趕快微調(diào)起來吧!

為什么沒有 70B Code Llama 模型?

有意思的是,Code Llama 只有 7B、13B 和 34B 參數(shù)版本,與 Llama 2 相比少了 70B 的版本。

雖然 Meta 在論文中沒有解釋為什么會(huì)這樣,但技術(shù)大佬 Sebastian 提供了兩個(gè)可能的原因:

1. Code Llama 在 500B 的 token 上訓(xùn)練而來,而 Llama 2 是在 2T 的 token 上訓(xùn)練而來。

由于 Code Llama 訓(xùn)練的數(shù)據(jù)和 Llama 2 相比只有 1/4,可能因?yàn)闆]有足夠的訓(xùn)練數(shù)據(jù),再加上 LLM 的 Scaling Laws 的限制,導(dǎo)致 CodeLlama70B 性能不太行。

2. Code Llama 模型支持 100k 的上下文大小,這個(gè)能力在處理代碼任務(wù)時(shí)非常有用。

相比之下,Llama 2 只支持最多 4k 的輸入長度。如果要讓 70B 的模型支持 100k token 的輸入長度,可能會(huì)使得模型對(duì)于計(jì)算量的要求變得過于夸張了。

參考資料:

  • https://twitter.com/DrJimFan/status/1695503308268740808

  • https://twitter.com/_philschmid/status/1695429665262084362

廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:meta大模型,Llama

軟媒旗下網(wǎng)站: IT之家 最會(huì)買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會(huì)買 要知