2021/6,微軟研究團隊發表一篇論文,提及針對大模型重新訓練,將產生大量計算導致成本高昂。但如果先凍結模型本身的權重,再插入層層套件調整模型運算,就能縮減大量計算需求、獲得有效的微調模型輸出結果。該研究在 RoBERTa、DeBERTa 和 GPT-2 上面嘗試,對局外人的我來說,
這都是個啥啊。
想像語言模型的運作原理、重新訓練語言模型的原理,以及在此之上新作法能優化的原理,抽象的概念一層一層往上疊,不了解的情況下就算設想出了譬喻來教大家,也只會寫出徒有形式缺乏精髓的介紹文,就像給 AI 一堆外表敘述提示詞,叫 AI 生成一個模型根本沒練到的角色一樣,特點都有,但就不是她。
幸好這問題,微軟那篇論文就能解決。
在 2022 年最後、Civitai、chichi-pui 宣布成立公司過沒幾天,GitHub 用戶 cloneofsimo 提出將微軟那篇論文介紹的新訓練方法:Low-rank Adaptation,簡稱 LoRA,應用在訓練 SD 模型上。論文裡難以想像的概念,瞬間變得直覺了:
AI 產圖模型太大了,重新訓練耗電腦設備,而新算法可以降低訓練成本,現在就算個人電腦也有機會訓練 LoRA ,讓 SD 模型去"畫"模型沒學過的東西啦 !
過往想讓 AI 產製特定角色的難點在於,如果訓練一整個幾 GB 大小的 Checkpoint ,才有辦法畫出「一個人」,總有一天會產生這樣訓練與儲存到底划不划算的終極大哉問。相較下 LoRA 模型大幅縮減了訓練需求的資料量、檔案只需要幾有一百多 MB,一台電腦內可以裝載更多,供普通用戶揮灑更多可能性。
雖然依照電腦性能,訓練 LoRA 模型這種新技術,依舊可能需要等待幾十分鐘甚至幾小時之久,而我顯然缺乏在我的 4GB 獨顯筆電上測試的勇氣。因為這台筆電剛買不到半年啊 ! 看看幾個月內 AI 圖像生成發展成什麼樣子 !
長遠來看,LoRA 技術在圖像生成的應用,讓更多人有能力作為供給者。過往只能讚嘆網路上那些設備好、有技術,可以自己融模型的大神,現在新作法只要準備適量的素材,便能生成自己喜歡的角色。而 Civitai 能容納各種檔案類型的設計,成為許多嘗試新技術用戶進行分享的園地。技術給了用戶參與的機會、平台給了用戶發揮的空間——
下一輪 AI 產圖風潮,自然水到渠成。
當時的我渾然不覺,慣例每日下班逛逛 Civitai。
儘管有一個平台海納百川,並且每天都有新東西是令人欣喜的事情,但最近 LoRA 這種新玩意兒未免太多了吧 ? 我仍偏好目前體積最小的文本反轉 pt 檔案,相較於 LoRA 一百多 mb,Embedding 的檔案只需要幾十 kb,單位空間下一定能存比較多 !
之後的日子,我刻意優先尋找 Embedding 下載使用,同樣能輸出特定角色,筆電存的檔案越多,便有越多工具、越寬廣的空間讓我發揮。可惜 Embedding 越來越難找,因為 LoRA 檔案數量指數成長,晚上瀏覽 Civitai 的時間越來越長。偶爾對 Embedding First 的意義感到迷茫,但想起那些致力於降低 AI 技術門檻的開發者與學者們,追求以小小套件微調整個大模型,那我堅持以更小的 Embedding 扭轉產出結果,意義在於與他們同心啊 !
直到隔年一月,我下載了某幹員的 Embedding,提示詞只有一個英文字母"W"。使用時一切正常,我不疑有它,繼續嘗試其他主題,這時怪事卻發生了 :
我發現如果不加強外表的權重,出圖人物都接近剛才那個套件的形象。
問題是,這時候我根本沒輸入會啟動套件的提示詞 ?
該不會召喚了哪位賽博女鬼吧,待我仔細檢查,才發現原因在於我輸入了模型看不懂的英文詞彙。AI 判定提示詞是看 token、不是看單詞本身,所以詞彙無法理解時,模型會將其拆分,直到出現能理解的詞。那串詞彙裡面恰好有個"W",顯然 AI 拆分後得到了W、啟動 Embedding、導致生成的每張圖都是某幹員形象。
而這就是新技術 LoRA 和過往 Embedding 的區別之一。 LoRA 有特定格式的呼叫詞<LoRA檔案名稱:權重> 來啟動檔案。沒有這組詞彙,LoRA 將無法啟動,避免發生一串敘述中恰好包含特定提示詞,意外觸發 Embedding 的狀況發生。