我關掉了 Copilot:因為我寫的程式碼出現在了別人的建議裡

上週,一位同事興奮地跟我說:「你看,Copilot 建議的這段程式碼,跟我們兩年前寫的那個工具函式一模一樣,連註解都很像。」我看了一眼,背脊一陣發涼。那是我寫的。這段程式碼從未開源,只存在於公司內部倉庫。它是怎麼跑到 Copilot 的訓練資料裡的?

一、Copilot 是怎麼學會你的程式碼的?

GitHub Copilot 的訓練資料來自公開儲存庫,這大家都知道。但問題在於:私有儲存庫的程式碼,也可能透過間接方式被「學習」

  • 如果你在編輯器裡打開了某個私有專案,Copilot 不會直接把你的程式碼上傳。但它的上下文包含了目前檔案的內容,這些內容會在本地處理後送到伺服器請求補全。微軟和 OpenAI 多次聲明,不會用私有程式碼訓練模型
  • 但開發者發現,Copilot 有時會逐字重現一些閉源專案的 API 和邏輯。這只能說明:這些程式碼可能以某種形式外流過(例如洩漏、員工上傳到公開儲存庫、第三方依賴中包含)。
  • 我們內部稽核後發現,那位同事兩年前寫的函式,其實是參考了某個開源函式庫並做了修改。而那個開源函式庫的程式碼,可能已經進入了 Copilot 的訓練資料。Copilot 學的是開源函式庫的「原型」,然後推導出了我們修改後的版本。

換句話說,Copilot 並不是直接偷了你的私有程式碼,而是「推測」出了與你類似的實作。但這依然讓人不安:我的程式風格、變數命名,甚至是特定的 bug 寫法,會不會被模型「記住」?

二、更大的爭議:Copilot 是否構成侵權?

自 2022 年起,就有集體訴訟指控 GitHub Copilot 違反開源授權。原告稱,Copilot 在訓練時使用了大量受著作權保護的程式碼(例如 GPL 授權的開源軟體),並在生成結果中完整重現了這些程式碼,且沒有標註作者與版權聲明。這個案子至今沒有最終判決,但已經讓很多開發者保持警惕。

2025 年底,某知名開源專案作者發現,Copilot 直接輸出了他專案裡的完整函式,連註解裡的作者姓名都一模一樣。他在 X 上憤怒地說:「至少把我的名字留下。」

三、我們團隊的反應:有人關掉,有人繼續

我把這件事在團隊裡一說,反應兩極。

關掉派(包括我)認為:風險不可控。雖然公司還沒因此出事,但誰也無法保證未來不出問題。我們寫的雖然是內部系統,但包含了業務敏感邏輯。萬一哪天 Copilot 給某個競爭對手生成了類似的程式碼,怎麼辦?這不是技術問題,是信任問題。

繼續使用派認為:這是因噎廢食。Copilot 確實提升了效率,而且目前沒有任何證據表明它會洩漏私有程式碼。至於開源授權問題,那是 GitHub 和微軟該解決的,普通開發者不用操心。

最後,我們沒有強制停用。但公司發了一則內部指引:核心業務模組、涉及敏感資料的程式碼撰寫時,建議關閉 AI 補全。

四、我的選擇:手動擋,回到沒有 Copilot 的日子

兩週前,我徹底關掉了 Copilot。不是因為它不好用,而是我發現自己開始依賴它。寫個迴圈,Tab;寫個函式,Tab;寫個註解,Tab。我的大腦在「退化」。重新回到沒有 AI 輔助的狀態,一開始很不習慣,打字速度降了,要自己回憶 API。但過了幾天,我發現自己更專注了,對程式碼的理解也更深。

我並不是反對 AI 程式開發。我只是覺得,在我們完全信任它之前,最好先搞懂它的邊界和風險

五、最後

我依然會用 Cursor 做一些輔助性的工作(寫文件、產生測試資料),但核心邏輯,我選擇自己敲。


原文出處:https://juejin.cn/post/7645134183955660835


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝12   💬4   ❤️1
464
🥈
alicec
📝1   ❤️2
87
#4
我愛JS
💬1  
3
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登