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

原文來源:新智元

圖片來源:由無界AI‌ 生成

發布僅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,在Human基准上,直接打敗了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」的開放版本。

雖然基準數據看起來不錯,但Human只測試了窄分佈,可能會過度擬合。自然場景下的數據測試才是真正重要的。編碼基準需要重大升級。

## **Code Llama神秘版本誕生? **

週五,Meta正式開源了三個版本的Code Llama。

在Human和MBPP基準圖中,許多人發現了一個未在Meta官方中提到的版本——Unnatural Code Llama。

這個神秘版本在Human pass@1上取得了62.2%性能。

而在今天公佈的微調WizardCoder 34B在Human pass@1上性能高達73.2%。

根據介紹,WizardCoder 34B是使用合成數據集Evol-Instruct對Code Llama模型進行微調的版本。

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

在和OpenAI模型比較中,研究人員指出GPT4和ChatGPT-3.5有兩個Human結果:

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

另外,研究人員強調,這個性能結果100%可重現!

WizardCoder 34B的演示已經開放,任何人都可以對對其進行測試。

有人指出了問題,過度擬合公共排行榜是開源模型在實際應用中舉步維艱的主要原因之一。這裡有一個例子,wizard-coder的數據準備使用Human pass@1的分數來決定是否進一步發展數據集。僅針對測試集進行優化有違測試集的初衷。

同樣就在昨天,來自Phind組織的研究人員,微調Code Llama-34B在Human評估中擊敗了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在Hum(評估LLM與編碼相關的基準測試)的成績甚至比GPT-3.5還要差上不少,更不用說和GPT-4相比要差多少了。

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

但是代碼能力肯定會是未來開源社區使用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性能不太行。

  1. Code Llama模型支持100k的上下文大小,這個能力在處理代碼任務時非常有用。

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

參考資料:

查看原文
本頁面內容僅供參考,非招攬或要約,也不提供投資、稅務或法律諮詢。詳見聲明了解更多風險披露。
  • 讚賞
  • 留言
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate.io APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • ไทย
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)