MOOSSin
選單

全部文章 · 開源工具

開源模型的授權陷阱:程式是 MIT,權重不一定是

LivePortrait、FLUX.1、SDXL、Depth Anything、ComfyUI 這些常見專案,授權都不是一句話能講完的。程式和權重分開授權、同一系列不同尺寸不同條款、預設相依鏈裡藏著非商用元件。這篇整理我查核過的幾個案例和幾條原則,以及為什麼查授權比想像中像在讀食品標示。

有一陣子我對超市裡的食品標示很著迷。同一個牌子的餅乾,原味的成分表跟巧克力味的差很多,巧克力味那個多了三行你唸不出來的東西。同一個系列,包裝長得一樣,裡面不一樣。生成式模型的授權給我完全一樣的感覺,只是這次唸不出來的東西會影響你能不能拿它賺錢。

生成式模型的授權比一般軟體複雜,因為一個「專案」通常是三樣東西:推論程式、模型權重、預設會下載的一串相依模型。三樣可以各有各的授權。我替自己的影片製作流程查核過一批候選,以下是幾個值得記住的案例,全部以官方 LICENSE 檔案和模型卡為準。

同一個專案,程式和權重不同授權

Depth Anything V2 的程式是 Apache-2.0,權重裡只有 Small 是 Apache-2.0,Base、Large、Giant 全是 CC-BY-NC-4.0。NC 就是 non-commercial,不能商用。官方範例預設用最大的那一個,照抄範例就踩進非商用。用途涉及商業,只能明寫 Small 的檔名。

這就像餅乾的包裝盒上寫著「本產品不含麩質」,然後小字寫「僅限原味」。你拿了巧克力味的就不算。

同一系列,不同版本不同條款

FLUX.1 有 dev 和 schnell 兩個開放權重。schnell 是 Apache-2.0,模型卡明示可商用;dev 是專屬的 Non-Commercial License,限非商用、非正式環境。兩個名字只差一個字,條款差了一整個世界。

條款裡「允許某些輸出用於商業」不等於「允許在商業流程裡執行這個模型」,這兩句話要分開讀。前者是說你用它畫出來的圖可以賣,後者是說你不能開一間用它畫圖的店。這個區別很細,細到很多人會在讀第一句的時候就高興地關掉頁面。

CogVideoX 也一樣:2B 版本的權重目錄裡有一份 Apache-2.0 的 LICENSE,但 repository 的通用 MODEL_LICENSE 對其他尺寸有商用登記和流量限制的文字,不能把全系列視為同一授權。

預設相依鏈裡的非商用元件

這是最陰險的一種,因為你根本不會去看。

LivePortrait 的主程式是 MIT,但它的 LICENSE 明列 InsightFace 的模型僅限非商用,而預設的權重鏈就包含那些人臉偵測模型。工具本身可以商用,跑起來卻一定會用到不能商用的東西。就像餐廳的招牌菜是素的,但湯底是大骨熬的。要用得替換偵測鏈並逐件核對,否則整包排除。

附條件的開放權重

SDXL base 1.0 用的是 CreativeML Open RAIL++-M:允許包括商業在內的使用,但有用途限制、衍生與散布條件,透過 API 託管也算它定義的散布。它是附條件的開放權重,不能叫純 MIT 或 Apache 的開源。

模型卡上同時還留著「intended for research purposes only」的敘述,授權授予和用途說明要分開讀,不能只看其中一段。這種「條款說可以、說明說不建議」的組合在模型世界很常見,兩段都要讀完才能下判斷,而且下判斷的人要是你自己,不是網路上某篇說「SDXL 可以商用喔」的文章。

集合授權不等於逐檔授權

gl-transitions 這個 shader 集合的 LICENSE 是 MIT,但它明說個別 transition 的檔頭可能另有授權,不能整包當 MIT 用。Effekseer 的範例特效庫、第三方 Godot shader 包,情況類似:程式的 MIT 不必然涵蓋附帶的圖片、logo 和示例素材。要用就逐檔挑有明確授權的。

ComfyUI 的核心是 GPL-3.0,商用本身被允許,但這不會讓你順帶取得任何 custom node、模型、LoRA 或工作流素材的商用權,它們各自算。ComfyUI 的生態就像一間什麼都有的大賣場,賣場本身的營業執照跟每一個櫃位的貨是不是正版沒有關係。

硬體也是條件的一部分

Wan2.2 的 TI2V-5B 權重是 Apache-2.0,授權乾淨得像剛洗過的盤子,但官方的 720p 指令要求至少 24 GB 顯存。8 GB 的機器上它不是候選,除非有人實測過量化版本可以量產,而「應該可以」不算實測。授權過關、硬體不過關,一樣是不能用。

小劇場:這也太麻煩了吧

「你每個模型都這樣查?不會很花時間嗎?」

「會,一個大概半小時到一小時。」

「那不如直接用,反正誰會來查一個小網站。」

「大概不會有人查。但我不想把一個『大概不會』放在流程的底層,然後在它上面蓋東西。」

「你這樣講很像在講地基。」

「授權就是地基。地基有問題的時候,上面蓋得越漂亮越慘。」

「好,那你查完的結果放哪?」

「一個資料夾,每個模型一份,LICENSE 原文、網址、日期、雜湊。查過的不用再查,除非它出新版。」

我的幾條原則

查核的單位是檔案和版本,不是專案名稱:釘住程式和權重的 revision,把當時的 LICENSE 原文、網址、取回時間和 SHA-256 存下來。模型卡上的授權標籤只作輔助,以 LICENSE 檔為準,因為標籤是有人手動填的,填錯的機率不低。

「本機製作並販售成品」和「散布軟體、權重或素材包」是兩種不同的義務範圍,同一個授權在兩種情境下的答案可能不同。你自己用 GPL 工具做出來的影片可以賣,但你不能把那個工具改一改包起來賣而不附原始碼。

沒有新證據,不把「未知」改成「可商用」。「未知」是一個合法的狀態,可以一直停在那裡,直到有人真的去讀了條款。

這些原則聽起來像法務,其實只是在寫程式之前多讀三個檔案。讀完之後,很多候選會自己消失,剩下的用起來才安心。跟看食品標示一樣,看久了你會發現自己開始只買那些成分表很短的東西,因為短的比較不會出事。

那些授權名字是哪來的

MIT、BSD、Apache 這些是軟體授權,幾十年了,法律上很成熟,大家都知道怎麼讀。模型權重是新東西,這些舊授權套上去有時候不太合身,於是這幾年出現了一批專門給模型的授權。

OpenRAIL 是其中最常見的,RAIL 是 Responsible AI Licenses 的縮寫,2022 年由 BigScience 和 Hugging Face 那群人推出來,SDXL 用的 CreativeML Open RAIL++-M 就是它的一個變體。它的特色是「開放但有用途限制」:你可以用、可以改、可以商用,但不能拿去做清單上列的那些事,例如產生假訊息、歧視、未經同意的人像。這種授權在傳統開源定義裡不算開源,因為開源定義不允許用途限制,但它在模型世界很常見,因為模型能做的壞事比一般軟體多。

CC-BY-NC 是 Creative Commons 的授權,本來是給文章、照片、音樂用的,2001 年開始推廣。NC 是 NonCommercial。很多研究機構把模型權重用 CC 授權釋出,因為研究者熟悉它。問題是 CC 授權從來沒有考慮過「權重」這種東西,什麼算衍生作品、模型的輸出算不算,法律上都還在摸索。看到 CC-BY-NC 的權重,最安全的解讀是「作者不希望你賺錢」,其他細節先不要賭。

常見的三個誤會

第一個誤會是「Hugging Face 上的授權標籤是官方認證的」。那是上傳者自己選的下拉選單,沒有人審核。以 repository 裡的 LICENSE 檔為準,兩者不一致的時候,檔案贏。

第二個誤會是「基底模型可以商用,微調版就可以」。微調版繼承基底的授權,還可能加上微調者自己的條款,兩層都要看。一個 Apache 的基底被人用 CC-BY-NC 的資料微調,那個微調版的狀態很曖昧,最好避開。

第三個誤會是「我只是個人專案,不用管這些」。個人專案有一天可能變成不是個人專案。把授權查核當成一開始就做的事,成本是每個模型半小時;等到要商業化才回頭查,成本是重做整條流程。

一個週末可以試的小練習

挑一個你最喜歡的開源模型,去它的 repository 做這幾件事:找到 LICENSE 檔,記下它是哪一種;看模型卡的授權標籤,比對是否一致;看權重檔的目錄有沒有另一份 LICENSE;點開 requirements 或安裝腳本,看它預設會下載哪些其他模型,對那些模型再做一次前三步。

把結果寫成一張表,四五行就好。做完你會知道兩件事:這個模型能不能商用,以及「查一個模型的授權」實際上要花多久。第二件事比第一件更有用,因為它會讓你在下次評估任何模型的時候,把那半小時排進去,而不是最後才發現。

後記

食品標示這個比喻,我越用越覺得貼切。標示的存在不是為了讓你不吃,是為了讓你知道自己在吃什麼。授權查核也一樣,它不是為了讓你什麼都不能用,是為了讓你用的時候心裡有底。而心裡有底這件事,在你要把做出來的東西拿給別人看的那一刻,會比任何 benchmark 分數都值錢。

參考頁面:github.com/DepthAnything/Depth-Anything-V2#license、github.com/black-forest-labs/flux/tree/main/model_licenses

閱讀偏好

返回全部文章作者與內容更正

留言(0)

還沒有留言。讀完有想法,歡迎留下第一則。

留言經站長審核後才會顯示。暱稱和留言會公開,請不要寫下電話、地址等個人資料;資料怎麼處理,請見隱私權政策。