GitHub Copilot用戶測試:泄露的祕密與糟糕的代碼齊飛

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"},{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"本文最初發表於 The Register 網站,經網站授權,InfoQ 中文站翻譯並分享。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"雖然很多人看到了 GitHub Copilot 的巨大潛力,但它的早期測試者卻發現了一些問題,包括看起來像泄露的祕密、糟糕的代碼以及版權問題。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"GitHub Copilot 是"},{"type":"text","text":"利用人工智能幫助程序員編寫代碼的軟件"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",被稱爲“人工智能結對編程”。它由 OpenAI 的一個名爲 Codex 的系統提供支持,該公司在 2019 年"},{"type":"link","attrs":{"href":"https:\/\/openai.com\/blog\/microsoft\/","title":null,"type":null},"content":[{"type":"text","text":"與微軟達成合作"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",並獲得了 10 億美元的投資。"}]},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/1b\/e7\/1bbab6608b0bcbb81416efa4c80f3fe7.jpg","alt":null,"title":"工作原理:使用公共代碼作爲人工智能輔助開發的模型","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"據 Copilot "},{"type":"link","attrs":{"href":"https:\/\/copilot.github.com\/","title":null,"type":null},"content":[{"type":"text","text":"網站"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"稱,Codex 模型由“互聯網上的公共代碼和文本”訓練,“既能理解編程,也能理解人類語言”。作爲 Visual Studio Code 的擴展,Copilot “將你的評論和代碼發送到 GitHub Copilot 服務,然後它會使用 OpenAI Codex 來合成並建議個別行和整個函數”。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"會出什麼問題?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"一名開發者"},{"type":"link","attrs":{"href":"https:\/\/twitter.com\/pkell7\/status\/1411058236321681414","title":null,"type":null},"content":[{"type":"text","text":"做了一個實驗"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",他寫了一些代碼,然後通過 Sendgrid 服務發送電子郵件,並輸入“apiKey :=”來提示 Copilot。Copilot 在截圖和錯誤報告的基礎上回應了至少四個建議密鑰。他以“人工智能正在發出祕密”("},{"type":"text","marks":[{"type":"italic"},{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"AI is emitting secrets"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":")爲名,將其報告爲一個 bug。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"這些密鑰是否有效?GitHub 的首席執行官 Nat Friedman 對這份錯誤報告"},{"type":"link","attrs":{"href":"https:\/\/twitter.com\/azjezz\/status\/1412054859877126151\/photo\/10","title":null,"type":null},"content":[{"type":"text","text":"作出了迴應"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",他說:“這些祕密幾乎完全是虛構的,是由訓練數據中合成的”。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"一名 Copilot 維護者補充說:“從訓練數據中複製祕密的可能性非常小。而且,訓練數據都是公開的代碼(根本沒有私人代碼),因此即使祕密被複制,就算在極其不可能的情況下,也已經泄露了。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"雖然這些回覆可以讓人放下心來,但是即使是 Copilot 用其他用戶的祕密來提示編碼者遠程的可能性,也會令人擔心。因爲這涉及到一個關鍵問題:Copilot 的人工智能是真的在編寫代碼,還是從它的訓練來源中複製粘貼了一些代碼片段?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"GitHub 方面稱,“GitHub Copilot 是一種代碼合成器,而非搜索引擎”,“它所建議的絕大多數代碼都是唯一生成的,這在以前從未見過。”但是,根據 GitHub 方面的研究,“大約 0.1% 的時間,建議可能會包含一些從訓練集中逐字逐句的片段。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"這 0.1% 的比例(一些早期用戶認爲更高)非常麻煩。GitHub 提出的解決方案就像"},{"type":"link","attrs":{"href":"https:\/\/docs.github.com\/en\/github\/copilot\/research-recitation","title":null,"type":null},"content":[{"type":"text","text":"這篇文章"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" 所給出的那樣:當人工智能在引用而非合成代碼時給出一些屬性。GitHub 機器學習工程師 Albert Ziegler 說:“這樣一來,我就可以查到有關該代碼的背景信息,並且把它歸功於原作者”。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"但問題在於,在有些情況下,Copilot 可能會讓開發者做出錯誤的事情,比如,使用那些開源但有版權的代碼。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"如果是 GPL 代碼,即 "},{"type":"link","attrs":{"href":"https:\/\/www.gnu.org\/licenses\/copyleft.en.html","title":null,"type":null},"content":[{"type":"text","text":"copyleft"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",所包含的代碼可能會影響新作品的許可。這種情況很讓人困惑,因爲 Copilot 的"},{"type":"link","attrs":{"href":"https:\/\/copilot.github.com\/","title":null,"type":null},"content":[{"type":"text","text":"常見問題"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"指出,“由 GitHub Copilot 生成的建議,以及你在它的幫助下編寫的代碼,都屬於你,你得對其負責”。但是一個帶有屬性的代碼塊將是例外。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"GitHub 還表示,“在公開可用的數據上訓練機器學習模型,被認爲是整個機器學習社區的一種合理使用”,從而消除了人工智能借用他人代碼的擔憂。有意思的是,常見問題解答中的這句話最初是這樣寫的:“用公共數據訓練機器學習模型現在是機器學習領域中的通常做法”,有些人已經注意到這個變化:“通常做法”變成了“合理使用”。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Alex J. Champandard 在 "},{"type":"link","attrs":{"href":"https:\/\/twitter.com\/alexjc\/status\/1410524416660889607","title":null,"type":null},"content":[{"type":"text","text":"Twitter"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" 上寫道:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"仔細研究了一下 GitHub PR 試圖(重新)定義版權,並開創了開源代碼許可條款不適用於這種情況的先例……"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"上圖:6 月 29 日的文本。下圖:7 月 1 日的編輯文本。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"參見 https:\/\/copilot.github.com 的常見問題部分"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/aa\/ab\/aa7c2eb97c834e1c0df95f68abb3afab.jpg","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/a4\/05\/a47c52a19d091651b3b5fffcd39dee05.png","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"這意味着,使用 GitHub Copilot 會存在一些不確定因素,這可能是因爲 GitHub 對其訓練 Copilot“吞噬”的所有公共代碼細節進行了掩蓋。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"GitHub 的首席執行官在 "},{"type":"link","attrs":{"href":"https:\/\/twitter.com\/natfriedman\/status\/1409914420579344385","title":null,"type":null},"content":[{"type":"text","text":"Twitter"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" 上表示,“我們期望在未來幾年裏,知識產權和人工智能將成爲全世界有意義的政策討論,我們都渴望參與。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"開發者 Eevee "},{"type":"text","text":"評論稱"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",“據他們自己承認,GitHub Copilot 也接受過大量的 GPL 代碼訓練,因此我不清楚這怎麼能成爲一種將開源代碼“洗成”商業作品的形式”。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"“Copilot 給我留下了很不好的印象,因爲這感覺就像是在繞過 GPL。”她告訴 The Register,“採用 GPL 的全部意義就是表明,你不希望專有軟件從你的工作中受益。在(至少部分)GPL 代碼上訓練一個模型,然後用它來幫助編寫可能是專有的軟件,看起來至少有悖於 GPL 的精神。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Copilot 也樂於將陌生人的版權聲明貼在代碼上。在下面的片段中,可以看到它從一個經過訓練的程序中依樣複述出版權聲明,暗示看起來像 Quake "},{"type":"text","text":"著名的"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"快速反平方根算法的代碼是由 John Carmack 以外的人創造的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"對此,Armin Ronacher 在 Twitter 上"},{"type":"link","attrs":{"href":"https:\/\/twitter.com\/mitsuhiko\/status\/1410886329924194309","title":null,"type":null},"content":[{"type":"text","text":"吐槽"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"道:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我不想說什麼了,但這不是正確的許可,Copilot“先生”。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/7a\/11\/7a00d2c46e1d72473yy218724ee37e11.gif","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"唯一的辦法就是道德"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"由於 Copilot 將是一款付費產品,所以在道德和法律上也存在爭議。儘管如此,開源倡導者 Simon Phipps "},{"type":"text","text":"說"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":":“我聽到了技術界人士的驚呼,但沒有特別驚呼的律師。共識似乎是,訓練模型和使用模型是分開分析的,訓練很好,並使用不太可能涉及版權控制的行爲。所以許可是沒有意義的。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"代表 Rosen、Wolfe 和 Hwang 事務所的版權律師 Michael Wolfe 告訴 El Reg:“看起來(GitHub Copilot)很可能屬於合理使用,軟件許可不太可能繞過這一點。”如果版權作品的使用方式被視爲“轉換性”,美國法院通常會對被告有利。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Wolfe 表示,GitHub Copilot 可能符合轉換性的要求,因爲它重新利用了人們的代碼,並將其用於不同於其初衷的應用,無論是創建遊戲的程序還是複雜的加密算法。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"“GitHub 沒有在某種程度上使用這些代碼來使其受制於軟件許可,”他表示,“我認爲它的目的很可能與他們使用的應用程序不同。它在做一些不同的事情。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"我們聯想到了美國作家協會訴谷歌侵權案。在紐約巡迴上訴法院維持了 2013 年地區法院的判決之後,長達十年的訴訟之戰終於在 2015 年"},{"type":"link","attrs":{"href":"https:\/\/www.theregister.com\/2015\/10\/16\/google_wins_books_case_again_can_post_scanned_pages_again\/","title":null,"type":null},"content":[{"type":"text","text":"結束"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",最終認定谷歌掃描其獲得的每本書的每一頁,以創建谷歌圖書數字化是合理使用。最高法院宣佈不再接受谷歌圖書掃描案的上訴請求。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"“你知道,這很有趣,很多可能在那起案件中支持谷歌的人現在(對 GitHub Copilot)感到憤怒。”Wolfe 說:“這又回到了‘人人都喜歡對我而言是合理使用,但對你來說並非如此’這句話上。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"OpenAI 公司針對這一問題發表了一篇"},{"type":"link","attrs":{"href":"https:\/\/www.uspto.gov\/sites\/default\/files\/documents\/OpenAI_RFC-84-FR-58141.pdf","title":null,"type":null},"content":[{"type":"text","text":"文章"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",其中提到“根據現行法律,訓練人工智能系統是合理使用的”,不過該文章補充道:“關於訓練人工智能系統版權影響的法律存在不確定性,這對人工智能開發者來說是一個很大的代價,這個問題應該由權威機構來解決。”"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"有用嗎?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"GitHub Copilot 存在的"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"另外一個問題是代碼能否正確工作。開發者 Colin Eberhardt 一直在嘗試使用預覽版,他說:“我被它的能力驚呆了。在過去幾個小時裏,它確實讓我發出好幾聲‘哇!’”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"然而,繼續使用下去,他的結果似乎喜憂參半。使用 Copilot 的一種常用方式是鍵入註釋,之後人工智能可能會建議一段代碼。Eberhardt 鍵入:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"codeblock","attrs":{"lang":null},"content":[{"type":"text","text":"\/\/compute the moving average of an array for a given window size"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Copilot 生成了一個正確的函數。但是,當他嘗試:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"codeblock","attrs":{"lang":null},"content":[{"type":"text","text":"\/\/find the two entries that sum to 2020 and then multiply the two numbers together"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"生成的代碼看似合理,但卻是錯誤的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"與強大的單元測試覆蓋一起,對代碼的仔細檢查應該能夠避免這一問題;但是對於粗心大意的人來說,這看起來就像是個陷阱,特別是來自於 GitHub 世界最流行的代碼編輯器 Visual Studio Code 的官方插件。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"我們可以對比一下從 StackOverflow 這樣的網站上覆制代碼,在那裏,其他貢獻者往往會發現編碼錯誤,而且存在社區質量控制。有了 Copilot,開發者就必須依靠自己。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"“我認爲 Copilot 還有一段路要走,我纔會想把它設爲默認打開,”Eberhardt 總結說,因爲“與驗證其建議相關的認知負荷”。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"同時,他還指出,建議有時出現得很慢,儘管這可以通過某些繁忙指標來解決。儘管如此,Eberhardt 說,他認爲很多公司會因爲 Copilot 的“驚人元素”而定購該產品,考慮到它目前的缺陷,這是一個令人不安的結論。但是要記住,這僅僅是一個預覽版本。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"編程是一項辛苦的工作,幾乎沒有問題只是一個項目所特有的。因此,原則上,把人工智能應用於任務可能會有好的效果。不過,由人工智能產生的大量代碼卻是另一回事。雖然到目前爲止,人工智能產生代碼具備諸多潛力,但同時也存在許多障礙。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"原文鏈接:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"https:\/\/www.theregister.com\/2021\/07\/06\/github_copilot_autocoder_caught_spilling"}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章