精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

AI編程輔助 | 基于代碼生成模型的實踐 精華

發布于 2024-7-11 10:03
瀏覽
0收藏

一、編程輔助例子

GitHub Copilot[1]基于OpenAI的Codex[2]模型(GPT-3[3]的后代)實現,可以在代碼編寫的時候實時地提供代碼補全建議和注釋,并且在多個編輯器的插件市場都可以下載使用。

不管是從Copilot官網上的例子,還是在互聯網上搜索關于Copilot的使用案例,你都可以發現它比一般的代碼補全工具更為先進和靈活,它不僅能補全代碼,更能創造代碼,通過理解使用者簡單的自然語言指令,它能夠按照這些指令直接構建代碼片段,并且正確率超過4成。

AI編程輔助 | 基于代碼生成模型的實踐-AI.x社區

      圖1 Copilot示例-注釋生成代碼

另外在代碼補全功能上Copilot每次可以提供多個建議,你可以從多個候選項中選擇合適的代碼片段進行補全。

AI編程輔助 | 基于代碼生成模型的實踐-AI.x社區

圖2 Copilot示例-代碼補全

拋開上面這些較為“先進”的功能,Copilot是否能在日常工作中真正地幫助程序員提升工作效率呢?從筆者使用的經驗上來說,Copilot最大的作用在于可以幫我們解決掉大量重復的、枯燥乏味的代碼編寫工作,而且越是這樣重復的代碼Copilot補全預測的越精確,這樣一來你大部分的精力和時間只需要花在最核心最富有創造力的部分上,而那些臟活累活就由“AI”幫你完成,程序員的工作效率和身心健康都能得到極大地提升。下面是一些Copilot在實際業務場景中使用時較為出彩的例子:

  • 程序日志記錄:比如在Java或者Golang中使用日志組件打印一些調試信息或者記錄一些變量信息,每次使用時都需要寫一長串代碼,而使用了Copilot后你剛打出logging,后面的代碼就自動補全了,你需要的變量信息、日志的級別、格式化字符串都已經生成完畢。
  • 條件判斷&循環體:判斷某個數值變量是否在一個范圍中或者各種條件判斷,比如Python中寫了個for循環前面又有個數組沒用過,就立馬幫你補全上for item in items。
  • 模板代碼:例如 React 中,每次用 useState 都要寫一行模板性的初始化代碼。如果第一個變量名是 someVariable,第二個一定是 setSomeVariable。這種根本不需要過腦子的東西,最適合 Copilot 補全了。

二、背后的技術 

1.Codex模型

Copilot工具背后真正的基石是Codex,是一個基于 GPT 的語言模型,在閱讀了Codex原始論文后,筆者發現它是GPT-3使用代碼文本數據進行了Fine-Tuning之后的產物,在模型的結構上Codex沒有做任何創新的地方(對于GPT模型結構可參照歷史文章:?數據不夠用怎么辦?| 基于GPT2-prompts違規文本生成實踐)。

這里是比較有意思的地方,因為GPT系列模型的賣點就是從來不做微調,而且GPT3跟 GPT本質上差別也不大,所以Codex創新不在于模型的本身,而是在于實際的應用上面,這時候去使用微調這樣的方法無疑性價比更高,也是合理的。

另外的創新點在于他提出了一個HumanEval的數據集來衡量模型的好壞,在這個數據集上Codex能夠解決28.8%的問題,相比之下如果直接使用GPT-3則解決不了任何問題。另外如果允許sampling的話(模型跑100遍,得到100個不一樣的結果,只要其中一個正確就算解決問題)能提升到70.2%的成功率。總而言之Codex沒有做特別大的改動,它提出了一個問題,然后把GPT-3在大量代碼組成的數據集上微調了一下并嘗試解決這個問題,最后使用了一個全新的評測數據集來評判代碼生成質量的好壞。

論文中的重點主要聚焦于他整體的評估框架,因為通過語言模型來生成復雜代碼這個問題相對來說還比較新穎,在GPT-3剛問世的的時候OpenAI也給大家做過展示,GPT-3可以生成一些簡單的代碼片段,但是如果用來生成較為復雜的代碼時效果很差,畢竟 GPT-3的訓練數據中沒有包含特別多的代碼,因此一個Code Fine-Tuning數據集就呼之欲出了,根據論文介紹,Codex在2020年5月從Github 的 54,000,000 個公開代碼倉上收集了數據,在經過過濾后,最終的數據集大小為159GB。

那么在評測數據集上采用哪種指標來判斷模型的好壞呢?我們知道文本生成任務的輸出為一個文本序列,比如說機器翻譯經常用的一個評估方法叫做 BLEU score,BLUE這個分數計算的是生成的序列和正確答案序列在一些子序列上的相似度,是一個模糊的匹配過程,因此在代碼生成上面BLUE分數會存在一個大問題——就算你在子片段上跟真實的代碼非常相近,但是很有可能你生成的代碼甚至連編譯都無法通過。最終Codex使用的是一個pass@k 的分數,其含義表示生成 k 個不同的結果,其中只要有一個結果能夠通過所有測試用例的話那么就認為正確。

最后是HumanEval這個評測數據集,數據集中包含164個編程的問題,主要涉及到語言的理解、算法能力、簡單的數學推理以及一些簡單的編程面試問題,數據量不是那么大,其中每個編程問題包括函數頭、docstrings、函數體和幾個單元測試用例,目前該數據集已經開源→https://github.com/openai/human-eval。

 2.模型推理優化

基于預訓練模型實現的工具應用在實際業務場景中有一個不容忽視的問題,那就是模型的推理性能是否能夠滿足需求,而Codex實際上就是GPT模型,在推理過程中需要逐字生成代碼,因此如果需要實時地提供補全建議則對模型的推理性能有很高的要求。

AI編程輔助 | 基于代碼生成模型的實踐-AI.x社區

圖3 模型加速手段

上圖中包含了一些常用的模型加速手段,在論文中OpenAI并沒有披露針對模型部署方面的優化,但是在后面我們實際嘗試去私有化部署代碼生成模型時還是應用了多種模型加速方式,期望讓使用感受能夠接近Github Copilot。

3.組裝你自己的AI編程助手

在實際私有化部署我們的“AI輔助”前先看看我們手上有哪些資源:

  • 開源模型:雖然我們無法直接基于Codex部署私有化模型服務,但是在Hugging Face的Model Hub社區上與代碼生成相關的開源模型仍然有許多可供我們選擇,更讓我們意外的是其中的開源模型CodeGen[4]甚至在HumanEval評測集上擊敗了Codex。
  • 計算資源:只要不使用參數量最大的CodeGen-16B,服務器上的T4顯卡就有足夠的顯存來進行推理,另外我們會測試INT-8量化下使用CPU部署服務的表現如何。
  • 部署方式:在模型的推理服務器上我們使用了Triton Inference Server[5],因為可以很好的適配 FasterTransformer[6],另外也能搭配各種加速手段。
  • 插件化方式:好消息是Github Copilot插件中的高級配置有調試選項,可以直接配置模型服務的地址,因此當啟用該選項時可以將其設置為我們自己的模型服務地址,另外在插件市場同樣有一些類似于Copilot的插件,并且可以配置本地的代碼生成服務地址。

接下來就是部署我們自己的代碼生成服務了,在使用GPU服務器進行部署時我們選擇了CodeGen-2B模型支持多語言模式的版本:

AI編程輔助 | 基于代碼生成模型的實踐-AI.x社區

圖4 CodeGen系列模型

然后使用Triton Inference Server以及 FasterTransformer backend來啟動我們的模型服務:

AI編程輔助 | 基于代碼生成模型的實踐-AI.x社區

圖5 模型服務

修改Copilot的插件的配置選項:

AI編程輔助 | 基于代碼生成模型的實踐-AI.x社區

圖6 配置選項參考

最終讓我們看一下代碼生成的效果,就讓AI解一下斐波那契數列吧:

AI編程輔助 | 基于代碼生成模型的實踐-AI.x社區

圖7 代碼生成效果

在使用GPU部署代碼生成模型服務的情況下,從代碼生成的速度上來說并已經完全不亞于于Github Copilot的速度了,通常來說服務器上的GPU計算資源較為寶貴,但是卻有許多空閑的CPU資源,因此我們需要測試CPU部署時代碼的生成速度是否能夠滿足日常需求,首先是我們期望模型生成的代碼片段,這是Bert[7]模型定義中Embedding的一部分,實際測試時我們只鍵入Class名稱,藍色的注釋,然后讓模型來生成接下來的代碼片段:

AI編程輔助 | 基于代碼生成模型的實踐-AI.x社區

圖8 Bert代碼片段

我們試用了CodeGen的多個模型,并且記錄在不同情況下他們返回結果的延時:

模型

生成用時(ONNX+FP16)

生成用時(TRT+INT8)

codegen-6B-multi

846s

293s

codegen-2B-multi

79s

18s

codegen-350M-multi

9s

4s

服務器CPU:Intel(R) Xeon(R) Gold 6240 CPU @ 2.60GHz

從結果來看,使用CPU部署后在經過INT8量化技術的加持下,當我們使用參數量最小的代碼生成模型,至少在速度上可以獲得還不錯的體驗。

四、總結與思考

從本次探究Github Copilot背后的技術以及進行簡單的代碼生成實踐來看,基于GPT系列模型在文本生成這個領域上的確有著許多應用落地的可能,然而代碼生成這一技術并不是“無害”的,首先是在模型訓練過程中使用的“開源代碼數據集”中包含許多個人數據,在筆者使用過程中發現,如果涉及到文件路徑的鍵入,經常會出現一些帶用戶名的路徑補全建議,其直接使用他人的開源代碼來作為訓練數據也在社區上引起了廣泛的爭議,甚至有許多開源社區的作者期望制定一個新的開源協議,限制他們的開源庫不被用來作為深度學習的數據。另外經過Copilot生成的代碼質量難以把控,還是會存在“埋坑”的可能性,很有可能在某天當你debug一個問題時卻完全想不起來自己為什么會寫下這一段代碼,直到最后才意識到這是AI幫你生成的。

當然我們并不會直接放棄這樣一個可以幫你干“臟活累活”的工具,畢竟如果只是作為一個“副駕駛”,時不時對你進行提醒,而不是代替你開車,它還是可以做的非常好的。另外就像開頭所說的,其實是隨著Github Copilot的收費才促成了筆者的這一次實踐,許多社交媒體上的程序員都聲稱他們已經離不開Copilot了。而目前來看我們已經有了較為完善的私有化部署方式,還有開源模型CodeGen可供使用,作為一個在日常開發工作中的私有化工具已經足夠好了。

本文轉載自 ??AI遇見云??,作者: 張宇博

收藏
回復
舉報
回復
相關推薦
欧美国产激情18| 在线综合+亚洲+欧美中文字幕| 国产一级二级三级精品| 中文字字幕在线中文| 一区二区三区日本久久久| 色悠久久久久综合欧美99| 亚洲欧美日本国产有色| 99久久精品国产色欲| 亚洲激情精品| 中文字幕亚洲专区| 成人做爰www看视频软件| 欧产日产国产精品视频| 国产精品美女久久久久av爽李琼 | 中文字幕99| 少妇人妻精品一区二区三区| 亚洲欧美春色| 欧美另类高清videos| 一区二区精品免费| 57pao国产一区二区| 欧美中文字幕久久| 国产中文字幕乱人伦在线观看| 国产高清自拍视频在线观看| 成人小视频在线| 国产原创欧美精品| 69视频免费在线观看| 亚洲色图网站| 亚洲午夜色婷婷在线| 日本精品一二三区| 欧美日韩视频免费看| 午夜精品福利久久久| 日韩一区二区三区高清| 天天操天天干天天操| 国产综合一区二区| 国产精品精品视频一区二区三区| 久久久久亚洲AV| 国产韩日影视精品| 亚洲午夜未删减在线观看| www国产视频| 国产精品美女久久久久人| 色94色欧美sute亚洲线路一久| 黄色污污在线观看| 在线观看免费黄色| 国产色综合一区| 免费在线观看一区二区| 五月天婷婷在线观看| 国产激情一区二区三区| 成人免费视频网址| 亚洲图片在线播放| 日韩成人精品在线| 国产精品99一区| 日韩毛片一区二区三区| 亚洲黄页一区| 97国产在线视频| 日本熟妇一区二区| 亚洲国产网站| 91精品国产自产91精品| 日本在线观看视频网站| 亚洲日本久久| 2020欧美日韩在线视频| 在线观看 中文字幕| 亚洲二区视频| 777午夜精品福利在线观看| 男人天堂中文字幕| 99精品免费网| 青青久久aⅴ北条麻妃| 日韩污视频在线观看| 午夜影院日韩| 日本精品久久电影| 欧美一区二区三区不卡视频| 久久亚洲精选| 国产精品日韩精品| 一级黄色片在线| 国产一区二区三区视频在线播放| 亚洲www视频| 亚洲精品久久久久久久久久久久久久| 国产成人精品免费在线| 国产美女精品在线观看| 欧美美乳在线| 国产精品理论片在线观看| 一区二区三区日韩视频| 天堂av最新在线| 欧美日韩免费在线观看| 日韩视频第二页| 免费成人黄色网| 欧美一区二区三区小说| 中国极品少妇videossexhd| 少妇高潮一区二区三区| 在线观看中文字幕亚洲| 亚洲综合久久av一区二区三区| 91tv官网精品成人亚洲| 久久频这里精品99香蕉| 伊人久久久久久久久久久久| 激情av综合网| 国精产品99永久一区一区| 韩国三级在线观看久| 亚洲天堂成人在线观看| 精品久久久久久久久久中文字幕| jizz欧美| 亚洲成人黄色网| 日本黄色小视频在线观看| 一区二区在线| 日韩69视频在线观看| 国产伦精品一区二区三区四区 | 日本55丰满熟妇厨房伦| 美女呻吟一区| 久久精品国产96久久久香蕉| 日韩av在线播| 国内精品久久久久影院一蜜桃| 久久精品国产第一区二区三区最新章节| eeuss影院www在线播放| 亚洲国产中文字幕| 亚洲欧洲日本精品| 欧洲亚洲视频| 欧美高清一级大片| 中国黄色一级视频| 91首页免费视频| 蜜臀av.com| 国产成人久久精品麻豆二区| 亚洲精品一区二区精华| 婷婷社区五月天| 久久综合网络一区二区| 国产精品一区二区欧美黑人喷潮水| 成人在线播放视频| 精品久久久国产| 精品国产午夜福利在线观看| 欧美日韩有码| 热久久免费视频精品| 亚洲av无码一区二区乱子伦| 国产精品青草综合久久久久99| 日韩精品―中文字幕| 欧美.com| 久久久国产精品x99av | 国产精品久久久久久久久久久久午夜片 | 久久er99热精品一区二区三区| 久久77777| 欧美综合色免费| av无码av天天av天天爽| 激情久久综合| 99在线热播| a级毛片免费观看在线| 精品视频色一区| 精品欧美一区二区久久久| 国产亚洲综合精品| 国产精品久久久一区二区三区| 超鹏97在线| 欧美一区在线视频| 天堂а√在线中文在线鲁大师| 日韩精品福利网| 日本一区二区在线视频| 日韩大尺度黄色| 亚洲欧洲视频在线| 天天操夜夜操视频| 久久久影视传媒| 超碰影院在线观看| 色综合中文网| 国产精品爽爽ⅴa在线观看| 久草福利在线| 欧美性高清videossexo| 久久视频一区二区三区| 精品一区二区在线观看| 国产成人精品免费看在线播放 | 一本综合久久| 免费影院在线观看一区| 日本精品另类| 最近更新的2019中文字幕| 国产又粗又猛又爽又黄的| 18欧美乱大交hd1984| 天堂在线一区二区三区| 欧美aⅴ99久久黑人专区| 国产二区不卡| 一个人看的www视频在线免费观看 一个人www视频在线免费观看 | 国产免费观看高清视频| 久久93精品国产91久久综合| 国产精品电影一区| 国精产品一区| 精品1区2区在线观看| 色av性av丰满av| 中文字幕免费在线观看视频一区| 美女在线视频一区二区| 欧美精品福利| 久久久久网址| 欧美风情在线视频| 色在人av网站天堂精品| 亚欧洲精品视频| 欧美日韩在线播放一区| 九九视频免费在线观看| 91在线视频播放地址| 九九九在线观看视频| 午夜精品婷婷| 欧美视频观看一区| 国产剧情一区二区在线观看| 久久久久久亚洲精品| 国产一级免费在线观看| 日韩一区二区三区在线观看| 欧美另类一区二区| 中文字幕一区二区三区色视频| wwwxx日本| 日本欧美久久久久免费播放网| 男女啪啪免费观看| 九色精品91| 国产精品美女xx| 丁香婷婷久久| 2020久久国产精品| jizzjizz亚洲| 一区二区三区四区在线观看视频| 国产av精国产传媒| 91久久精品国产91性色tv| 在线日韩国产网站| 久久综合成人精品亚洲另类欧美 | 不卡一区中文字幕| 亚洲一级片免费| 国产精品地址| 一级做a爰片久久| 妖精视频一区二区三区免费观看| 91久久久久久久久| av亚洲一区二区三区| 久久久久久久爱| 嫩草香蕉在线91一二三区| 日韩国产欧美精品一区二区三区| 国产xxxx孕妇| 欧美精品成人一区二区三区四区| 亚洲天堂一区在线| 一区二区三区免费网站| 91禁男男在线观看| 久久久久国产精品人| 精品中文字幕在线播放| 国产传媒欧美日韩成人| 色噜噜狠狠永久免费| 久久在线91| 精品国产一区三区| 欧美亚韩一区| 路边理发店露脸熟妇泻火| 日韩欧美精品一区| 色综合久久av| 国产在线观看91一区二区三区 | 亚洲一区在线观看视频| 一级性生活免费视频| 国产欧美精品国产国产专区| 少妇毛片一区二区三区| 99精品国产一区二区三区不卡| www.欧美com| 国产一区二区三区视频在线播放| 日韩av片专区| 加勒比av一区二区| 国产三级生活片| 黄色资源网久久资源365| 亚洲午夜激情影院| 国产一区免费电影| 一起草最新网址| 国产精品91xxx| 日本成人xxx| 国产成人在线免费观看| 男人添女人荫蒂国产| 粉嫩一区二区三区在线看| 精品人妻无码中文字幕18禁| 国产成人啪免费观看软件| 亚洲精品久久久久久| 国产iv一区二区三区| 91超薄肉色丝袜交足高跟凉鞋| 成人国产视频在线观看| 疯狂揉花蒂控制高潮h| 91一区一区三区| 色一情一交一乱一区二区三区| 国产日韩欧美精品电影三级在线| 亚洲第一综合网| 综合久久给合久久狠狠狠97色| www欧美com| 亚洲成人av一区二区| 免费av网站在线| 欧美日精品一区视频| 国产强被迫伦姧在线观看无码| 精品日产卡一卡二卡麻豆| 天天av天天翘| 这里只有精品视频| 精品欧美色视频网站在线观看| 欧美黄色成人网| www.com.cn成人| 国产精品爽爽爽| 伊色综合久久之综合久久| 久久久久久亚洲精品不卡4k岛国| 国产成人影院| 先锋影音男人资源| 日韩亚洲国产精品| 最近中文字幕一区二区| 国产裸体歌舞团一区二区| 无码成人精品区在线观看| 久久久国产一区二区三区四区小说| 久久精品国产亚洲av久| 中文字幕在线不卡一区| 亚洲一区欧美在线| 欧美午夜理伦三级在线观看| 亚洲av色香蕉一区二区三区| 亚洲欧美精品一区| huan性巨大欧美| 欧美在线播放视频| 疯狂欧洲av久久成人av电影| 精品一区二区三区自拍图片区| 日韩精品一区二区三区免费观影 | 国产91视觉| 欧美精选一区二区三区| 久久综合久久久久| 日韩avvvv在线播放| 欧美午夜精品一区二区| 久久久不卡网国产精品一区| 九九在线观看视频| 欧美视频一区二区三区在线观看| 可以免费观看的毛片| 在线精品播放av| 日韩激情电影免费看| 91麻豆国产语对白在线观看| 国产精品一区2区3区| 日韩黄色片在线| 精品影院一区二区久久久| 国产又粗又猛又爽视频| 午夜欧美在线一二页| 国产美女裸体无遮挡免费视频| 亚洲色图15p| av免费不卡国产观看| 亚洲一区二区三区xxx视频| 国产一区二区三区网| 无码 制服 丝袜 国产 另类| 国产一区二区视频在线播放| 国产黄色录像视频| 色综合咪咪久久| 五月婷婷丁香网| 国内精品免费午夜毛片| 亚洲视频三区| 肉大捧一出免费观看网站在线播放| 美腿丝袜亚洲色图| 性猛交娇小69hd| 欧美色播在线播放| 色欲久久久天天天综合网| 欧美黄色性视频| 天堂精品久久久久| 色哺乳xxxxhd奶水米仓惠香| 久久99久久久久久久久久久| 91在线无精精品白丝| 在线一区二区观看| 久久久久久青草| 欧美在线视频在线播放完整版免费观看| 中文字幕视频精品一区二区三区| 黄色a级在线观看| 精品写真视频在线观看| www.97视频| 欧美肥胖老妇做爰| 免费黄网在线观看| 成人情趣片在线观看免费| 天天综合网91| 91香蕉国产线在线观看| 亚洲黄色录像片| 亚洲黄色在线免费观看| 欧美极品在线播放| 精品亚洲自拍| 激情五月开心婷婷| 久久久国产精品麻豆| 中文字幕免费播放| 日韩在线免费高清视频| 999精品嫩草久久久久久99| 一级特黄妇女高潮| 国产不卡视频一区二区三区| 伊人国产在线观看| 日韩电影第一页| 日日av拍夜夜添久久免费| 神马影院午夜我不卡影院| 久久精品国产亚洲高清剧情介绍| 天天操天天摸天天舔| 日韩色视频在线观看| 国产传媒av在线| 日本一区二区三区四区在线观看| 免费成人你懂的| jizz亚洲少妇| 亚洲电影免费观看| 欧美性xxx| 中文精品一区二区三区| 国产91精品欧美| 国产精品视频久久久久久久| 国产一区二区三区视频| 久久gogo国模啪啪裸体| 9久久9毛片又大又硬又粗| 国产色产综合色产在线视频| 国产又大又黄的视频| 高清欧美电影在线| 国产探花在线精品| 爽爽爽在线观看| 疯狂欧美牲乱大交777| 二区三区在线播放| 成人在线观看av| 日韩精品乱码av一区二区| 国产大学生自拍| 精品亚洲va在线va天堂资源站| 看片一区二区| 亚洲熟妇国产熟妇肥婆| 中文在线一区二区| 国模人体一区二区| 国产精品入口尤物| 亚洲精华国产欧美| 日韩一级片在线免费观看| 亚洲成人性视频| 色婷婷成人网| 漂亮人妻被中出中文字幕|