GitHub 推出生成代碼的 Copilot 機器學習系統

GitHub 宣布智慧助理 GitHub Copilot 完成測試,能夠在編寫程式碼時產生標準結構。 該系統是與 OpenAI 專案共同開發的,並使用 OpenAI Codex 機器學習平台,並在公共 GitHub 儲存庫中託管的大量原始程式碼上進行訓練。 該服務對流行開源專案的維護者和學生免費。 對於其他類別的用戶,訪問 GitHub Copilot 需要付費(每月 10 美元或每年 100 美元),但提供 60 天的免費試用訪問。

使用各種框架的程式語言 Python、JavaScript、TypeScript、Ruby、Go、C# 和 C++ 支援程式碼產生。 模組可用於將 GitHub Copilot 與 Neovim、JetBrains IDE、Visual Studio 和 Visual Studio Code 開發環境整合。 從測試期間收集的遙測資料來看,該服務可讓您產生相當高品質的程式碼 - 例如,GitHub Copilot 中提出的建議中有 26% 被開發人員按原樣接受。

GitHub Copilot 與傳統程式碼補全系統的不同之處在於,它能夠產生相當複雜的程式碼區塊,甚至可以根據當前上下文合成現成的函數。 GitHub Copilot 適應開發人員編寫程式碼的方式,並考慮到程式中使用的 API 和框架。 例如,如果評論中有一個 JSON 結構的範例,當您開始編寫解析該結構的函數時,GitHub Copilot 將提供現成的程式碼,而在編寫重複描述的例程清單時,它將產生剩餘的程式碼職位。

GitHub 推出生成代碼的 Copilot 機器學習系統

GitHub Copilot 產生現成程式碼區塊的能力引發了與潛在違反 Copyleft 許可證相關的爭議。 在形成機器學習模型時,使用了來自 GitHub 上開源專案儲存庫的真實來源文字。 其中許多項目都是根據 Copyleft 授權提供的,例如 GPL,它要求衍生作品的程式碼在相容授權下分發。 透過依照 Copilot 的建議插入現有程式碼,開發人員可能會無意中違反借用程式碼的項目的許可證。

目前尚不清楚機器學習系統生成的工作是否可以被視為衍生作品。 也出現了這樣的問題:機器學習模型是否受版權保護,如果是,誰擁有這些權利,以及它們與模型所基於的程式碼的權利有何關係。

一方面,產生的區塊可以重複現有專案中的文字段落,但另一方面,系統重新建立程式碼的結構,而不是複製程式碼本身。 根據 GitHub 的一項研究,只有 1% 的情況下,Copilot 推薦可能包含來自現有專案的長度超過 150 個字元的程式碼片段。 在大多數情況下,當 Copilot 無法正確確定上下文或提供問題的標準解決方案時,就會發生重複。

為了防止替換現有程式碼,Copilot 中新增了一個特殊的過濾器,不允許與現有項目交叉。 設定時,開發者可以自行決定啟動或停用此濾鏡。 除其他問題外,合成程式碼可能會重複用於訓練模型的程式碼中存在的錯誤和漏洞。

來源: opennet.ru

添加評論