建議

使用以大型語言模型為基礎的生成式 AI 系統參與 FOSS 貢獻時

前言

整個電腦使用者社群,也就是很快將接近所有人類的群體,正面對以大型語言模型(Large Language Models,以下簡稱「LLM-gen-AI」)為基礎的生成式人工智慧系統所帶來、日益嚴峻的難題。1 對軟體自由倡議者而言,這方面的挑戰尤其艱難;這些 LLM-gen-AI 系統已經被認真地用在軟體建立與修改工作上。

這個棘手問題,無法只靠一份聲明或幾篇部落格文章就充分緩解。2022 年,Software Freedom Conservancy 在這個特定議題上展開歷程,當時我們的政策研究員 Bradley M. Kühn 發表了〈If Software is My Copilot, Who Programmed My Software?〉。過去一年,當 SFC 的一些會員專案與支持者開始經常就這些問題尋求道德與倫理上的指引時,這段歷程變得更複雜,也更急迫。這幾個月來,SFC 幾乎每天都在內部討論 LLM-gen-AI 系統所帶來的眾多困境。

2024 年,SFC 發表了一份願景式聲明,那是一個思想實驗,而不是定義。現在,我們要向那些被雇主要求使用 LLM-gen-AI 程式碼助理來貢獻自由及開放原始碼軟體(Free and Open Source Software,以下簡稱「FOSS」)的人,提出迫切的建議。

有些 FOSS 專案領導者對任何 LLM-gen-AI 貢獻採取零容忍做法。我們支持做出這類決定的領導者。面對大量湧入的新貢獻,FOSS 專案領導者值得我們同理與理解。評估修補一直都需要仔細分析(畢竟,人類也會寫出糟糕的程式碼)。如今,這種分析需求讓維護者覺得艱鉅,是合理的感受。每個人都應尊重他們的決定。

然而,我們不能,也不應忽視那些決定探索這些工具、希望讓 FOSS 變得更好的 FOSS 貢獻者。軟體自由倡議若要成功,就必須承認:距離普遍的軟體自由,我們至少還有數十年的路要走。專有系統仍會持續存在;它們繼續超越 FOSS 的風險是真實存在的。我們應該抵抗專有系統的使用,這也包括最受歡迎的 LLM-gen-AI 系統;但我們也應該願意(如同我們向來如此)在這些系統能推進軟體自由時運用它們。

經過大量研究、思考、協作,並與許多 FOSS 領導者諮詢後,SFC 為已決定使用 LLM-gen-AI 系統來輔助 FOSS 工作的 FOSS 貢獻者,形成以下建議。我們預期會定期更新這些建議。這些不是命令、要求、結論,也不是定義;相反地,這些是我們在仔細研究一個不可否認的現實後所形成的最佳實務:有些 FOSS 貢獻者確實想使用這些 LLM-gen-AI 系統。

在這些建議公布後的幾個月,SFC 計畫持續推動相關參與工作,包括文件、線上教學、公開問答,以及其他社群參與活動。SFC 並非孤立地提出這些建議;相反地,我們會為社群提供持續協助,特別是協助那些正在與專有 LLM-gen-AI 系統打交道的 FOSS 專案。

軟體自由的長期目標,是消除專有技術帶來的傷害。在我們朝這個更大的目標前進時,也應該設法減輕那些我們無法立刻消除的傷害。這些建議旨在降低這些系統造成的損害,也思考這些工具如何可能以違反直覺的方式幫助我們推進 FOSS。

建議

以下建議依照我們認為的相對重要性排序(最重要者在前)。

  • FOSS 社群不應只是容忍,而應支持那些直接拒絕 LLM-gen-AI 系統的人。 關於這些系統,有許多交互影響的倫理與道德問題,其中許多目前仍未被充分理解。任何選擇避開它們的人,都值得我們支持與協助。
  • 每位 FOSS 貢獻者都應在 LLM-gen-AI 使用上享有自決權。 沒有人應該在壓力下被要求使用這些系統。我們在此特別指出,來自科技工作者的回報愈來愈多:他們被管理階層命令,在所有工作中使用這些系統,無論是 FOSS 還是專有軟體,且往往以解雇作為威脅。這類強制要求是不合良知的。我們呼籲產業讓 LLM-gen-AI 的使用完全成為選項,並針對選擇不使用的人採取不歧視政策。
  • FOSS 專案不應排斥選擇使用 LLM-gen-AI 系統的貢獻者。 即使是已採取零容忍政策的 FOSS 專案,也應努力歡迎那些提交包含內容,或曾獲 LLM-gen-AI 系統協助之貢獻的人。這類貢獻應與技術上不足的「第一個修補」同樣看待:應歡迎提交者加入社群,並以溫和的回覆(即使可能是制式文字)感謝他們的興趣,同時溫和說明為何專案無法接受其貢獻。
  • 在提交前,FOSS 貢獻者必須投入大量時間審查由 LLM-gen-AI 輔助及/或生成的貢獻。 這類貢獻需要整理與把關。貢獻者應深入理解自己的貢獻。FOSS 流程能產出具備韌性、高度可維護,且對貢獻者友善的軟體系統。人類貢獻者參與 FOSS 專案(即使是志工),是因為 FOSS 專案能帶來樂趣與成就感。如果未經邀請、未經審核、由提示生成的貢獻大量湧入並成為常態,LLM-gen-AI 貢獻可能侵蝕 FOSS 最好的面向。
  • 完整揭露 LLM-gen-AI 系統如何以及何時被用來協助創作貢獻,是道德上的必要要求。 如果 FOSS 專案領導者無法檢視哪些貢獻受到了協助,以及受到多少協助,就無法對 LLM-gen-AI 政策做出良好決策。貢獻流程的一部分至少應包含揭露使用了哪個 LLM-gen-AI 系統、其版本(因為這些系統會隨時間改變),以及簡短描述該系統如何協助貢獻者。這些資訊應以機器可讀格式納入提交紀錄。
  • **貢獻者只應在明確指定可接受「無人值守」2 LLM-gen-AI 貢獻的區域提交這類貢獻。若不存在這樣的區域,應假定這類貢獻不受歡迎。** FOSS 維護者通常是志工,或只能在有限時間內處理其上游專案。維護者的時間十分寶貴,最適合用在人與人之間,與新舊人類貢獻者互動。新貢獻者應尊重既有關於「無人值守」LLM-gen-AI 的決定。維護者也應仔細思考哪些類型的無人值守 LLM-gen-AI 貢獻可能有用。我們鼓勵專案領導者在新貢獻者提出新想法時,靈活且定期地考慮是否調整無人值守貢獻政策,但也要緩慢而審慎。
  • LLM-gen-AI 使用者應對其互動保留詳細且準確的紀錄,並保存這些後設產物以供日後參考。 LLM-gen-AI 系統很擅長自動化產生使用者提示、筆記,以及其他導致某項產物生成之互動細節的紀錄。FOSS 貢獻者應保留這些後設產物,且無論授權條款為何,都應將其歸檔,如同它們是該貢獻之 Corresponding Source 的一部分。(未來幾週,SFC 將發布教學與範本,協助自動化這項重要流程。)
  • 避免對生成貢獻的法律意義,以及它們是否是「破壞 copyleft 的著作權洗衣機」過早下結論。 仍有許多法律問題尚未解答,專家也正在積極尋找解方。SFC 將在未來幾個月發布更多關於此議題的內容。
  • 輸入會影響產物的授權。 對於經過所謂「訓練」流程之素材的授權義務問題,目前仍未定論。儘管如此,大多數 LLM-gen-AI 對話並不從一個提示開始。相反地,最常見的情況是,使用者把 LLM-gen-AI 指向一個程式碼庫,並接受其協助,為該程式碼庫產生修補。如果該程式碼庫採用 copyleft 授權,你的修改就必須依該專案的授權條款授權,這同時源於該授權的著作權與契約條款。
  • 「一切皆 Copyleft」仍是最可行且最安全的做法。 當然,想用非 copyleft 授權釋出 FOSS 的人,在使用這些工具時需要擔心更多事。很明顯,每個被廣泛使用的 LLM-gen-AI 都曾以許多知名 copyleft 程式碼訓練。法院需要數年時間,才能對許多相關法律問題提出指引。在此同時,沒有任何事阻止你對自己生成的作品使用 copyleft 授權,尤其是使用與其他 copyleft 授權廣泛相容的授權。SFC 將投入員工時間協助 copyleft-next 專案,最終提供一個與其他 copyleft 廣泛相容,且非常適合作為 LLM-gen-AI 輸出之 copyleft 的授權。
  • 當 LLM-gen-AI 系統(包括專有系統)能大幅加速 FOSS 改進時,使用這類工具是一種適當的策略性妥協。 多數 FOSS 開發者並不是 LLM-gen-AI 系統建立與訓練領域的專家。在這些情況下,這些開發者應能安心做出使用 LLM-gen-AI 系統的策略性選擇。

我們厭惡使用專有工具,也從不自在於推薦它們。然而,近五十年來,FOSS 貢獻者一直使用專有工具來創造並推進軟體自由。撰寫專有系統無疑是一種反社會行為,我們所有人都應避免。使用專有系統,特別是在它們能推進 FOSS 時,則是高度取決於具體事實的戰術決策。

警告:務必非常謹慎,充分理解任何專有授權的含義。SFC 將在未來幾週發布一些關於如何進行這類分析的指引。

  • 具備技能且有興趣打造更友善於 FOSS 的 LLM-gen-AI 系統者,應將此視為高度優先事項。 雖然目前沒有任何系統符合我們願景式系統的不可能之夢,但有一些明顯可追求的方向能朝那個目標推進。SFC 將在未來幾個月於部落格上介紹朝這些方向努力的人。
  • 不要過度使用 LLM-gen-AI,也不要讓自己的技能退化。 在我們與 FOSS 社群討論 LLM-gen-AI 的過程中,似乎有一個普遍結論:當非常有經驗的 FOSS 開發者坐在提示操作的位置上時,這些系統最有效,也最能提供幫助。LLM-gen-AI 系統應該補充既有技能與工具,而不是取代它們。開發者應持續對軟體為何如此運作保持好奇,而這種好奇也應延伸到 LLM-gen-AI 的輸出,甚至延伸到系統本身。
  • 仔細思考你的使用方式。 身為軟體技術工作者,數十年來,我們一直在資源消耗與便利性之間做出複雜選擇。以 CI 的出現為例,它大幅增加了運算時間,同時也簡化了貢獻流程。作為個別 FOSS 開發者,我們不太可能改變這些專有軟體公司的不良行為;這些公司不是專注於建立 LLM-gen-AI,就是強制過度使用 LLM-gen-AI。

這些技術觸及數百個具有社會重要性與社會正義意義的交織議題,包括這些系統的開發與使用對環境造成的影響。我們的焦點與專業在於其對軟體的影響;在此,我們評估使用者自由,並把我們的想法加入整體社會對話,討論在 FOSS 脈絡下,這項技術應如何被使用、控制與分配。至於與軟體自由無關的議題,我們尊重並交由專注於環境及其他交織議題的專家。

依我們的經驗,FOSS 貢獻者在歷史上通常比專有軟體與系統的開發者更留意,也更關心自己的行動如何影響他人。請把這種留意帶入你對 LLM-gen-AI 的使用。僅舉兩個例子:

  • 不要每遇到一個問題就立刻跑去找 LLM-gen-AI;
  • 當 LLM-gen-AI 顯然正在做無用處理時,請留意並迅速把它導向更有用的事情。

前方道路

多數新技術都會帶來一些不利結果。我們必須審慎辨識並緩解它們。社會正義運動(包括軟體自由與軟體維修權運動)之所以成功,是因為懷有善意的個人以可持續且一致的方式行動,帶來所需的改變。在 FOSS 中,這些人持續發明並改進尊重使用者權利與自由的新技術。

以上建議是一個開始。隨著事實改變,我們準備修訂並進一步說明。我們的社群曾成功運用自身獨特的敏銳能力,也將再次運用它來扭轉目前的權力失衡。我們必須一如既往地創造性行動;FOSS 社群擅長以巧思提出策略,抵消專有軟體的力量。

在通往普遍軟體自由與權利的跨世代旅程上,SFC 與你同行。

當我們此刻一起邁出下一步時,預期會感到不安,但也要擁抱這份不安。SFC 的目標堅定不移:賦權消費者與使用者,讓他們推進並行使軟體自由,以及軟體維修權。請記得,當我們保持警覺、用心且專注時,這些策略已經奏效,而且將會繼續奏效

致謝

Software Freedom Conservancy 在經過數月內部審議,並與一群志工討論後發布此聲明,這些志工包括 John Sullivan、Stefano Zacchiroli,以及許多匿名貢獻者。此聲明由 SFC 與該群體共同起草。

註腳

1 這些建議特別針對諸如 Claude Code、Copilot CLI、Antigravity、OpenCode 等系統(其中多數目前是專有系統)。這些系統利用 LLM 生成文字產物,以協助軟體專案貢獻者。目前沒有已知的簡稱可指稱這些系統,因此我們在此稱其為「LLM-gen-AI」,以在全文中提醒讀者:這些建議不一定適用於其他形式的 AI,也不一定適用於 LLM 的其他用途。

2 我們所稱的「無人值守」,是指由提示生成、且沒有經過進一步人工審核的貢獻。