fbpx

GitHub 運用 OpenAI Codex  提供 Copilot 讓您和 AI Pair Programming

Contents

GitHub 於昨日( 3 月 22 日 )正式公開 Copilot X, 其應用 OpenAI Codex 直接從您的編輯器實時建議程式碼和整個功能。 GitHub 是全球最大開源專案版本控制平台,擁有最多的開源程式碼,也是許多公司/組織和個人採用的開發專案平台, 微軟於 2018 年以 75 億美金購入。2019 年微軟開始挹注 10 億美金到 OpenAI ,在 2023 年成為 OpenAI 最大股東。 OpenAI 和 GitHub 的整合看來就像是微軟招招致勝棋局中重要的里程碑。

GitHub Copilot 由 Codex 提供支持,Codex 是一種由 OpenAI 創建的生成式預訓練 AI 模型。它已經接受了來自公開來源的自然語言文本和原始碼的培訓,包括 GitHub 上公開 Repositories (程式碼版本控制貯存庫)中的程式碼。整合了的編輯器包括 Neovim、JetBrains IDE、Visual Studio 和 Visual Studio Code。

GitHub Copilot 標榜使用者將可花更少的時間創建樣板和重複的程式碼模式,將更多時間花在重要的事情上 – 建構出色的軟體。寫下你想要的邏輯描述,GitHub Copilot 將立即建議程式碼來實現你想要的解決方案。 GitHub Copilot 根據專案的上下文和風格約定給予建議。快速循環程式碼行,完成功能建議,並決定哪些要接受、拒絕或編輯。

那我們會懷疑 GitHub Copilot 是否寫出完美的程式碼? GitHub 的回答是 :

在最近的評估中,我們發現用戶平均接受了 GitHub Copilot 顯示的所有完成的 26%。 我們還發現,平均超過 27% 的開發人員程式碼檔案是由 GitHub Copilot 生成的,而在某些語言(如 Python)中,這一比例高達 40%。 所以,GitHub Copilot 並沒有寫出完美的代碼。 它旨在根據它可以訪問的上下文生成可能的最佳程式碼,但它不會測試它建議的程式碼,因此程式碼可能並不總是有效,甚至可能沒有意義。 GitHub Copilot 只能保存非常有限的上下文,因此它可能無法使用專案中別處甚至同一檔案中定義的有用函數。 它可能會建議使用舊的或已棄用的程式庫和語言。 將非英語編寫的註釋轉換為程式碼時,和用英語編寫相比可能存在差異。 對於建議的程式碼,與其他程式語言相比,某些語言(如 Python、JavaScript、TypeScript 和 Go)的性能可能比較好。

如同其他程式設計,GitHub Copilot 建議的程式碼應該經過仔細測試、審查和評量。 作為開發人員,你始終負責。

有沒有可能 GitHub Copilot 建議的程式抄襲之前受訓過的程式碼? GitHub 的回答是 :

GitHub Copilot 的建議都是通過 AI 生成的。 GitHub Copilot 以機率方式生成新程式碼,它們生成與訓練中出現的片段相同的程式碼的機率很低。 這些模型不包含程式碼資料庫,也不會“查找”片段。 我們最新的內部研究表明,在大約 1% 的情況下,建議可能包含一些長度超過 150 個字符的程式碼片段,這些程式碼片段與訓練集相匹配。 之前的研究表明,許多此類情況發生於當 GitHub Copilot 無法從您編寫的程式碼中收集到足夠的上下文時,或者當存在共同的、甚至可能是通用的問題解決方案時。

要如何降低 GitHub Copilot 建議的程式碼來自公開的程式碼呢 ? GitHub 的回答是 :

我們構建了一個過濾器( filter )來幫助檢測和抑制 GitHub Copilot 建議,這些建議包含與 GitHub 上的公共程式碼匹配的程式碼。

Copilot for Individual 用戶可以選擇在其個人帳戶設置期間啟用該過濾器。 對於 Copilot for Business 用戶,將由企業管理員控管過濾器的應用方式。 他們可以控制所有組織的建議或將控制權交給個別組織管理員。 這些組織管理員可以在設置期間為其組織中的用戶打開或關閉過濾器(假設他們的企業管理員具有延遲控制)。

啟用過濾器後,GitHub Copilot 檢查程式碼建議及其周圍程式碼是否與 GitHub 上大約 150 個字符的公共程式碼匹配或接近匹配(忽略空格)。 如果有匹配項,則不會向您顯示建議。 此外,我們已經宣布我們正在構建一個功能,該功能將為類似於 GitHub 上的公共程式碼的建議提供參考,以便您可以更明智地決定是否使用該程式碼以及如何使用該程式碼,並探索和學習如何使用該程式碼用於其他專案。

就像當您使用非獨立來源的材料編寫任何程式碼時,您應該採取預防措施以了解其工作原理並確保其適用性。 其中包括嚴格的測試、IP 掃描和檢查安全漏洞。 在查看之前,您應該確保您的 IDE 或編輯器不會自動編譯或運行生成的程式碼。

GitHub Copilot 會幫助我為新平台編寫程式碼嗎? GitHub 的回答是 :

GitHub Copilot 接受過公共程式碼培訓。 當發布新的程式庫、框架或 API 時,可供模型學習的公共程式碼相對較少。 這會降低 GitHub Copilot 為新程式碼庫提供建議的能力。 隨著更多示例進入公共空間,我們將它們整合到訓練集中,建議相關性也會提高。 將來,我們將提供突出顯示較新的 API 和示例的方法,以提高它們在 GitHub Copilot 建議中的相關性。

使用者如何充分利用 GitHub Copilot? GitHub 的回答是 :

GitHub Copilot 在您將程式碼劃分為小功能、為功能參數使用有意義的名稱並隨時編寫良好的文檔字符串( docstrings )和註釋( comments )時效果最佳。 當它幫助您瀏覽不熟悉的程式庫或框架時,它似乎也做得最好。

由以上看來,AI 將幫助懂得程式設計的人更高效地完成設計,但對於不懂程式設計的人,其中是有很多盡信書不如無書的陷阱。

您想試試 GitHub Copilot 了嗎 ? 現在可以免費測試

支持 Soft & Share

❤️您應該有留意到,我們的網頁並不會出現干擾人的跳出煩人的廣告或是在內容中嵌入廣告,因為我們發現這樣對閱讀網頁的內容體驗真的是不好!

如果您覺得我們提供的內容服務還不錯,歡迎透過對以下產品/服務的購買投資來支持本站的營運走得更遠

如果暫時還不需要以下的付費服務,幫我們把這個網站分享給有需要的朋友,您的小小舉動會對 Soft & Share 有莫大的幫助!感謝您的支持!

🎈如果您點選優惠連結後,還是沒有看到優惠價格,請將瀏覽器的 cookie 清除 ( 清除 udemy 網站的就可以了 ),然後重新點選優惠連結並登入 Udemy 就可以了

也許你會有興趣

不受 FB 演算法影響,歡迎透過 e-mail 訂閱網站更新

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

Powered by WordPress.com.

Up ↑

%d 位部落客按了讚: