文章來(lái)源:機(jī)器之心
圖片來(lái)源:由無(wú)界 AI生成
AI 模型功能越來(lái)越強(qiáng)大,,結(jié)構(gòu)也越來(lái)越復(fù)雜,它們的速度也成為了衡量先進(jìn)程度的標(biāo)準(zhǔn)之一,。
如果 AI 是一輛豪華跑車,,那么 LoRA 微調(diào)技術(shù)就是讓它加速的渦輪增壓器。LoRA 強(qiáng)大到什么地步,?它可以讓模型的處理速度提升 300%,。還記得 LCM-LoRA 的驚艷表現(xiàn)嗎?其他模型的十步,,它只需要一步就能達(dá)到相媲美的效果,。
這是怎么做到的?Raphael G 的博客詳細(xì)說(shuō)明了 LoRA 如何在提高模型推理效率和速度方面取得顯著成效,并介紹了這一技術(shù)實(shí)現(xiàn)的改進(jìn)及其對(duì) AI 模型性能的重大影響,。以下為機(jī)器之心對(duì)本篇博客不改變?cè)獾木幾g和整理,。
原博客鏈接:https://huggingface.co/raphael-gl
我們已經(jīng)能夠大大加快基于公共擴(kuò)散模型的公共 LoRA 在 Hub 中的推理速度,,這能夠節(jié)省大量的計(jì)算資源,并帶給用戶更快更好的使用體驗(yàn),。
要對(duì)給定模型進(jìn)行推理,,有兩個(gè)步驟:
1. 預(yù)熱階段,包括下載模型和設(shè)置服務(wù) ——25 秒,。
2. 然后是推理工作本身 ——10 秒,。
經(jīng)過改進(jìn),預(yù)熱時(shí)間能夠從 25 秒縮短到 3 秒?,F(xiàn)在,,我們只需不到 5 個(gè) A10G GPU 就能為數(shù)百個(gè)不同的 LoRA 提供推理服務(wù),而對(duì)用戶請(qǐng)求的響應(yīng)時(shí)間則從 35 秒減少到 13 秒,。
下面讓我們進(jìn)一步討論如何利用 Diffusers 庫(kù)中最近開發(fā)的一些功能,,通過單個(gè)服務(wù)以動(dòng)態(tài)方式為許多不同的 LoRA 提供服務(wù),。
什么是 LoRA
LoRA 是一種微調(diào)技術(shù),,屬于「參數(shù)高效微調(diào)」(parameter-efficient fine-tuning,PEFT)方法系列,,該方法致力于在微調(diào)過程減少受影響可訓(xùn)練參數(shù)的數(shù)量,。它在提高微調(diào)速度的同時(shí),還能減少微調(diào)檢查點(diǎn)的大小,。
LoRA 的方法并不是通過對(duì)模型的所有權(quán)重進(jìn)行微小改動(dòng)來(lái)微調(diào)模型,,而是凍結(jié)大部分層,只在注意力模塊中訓(xùn)練少數(shù)特定層,。此外,,我們通過在原始權(quán)重上添加兩個(gè)較小矩陣的乘積來(lái)避免觸及這些層的參數(shù)。這些小矩陣的權(quán)重會(huì)在微調(diào)過程中更新,,然后保存到磁盤中,。這意味著所有模型的原始參數(shù)都被保留下來(lái),使用者可以用自適應(yīng)方法在其上加載 LoRA 權(quán)重,。
LoRA(Low-Rank Adaptation,,低秩自適應(yīng))的名稱來(lái)源于上文提到的小矩陣。有關(guān)該方法的更多信息,,可以參閱下方博客或原論文,。
- 相關(guān)博客鏈接:https://huggingface.co/blog/lora
- 論文鏈接 https://arxiv.org/abs/2106.09685
下圖顯示了兩個(gè)較小的橙色矩陣,,它們被保存為 LoRA 適配器的一部分,。接下來(lái),我們可以加載 LoRA 適配器,,并將其與藍(lán)色基礎(chǔ)模型合并,,得到黃色微調(diào)模型。最重要的是,,我們還可以卸載適配器,,這樣就可以在任何時(shí)候返回到原始基礎(chǔ)模型。
換句話說(shuō),LoRA 適配器就像是基礎(chǔ)模型的附加組件,,可以按需添加和卸載,。由于 A 級(jí)和 B 級(jí)較小,與模型尺寸相比,,它非常輕便,。因此,加載速度要比加載整個(gè)基礎(chǔ)模型快得多,。
例如,,被廣泛用作許多 LoRA 適配器基礎(chǔ)模型的 Stable Diffusion XL Base 1.0 模型 repo,我們會(huì)發(fā)現(xiàn)它的大小約為 7 GB,。然而,,像這樣的典型 LoRA 適配器僅占用 24 MB 空間。
在 Hub 上,,藍(lán)色基本模型的數(shù)量遠(yuǎn)遠(yuǎn)少于黃色模型,。如果能從藍(lán)色快速切換到黃色,反之亦然,,那么我們就有辦法為許多不同的黃色模型提供服務(wù),,并且只需少數(shù)不同的藍(lán)色部署。
LoRA 的優(yōu)勢(shì)
Hub 上擁有約 2500 個(gè)不同的公共 LoRA,,其中絕大多數(shù)(約 92%)基于 Stable Diffusion XL Base 1.0 模型,。
在這種共享機(jī)制之前,要為所有這些模型(例如上文圖中所有黃色合并矩陣)部署專用服務(wù),,并至少占用一個(gè)新的 GPU,。啟動(dòng)服務(wù)并準(zhǔn)備好為特定模型的請(qǐng)求提供服務(wù)的時(shí)間約為 25 秒,此外還有推理時(shí)間,,在 A10G 上以 25 個(gè)推理步驟進(jìn)行 1024×1024 SDXL 推理擴(kuò)散的時(shí)間約為 10 秒,。如果一個(gè)適配器只是偶爾被請(qǐng)求,它的服務(wù)就會(huì)被停止,以釋放被其他適配器搶占的資源,。
如果你請(qǐng)求的 LoRA 不那么受歡迎,,即使它是基于 SDXL 模型的,就像迄今為止在 Hub 上發(fā)現(xiàn)的絕大多數(shù)適配器一樣,,也需要 35 秒來(lái)預(yù)熱并在第一次請(qǐng)求時(shí)獲得響應(yīng),。
不過,以上已成為過去時(shí),,現(xiàn)在請(qǐng)求時(shí)間從 35 秒縮短到 13 秒,,因?yàn)檫m配器將只使用幾個(gè)不同的「藍(lán)色」基礎(chǔ)模型(如 Diffusion 的兩個(gè)重要模型)。即使你的適配器不那么火熱,,其「藍(lán)色」服務(wù)也很有可能已經(jīng)預(yù)熱,。換句話說(shuō),即使你不經(jīng)常請(qǐng)求你的模型,,也很有可能避免了 25 秒的預(yù)熱時(shí)間,。藍(lán)色模型已經(jīng)下載并準(zhǔn)備就緒,我們要做的就是卸載之前的適配器并加載新的適配器,,只需要 3 秒鐘,。
總的來(lái)說(shuō),盡管我們已經(jīng)有辦法在各個(gè)部署之間共享 GPU 以充分利用它們的計(jì)算能力,,但相比之下仍然需要更少的 GPU 來(lái)支持所有不同的模型,。在 2 分鐘內(nèi),大約有 10 個(gè)不同的 LoRA 權(quán)重被請(qǐng)求,。我們只需使用 1 到 2 個(gè) GPU(如果有請(qǐng)求突發(fā),,可能會(huì)更多)就能為所有這些模型提供服務(wù),,而無(wú)需啟動(dòng) 10 個(gè)部署并讓它們保持運(yùn)行,。
實(shí)現(xiàn)
我們?cè)谕评?API 中實(shí)現(xiàn)了 LoRA 共享。當(dāng)在平臺(tái)上對(duì)一個(gè)模型發(fā)起請(qǐng)求時(shí),,我們首先判斷這是否是一個(gè) LoRA,,然后確定 LoRA 的基礎(chǔ)模型,并將請(qǐng)求路由到一個(gè)能夠服務(wù)該模型的共同的后端服務(wù)器群,。
推理請(qǐng)求通過保持基礎(chǔ)模型運(yùn)行狀態(tài),,并即時(shí)加載 / 卸載 LoRA 來(lái)服務(wù)。這樣,,你就可以重復(fù)使用相同的計(jì)算資源來(lái)同時(shí)服務(wù)多個(gè)不同的模型,。
LoRA 的結(jié)構(gòu)
在 Hub 中,LoRA 可通過兩個(gè)屬性來(lái)識(shí)別:
LoRA 會(huì)有一個(gè) base_model 屬性,這是 LoRA 建立的基礎(chǔ)模型,用于執(zhí)行推理過程中使用,。由于不僅 LoRA 擁有這樣的屬性(任何復(fù)制的模型都會(huì)有一個(gè)),,所以它還需要一個(gè) lora 標(biāo)簽來(lái)正確識(shí)別。
數(shù)據(jù)展示
每次推理多花 2 到 4 秒鐘,,我們就能為很多不同的 LoRA 提供服務(wù),。不過在 A10G GPU 上,推理時(shí)間大大縮短,,而適配器加載時(shí)間變化不大,,因此 LoRA 的加載 / 卸載成本相對(duì)更高。
所有數(shù)字的單位為秒。
批處理如何,?
最近有一篇非常有趣的論文,,介紹了如何通過在 LoRA 模型上執(zhí)行批量推理來(lái)提高吞吐量。簡(jiǎn)而言之,,所有推理請(qǐng)求都將被批量收集,,與通用基礎(chǔ)模型相關(guān)的計(jì)算將一次性完成,然后再計(jì)算剩余的特定適配器產(chǎn)品,。
論文鏈接 https://arxiv.org/pdf/2311.03285.pdf
我們沒有采用這種技術(shù),。相反,,我們堅(jiān)持單個(gè)順序推理請(qǐng)求。因?yàn)槲覀冇^察到對(duì)于擴(kuò)散器來(lái)說(shuō),,吞吐量不會(huì)隨著批處理規(guī)模的增加而顯著提高,。在我們執(zhí)行的簡(jiǎn)單圖像生成基準(zhǔn)測(cè)試中,當(dāng)批量大小為 8 時(shí),,吞吐量只增加了 25%,,而延遲卻增加了 6 倍。
關(guān)于加載 / 卸載 LoRA 的內(nèi)容,,請(qǐng)閱讀博客原文,。
免責(zé)聲明:本文來(lái)自網(wǎng)絡(luò)收錄或投稿,觀點(diǎn)僅代表作者本人,,不代表芒果財(cái)經(jīng)贊同其觀點(diǎn)或證實(shí)其描述,,版權(quán)歸原作者所有。轉(zhuǎn)載請(qǐng)注明出處:http://lequren.com/1085700.html
溫馨提示:投資有風(fēng)險(xiǎn),,入市須謹(jǐn)慎,。本資訊不作為投資理財(cái)建議,。