<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          AI編程利器:Copilot

          共 4839字,需瀏覽 10分鐘

           ·

          2022-10-08 16:44

          7b34382a6b8a9203be23814eb58562dc.webp

          整理 | 凌敏、核子可樂 轉自 | AI前線 轉眼間,AI 編程神器 Copilot 已經(jīng)發(fā)布一年有余,這一年,Copilot 改變了什么?真的給開發(fā)者帶來幫助了嗎?

          2021 年 6 月 30 日,微軟旗下代碼托管平臺 GitHub 推出了名為 Copilot 的 AI 結對編程工具,Copilot 的主要定位是提供代碼補全與建議功能,可根據(jù)當前文件的內容和光標位置自動生成代碼。

          據(jù)了解,Copilot 由 OpenAI 的 Codex 系統(tǒng)提供支持。據(jù) Copilot 網(wǎng)站稱,Codex 模型由“互聯(lián)網(wǎng)上的公共代碼和文本”訓練,“既能理解編程,也能理解人類語言”。作為 Visual Studio Code 的擴展,Copilot “將你的評論和代碼發(fā)送到 GitHub Copilot 服務,然后它會使用 OpenAI Codex 來合成并建議個別行和整個函數(shù)”。

          作為一款 AI 編程神器,Copilot 從誕生之初就爭議不斷。

          擁護者認為它確實可以提高生產(chǎn)力,反對者認為它寫的代碼錯誤率高,開發(fā)者還需要花費額外的時間做代碼審查。有的爭議焦點集中在 Copilot 是否涉及侵權上——畢竟 Copilot 宣稱的基于公開代碼訓練,其實是在未遵循開源許可證的情況下,肆意“抄襲”開源代碼。

          在 Copilot 正式發(fā)布一年之際,GitHub 對 2000 多名開發(fā)者展開了調查,以期了解 Copilot 到底改變了什么?

          Copilot 大調研

          結合調查與實驗,GitHub 整理出一份 Copilot 在開發(fā)者群體中實際影響力的結論性資料。

          GitHub 研究員 Eirini Kalliamvakou 在一篇博文中提到:由于 AI 輔助開發(fā)還是個相對較新的領域,作為研究人員,我們幾乎找不到可供借鑒的早期成果。我們希望衡量 GitHub Copilot 的實際效果如何,而且在早期觀察和用戶采訪之后,我們決定對 2000 多名開發(fā)者進行大規(guī)模調查,了解他們的使用體驗和感受。

          在設計研究方法時,我們主要考慮到以下三大重點:

          • 立足整體關注生產(chǎn)力。在 GitHub,我們喜歡廣泛且可持續(xù)地考量開發(fā)者的生產(chǎn)力及相關影響因素。我們使用 SPACE 生產(chǎn)力框架選擇需要調查的具體方向。

          • 考量來自開發(fā)者的第一手觀點。我們開展了多輪研究,包括定性(認知)與定量(觀察)數(shù)據(jù),希望拼湊出可靠的真相。我們希望驗證:(1)用戶的實際體驗,能否證實我們推斷出的結論?(2)我們的定性反饋,是否同樣適合更廣大的用戶群體?

          • 評估 GitHub Copilot 在日常開發(fā)場景中的效果。在設計研究方法時,我們特別注意覆蓋專業(yè)開發(fā)人員,并圍繞他們在工作日內面對的典型任務進行測試設計。最終的調查結果,既有意料之中的發(fā)現(xiàn),也有意外驚喜。

          開發(fā)者生產(chǎn)力確有提升

          除了加快開發(fā)速度之外,Copilot 還能給程序員帶來哪些額外幫助?

          調查發(fā)現(xiàn):

          • 開發(fā)者滿意度有所提升。60% 至 75% 的用戶表示,他們對現(xiàn)在的工作體驗更滿意,編碼時的精神壓力更小,而且 Copilot 能幫助他們更專注地達成令人滿意的工作成效。

          • 緩解精神內耗。開發(fā)者們報告稱,Copilot 能幫助他們穩(wěn)步推進開發(fā)流程(73%),并在處理重復性任務期間降低精力消耗(87%)。8b274567e87dcda336c0f94158acddd3.webp

          速度也很重要

          有近 90% 的開發(fā)者們表示,在使用 Copilot 時,他們完成任務,特別是重復性任務的速度更快了。這也符合 GitHub 在產(chǎn)品設計時做出的基本預期。

          為了在實踐中觀察并量化這種提升效果,GitHub 組織了一場對照實驗。兩個受試小組(其中一組使用 Copilot)需要接受計時,核算用 JavaScript 編寫 HTTP 服務器的平均用時。

          實驗發(fā)現(xiàn):

          • 使用 Copilot 的小組完成任務的比例更高,為 78%,未使用 Copilot 的小組完成任務比例為 70%。

          • 更顯著的區(qū)別在于,使用 Copilot 的開發(fā)者完成任務的速度明顯更快,要比未使用 Copilot 的開發(fā)者快 55%。具體來看,使用 Copilot 的開發(fā)者完成此項任務的平均用時為 1 小時 11 分鐘,而未使用 Copilot 的開發(fā)者平均用時達 2 小時 41 分鐘。綜上,該項調查和實驗最終得出的結論是,“Copilot 有助于加快工作完成速度,幫助開發(fā)者減少精神內耗,以更加飽滿的精神狀態(tài)專注于工作內容,最終在自己的編碼過程中找到更多樂趣。”

          f0de09dea185408c17441e407cdbb4c5.webp

          對于這一調查結果,有開發(fā)者留言表示支持:“使用 Copilot,我能盡量少把精力浪費在枯燥重復的工作身上。它點燃的靈感火花,讓我感到編碼過程更有趣、更高效了。”

          GitHub 研究員 Eirini Kalliamvakou 表示,“隨著 Copilot 的出現(xiàn),我們在 AI 驅動型代碼補全工具的探索道路上不再是孤軍奮戰(zhàn)。在實際生產(chǎn)領域,我們最近看到一項針對 24 名學生的評估,谷歌也在內部評估利用機器學習增強代碼補全的可能性。

          著眼于整個行業(yè),研究社區(qū)正認真分析 GitHub Copilot 在各類場景下的實際影響,包括教育、安全、勞動力市場,乃至開發(fā)者的實踐與行為。我們目前正在各類環(huán)境下觀察 Copilot 的實際效果。這是個不斷發(fā)展的領域,我們對研究社區(qū)和自身調查中的發(fā)現(xiàn)感到振奮,也將未來幾個月內為大家揭曉更多消息。”

          為什么 Copilot 會編寫出 糟糕的代碼?

          GitHub 的調研結果展現(xiàn)了 Copilot 在開發(fā)者群里中起到積極作用的一面,但任何事物都有其兩面性,Copilot 本身帶有的爭議也不容忽視。開發(fā)者在決定是否采用 Copilot 前,需要對其有充分的了解。

          其中,Copilot 比較大的一個爭議點在于代碼錯誤率高。

          Copilot 由名為 Codex 的深度神經(jīng)網(wǎng)絡語言模型提供支持,該模型在 GitHub 上的公共代碼存儲庫上進行了訓練。它讀取了 GitHub 的整個公共代碼檔案,其中包含數(shù)千萬個存儲庫,匯聚了來自許多世界上最優(yōu)秀程序員的代碼。

          那么,為什么 Copilot 還是會編寫出糟糕的代碼呢?

          根據(jù) OpenAI 的論文,Codex 只有 29% 的時間會給出正確答案。而且它編寫的代碼往往重構得很差,無法充分利用現(xiàn)有的解決方案(即使這些方案就在 Python 的標準庫中)。

          Copilot 編寫出糟糕的代碼,原因在于語言模型的工作機制。它們反映的是大多數(shù)人的平均寫作水平。它們不知道什么是正確的,什么是好的寫法。GitHub 上的大多數(shù)代碼(根據(jù)軟件標準)相當陳舊,并且(根據(jù)定義)是由水平一般的程序員編寫的。

          Copilot 盡力猜測的是,如果這些程序員正在編寫的是你面對的這些文件,他們可能會寫什么代碼。OpenAI 在他們的 Codex 論文中討論了這一點:

          “與其他訓練目標是預測下一個詞符的大型語言模型一樣,Codex 會生成與其訓練分布盡可能相似的代碼。這樣做的一個后果是,這種模型可能會做一些對用戶無益的事情”

          Copilot 之所以比那些水平一般的程序員更糟糕,一個關鍵問題在于,它甚至沒有嘗試編譯代碼或檢查代碼是否有效,也沒有考慮過自己是否真的遵循了文檔的指示。此外,Codex 沒有接受過去一兩年內創(chuàng)建代碼的訓練,因此它完全沒學過最新版本、庫和語言特性。例如,提示它創(chuàng)建 fastai 代碼后,它只會給出使用 v1 API 的建議,而不是大約一年前發(fā)布的 v2 版本。

          值得一提的是,今年 4 月,微軟推出了 AI 代碼審查工具 Jigsaw,以期進一步提升 AI 編碼的準確率。

          在研究論文《Jigsaw:當大型語言模型牽手程序綜合》(Jigsaw: Large Language Models meet Program Synthesis,文章已被國際軟件工程會議 ICSE 2022 接收)中,微軟介紹了一種可以提高這類大型語言模型性能的新工具。Jigsaw 中包含可以理解程序語法及語義的后處理技術,可利用用戶的反饋不斷提升修正能力。配合多模輸入,Jigsaw 即可為 Python Pandas API 合成代碼。

          隨著 Jigsaw 逐步在提高系統(tǒng)準確性方面發(fā)揮重要作用,Copilot 這類 AI 編程工具準確率或將獲得提升。

          參考鏈接:

          https://github.blog/2022-09-07-research-quantifying-github-copilots-impact-on-developer-productivity-and-happiness/

          https://www.infoq.cn/article/mvLSYZfNmhmCj7vN8KVP


          往期精彩:

          ?深度學習論文精讀[14]:Vision Transformer

          ?深度學習論文精讀[13]:Deeplab v3+

          ?深度學習論文精讀[12]:Deeplab v3

          ?深度學習論文精讀[11]:Deeplab v2

          ?深度學習論文精讀[10]:Deeplab v1

          ?深度學習論文精讀[9]:PSPNet

          ?深度學習論文精讀[8]:ParseNet

          ?深度學習論文精讀[7]:nnUNet

          ? 深度學習論文精讀[6]:UNet++

          ? 深度學習論文精讀[5]:Attention UNet

          ?深度學習論文精讀[4]:RefineNet

          ? 深度學習論文精讀[3]:SegNet

          ? 深度學習論文精讀[2]:UNet網(wǎng)絡

          ? 深度學習論文精讀[1]:FCN全卷積網(wǎng)絡

          瀏覽 171
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  五月天在线欧美日韩在线 | 黄片软件 | 中文字幕视频免费 | 国产玖玖在线 | 日韩在线看片网站 |