<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>

          GitHub 的AI代碼生成神器,其四成代碼有漏洞,你還敢用嗎

          共 2376字,需瀏覽 5分鐘

           ·

          2021-09-13 10:27

          點(diǎn)擊上方視學(xué)算法”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時間送達(dá)

          作者 | 閆園園

          日前,研究人員發(fā)現(xiàn),GitHub Copilot 工具提供的代碼建議中 有接近 40% 存在 bug。為了對 Copilot 的實(shí)際價值做出量化,研究人員創(chuàng)建了 89 個測試場景以考查其代碼建議質(zhì)量,編寫出了 1600 多個程序。經(jīng)過全面審查,研究人員發(fā)現(xiàn)其中近四成存在安全漏洞。

          研究人員指出,造成這種問題的主要原因有兩個:

          1、GitHub Copilot 參考的開源代碼良莠不齊。GitHub 的代碼量雖然龐大,但大部分都是未經(jīng)審查的,源代碼就有問題,GitHub Copilot 生成的代碼也會出現(xiàn)問題;

          2、GitHub Copilot 分不清新代碼和舊代碼。我們常常提起“最佳實(shí)踐”,但曾經(jīng)的“最佳實(shí)踐”,極有可能在幾年后變成反面典型。GitHub Copilot 目前還分不清這種區(qū)別,照單全收,自然有問題。

          1AI 編程神器 GitHub Copilot

          作為一款 AI 結(jié)對編程工具,GitHub Copilot 的主要定位是提供代碼補(bǔ)全與建議功能。它是 Visual Studio Code 的一個插件,可根據(jù)當(dāng)前文件的內(nèi)容和當(dāng)前光標(biāo)位置為你自動生成代碼。

          首先我們要理解 什么是 AI 結(jié)對編程

          結(jié)對編程用來代指兩個程序員在一個計(jì)算機(jī)上共同工作。通常來說,會有一個人輸入代碼,而另一個人審查他輸入的每一行代碼。輸入代碼的人稱作駕駛員,而審查代碼的人稱作觀察員。

          那么 AI 結(jié)對編程,可以簡單理解為人機(jī)結(jié)對編程的升級版。具體來說 GitHub Copilot 由 OpenAI Codex 提供支持,可從代碼中提取上下文,并立即對單行代碼甚至整個函數(shù)給出建議。而 OpenAI Codex 接受過公開源代碼和自然語言的培訓(xùn),能理解編程語言和人類語言。在工作時,GitHub Copilot 編輯器的擴(kuò)展插件將程序員的注釋和代碼發(fā)送到 GitHub Copilot 服務(wù),然后該服務(wù)使用 OpenAI Codex 來生成對代碼的建議。

          2跌落神壇只用了不到一周

          在 GitHub Copilot 推出后,有關(guān)于它的負(fù)面消息這并不是第一次。

          就在其發(fā)布不到一周的時間里,GitHub Copilot 就被推上了侵權(quán)的風(fēng)口浪尖,引發(fā)了前所未有的爭議。

          原因是有位程序員嘗試了一下平方根倒數(shù)速算法(Fast Inverse Square Root),結(jié)果只是打出來這四個關(guān)鍵詞,GitHub Copilot 就逐行“完美復(fù)刻”了當(dāng)年那段神奇的算法,甚至連當(dāng)時的原版注釋都被保留下來。

          這種現(xiàn)象引起了大量開發(fā)者的不滿,他們認(rèn)為,GitHub Copilot 宣稱的基于公開代碼訓(xùn)練其實(shí)是在未遵循開源許可證的情況下,肆意“抄襲”開源代碼,事情愈演愈烈,甚至個別比較激進(jìn)的人為了抗議 GitHub 未經(jīng)授權(quán)和許可便使用受版權(quán)保護(hù)的源代碼作為 GitHub Copilot 的訓(xùn)練數(shù)據(jù),宣布棄用 GitHub。

          3在爭議中前行的 AI 編程

          盡管 AI 編程有諸多爭議,但它的腳步仍未停止。當(dāng)人們開始關(guān)注 GitHub Copilot 背后的技術(shù)支撐 OpenAI Codex 后,今年八月,OpenAI 宣布開發(fā)一種將自然語言轉(zhuǎn)換為編程代碼的人工智能系統(tǒng) —— Codex。

          Codex 更像是 OpenAI 的下一步產(chǎn)品。它建立在 Copilot 之上,前文說到 Copilot 是一種與 Microsoft 的 GitHub 代碼存儲庫一起使用的工具,使用它可有助于完成代碼行。但 Codex 通過接受用英語編寫的句子并將它們翻譯成可運(yùn)行的代碼,換句話說,它是可以將自然語言轉(zhuǎn)換為代碼的 AI 系統(tǒng),這意味著 AI 編程的概念又往前進(jìn)了一步。

          對此,OpenAI 稱 Codex 可讓計(jì)算機(jī)能夠更好地理解人們的意圖,從而讓每個人都可利用計(jì)算機(jī)來實(shí)現(xiàn)更多目的。

          那么,AI 寫代碼究竟可行不可行呢?

          雖然對于開發(fā)者們來說,重復(fù)性的任務(wù)占據(jù)了軟件開發(fā)的大部分時間,并且很容易出錯,研究人工智來改進(jìn)軟件開發(fā)的確令人興奮,但是我們也不難從 GitHub Copilot 身上看到,就目前來看,這個工具仍舊不建議大家使用。

          第一,GitHub Copilot 既然可以逐行“完美復(fù)刻”平方根倒數(shù)速算法,那么我們又能如何判別它給我們的代碼一定是沒有受版權(quán)保護(hù)的呢?這種可能性,同樣容易讓我們背上“侵權(quán)”的法律風(fēng)險。

          第二,就連 GitHub 自己都表示 GitHub Copilot 建議的代碼并不完美,有時候它提供的代碼甚至毫無意義。因此,對于 GitHub Copilot 建議的代碼來說,我們?nèi)砸⌒钠渚幋a錯誤,還需要付出精力去審查,才能得到正確有效的代碼。

          因此總的來說,原則上,讓 AI 學(xué)會寫程序的確能為軟件工程帶來一次巨大的變革,但是就目前來看,現(xiàn)有的技術(shù)水平遠(yuǎn)遠(yuǎn)達(dá)不到預(yù)期。當(dāng)前的 GitHub Copilot 已經(jīng)是人工智能領(lǐng)域的一項(xiàng)重大的突破,但同時也存在諸多障礙,這一點(diǎn)還需要引起我們的注意。

          參考鏈接:

          https://www.solidot.org/story?sid=68736

          https://www.techradar.com/news/github-autopilot-highly-likely-to-introduce-bugs-and-vulnerabilities-report-claims


          點(diǎn)個在看 paper不斷!

          瀏覽 74
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  国产精品无码无卡无需播放器 | 亚洲无码免费看 | 四房婷婷五月天 | 亚洲AV无码成人精品一区 | 啪啪网址 |