跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(LCZ-Blue)
  • 不使用皮肤
  • LCZ-Green
  • LCZ-Blue
  • LCZ-Black
折叠
品牌标识

抡锤者

首页 版块 标签
硬件
装备秀
AI 广场
  1. 主页
  2. 版块
  3. AI硬件
  4. Halogen 0.16版更新 實測NPU vs GPU vs CPU 驅動Embedding與Reranker

Halogen 0.16版更新 實測NPU vs GPU vs CPU 驅動Embedding與Reranker

已定时 已固定 已锁定 已移动 AI硬件
ragamd本地模型
1 帖子 1 发布者 134 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • dardeaw fengD
    dardeaw fengD
    dardeaw feng
    德高望重 劳动模范
    编写于 最后由 dardeaw feng 编辑
    #1

    Qwen3 RAG對決:NPU vs iGPU vs CPU(Strix Halo,同機實測)

    上次實測Halogen Flash Server跑Qwen 3.8 Flash Next一陣子了,github不斷更新,這版v0.16比較有趣的是可以用NPU跑Embedding、Reranker、Dicider的小模型了。


    v0.16內建了Qwen的Embedding、Reranker、Decider,
    Decider是跟Jev對標的推論模型,我目前還沒想到實戰用途,
    而Embedding與Reranker實戰用途就很明確了,老早就廣泛被RAG或向量資料庫拿來做知識、文件管理,所以直接測這兩兄弟
    兩者通常在資訊檢索(如 RAG 搜尋系統)中搭配使用,分工如下:

    • Embedding(向量化 / 初篩)
      作用:把文字轉換成包含語意特徵的「數字向量」。
      定位:負責大海撈針。透過計算向量間的距離(如餘弦相似度),以極快速度從數百萬筆資料中挑出初步相關的幾十到幾百筆結果(速度快、算力成本低,但語意理解深度有限)。

    • Reranker(重排序 / 精算)
      作用:將使用者的問題與初篩出來的每篇文章配對,放入模型(如 Cross-Encoder)深度交叉比對相關性並重新打分排序。
      定位:負責去蕪存菁。精準度極高,能挑出最核心的幾筆交給後續模型使用(理解深度高,但計算慢、成本高,無法直接對海量資料運算)。

    總結:Embedding 負責「快選前 100 名」,Reranker 負責「從中精挑前 3 名」。
    如果你的文件或知識量巨大,不可能全部塞KV Cache、成本太高,RAG的用意就是將向量庫落盤到SSD甚至HDD。
    過去能驅動這類模型的推論引擎主流就是llama.cpp與vllm,現在Halogen是頭一個做到能用NPU做向量處理的

    除了測速度、RAG很重要的是召回正確性,這次也出了題目一併測試。


    1. 測試環境

    項目 內容
    APU AMD Strix Halo gfx1151,128G 統一記憶體(OS 可見 124G)
    OS Nobara 44,kernel 7.1.4,ROCm 7.2.4
    NPU 側 halogen-flash-server 0.16.0,HALOGEN_NPU_MODELS,/dev/accel/accel0+XRT 2.26.0(COPR),IOMMU on
    iGPU 側 llama.cpp fork(ROCmFPX build),vulkan router :8002,GGML_HIP_ENABLE_UNIFIED_MEMORY=1
    CPU 側 同一 fork binary,-ngl 0,32 thread,臨時 :8109/:8110(embed 加 -ub 2048,見 §4),測完即下
    Embedding 權重 NPU:peonist qwen3-embedding-0.6b(精度未公開,估 4–5bpw);iGPU/CPU:enacimie/Qwen3-Embedding-0.6B-Q4_K_M-GGUF(Q4_K_M,396MB)
    Reranker 權重 NPU:peonist qwen3-reranker-0.6b;iGPU/CPU:dean2155/Qwen3-Reranker-0.6B-Q4_K_M(⚠️第三方量化,非官方)
    輸出維度 三邊都是 1024

    2. halogen 版本追蹤(NPU 部分)

    • 0.16.0 新增 NPU 小模型同端口(decider-0.8b/qwen3-embedding-0.6b/qwen3-reranker-0.6b)。
    • 開通代價(.55 實錄):grub 刪 amd_iommu=off(驅動拒綁,journal 明寫)→COPR 裝 XRT 2.26.0 三件→容器接 /dev/accel/accel0+lib 三份雙掛(lib/+lib64/ 都要,少一邊拒啟)+/sys:/host/sys+/models 改 rw。

    3. embedding 跟 reranker 是做什麼的(RAG 兩件套)

    • Embedding:把文字壓成 1024 維向量,語意相近=夾角小(cosine 高)。RAG 第一步:query 和文件都轉向量,用 cosine 撈候選。本次驗法:同義句 vs 無關句,gap 越大越好。
    • Reranker:把候選文件和 query 一對一精排(cross-encoder),輸出相關分數重排序。本次驗法:4 文件中狐狸那篇應該第一(query:fox by the river)。

    4.測試題目

    RAG應用 速度不是唯一 故召回與排序的正確性是重點

    速度題

    • 短句(~10 tok):The quick brown fox jumps over the lazy dog. → /v1/embeddings,計 wall 時間。先打一次 warmup 不計分,再量。

    • 長文(1401 tok):"Strix Halo unified memory architecture review" ×200(空格連接)→ 同 endpoint。1401 是 server 回報的 actual prompt_tokens。

    • Rerank:query=fox by the river,4 文件:

      1. The fox jumped near the river bank at dawn.
      2. LPDDR5X bandwidth reaches 256 gigabytes per second.
      3. The bank approved the loan yesterday afternoon.
      4. Canine sleep patterns vary by breed and age.

      → /v1/rerank(vulkan/CPU)或 :8731/v1/rerank(NPU),取 relevance_score 排序,計時+記順序。

    正確性題

    • Embedding cosine:三句——原句(fox jumps...)、同義改寫(A fast dark fox leaps above a sleepy canine.)、無關句(Quantum entanglement enables instant communication.)。算 cos(原句,同義) vs cos(原句,無關),gap 越大越好。dim 都是 1024。
    • Rerank 排序:同上 4 文件,正解 index 0(狐狸篇)第一。LPDDR 篇(index 1)是干擾項(跟 query 零語意交集,純字面 bank 撞詞的是 index 2)。

    控制條件

    • 同文本跑三邊(NPU/iGPU/CPU),temperature 不影響 embedding(確定性),rerank 取預設參數
    • 每項 2–3 次,報告取區間(NPU 長文 0.36/0.38/0.54 那次 variance 有標)

    5. 速度比對(同文本,Q4 對 Q4)

    Embedding

    輸入 NPU iGPU(Q4_K_M) CPU(Q4_K_M)
    短句(~10 tok) 0.104–0.119s 0.039–0.044s 0.050–0.052s
    長文 1400 tok 0.361–0.544s 0.218s 0.483–0.693s

    Rerank(4 文件,同 query)

    NPU iGPU(Q4_K_M) CPU(Q4_K_M)
    耗時 0.504–1.057s 0.067–0.298s 0.229–0.253s

    小結:短查詢 iGPU 最快(0.04s),長文也是 iGPU 最快(0.22s),NPU(0.36–0.54s)+CPU(0.48–0.69s)居次。0.6B 這量級,iGPU 算力說了算;NPU 的價值在零 burden(不佔VRAM、不開整組 vulkan)+長文開箱不炸。


    6. 正確性比對(Q4 對 Q4)

    Embedding cosine

    同義 無關 gap
    NPU 0.7096 0.4202 0.2895 ✅
    iGPU Q4_K_M 0.8131 0.4698 0.3433 ✅
    CPU Q4_K_M 0.8113 0.4616 0.3497 ✅

    三邊都正確分離。llama 系兩邊 gap 一致(0.34–0.35,同權重同精度);NPU 窄一點(0.29,自家量化精度未知),但遠過門檻。

    Rerank 排序(query:fox by the river,正解狐狸篇 index 0)

    排序 頂部
    NPU [0, 3, 2, 1](兩次一致) ✅ 語意對
    iGPU Q4_K_M [1, 2, 0, 3](兩次一致) ⚠️ LPDDR 篇第一
    CPU Q4_K_M [0, 2, 3, 1] ✅ 狐狸篇第一

    重點發現:同一個 Q4_K_M,CPU 排對、vulkan 排錯——server 端處理(模板/參數)會影響排序,權重相同≠結果相同。NPU 兩次都對可以說是正確又一致。iGPU 的錯排打了折扣看(第三方量化),但 CPU 同量化排對,說明問題在 vulkan 那側的處理,不在權重。


    7. 結論

    1. 三方重排:短文延遲 iGPU(0.04s)>CPU(0.05s)>NPU(0.11s);長文 iGPU(0.22s)>NPU(0.36–0.54s)>CPU(0.48–0.69s)。0.6B 這量級 iGPU 通吃,NPU 贏在零 burden 不在速度。
    2. 正確性:embedding 三邊全過;rerank NPU=CPU>vulkan(同權重不同 server 結果不同,server 也是變量)。
    3. 成本:NPU 幾 GB 零 burden;CPU 零成本隨起隨下;GPU需vulkan 整組。
    4. 實用建議:RAG 長文走 NPU;短 query 要極限延遲開 vulkan;iGPU 不在時 CPU 完全夠打。
    5. AI Max+ 395的CPU是有AVX 512指令級的ZEN5新架構,對CPU推論的矩陣運算幫助很大,如果是不支援AVX512的CPU效果會大打折扣。
    6. .利用NPU最大價值是可以把CPU與GPU的開銷節省下來做其他事。
    1 条回复 最后回复
    0

    你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

    厌倦了每次访问都刷到同样的帖子?您注册账号后,您下次访问时都将自动回到上次浏览的位置,并可选择接收新回复的通知(通过电子邮件或推送通知)。您还可以收藏帖子、为帖子点赞,以此向其他社区成员表达您的感谢。

    有了你的建议,这篇帖子会更精彩哦 💗

    注册 登录
    回复
    • 在新帖中回复
    登录后回复
    • 从旧到新
    • 从新到旧
    • 最多赞同


    • 登录

    • 登录或注册以进行搜索。
    • 第一个帖子
      最后一个帖子
    0
    • 版块
    • 最新
    • 标签
    • 热门
    • 用户
    • 群组