当前位置: 首页>JAVA>正文

精讀一篇論文需要多久,CodeX論文精讀

精讀一篇論文需要多久,CodeX論文精讀

論文:《Evaluating Large Language Models Trained on Code》

下載地址:https://arxiv.org/pdf/2107.03374.pdf

簡介

Copilot的核心技術:給定函數名和功能描述,可以自動進行代碼補全,或者給定代碼,給出相關文檔

作者團隊收集了Github上所有的不重復的python代碼,總計179GB,并進行了簡單過濾(去掉了過大的文件(>1MB)和過長的代碼(>100行或單行超過1000個字符)),在數據集上面訓練了一個GPT3模型

效果

精讀一篇論文需要多久、作者團隊手動編寫了164個函數(避免數據泄漏),每個函數包括代碼、文檔以及單元測試,平均每個問題包括7.7個測試樣例,用于評估模型。Codex 12億參數的模型能解決28.8%的問題,3億參數的模型能解決13.2%的問題,作者團隊又收集了一個跟測試集差不多的數據集用于模型微調,微調以后,得到Codex-S可以解決37.7%的問題。而使用 repeated sampling,即運行一百次模型,只要有一個輸出解決了問題就算成功的話,那么Codex-S能解決77.5%的問題(CodeX能解決70.2%),而如果選擇100個輸出中概率最高的輸出,則能解決44.5%的問題。

細節

1. 目標函數沒有使用BLEU(困惑度),因為代碼不同于自然語言,即使特別相似,但仍然可能不是一個合法的語句,作者使用pass@k來評估模型,即生成n個輸出(n>k),從中隨機抽取k個輸出,輸出通過單元測試的概率

穩定實現

2. 輸出代碼的測試在沙盒中進行

3. 在GPT3原有模型上微調并不能取得更好的效果,但會加速收斂

精讀與泛讀議論文,4. 當模型輸出‘\nclass’, ‘\ndef’, ‘\n#’, ‘\nif’, or‘\nprint’等語句時,模型會終止推理,輸出結果

5. 使用nucleus sampling(核采樣):選擇概率總和p=95%的前k個輸出用于評估模型

6. 對輸出做softmax得到概率之前,會除以一個超參數Temperature,來調節不同輸出之間的概率差距,當pass@k中的采樣數k越大時,T越大效果越好

7. 收集了跟測試集類似的數據集用于微調,1)從各種比賽中收集賽題(大約一萬個),2)從Continuous Integration中收集了約40000個函數和單元測試,并過濾(CodeX對每個問題生成一百個輸出,如果能解決通過測試用例則保留該樣本,反之則去掉(不能通過表示該問題太難或測試用例有問題)),在這個數據集上繼續訓練,訓練方式相同,只是該數據集有“標準答案”,得到模型Code-S

8. 使用收集到的github數據集,重新訓練一個GPT3模型用于反向生成文檔,Codex-D,評測Codex-D模型好壞的方式是,一是人閱讀文檔評測模型好壞,二是使用生成的文檔重新生成代碼,看能否通過單元測試

模型局限性

高級英語精讀精解和教材全解。1. 樣本有效性不夠,需要訓練很多的代碼,模型才能輸出比較簡單的實驗

2. Prompt應該怎么寫才能獲得比較理想的代碼,作者找了13 basic building block(對字符串做一些簡單的操作:如改變大小寫、變換位置等),將文檔塊任意串起來,發現文檔越長,生成代碼的質量越差,說明docstring不宜過長

3. 對于精確、復雜的數學問題很難生成正確的代碼

模型潛在的影響

1. 過度依賴:

語言學教程精讀精解。人可能會過度依賴生成的代碼,如果使用者不仔細審查代碼,可能會給程序帶來潛在的問題

2. Misalignment:模型足夠復雜的時候,可能能輸出期望的代碼,但如果給定一個docstring,可能只能輸出一個跟訓練數據風格相似,看上去正確,但并不是期望的代碼

3. github男性用戶居多,所寫的代碼可能包含性別偏見

4. 市場和經濟:

很多程序員可能會失業?

語言學精讀精解PDF第5版,如果訓練數據里的代碼對于某些包使用較多,可能導致某些特別的工具使用率增多

5. 安全:

可能某些人用它寫病毒和惡意軟件

6. 訓練這樣一個模型需要使用很多資源

7. 法律:

如何精讀論文?使用的是公開代碼,fair use(對公共社會有好處的話并沒有什么問題),但用于商業行為可能會有法律風險

生成的代碼可能跟別人一模一樣,可能存在抄襲別人具有版權或者專利保護的代碼的風險

總結

作者爬了很多github的代碼,訓練了一個GPT3的模型,為了評估模型的效果,準備了146到題用于測試,發現大概能解決大概30%的題,效果還不錯,為了進一步提高分數,又收集了一個跟測試集相似的數據集,在上面微調。

https://www.nshth.com/java/313068.html
>

相关文章:

  • 精讀一篇論文需要多久
  • 精讀與泛讀議論文
  • 高級英語精讀精解和教材全解
  • 語言學教程精讀精解
  • 語言學精讀精解PDF第5版
  • 如何精讀論文
  • 讀書要精讀的論文依據
  • 精讀一篇論文
  • 任意進制轉換方法,Xamarin實現一個進制轉換器
  • 數據結構堆和棧的區別,【數據結構】什么是堆
  • 第二部分 java庫_Java編程概論——第二部分_學堂在線2020答案
  • java編譯器,java簡單代碼實現_java的簡單代碼實現
  • linux教程入門教程,MongoDB中不溜教程(1)簡介與命令
  • Java實驗作業11(Math)
  • java point類,Point(類與構造) C++
  • form軟件,Contact form 7插件使用介紹和常見問題解答
  • wordpress編輯器增強,wordpress更換模板影響網站SEO嗎?
  • 計算機直接成像的技術有哪些,計算成像技術
  • mp地面站遙控器校準,我發現P200一些基礎的操作像地面站校準,還有遙控器的設置,阿木的的鉑貝學院的視頻里面其實有了,免費可以看的!
  • 瘋狂Java講義:P200接口
  • 程序員的自我修養 pdf,《程序員的自我修養》讀書總結
  • 一字型掛架M019安裝方法,S905/S905M安裝LAKKA教程
  • b站黑馬Java就業班筆記P101-P200
  • 按合約最大需量暫停,展示量合約廣告
  • 可以強制取消移動卡合約嗎,【轉載】合約投放系統-介紹
  • java實現屏幕截圖功能,安卓adb截屏java_Android 截屏的各種騷操作
  • Docker你入門了嗎?一套騷指令帶你入門!
  • 樹莓派能做什么,樹莓派的騷操作
  • 【Java】面向對象繼承法舉例2——老師學生類
  • 上課總大聲跟著老師喊的學生,三學生上課玩手機遭批 喊十幾人圍砍老師
  • Java創建一個學生類,Java 小白 interface 與 implements 創建老師類和學生類,兩個類都實現了問候接口和工作接口,模擬上課的場景
  • 冒充家長打電話接孩子,騙子經常利用學生上課的時間給家長打電話行騙,主要是由于學生上課期間不方便接電話,家長無法與孩子親自溝通。()
  • 直播教育平臺開發—老師學生上課學習的好幫手
  • wet怎么讀,classes是什么意思怎么讀_“學生上課”是“take a class”,那“老師上課”用英語怎么說?...
  • 計算機用戶權限怎么設置,windows權限管理
  • win10圖標盾牌什么意思,windows 桌面圖標 隱藏 小盾牌標志
  • 諸葛亮渡瀘水的地方,第八十八回 渡瀘水再縛番王  識詐降三擒孟獲
  • docker環境變量,mysql path妙用