)
【免費下載鏈接】Qwen-2.5_1.5B_Instruct_rai_1.8.0_npu_4K項目地址https://ai.gitcode.com/hf_mirrors/amd/Qwen-2.5_1.5B_Instruct_rai_1.8.0_npu_4K點擊查看免費下載Qwen-2.5_1.5B_Instruct_rai_1.8.0_npu_4K是 AMD 面向 Ryzen AI NPU 發(fā)布的 Qwen-2.5-1.5B 推理算子圖模型基于 ONNX 格式 AWQ 4-bit 量化內(nèi)置 28 層 Transformer 與 GQAGrouped Query AttentionKV 緩存專為 4K 上下文的端側(cè)部署而優(yōu)化。一、這個倉庫到底交付了什么與其他模型倉庫不同這里沒有 Python 訓(xùn)練代碼而是一份可直接加載的算子圖部署包。核心文件如下文件作用model.onnx / model.onnx.dataONNX 算子圖與分離權(quán)重數(shù)據(jù)config.json模型結(jié)構(gòu)與 AWQ 量化配置算子圖的圖紙genai_config.jsonONNX Runtime GenAI 推理運行時配置dd_metastate_*.meta系列各分桶長度下的動態(tài)形狀緩沖區(qū)元數(shù)據(jù)chat_template.jinja / tokenizer.json對話模板與分詞器一句話總結(jié)它是 Quark 量化工具 → OGA Model Builder → NPU 后處理三步流水線在 Ryzen AI 上的最終產(chǎn)物詳見 README.md。二、從 config.json 逆向 28 層 Transformer 的骨架打開 config.json就能讀出整張算子圖的建筑圖紙2.1 主干維度小而深的結(jié)構(gòu)num_hidden_layers: 28——28 層 Transformer每層內(nèi)部由input_layernorm → Self-Attention → post_attention_layernorm → MLP四個算子子圖串聯(lián)hidden_size: 1536、intermediate_size: 8960、vocab_size: 151936hidden_act: silu 三路投影gate_proj/up_proj/down_proj即標(biāo)準SwiGLU激活的 FFN 算子組合rope_theta: 1000000.0RoPE 位置編碼算子采用百萬級 base支撐max_position_embeddings: 32768的長上下文能力。layer_types字段列出了 28 次full_attention意味著每一層都是全注意力結(jié)構(gòu)——沒有滑動窗口稀疏化use_sliding_window: false這讓算子圖更規(guī)整利于 NPU 做算子融合。2.2 GQA 算子圖12 個 Q 頭共享 2 個 KV 頭這是本模型算子級實現(xiàn)的關(guān)鍵點num_attention_heads: 12 ← Q 投影輸出 12 個頭 × head_size 128 num_key_value_heads: 2 ← K/V 投影只輸出 2 個頭算子圖含義是q_proj將 1536 維隱層狀態(tài)投影為 12×128而k_proj/v_proj僅投影為 2×128。推理時每個 Q 頭與對應(yīng)的 KV 頭做分組共享KV 緩存內(nèi)存量直接縮減為 MHA 的 1/6——這正是端側(cè) NPU 內(nèi)存緊張的救命設(shè)計。三、GQA KV 緩存的算子級實現(xiàn)KV 緩存不是抽象概念而是以命名的張量端口顯式出現(xiàn)在算子圖輸入輸出中。genai_config.json 里寫得很直白past_key_names: past_key_values.%d.key ← 輸入端口 past_value_names: past_key_values.%d.value present_key_names: present.%d.key ← 輸出端口 present_value_names: present.%d.value其中%d會展開為 0~27對應(yīng)28 層、每層 2 個 KV 頭的緩存張量。整個自回歸生成循環(huán)因此變成Prefill 階段一次性處理完整 prompt28 層各自把 K/V 寫入present.X.key/valueToken 階段每步只處理 1 個 token上一輪的present作為下一輪的past回灌進圖注意力算子把新 K/V 追加進緩存后繼續(xù)輸出past_present_share_buffer: true—— 運行時復(fù)用同一塊物理緩沖區(qū)做讀寫避免 4K 上下文下緩存翻倍占用。配套地kv_cache_post_rope: false見 config.json說明 RoPE 旋轉(zhuǎn)在 KV 寫入緩存之前完成緩存里存的是已旋轉(zhuǎn)值——這決定了緩存端口可以直接被下一輪復(fù)用而無需二次旋轉(zhuǎn)。四、AWQ 量化算子圖中每個 Linear 的皮膚該倉庫最大的工程看點是 config.json 中的quantization_config它描述算子圖里所有矩陣乘法MatMul算子的量化形態(tài)配置項取值算子級含義quant_methodquarkAMD Quark 量化工具鏈產(chǎn)出權(quán)重 dtypeuint4每個權(quán)重僅占 4 bit體積約為 fp16 的 1/4group_size128每 128 個權(quán)重共享一組 scale精度與壓縮率折中qschemeper_group 非對稱scale/zero-point 按組獨立計算round_methodhalf_even銀行家舍入量化偏差更均勻激活bfloat16權(quán)重 int4、激活 bf16 的混合精度算子algo_config.scaling_layers則按 AWQ 原理列出了敏感算子分組q_proj/k_proj/v_proj共享input_layernorm的輸入做靈敏度標(biāo)定gate_proj/up_proj共享post_attention_layernorm——這是典型的按輸入通道重要性給敏感權(quán)重保留高精度的 AWQ 策略。weight_format: real_quantized表示權(quán)重在圖中真實解包為 4-bit而非運行時動態(tài)量化NPU 上省去了反量化開銷。五、dd_metastate 文件族為 4K 上下文預(yù)分配的形狀緩存?zhèn)}庫里那批dd_metastate_Llm_*文件是 NPU 后處理留下的動態(tài)形狀賬本按Prefill / Token兩個階段命名Prefill 側(cè)以sequence_length_padded_128到sequence_length_padded_4096分桶128/256/512/…/4096例如 dd_metastate_Llm_Prefill_...sequence_length_padded_4096.metaToken 側(cè)以attention_mask_padded_256到attention_mask_padded_4096分桶256/512/1024/2048/3072/4096例如 dd_metastate_Llm_Token_...attention_mask_padded_4096.meta。每個分桶含.fconst常量張量、.state狀態(tài)與.meta/.super/.ctrlpkt形狀元數(shù)據(jù)、超級圖與控制包三類小文件。其作用是把長度從運行時動態(tài)值固化為有限個預(yù)編譯檔位。NPU 編譯時只需針對 128~4096 這幾個檔位做算子調(diào)度優(yōu)化運行時把實際長度向上取整到最近檔位即可——這就是命名中 4K 的工程含義4096 是預(yù)分配的上下文上限檔位而模型本身仍具備 32K 的 RoPE 位置能力。六、算子圖如何跑起來NPU 執(zhí)行鏈路genai_config.json 定義了整張算子圖的執(zhí)行方式輸入端口input_ids、attention_mask、position_ids 28 組past_key_values輸出端口logits 28 組present執(zhí)行提供者為RyzenAI且hybrid_opt_token_backend: npu—— Token 階段自回歸解碼的算子被混合優(yōu)化到 NPU 上執(zhí)行權(quán)重經(jīng)external_data_file外部加載解碼策略參數(shù)temperature 0.7、top_k 20、top_p 0.8與 generation_config.json 的repetition_penalty 1.1保持一致rai_config.json 按 Ryzen AI 版本1.6.0/1.7.0/1.7.1聲明max_prompt_length上限 4096呼應(yīng) 4K 部署定位。對話入口則由 chat_template.jinja 注入 Qwen 標(biāo)準...角色模板tokenizer.json 與 vocab.json 提供 151936 詞表的分詞能力特殊 token 見 special_tokens_map.json。七、小結(jié)一張圖看懂這個模型input_ids ──? Embedding(151936→1536) │ ┌───────▼────────┐ │ × 28 層 │ │ RMSNorm │ │ GQA Attention │?── past_key_values.%d.key/value │ (12Q頭:2KV頭) │──? present.%d.key/value │ SwiGLU MLP │ └───────┬────────┘ RMSNorm ──? LM Head ──? logits ──? 采樣(temp 0.7/top_k 20/top_p 0.8)逆向結(jié)論Qwen-2.5_1.5B_Instruct_rai_1.8.0_npu_4K 的算子圖實現(xiàn)可以概括為——28 層全注意力 Transformer 12:2 的 GQA KV 緩存端口 AWQ uint4/group-128 量化 Linear 4K 分桶動態(tài)形狀預(yù)分配四者疊加讓 1.5B 模型得以在 Ryzen AI NPU 上以混合精度、近實時速度完成長上下文推理。對想研究端側(cè) LLM 算子級優(yōu)化的同學(xué)來說這個倉庫的 config.json、genai_config.json 與 dd_metastate 文件族就是絕佳的圖紙值得逐個對照閱讀。贊分享【免費下載鏈接】Qwen-2.5_1.5B_Instruct_rai_1.8.0_npu_4K項目地址https://ai.gitcode.com/hf_mirrors/amd/Qwen-2.5_1.5B_Instruct_rai_1.8.0_npu_4K點擊查看免費下載相關(guān)推薦CANN ops-transformer 算子解析MhcPreBackward 反向梯度算子實現(xiàn)與 aclnn 調(diào)用指南CANN ops transformer 算子解析MhcPreBackward 反向梯度算子實現(xiàn)與 aclnn 調(diào)用指南 本指南以 mhc/mhc_pre_b算子庫人工智能大模型深度學(xué)習(xí)CANNAscendCANN ops-transformer 算子解析NsaCompressWithCache 推理階段 NSA KV 壓縮算子實戰(zhàn)指南CANN ops transformer 算子解析NsaCompressWithCache 推理階段 NSA KV 壓縮算子實戰(zhàn)指南 本篇技術(shù)指南圍繞 CAN算子庫人工智能大模型深度學(xué)習(xí)CANNAscendCANN ops-transformer 算子解析aclnnScatterPaKvCacheWithKScale 的 FP8 KV Cache 與 K-Scale 原地更新實現(xiàn)CANN ops transformer 算子解析aclnnScatterPaKvCacheWithKScale 的 FP8 KV Cache 與 K Sca算子庫人工智能大模型深度學(xué)習(xí)CANNAscend上一篇高級Dork寫法Awesome-Google-Dorks多操作符組合構(gòu)建高精度搜索表達式下一篇如何用React Medium Image Zoom打造專業(yè)圖片畫廊7個實用技巧創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考