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

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于Arm平臺的端到端int8 Conformer模型部署

Arm社區(qū) ? 來源:Arm社區(qū) ? 2026-02-24 10:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者:Arm 工程部主任軟件工程師 Alexey Vilkin 等

在邊緣側運行高質量的語音與音頻模型頗具挑戰(zhàn),需滿足時延、內存、功耗和模型大小等多方面的嚴苛約束。不同于云端部署,邊緣側系統通常離線運行,需兼顧用戶隱私與可預測的實時性能。這些落地場景涵蓋端側語音轉文本、語音助手、語音控制的物聯網設備、工業(yè)人機界面,以及常開式音頻應用等諸多用例。

Conformer 模型結合卷積層與基于 Transformer 的自注意力機制,具備出色的語音識別精度。若要在嵌入式硬件上實現高效執(zhí)行,需對量化與部署環(huán)節(jié)進行精細處理。

本文將展示一個涵蓋訓練、量化及在基于 Arm 架構的嵌入式平臺上部署 int8 Conformer 模型的端到端的工作流。通過使用 ExecuTorch 為模型進行量化,最終得以高效地部署到 Arm Ethos-U85 NPU 上。該演示表明基于 Transformer 架構的現代語音識別模型可以在 Arm 軟硬件生態(tài)系統中高效運行。

開發(fā)者可通過 Arm 固定虛擬平臺 (Fixed Virtual Platform, FVP) 仿真平臺來使用 Arm 機器學習嵌入式評估套件 (Machine Learning Embedded Evaluation Kit, MLEK)[1]體驗部署本演示。

[1] Arm MLEK: https://gitlab.arm.com/artificial-intelligence/ethos-u/ml-embedded-evaluation-kit

模型訓練

本演示選用了一個主流的開源 Conformer 模型。該模型是一個基于 Transformer 架構的語音識別網絡,適用于嵌入式設備。由于原模型未提供預訓練權重,我們首先訓練了一個性能良好的 FP32 基準模型,作為后續(xù)量化與部署到 Ethos-U85 的基礎。經過推理速度測試,我們最終選定 Conformer-S 架構,其采用 144 維編碼器、16 層網絡結構與 4 個注意力頭,并使用 CTC 損失函數完成語音轉文本的序列對齊。訓練所用的數據集為 LibriSpeech 標準訓練與評估子集。

我們采用了一個直接在 LibriSpeech 數據集上訓練的 SentencePiece 分詞器。它生成了一個包含 128 個詞元 (token) 的精簡詞表,使整個流程簡單、獨立運行、無需外部依賴。該分詞器采用 Unigram 模型實現,且在訓練與評估階段保持配置完全一致。

早期實驗中,我們曾采用僅包含英文字母的基礎字符級詞表訓練模型。該方案雖可正常運行,但模型收斂速度較慢,詞錯誤率 (WER) 也顯著增高。Subword 單元通過合并高頻詞素與短詞匯來縮短目標序列,既能引入適度的弱語言先驗,又能穩(wěn)定 CTC 任務中聲學特征到詞元的映射關系,進而有效提升模型收斂速度與識別準確度。

在預處理階段,本流程以 16kHz 采樣率提取 80 維的對數梅爾頻譜圖。我們嘗試了多種數據增強方法,其中頻率遮擋、時間遮擋以及隨機語速擾動,在訓練過程中帶來了穩(wěn)定的 WER 改進,使得模型識別結果更準確。

在初期實驗中,我們遇到了收斂問題,這類問題在 Conformer 類模型中較為常見。我們通過將批次大小與學習率調度方案對齊、并引入權重衰減以約束權重取值,成功地解決了該問題;同時權重衰減通常也能有效提升后續(xù) int8 量化的精度。

在該配置下,模型在 test?clean 測試子集上取得了 6.43% 的詞錯誤率,我們將這一結果作為量化環(huán)節(jié)的 FP32 基準。經內部評估確認,該精度水平已滿足演示場景的需求,因此我們在此階段完成模型訓練。

Conformer-S 架構本身仍具備進一步優(yōu)化的潛力。在后續(xù)迭代中,我們計劃將數據集拓展至 LibriSpeech 之外,并嘗試更豐富的數據增強方法。因為我們在訓練后期觀察到模型出現過擬合的早期跡象。為簡化實現,當前系統直接采用了 Conformer 的原始輸出。根據多項相關研究表明,引入一個輕量級語言模型(例如 N?gram 或小型 LSTM 等),可進一步降低詞錯誤率。

模型訓練過程中我們采用了動態(tài)長度的語音樣本,而端側推理時卻必須處理固定長度的音頻片段。我們對多種音頻切片的策略進行了評估驗證,結果表明:對重疊片段的預測結果進行聚合,能在精度與時延之間取得最優(yōu)平衡。該方案使得系統能夠使用更短的音頻片段來實現實時推理,同時保持較高的識別水準。

訓練后量化 (PTQ)

我們采用 ExecuTorch 來進行模型的訓練后量化及后續(xù)部署。ExecuTorch 中的 Arm 后端已支持包括 Conformer 在內的數百種模型。模型部署流程如下:

第一步:通過 torch.export.export API 將模型導出至 ATen 算子集。

第二步:為實現在 Ethos-U85 NPU 上部署,使用 ExecuTorch 中的 Ethos-U 量化器對模型執(zhí)行量化操作。Ethos-U 量化器的定義方式如下:

compile_spec = EthosUCompileSpec(

target="ethos-u85-256",

system_config="Ethos_U85_SYS_Flash_High",

memory_mode="Shared_Sram",

extra_flags=["--output-format=raw", "--debug-force-regor"],

)

quantizer = EthosUQuantizer(compile_spec)

config = get_symmetric_quantization_config(is_per_channel=True)

quantizer.set_global(config)

第三步:采用逐通道量化,以保證優(yōu)異的 int8 精度。

quantized_graph_module = prepare_pt2e(graph_module, quantizer) # Annotate the graph with observers

print("Calibrating...")

for feats, feat_lens, *_ in calibration_loader:

quantized_graph_module(feats, feat_lens) # Pass true data, similar to what the model will see when running inference

quantized_graph_module = convert_pt2e(quantized_graph_module)

第四步:對模型進行校準。校準過程會在數據類型從 FP32 轉換為 int8 時,為每一層選取最優(yōu)的量化參數。在 ExecuTorch 中,可按照以下步驟對模型進行校準:

partitioner = EthosUPartitioner(compile_spec)

edge_program_manager = to_edge_transform_and_lower(

quant_exported_program,

partitioner=[partitioner],

compile_config=EdgeCompileConfig(

_check_ir_validity=False,

),

)

第五步:調用 to_edge_transform_and_lower 函數,將神經網絡轉換下沉至 TOSA 格式,并完成模型編譯。

第六步:將程序轉換至 ExecuTorch 后端,并保存為 .pte 模型文件。

executorch_program_manager = edge_program_manager.to_executorch(

config=ExecutorchBackendConfig(extract_delegate_segments=False)

)

save_pte_program(

executorch_program_manager, f"conformer_quantized_{npu_variant}_{memory_mode}.pte"

)

借助 ExecuTorch 進行訓練后量化的完整代碼可在此[2]獲取。若不想自行執(zhí)行訓練后量化操作,可在 Hugging Face 上獲取該模型的量化版本[3]。

[2] https://github.com/Arm-Examples/ML-examples/tree/main/pytorch-conformer-train-quantize/post_training_quantization

[3] https://huggingface.co/Arm/stt_en_conformer_executorch_small

將上述操作所生成的 .pte 文件保存至系統級芯片 (SoC) 的外部存儲器中。該文件包含模型權重、偏置以及供 NPU 使用的指令流。Ethos-U 會讀取此文件并自主完成推理。

在 Arm 平臺上部署

Arm MLEK 是部署與評估 Ethos-U85 的主要工具。通過與 ExecuTorch 集成,可實現在嵌入式目標平臺上高效地執(zhí)行 PyTorch 模型。下圖展示了更新后的軟件棧,支持在 MLEK 中啟用 ExecuTorch 運行時。

1b8c4046-0656-11f1-90a1-92fbcf53809c.png

圖:更新后的 MLEK 軟件架構:在共享抽象層下,實現 ExecuTorch 與 TensorFlow Lite Micro 的集成;可復用的平臺無關 API 支持各類示例用例跨框架、跨目標平臺運行。

MLEK 25.12 版本新增了對 ExecuTorch 1.0.0 的支持。在本次 Conformer 模型部署中,我們復用了現有的自動語音識別示例并完成適配,實現量化后的 Conformer 模型在 Ethos-U85 上的端到端運行。

在 Corstone?320 FVP 上運行演示

Arm 提供了一款示例應用,可借助 Arm Corstone-320 FVP,在 Ethos-U85 上運行預訓練的 Conformer 模型。請參照以下步驟:

第一步:確保已安裝前置依賴項:

Arm Corstone-320 FVP:

https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms/IoT%20FVPs

適用 AArch32 裸機環(huán)境的 Arm GNU 工具鏈:

https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads

第二步:克隆并初始化 Arm MLEK 項目:

git clone https://gitlab.arm.com/artificial-intelligence/ethos-u/ml-embedded-evaluation-kit.git

cd ml-embedded-evaluation-kit

git checkout 9e9957c6

git submodule update --init --recursive

第三步:構建 Ethos-U85 項目:

python set_up_default_resources.py --parallel $(nproc) --ml-framework executorch --use-case asr

cmake -B build --preset mps4-320-gcc -DML_FRAMEWORK="ExecuTorch" -DUSE_CASE_BUILD="asr" -DETHOS_U_NPU_TIMING_ADAPTER_ENABLED="OFF"

cmake --build build -j $(nproc)

第四步:在 Corstone-320 FVP 上運行自動語音識別應用:

~/FVP_Corstone_SSE-320/models/Linux64_GCC-9.3/FVP_Corstone_SSE-320

-a build/bin/ethos-u-asr.axf

-C mps4_board.subsystem.ethosu.extra_args="--fast"

應用將對一組示例音頻片段開展語音檢測。推理運行期間,可視化界面會顯示輸入音頻的波形與生成的梅爾頻譜圖。系統會將梅爾頻譜圖數據填充至 15 秒時長,并作為輸入送入 Conformer 模型。

1bf0309c-0656-11f1-90a1-92fbcf53809c.png

通過 Conformer 模型對應用內置的示例音頻片段進行語音檢測。在控制臺中,可查看模型當前使用的具體輸入音頻文件,以及輸入/輸出張量的形狀與內存占用等信息:

INFO - Number of input tensors: 2

INFO - Tensor: 480000 bytes; 120000 elements

INFO - Shape:[1, 1500, 80]

INFO - Type:fp32

INFO - Tensor: 4 bytes; 1 elements

INFO - Shape:[1]

INFO - Type:int32

INFO - Number of output tensors: 2

INFO - Tensor: 192984 bytes; 48246 elements

INFO - Shape:[1, 374, 129]

INFO - Type:fp32

INFO - Tensor: 4 bytes; 1 elements

INFO - Shape:[1]

INFO - Type:int32

INFO - Total memory usage:

INFO - Method memory: Used: 1080898; Peak: 1080898; Available: 2097152

INFO - Temp memory: Used: 0; Peak: 117; Available: 33554432

INFO - Model initialisation complete

INFO - Initialising audio interface: Static sample audio files

INFO - Using sample audio: another_door.wav

稍等片刻后,即可在控制臺中看到解碼后的輸出結果。

INFO - Decoded output: and he walked immediately out of the apartment by another door

源音頻文件位于 resources/asr/samples 目錄下,你可以播放這些音頻,并與控制臺輸出的解碼文本進行對比。界面中同樣會顯示性能相關數據。

性能評估

在前面章節(jié)中,我們在 FVP 的快速模式下運行了該應用。該模式有助于驗證功能,但其顯示的性能數據并不準確。若要獲取準確的性能指標,需關閉快速模式,重新構建并運行該應用。這個過程耗時較長,可能超過 1 小時。具體步驟如下:

# Build

rm-rf build

python set_up_default_resources.py --parallel $(nproc) --ml-framework executorch --use-case asr

cmake -B build --preset mps4-320-gcc -DML_FRAMEWORK="ExecuTorch" -DUSE_CASE_BUILD="asr"

cmake --build build -j $(nproc)

# Run

~/FVP_Corstone_SSE-320/models/Linux64_GCC-9.3/FVP_Corstone_SSE-320

-a build/bin/ethos-u-asr.axf

若按照上述步驟正確構建并運行應用,將看到類似于如下所示的性能指標:

INFO - NPU ACTIVE: 206370332 cycles

INFO - NPU ETHOSU_PMU_SRAM_RD_DATA_BEAT_RECEIVED: 13858306 beats

INFO - NPU ETHOSU_PMU_SRAM_WR_DATA_BEAT_WRITTEN: 7968438 beats

INFO - NPU ETHOSU_PMU_EXT_RD_DATA_BEAT_RECEIVED: 26978241 beats

INFO - NPU ETHOSU_PMU_EXT_WR_DATA_BEAT_WRITTEN: 18985466 beats

INFO - NPU IDLE: 724 cycles

INFO - NPU TOTAL: 206371056 cycles

控制臺輸出將展示多項性能指標。例如,NPU ACTIVE 指標用于統計 Ethos-U85 完成 Conformer 模型推理所消耗的時鐘周期數。我們所使用的 Conformer 模型,采用 15 秒音頻的固定輸入規(guī)格;當硬件系統主頻為 1.0 GHz 時,該性能數據表明,模型推理可在 0.206 秒內完成。MLEK 項目文檔中,詳細說明了各類性能計數器的具體含義,包括內存帶寬及時延配置相關指標。

結論與后續(xù)工作

本文展示了在 Arm 嵌入式平臺上,訓練、量化并部署 int8 Conformer 語音識別模型的端到端工作流。借助 ExecuTorch 與 Ethos-U85 NPU,我們驗證了基于 Transformer 架構的語音模型可在邊緣側高效運行,同時滿足嚴格的性能與功耗約束。這充分體現了 Arm 軟硬件生態(tài)系統賦能開發(fā)者,將性能卓越的語音與音頻模型落地到嵌入式設備中,且無需犧牲能效與識別精度。

歡迎各位開發(fā)者們點擊閱讀原文,進一步了解如何在 Arm 平臺上使用 ExecuTorch 部署優(yōu)化后的 AI 工作負載,也可以使用 Arm MLEK 探索 Ethos-U 系列 NPU,優(yōu)化邊緣側 AI 部署!

* 本文為 Arm 原創(chuàng)文章,轉載請留言聯系獲得授權并注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • ARM
    ARM
    +關注

    關注

    135

    文章

    9552

    瀏覽量

    391804
  • 嵌入式
    +關注

    關注

    5198

    文章

    20435

    瀏覽量

    333921
  • 模型
    +關注

    關注

    1

    文章

    3751

    瀏覽量

    52093

原文標題:基于 Arm 平臺的端到端 int8 Conformer:訓練、量化及 Ethos-U85 上部署

文章出處:【微信號:Arm社區(qū),微信公眾號:Arm社區(qū)】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    esp-dl int8量化模型數據集評估精度下降的疑問求解?

    一 試著將模型進行了esp-dl上int16和int8的量化,并在測試數據集上進行精度評估,其中int16的模型精度基本沒有下降,但是
    發(fā)表于 06-28 15:10

    是否可以輸入隨機數據集來生成INT8訓練后量化模型?

    無法確定是否可以輸入隨機數據集來生成 INT8 訓練后量化模型。
    發(fā)表于 03-06 06:45

    在OpenVINO?工具套件的深度學習工作臺中無法導出INT8模型怎么解決?

    無法在 OpenVINO? 工具套件的深度學習 (DL) 工作臺中導出 INT8 模型
    發(fā)表于 03-06 07:54

    為什么無法在GPU上使用INT8INT4量化模型獲得輸出?

    安裝OpenVINO? 2024.0 版本。 使用 optimum-intel 程序包將 whisper-large-v3 模型轉換為 int 4 和 int8,并在 GPU 上使用 OpenVINO? 運行推理。 沒有可用的
    發(fā)表于 06-23 07:11

    請問在新CPU上推斷INT8模型的速度是否比舊CPU快?

    與采用舊 CPU 的推理相比,在新 CPU 上推斷的 INT8 模型的推理速度更快。
    發(fā)表于 08-15 08:28

    INT8量化常見問題的解決方案

    一、int8的輸出和fp32模型輸出差異比較大 解決方案: 檢查前后處理是否有問題,int8網絡輸入輸出一般需要做scale處理,看看是否遺漏? 通過量化可視化工具分析int8的輸
    發(fā)表于 09-19 06:09

    Xilinx INT8 優(yōu)化開發(fā)嵌入式視覺

    賽靈思 INT8 優(yōu)化為使用深度學習推斷和傳統計算機視覺功能的嵌入式視覺應用提供最優(yōu)異的性能和能效最出色的計算方法。與其他 FPGA/DSP 架構相比,賽靈思的集成 DSP 架構在 INT8 深度學習運算上能實現 1.75 倍的性能優(yōu)勢。
    的頭像 發(fā)表于 09-22 17:27 ?6048次閱讀

    DSP48E2 Slice 上優(yōu)化 INT8 深度學習運算分析

    本白皮書旨在探索實現在賽靈思 DSP48E2 Slice 上的 INT8 深度學習運算,以及與其他 FPGA 的對比情況。在相同資源數量情況下,賽靈思的 DSP 架構憑借 INT8INT8 深度
    發(fā)表于 11-16 14:23 ?1.6w次閱讀
    DSP48E2 Slice 上優(yōu)化 <b class='flag-5'>INT8</b> 深度學習運算分析

    基于TensorRT完成NanoDet模型部署

    【GiantPandaCV導語】本文為大家介紹了一個TensorRT int8 量化部署 NanoDet 模型的教程,并開源了全部代碼。主要是教你如何搭建tensorrt...
    發(fā)表于 01-25 19:04 ?0次下載
    基于TensorRT完成NanoDet<b class='flag-5'>模型</b><b class='flag-5'>部署</b>

    Int8量化-ncnn社區(qū)Int8重構之路

    本文是對NCNN社區(qū)int8模塊的重構開發(fā),再也不用擔心溢出問題了,速度也還行。作者:圈圈蟲首發(fā)知乎傳送門ncnnBUG1989/caffe-int8-conver...
    發(fā)表于 02-07 12:38 ?1次下載
    <b class='flag-5'>Int8</b>量化-ncnn社區(qū)<b class='flag-5'>Int8</b>重構之路

    INT8量子化PyTorch x86處理器

    INT8量子化PyTorch x86處理器
    的頭像 發(fā)表于 08-31 14:27 ?1793次閱讀
    <b class='flag-5'>INT8</b>量子化PyTorch x86處理器

    探索ChatGLM2在算能BM1684X上INT8量化部署,加速大模型商業(yè)落地

    |探索ChatGLM2-6B模型與TPU部署》。為了進一步提升模型的推理效率與降低存儲空間,我們對模型進行了INT8量化
    的頭像 發(fā)表于 10-10 10:18 ?5665次閱讀
    探索ChatGLM2在算能BM1684X上<b class='flag-5'>INT8</b>量化<b class='flag-5'>部署</b>,加速大<b class='flag-5'>模型</b>商業(yè)落地

    Yolo系列模型部署、精度對齊與int8量化加速

    可視化其他量化形式的engine和問題engine進行對比,我們發(fā)現是一些層的int8量化會出問題,由此找出問題量化節(jié)點解決。
    的頭像 發(fā)表于 11-23 16:40 ?2641次閱讀

    理想汽車自動駕駛模型實現

    理想汽車在感知、跟蹤、預測、決策和規(guī)劃等方面都進行了模型化,最終實現了模型。這種模型不僅
    發(fā)表于 04-12 12:17 ?1024次閱讀
    理想汽車自動駕駛<b class='flag-5'>端</b><b class='flag-5'>到</b><b class='flag-5'>端</b><b class='flag-5'>模型</b>實現

    小鵬汽車發(fā)布模型

    小鵬汽車近日宣布,其成功研發(fā)并發(fā)布了“國內首個量產上車”的模型,該模型可直接通過傳感器輸入內容來控制車輛,標志著智能駕駛技術的新突破
    的頭像 發(fā)表于 05-21 15:09 ?1296次閱讀