創(chuàng)新突破!字節(jié)跳動(dòng)首創(chuàng)無需數(shù)據(jù),1.58位超低量化自監(jiān)督生成
Midjourney、DALLE 3、SD3等模型的出現(xiàn),使得文生圖像賽道實(shí)現(xiàn)了快速發(fā)展。但這些模型的參數(shù)非常大,在推理、生成的過程中占用了大量?jī)?nèi)存,極大限制了使用場(chǎng)景和設(shè)備。
為了解決這一難題,字節(jié)跳動(dòng)的研究人員發(fā)布了創(chuàng)新的量化方法,不需要訪問任何實(shí)際的圖像數(shù)據(jù),僅依賴模型自身的自監(jiān)督信號(hào)即可。研究人員在著名開源文生圖像模型FLUX進(jìn)行了實(shí)驗(yàn)。結(jié)果顯示,成功將FLUX的模型量化到1.58位權(quán)重,僅用{-1, 0, +1}三種值就能表示而不是更高精度的浮點(diǎn)數(shù)。
盡管模型被量化到如此低的位數(shù),但在生成 1024 x 1024 分辨率圖像時(shí),性能仍與未量化的模型基本一致。為了支持1.58位的運(yùn)算,還開發(fā)了一個(gè)專用的計(jì)算內(nèi)核,存儲(chǔ)減少了 7.7 倍,推理內(nèi)存減少了5.1倍,極大降低了對(duì)存儲(chǔ)、內(nèi)存的需求。
先為大家簡(jiǎn)單介紹一下什么是量化技術(shù)。量化是一種模型壓縮技術(shù),主要通過減少模型權(quán)重的精度來降低模型的大小和計(jì)算需求。在傳統(tǒng)的深度學(xué)習(xí)模型中,權(quán)重通常以32 位浮點(diǎn)數(shù)存儲(chǔ),這占用了大量的內(nèi)存空間。
量化技術(shù)通過將這些權(quán)重映射到更少的位表示,比如8 位或更低,從而顯著減少了模型的存儲(chǔ)需求。量化還可以減少模型在推理時(shí)的計(jì)算量,因?yàn)檎麛?shù)運(yùn)算比浮點(diǎn)運(yùn)算更快、更高效。
在1.58-位FLUX的研究中,量化的應(yīng)用達(dá)到了一個(gè)新的巔峰,研究人員沒使用常見的8 位或更低的精度,而是將FLUX模型中的權(quán)重量化到了1.58 位,僅用三個(gè)數(shù)值就能表示。雖然高性能量化方式極大地壓縮了模型的大小,但也有一個(gè)很大難題,如何在低精度下保持模型的性能。
為了實(shí)現(xiàn)這一目標(biāo),研究團(tuán)隊(duì)采用了一種后訓(xùn)練量化(PTQ)的方法。傳統(tǒng)的 QAT 方法通常需要在模型訓(xùn)練過程中引入額外的量化操作,并對(duì)模型進(jìn)行微調(diào)。這一過程往往涉及到復(fù)雜的訓(xùn)練機(jī)制調(diào)整和大量額外的計(jì)算資源投入。模型需要在訓(xùn)練過程中不斷適應(yīng)量化帶來的精度損失,通過反向傳播等技術(shù)手段來調(diào)整模型參數(shù),以盡量減少量化對(duì)模型性能的影響。
而PTQ無需在訓(xùn)練過程中對(duì)模型進(jìn)行繁瑣的微調(diào)操作,直接聚焦于預(yù)訓(xùn)練好的模型進(jìn)行量化處理,可以充分利用已經(jīng)訓(xùn)練完成的 FLUX.1 - dev 模型所包含的豐富訓(xùn)練數(shù)據(jù)和強(qiáng)大能力,避免了重新訓(xùn)練所帶來的巨大計(jì)算開銷和時(shí)間消耗。
為了進(jìn)一步確保 1.58 位 FLUX模型在推理過程中的高效性,研究團(tuán)隊(duì)在 PTQ 方法的基礎(chǔ)上,還開發(fā)了專門針對(duì) 1.58 位操作優(yōu)化的自定義內(nèi)核。這個(gè)內(nèi)核在模型推理過程中發(fā)揮著至關(guān)重要的作用。通過優(yōu)化數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)和訪問模式,使得模型在運(yùn)行時(shí)能夠以更低的內(nèi)存占用實(shí)現(xiàn)高效計(jì)算。
在不同類型的 GPU 上進(jìn)行測(cè)試時(shí),1.58 位FLUX 借助該自定義內(nèi)核實(shí)現(xiàn)了推理內(nèi)存使用量的大幅減少,減少倍數(shù)超過 5.1 倍。在推理過程中,模型能夠更加有效地利用內(nèi)存資源,降低了內(nèi)存溢出的風(fēng)險(xiǎn),提高了系統(tǒng)的整體穩(wěn)定性和運(yùn)行效率。
此外,自定義內(nèi)核還通過優(yōu)化計(jì)算流程,減少了不必要的計(jì)算步驟和數(shù)據(jù)傳輸,顯著提高了模型的推理速度,降低了推理延遲。例如,在處理復(fù)雜圖像生成任務(wù)時(shí),1.58 位 FLUX 能夠更快地響應(yīng)用戶請(qǐng)求,生成高質(zhì)量的圖像結(jié)果提供更好的使用體驗(yàn)。
在性能評(píng)估方面,研究人員在GenEval數(shù)據(jù)集和T2I CompBench驗(yàn)證分割上評(píng)估了FLUX和1.58-位 FLUX。評(píng)估方法遵循官方的圖像生成流程,生成的圖像分辨率為1024×1024。結(jié)果顯示,1.58 位 FLUX在多個(gè)指標(biāo)上與FLUX相當(dāng),這證明了量化后的模型在保持性能方面的優(yōu)勢(shì)。
在效率方面,1.58-位 FLUX在模型存儲(chǔ)和推理內(nèi)存方面都顯示出顯著的效率提升。例如,與FLUX相比,1.58-位 FLUX將檢查點(diǎn)存儲(chǔ)減少了7.7倍。這一成果是通過將1.58位權(quán)重存儲(chǔ)為2位有符號(hào)整數(shù)實(shí)現(xiàn)的,從而將它們從16位精度壓縮。
在推理延遲方面,1.58-位 FLUX在不同GPU上的表現(xiàn)也有所提升。尤其是在性能較低但適合部署的GPU上,例如,L20和A10,1.58-位 FLUX的推理延遲得到了顯著改善。
研究人員表示,這個(gè)量化方法很快就會(huì)開源,幫助更多受算力、內(nèi)存限制的人員來實(shí)現(xiàn)更高效的模型推理。
即將開源:https://github.com/Chenglin-Yang/1.58bit.flux
本文轉(zhuǎn)自 AIGC開放社區(qū) ,作者:AIGC開放社區(qū)
