隨著生成式AI浪潮到來,AI模型變的更肥大、更加耗費運算量
因應這個挑戰,Microsoft、AMD、Intel、Meta、NVIDIA、Qualcomm等科技六巨頭在2023年底向Open Compute Project提交一個AI數值系統標準:MicroXcaling 格式 (簡稱MX),希望能比FP8更省AI記憶體空間、運算成本更低
AI運算所需的位元寬度(bitwidth),就像iPhone的價格一樣,「越低」就「越好」
怎麼說呢?
如果iPhone的價格從5萬台幣跳水成1萬台幣,就會有更多人買得起iPhone
如果AI運算所需的位元寬度能從8位元降到更低,就會有更多人用得起AI
▌科學記號與主流數值系統
現有主流的數值系統我們可以初步分為:整數(int)、浮點數(fp)、塊狀浮點數(block fp)、指數(exp)四大類。
相信大家國中都有學過「科學記號」,250這個「整數」可表示為2.5×10^2
因為電腦採用二進制,我們把科學記號從10為基底改成2為基底,250可以表示成1.953125×2^7,這就是「浮點數」
如果讓一群小數共用一個指數 (2^7),那就變成「塊狀浮點數」
我們也可以把這個浮點數四捨五入只看指數項,1.953125×2^7可以近似成2^7,這時就是「指數」囉
▌MicroXcaling (MX)賣點是什麼?
MicroXcaling最像是「塊狀浮點數」,也就是一群數字(element)共用一個縮放因子 (scale)
因為一群element共用一個scale,所以element有機會可以用到很少位元數,而scale則用來保證值域足夠
利用共用,MX既達成了「更低位元數」,又能「保持需要的值域」!
而element與縮放因子都是可以調整其格式的,可以配置其整數(M)有幾位元、指數(E)有幾位元
目前MX格式有四種:MXFP8、MXFP6、MXFP4、MXINT8
每32個elements共用一個scale,每個scale都是8位元指數,element分別是FP8、FP6、FP4、INT8格式
MXINT8 就很像是8位元的塊狀浮點數
▌什麼!GPT-3只要4位元MXFP4就夠了嗎!?
作者們實驗了20多種模型,有興趣歡迎自行查看論文的數據
講重點,在GPT-3上,用4位元的MXFP4來量化AI模型權狀可以達到跟FP32差不多的準確度!
▌台灣的AI數值系統
蘿蔔身為台灣一份子,知道其實也有許多認真的研究生和工程師在努力研發。
像是:
– 交大陳同學提出的FFP8格式,讓FP8格式的指數與整數位元寬度可被彈性調整,ffp8也有被整合進創鑫公司的AI晶片中 (蘿蔔之後有機會的話很想去創鑫學習
– 清大羅同學發表於ICLR的BSFP格式,加總多組客製化的MX格式來近似模型的權重,達成用低於8位元的權重量化實現高準確度,不需重新訓練
相比於大陸的CSDN、知乎,台灣好像沒什麼媒介能幫忙增加研究成果曝光
我們想做點改變,若你知道有相關的研究成果,且認為是「真」的研究成果,歡迎寄信給我們、或是直接留言
寄信格式:列出論文題目、發表位置、10~20字以內的總結
我們的email:lobolab.service@gmail.com
我們會幫忙統整進本文,利用社群力量讓更多人看到辛苦的研究成果!
▌延伸閱讀與資源
[1] https://www.opencompute.org/……/ocp-microscaling……
[2] Microscaling Data Formats for Deep Learning, Arxiv’23 (https://arxiv.org/pdf/2310.10537.pdf)
[3] All-You-Can-Fit 8-Bit Flexible Floating-Point Format for Accurate and Memory-Efficient Inference of Deep Neural Networks, Arxiv’21
[4] Block and Subword-Scaling Floating-Point (BSFP): An Efficient Non-Uniform Quantization For Low Precision Inference, ICLR’23 (https://openreview.net/pdf?id=VWm4o4l3V9e)