chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TPU-MLIR量化敏感層分析,提升模型推理精度

算能開(kāi)發(fā)者社區(qū) ? 2023-10-10 10:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


背景介紹

TPU-MLIR編譯器可以將機(jī)器學(xué)習(xí)模型轉(zhuǎn)換成算能芯片上運(yùn)行的bmodel模型。由于浮點(diǎn)數(shù)的計(jì)算需要消耗更多的計(jì)算資源和存儲(chǔ)空間,實(shí)際應(yīng)用中往往采用量化后的模型(也稱(chēng)定點(diǎn)模型)進(jìn)行推理。相比于浮點(diǎn)數(shù)模型,量化模型的推理精度會(huì)有一定程度的損失。當(dāng)精度損失較大時(shí),需要搜索模型中對(duì)精度影響較大的層,即敏感層,將其改回浮點(diǎn)類(lèi)型,生成混精度模型進(jìn)行推理。

以mobilenet-v2網(wǎng)絡(luò)為例,使用ILSVRC-2012數(shù)據(jù)驗(yàn)證集的5萬(wàn)張圖片驗(yàn)證浮點(diǎn)數(shù)模型和量化模型(表格中分別記為FLOAT和INT8)的精度,INT8模型的Top1精度降低了3.2%,Top5精度降低了2%。

TypeTop1 (%)Top5 (%)
FLOAT70.7289.81
INT867.5387.84

敏感層搜索

TPU-MLIR的敏感層搜索功能會(huì)計(jì)算網(wǎng)絡(luò)模型中的每一層分別由浮點(diǎn)數(shù)類(lèi)型轉(zhuǎn)成定點(diǎn)數(shù)類(lèi)型后,對(duì)網(wǎng)絡(luò)模型輸出造成的損失。同時(shí),由于量化threshold值也會(huì)影響定點(diǎn)模型的精度,敏感層搜索功能考慮了三種量化方法——KL、MAX和Percentile對(duì)精度的影響。KL方法首先統(tǒng)計(jì)FLOAT模型tensor絕對(duì)值的直方圖(2048個(gè)bin),得到參考概率分布P,隨后用INT8類(lèi)型去模擬表達(dá)這個(gè)直方圖(128個(gè)bin),得到量化概率分布Q,在不同的截取位置計(jì)算P和Q的KL散度,最小散度對(duì)應(yīng)的截取位置記為KL方法得到的threshold值。MAX方法是用FLOAT模型tensor絕對(duì)值的最大值作為量化threshold。Percentile方法則是通過(guò)統(tǒng)計(jì)FLOAT模型tensor絕對(duì)值的百分位數(shù)來(lái)確定threshold。

算法流程

敏感層搜索算法的流程圖如下:

30f41e20-6713-11ee-9788-92fbcf53809c.png敏感層搜索流程圖

  1. 在搜索之前需要先判斷FLOAT模型和INT8模型的相似度,用一定數(shù)目的圖片(比如30張)進(jìn)行推理,計(jì)算兩種模型輸出結(jié)果的余弦相似度的平均值,如果平均值達(dá)到預(yù)設(shè)值,比如0.99,則認(rèn)為INT8模型與FLOAT模型的相似度較高,不需要進(jìn)行敏感層搜索。
  2. 對(duì)于該模型,生成三種量化方法對(duì)應(yīng)的量化表。
  3. 循環(huán)每個(gè)op及每種量化方法,將該op改為INT8類(lèi)型,并采用對(duì)應(yīng)量化方法下的threshold,生成混精度模型,計(jì)算其與FLOAT模型網(wǎng)絡(luò)輸出的loss(1減余弦相似度),記錄最優(yōu)threshold,即最低loss值對(duì)應(yīng)的threshold,隨后將該op改回FLOAT類(lèi)型。
  4. 將所有op按照l(shuí)oss從大到小排序,選擇排名前五的op生成qtable。

在搜索過(guò)程中,對(duì)于每個(gè)op及其每種threshold值下生成的混精度模型與FLOAT模型的loss,以及最終按照l(shuí)oss排序的所有op信息(包括op的名字、類(lèi)型和loss),均會(huì)記錄在log日志中,用戶(hù)可以通過(guò)查看log日志,手動(dòng)調(diào)整qtable文件。

使用方法

敏感層搜索需要輸入從model_transform步驟得到的mlir文件,run_calibration步驟得到的量化表,推理用的數(shù)據(jù)集等,使用命令如下:

run_sensitive_layer.pymobilenet.mlir\
--dataset../ILSVRC2012\
--input_num100\
--inference_num30\
--max_float_layers5\
--expected_cos0.99\
--post_processpostprocess.py\
--calibration_tablemobilenet_cali_table\
--chipbm1684\
-omobilenet_qtable

各項(xiàng)參數(shù)的含義如下表所示:

參數(shù)名稱(chēng)含義
dataset用于量化和推理的數(shù)據(jù)集,推薦使用bad case
input_num用于量化的圖片數(shù)目
inference_num用于推理的圖片數(shù)目
max_float_layersqtable中的op數(shù)目
expected_cosINT8模型和FLOAT模型的余弦相似度閾值,達(dá)到閾值則不進(jìn)行敏感層搜索
post_process用戶(hù)自定義后處理文件路徑,后處理函數(shù)需要命名為PostProcess
calibration_tablerun_calibration步驟得到的量化表
chip使用的芯片類(lèi)型
o生成的qtable名稱(chēng)

敏感層搜索程序會(huì)生成如下文件:

  1. 用于生成混精度模型的qtable,每行記錄了需要轉(zhuǎn)回FLOAT的op及轉(zhuǎn)換類(lèi)型,例如:input3.1 F32;
  2. 經(jīng)過(guò)調(diào)優(yōu)后的新量化表new_cali_table,在原始量化表的基礎(chǔ)上,更新了每個(gè)op的threshold值為三種量化方法中最優(yōu)的threshold;
  3. 搜索日志SensitiveLayerSearch,記錄整個(gè)搜索過(guò)程中,每個(gè)op在每種量化方法下,混精度模型與FLOAT模型的loss;

注意,在model_deploy步驟生成混精度模型時(shí),需要使用qtable和新量化表。

精度測(cè)試結(jié)果

仍以前述精度測(cè)試采用的mobilenet-v2網(wǎng)絡(luò)為例,使用ILSVRC2012數(shù)據(jù)集中的100張圖片做量化,30張圖片做推理,敏感層搜索總共耗時(shí)402秒,占用內(nèi)存800M,輸出結(jié)果信息如下:

the layer input3.1 is 0 sensitive layer, loss is 0.008808857469573828, type is top.Conv
the layer input11.1 is 1 sensitive layer, loss is 0.0016958347875666302, type is top.Conv
the layer input128.1 is 2 sensitive layer, loss is 0.0015641432811860367, type is top.Conv
the layer input130.1 is 3 sensitive layer, loss is 0.0014325751094084183, type is top.Scale
the layer input127.1 is 4 sensitive layer, loss is 0.0011817314259702227, type is top.Add
the layer input13.1 is 5 sensitive layer, loss is 0.001018420214596527, type is top.Scale
the layer 787 is 6 sensitive layer, loss is 0.0008603856180608993, type is top.Scale
the layer input2.1 is 7 sensitive layer, loss is 0.0007558935451825732, type is top.Scale
the layer input119.1 is 8 sensitive layer, loss is 0.000727441637624282, type is top.Add
the layer input0.1 is 9 sensitive layer, loss is 0.0007138056757098887, type is top.Conv
the layer input110.1 is 10 sensitive layer, loss is 0.000662179506136229, type is top.Conv
......
run result:
int8 outputs_cos:0.978847 old
mix model outputs_cos:0.989741
Output mix quantization table to mobilenet_qtable
total time:402.15848112106323

觀察可知,input3.1的loss最大,且值為其他op的至少5倍。嘗試只將input3.1加進(jìn)qtable,其他層都保持INT8類(lèi)型不變,生成混精度模型,在ILSVRC2012驗(yàn)證集上進(jìn)行推理,精度如下:

TypeTop1 (%)Top5 (%)
FLOAT70.7289.81
INT867.5387.84
MIX(oricali)68.1988.33
MIX(newcali)69.0788.73

上表中,MIX(oricali)代表使用原始量化表的混精度模型,MIX(newcali)代表使用新量化表的混精度模型,可以看出,基于三種量化方法的threshold調(diào)優(yōu),也對(duì)模型的精度起到了正向影響。相比于INT8模型,混精度模型的Top1精度提升1.5%,Top5精度提升約1%。

對(duì)比混精度搜索

混精度搜索是TPU-MLIR中的另一個(gè)量化調(diào)優(yōu)搜索功能,它的核心思想是先尋找到layer_cos不滿(mǎn)足要求的層,再將該層及其下一層均從INT8轉(zhuǎn)回FLOAT,生成混精度模型,計(jì)算其與FLOAT模型輸出的余弦相似度,如果余弦相似度達(dá)到預(yù)設(shè)值,則停止搜索。注意,混精度搜索只有在op表現(xiàn)較差,即混精度模型與FLOAT模型輸出相似度低于INT8模型與FLOAT模型輸出相似度時(shí),才會(huì)將op類(lèi)型從FLOAT置回INT8,否則不會(huì)改變op的精度類(lèi)型。所以混精度搜索不需要從頭進(jìn)行推理,耗時(shí)較短。這兩種方法的對(duì)比如下:

對(duì)比情況敏感層搜索混精度搜索
核心思想循環(huán)所有op,找對(duì)網(wǎng)絡(luò)輸出影響最大的層以單層layer的相似度為入口,網(wǎng)絡(luò)輸出的相似度為停止條件
考慮多種量化方法只考慮KL方法
修改量化表使用原始量化表
考慮相鄰兩層只考慮單層
考慮layer_cos暫未考慮
考慮網(wǎng)絡(luò)輸出的余弦相似度
手動(dòng)修改qtable使用程序生成的qtable即可
支持用戶(hù)自定義后處理暫不支持
遍歷所有op有skip規(guī)則,并且達(dá)到預(yù)設(shè)cos后直接停止
op類(lèi)型轉(zhuǎn)換規(guī)則從FLOAT變?yōu)镮NT8,算loss從INT8變回FLOAT,算cos

混精度搜索從網(wǎng)絡(luò)輸入開(kāi)始,不斷搜索對(duì)網(wǎng)絡(luò)輸出相似度有提升的層加入qtable,直到網(wǎng)絡(luò)輸出相似度達(dá)到預(yù)設(shè)值后終止搜索。該方法可能會(huì)漏掉靠近網(wǎng)絡(luò)輸出部分的敏感層,而敏感層搜索方法會(huì)遍歷所有op,不會(huì)出現(xiàn)這種遺漏,這也是敏感層搜索的優(yōu)勢(shì)之處。在實(shí)際應(yīng)用中,用戶(hù)可以先使用速度較快的混精度搜索,如果沒(méi)能達(dá)到預(yù)期效果,再使用敏感層搜索功能進(jìn)行全局遍歷。

結(jié)語(yǔ)

敏感層搜索功能旨在尋找模型量化時(shí)對(duì)精度影響較大的層,它會(huì)遍歷模型中的所有op及三種量化方法,選擇最優(yōu)的量化threshold,記錄所有op的loss。將搜索到的敏感層設(shè)定為浮點(diǎn)數(shù)類(lèi)型,其余層設(shè)定為定點(diǎn)數(shù)類(lèi)型,生成混合精度模型,可以提升模型推理的精度。目前的敏感層搜索功能在mobilenet-v2網(wǎng)絡(luò)中表現(xiàn)優(yōu)異,只需要將loss最大的一層置為FLOAT,就可以獲得1.5%的精度提升。與混精度搜索方法相比,敏感層搜索雖然耗時(shí)更久,但它考慮了所有op和三種量化方法,不會(huì)遺漏靠近網(wǎng)絡(luò)輸出部分的敏感層。未來(lái)可以考慮從三個(gè)方面對(duì)敏感層搜索功能進(jìn)行優(yōu)化:1) 結(jié)合混精度搜索的優(yōu)點(diǎn),在搜索時(shí)考慮每層及其鄰近層對(duì)網(wǎng)絡(luò)輸出的綜合影響;2) 在生成qtable時(shí),不是根據(jù)用戶(hù)設(shè)定的數(shù)目,選擇loss最大的前N層,而是通過(guò)計(jì)算,將能讓網(wǎng)絡(luò)輸出相似度達(dá)到預(yù)設(shè)值的op均加入qtable;3) 在遍歷op的過(guò)程中考慮并行,縮短搜索時(shí)間。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3612

    瀏覽量

    51440
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8528

    瀏覽量

    135890
  • TPU
    TPU
    +關(guān)注

    關(guān)注

    0

    文章

    160

    瀏覽量

    21438
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    什么是AI模型推理能力

    NVIDIA 的數(shù)據(jù)工廠團(tuán)隊(duì)為 NVIDIA Cosmos Reason 等 AI 模型奠定了基礎(chǔ),該模型近日在 Hugging Face 的物理推理模型排行榜中位列榜首。
    的頭像 發(fā)表于 09-23 15:19 ?562次閱讀

    信而泰×DeepSeek:AI推理引擎驅(qū)動(dòng)網(wǎng)絡(luò)智能診斷邁向 “自愈”時(shí)代

    網(wǎng)絡(luò)智能診斷平臺(tái)。通過(guò)對(duì)私有化網(wǎng)絡(luò)數(shù)據(jù)的定向訓(xùn)練,信而泰打造了高性能、高可靠性的網(wǎng)絡(luò)診斷模型,顯著提升了AI輔助診斷的精準(zhǔn)度與實(shí)用性。該方案實(shí)現(xiàn)了網(wǎng)絡(luò)全流量深度解析能力與AI智能推理分析
    發(fā)表于 07-16 15:29

    模型推理顯存和計(jì)算量估計(jì)方法研究

    隨著人工智能技術(shù)的飛速發(fā)展,深度學(xué)習(xí)大模型在各個(gè)領(lǐng)域得到了廣泛應(yīng)用。然而,大模型推理過(guò)程對(duì)顯存和計(jì)算資源的需求較高,給實(shí)際應(yīng)用帶來(lái)了挑戰(zhàn)。為了解決這一問(wèn)題,本文將探討大模型
    發(fā)表于 07-03 19:43

    使用 NPU 插件對(duì)量化的 Llama 3.1 8b 模型進(jìn)行推理時(shí)出現(xiàn)“從 __Int64 轉(zhuǎn)換為無(wú)符號(hào) int 的錯(cuò)誤”,怎么解決?

    推理量化的 Llama 3.1 8B 模型時(shí)遇到錯(cuò)誤: Runtime error: Bad cast from __int64 to unsigned int
    發(fā)表于 06-25 07:20

    瑞芯微模型量化文件構(gòu)建

    模型是一張圖片輸入時(shí),量化文件如上圖所示。但是我現(xiàn)在想量化deepprivacy人臉匿名模型,他的輸入是四個(gè)輸入。該模型訓(xùn)練時(shí)數(shù)據(jù)集只標(biāo)注
    發(fā)表于 06-13 09:07

    谷歌第七代TPU Ironwood深度解讀:AI推理時(shí)代的硬件革命

    谷歌第七代TPU Ironwood深度解讀:AI推理時(shí)代的硬件革命 Google 發(fā)布了 Ironwood,這是其第七代張量處理單元 (TPU),專(zhuān)為推理而設(shè)計(jì)。這款功能強(qiáng)大的 AI
    的頭像 發(fā)表于 04-12 11:10 ?2419次閱讀
    谷歌第七代<b class='flag-5'>TPU</b> Ironwood深度解讀:AI<b class='flag-5'>推理</b>時(shí)代的硬件革命

    谷歌新一代 TPU 芯片 Ironwood:助力大規(guī)模思考與推理的 AI 模型新引擎?

    Cloud 客戶(hù)開(kāi)放,將提供 256 芯片集群以及 9,216 芯片集群兩種配置選項(xiàng)。 ? 在核心亮點(diǎn)層面,Ironwood 堪稱(chēng)谷歌首款專(zhuān)門(mén)為 AI 推理精心設(shè)計(jì)的 TPU 芯片,能夠有力支持大規(guī)模思考
    的頭像 發(fā)表于 04-12 00:57 ?2859次閱讀

    詳解 LLM 推理模型的現(xiàn)狀

    2025年,如何提升大型語(yǔ)言模型(LLM)的推理能力成了最熱門(mén)的話題之一,大量?jī)?yōu)化推理能力的新策略開(kāi)始出現(xiàn),包括擴(kuò)展推理時(shí)間計(jì)算、運(yùn)用強(qiáng)化學(xué)
    的頭像 發(fā)表于 04-03 12:09 ?952次閱讀
    詳解 LLM <b class='flag-5'>推理模型</b>的現(xiàn)狀

    【幸狐Omni3576邊緣計(jì)算套件試用體驗(yàn)】RKNN 推理測(cè)試與圖像識(shí)別

    、量化、推理、性能和內(nèi)存評(píng)估、量化精度分析以及模型加密等功能。 首先需要在計(jì)算機(jī)上運(yùn)行 RKN
    發(fā)表于 03-20 16:14

    AI大模型在汽車(chē)應(yīng)用中的推理、降本與可解釋性研究

    佐思汽研發(fā)布《2024-2025年AI大模型及其在汽車(chē)領(lǐng)域的應(yīng)用研究報(bào)告》。 推理能力成為大模型性能提升的驅(qū)動(dòng)引擎 2024下半年以來(lái),國(guó)內(nèi)外大模型
    的頭像 發(fā)表于 02-18 15:02 ?1631次閱讀
    AI大<b class='flag-5'>模型</b>在汽車(chē)應(yīng)用中的<b class='flag-5'>推理</b>、降本與可解釋性研究

    智譜GLM-Zero深度推理模型預(yù)覽版正式上線

    。 GLM-Zero-Preview專(zhuān)注于提升AI的推理能力,擅長(zhǎng)處理數(shù)理邏輯、代碼以及需要深度推理的復(fù)雜問(wèn)題。據(jù)官方介紹,與同基座模型相比,GLM-Zero-Preview在不顯著降
    的頭像 發(fā)表于 01-02 10:55 ?694次閱讀

    如何開(kāi)啟Stable Diffusion WebUI模型推理部署

    如何開(kāi)啟Stable Diffusion WebUI模型推理部署
    的頭像 發(fā)表于 12-11 20:13 ?1013次閱讀
    如何開(kāi)啟Stable Diffusion WebUI<b class='flag-5'>模型</b><b class='flag-5'>推理</b>部署

    AI模型部署邊緣設(shè)備的奇妙之旅:如何實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別

    : 統(tǒng)計(jì)分析:收集模型中所有的激活和權(quán)重分布信息。 確定范圍:根據(jù)統(tǒng)計(jì)結(jié)果確定量化范圍(例如最小值和最大值),以便將浮點(diǎn)數(shù)映射到整數(shù)區(qū)間。 應(yīng)用
    發(fā)表于 12-06 17:20

    使用vLLM+OpenVINO加速大語(yǔ)言模型推理

    隨著大語(yǔ)言模型的廣泛應(yīng)用,模型的計(jì)算需求大幅提升,帶來(lái)推理時(shí)延高、資源消耗大等挑戰(zhàn)。
    的頭像 發(fā)表于 11-15 14:20 ?1958次閱讀
    使用vLLM+OpenVINO加速大語(yǔ)言<b class='flag-5'>模型</b><b class='flag-5'>推理</b>

    高效大模型推理綜述

    模型推理的文獻(xiàn)進(jìn)行了全面的綜述總結(jié)。首先分析了大模型推理效率低下的主要原因,即大模型參數(shù)規(guī)模、
    的頭像 發(fā)表于 11-15 11:45 ?2038次閱讀
    高效大<b class='flag-5'>模型</b>的<b class='flag-5'>推理</b>綜述