
1. 先说结论这块芯片被骂了半年但halogen让它翻盘最近在好几个AI硬件交流群里我都看到有人把搭载AMD Ryzen AI 395的迷你主机挂上二手平台。理由基本一致一万多块买回来发现自己根本不缺那几十个RDNA计算单元Strix Halo吹的“AI PC”在日常使用里完全没存在感Windows上能调NPU的软件少得可怜。这个看法在两三个月前我举双手赞同但自从把halogen跑通之后我彻底改了主意——这台机器现在成了我的主力推理工作站可以在一台设备上本地跑70B参数级别的模型想生成多少Token就生成多少Token再也不用半夜看API余额发愁。如果你正好也有一台Ryzen AI 395先别急着挂闲鱼听我把话说完。1.1 Ryzen AI 395为什么被有些人挂上闲鱼Strix Halo这一代发布的时候AMD的PPT确实漂亮Zen 5架构CPU、40CU的Radeon 8060S核显、50 TOPS的XDNA2 NPU再加上最高128GB的统一内存怎么看都是AI PC的理想形态。可真金白银买回来之后第一批用户的体验并不算好——玩游戏时核显性能虽然不错但和同价位独显笔记本还有差距跑AI绘图虽然能用但生态和NVIDIA的CUDA比差了不止一个量级那个被反复强调的50 TOPS NPU在Windows应用里几乎没有存在感大部分时间就是个跑分参数。网上最扎心的评价是“纸面性能拉满实用性能为零”。尤其是那些冲着AI功能下单的用户买回来发现自己想跑的模型要么压根没AMD优化要么只能调用CPU硬扛速度感人。群里好几个人都是这样把机器挂闲鱼的一边挂一边吐槽自己是“首发的韭菜”。说实话在这个阶段我没什么好反驳的因为我也经历过到处找AMD优化工具的尴尬期。但如果只看这些早期体验就下结论那你会错过halogen这个项目出现之后带来的巨大变化。2025年起AMD官方开源了halogen推理框架专门用来在Ryzen AI系列处理器上跑大语言模型核心思路是把NPU、GPU、CPU全部利用起来配合统一内存直接挑战那些在传统显卡上根本跑不动的超大模型。很多被闲置的Strix Halo主机装上halogen之后完全变成了另一个物种。1.2 halogen是AMD官方开源的本地推理框架halogen是AMD官方团队维护的项目仓库地址在GitHub的amd/halogen下面。它不是一个单一的命令工具而是一整套基于ONNX Runtime和Llama.cpp的推理方案目标是让Ryzen AI 300系列处理器在不依赖独立显卡的情况下高效完成大模型推理。最吸引我的一点是它的设计思路传统推理框架在一个设备上只能选择一种加速器比如CUDA就用N卡ROCm就用A卡CPU推理就纯靠处理器硬算。halogen则把NPU、GPU、CPU三者看成一套可协同工作的整体模型权重会按层拆分不同计算单元处理不同层的推理任务内存通过统一内存池共享等于把128GB的大内存变成了一个超大号的“显存池”。这意味着什么拿我自己这台机器举例128GB统一内存里我划给模型推理80GB然后塞进去一个70B参数的Qwen2.5-72B量化版。如果用NVIDIA显卡得RTX 4090这种24GB显存的卡才敢碰而且还得选量化特别狠的版本。但Strix Halo的内存带宽有256-bit LPDDR5X8000MT/s的颗粒能提供约256GB/s带宽虽然和HBM显存没法比但支撑大模型逐层推理已经绰绰有余。halogen的出现等于给这台机器补上了最后一个短板有算力、有内存、有工具Token自由这件事终于不是空话了。2. halogen到底做了什么值得我专门写一篇halogen打动我的不只是“能跑模型”这个表面结果而是它背后一套完全不同于传统GPU推理的调度逻辑。很多人上来就问“有没有N卡跑得快”这个问题本身就问偏了——halogen的目标场景是大模型的长上下文、大参数容量和持续高吞吐而不是单次推理的极限速度。2.1 传统AI硬件的显存墙才是真痛点如果你现在的主力设备是一块24GB显存的RTX 4090你会发现一个很尴尬的事跑7B参数模型非常流畅跑14B模型勉强能塞进去但想跑32B以上模型就得依赖量化、拆层、CPU卸载这些操作。一旦模型放不下显存性能断崖式下跌。这就是所谓的“显存墙”。Llama.cpp时代的解法是把模型拆开部分层放显存部分层放内存通过PCIe总线搬运数据。但PCIe带宽通常只有32GB/s到64GB/s大模型权重动不动几十GB每生成一个Token都要反复搬运权重速度自然上不去。我自己之前在N卡上跑32B模型没量化到Q2级别根本不敢用速度还经常个位数。halogen在Strix Halo上完全绕开了这个瓶颈。统一内存的物理特性决定了CPU、GPU、NPU访问内存的路径是共享的不存在PCIe搬运重量级数据的开销。你可以把整个70B模型的权重直接放在内存里让三个计算单元按需读取。实测下来大模型的Prefill阶段由于是计算密集型NPU和GPU能并行处理到了Decode阶段内存带宽决定上限256GB/s的带宽虽然不算极快但考虑到模型权重大小和缓存命中率整体体验已经比“放在显存外”的传统方案顺畅得多。2.2 NPU、GPU、CPU三段式调度才是halogen的灵魂halogen的第二个亮点是调度策略。它不是“随便把任务扔给某个设备”而是根据模型结构和算力特征做分层。印象比较深的是官方架构说明里提到的思路NPU负责PPA最优的连续矩阵运算GPU负责大吞吐的并行计算CPU负责控制流和部分无法完全并行化的层。从实际运行效果看小参数模型7B/14B级别主要由NPU承担功耗低且速度快32B以上模型由于层数多、KVCache占用大NPU和GPU会协同处理CPU在中间做调度和剩余层计算。这种设计让整台机器在跑大模型时不会出现“一个干活三个围观”的浪费也让长时间跑推理时的功耗分布更均匀。至于速度我在后面会列一组实测参考数据。这里先给个结论halogen不是把Ryzen AI 395变成“AMD版4090”它更像是把一台工作站级的统一内存机器变成高性能推理服务器。如果你需要的是“长时间、大上下文、大模型、不限量”地生成内容halogen的体验是跨层级的。3. 实操从零把halogen跑起来实现本地Token自由很多人在群里问halogen怎么装其实整个流程没有想象中复杂。我以Ubuntu系统为例讲一遍从安装依赖到启动本地API服务的完整过程。Windows也有对应方案但优先推荐Linux开发和调试效率高很多。3.1 环境准备依赖项与编译要点先保证系统里装好了Python 3.10以上版本、Git、CMake和基本的编译工具链命令大概是sudo apt update sudo apt install -y python3-dev git cmake build-essentialhalogen仓库克隆下来之后里面有几个核心模块ONNX Runtime扩展、Llama.cpp的wrapper、以及一个本地HTTP server。第一次部署时我卡在ONNX Runtime的NPU执行提供程序上后来发现需要单独安装AMD的XDNA驱动和Vitis AI相关运行时。官方仓库的README里其实写得很清楚只是我当时跳过了系统检查结果运行时找不到“VitisAIExecutionProvider”报错。这里提醒一句先装驱动再装halogen顺序反了会非常痛苦。Linux下安装AMD NPU驱动的流程是下载AMDXDNA驱动包接好设备后运行安装脚本重启之后检查lsmod | grep amdxdna确认内核模块加载成功。校验NPU设备是否被系统识别直接看/dev/accel/下面有没有对应节点就行。驱动装好以后ONNX Runtime的VitisAI EP才能正常工作NPU才会真正参与推理。ls /dev/accel/如果这里能看到类似accel0的设备节点说明NPU驱动OK了。接下来进halogen目录创建虚拟环境并安装Python依赖。官方推荐的是ONNX Runtime的GPU版本配合Llama.cpp的Python绑定安装命令基本就是pip install -r requirements.txt但部分依赖需要从源码编译尤其是llama-cpp-python那一套。编译耗时大概十几分钟耐心等就行。装完之后跑一下halogen --help能看到命令帮助就说明基础环境没问题。3.2 模型下载、量化与参数设置halogen支持Hugging Face上的GGUF格式模型也支持部分原生ONNX格式。我自己习惯从Hugging Face下载GGUF量化版本好处是模型文件可以直接被Llama.cpp后端加载社区优化也比较多。以Qwen2.5-32B-Instruct为例我选择的是Q4_K_M量化版本文件大小约20GB。下载命令huggingface-cli download Qwen/Qwen2.5-32B-Instruct-GGUF qwen2.5-32b-instruct-q4_k_m.gguf --local-dir ./models如果不想装Hugging Face CLI也可以直接在浏览器里下载后丢进models目录本质上就是一个权重文件没有额外讲究。下载的时候注意磁盘空间一个70B模型动辄40GB起步建议至少留出200GB的可用容量毕竟你还要跑KVCache和日志。加载模型的时候有几个核心参数需要理解-c上下文长度我一般设32768最大支持128K但内存占用会明显上涨。-n单次最大生成Token数默认-1表示不限制本地推理建议保持默认。-t线程数按CPU核心数设置我的是16核心16线程这里写成16。-bBatch大小默认2048Prefille阶段生效。--split-mode可以选layer让模型层在设备间分布。--n-gpu-layersLlama.cpp经典参数这里可以设计为把部分层卸载到GPU和NPU。我最终用的调用指令大致长这样python -m halogen.llama_cpp_server \ --model ./models/qwen2.5-32b-instruct-q4_k_m.gguf \ --host 127.0.0.1 --port 8088 \ --ctx-size 32768 \ --threads 16 \ --split-mode layer \ --n-gpu-layers 99这里--n-gpu-layers 99的意思是能卸载给NPU/GPU的层全部卸载实际调度由halogen自己决策。启动日志里会打印模型加载进度、各设备计算时间等信息看到“ready”之后就可以通过HTTP接口访问了。3.3 一条curl命令验证本地Token自由halogen自带的HTTP服务是OpenAI兼容接口这意味着任何习惯于用OpenAI SDK的项目都能直接切换到本地端点。启动后先在浏览器访问http://127.0.0.1:8088/v1/models能看到模型列表说明服务正常。用curl做一个最简单的对话验证curl http://127.0.0.1:8088/v1/chat/completions \ -H Content-Type: application/json \ -d { model: qwen2.5-32b-instruct-q4_k_m, messages: [{role: user, content: 用一句话解释什么是Token}], max_tokens: 200 }返回的JSON里会带上模型生成的文本、Token使用量和推理耗时。这个响应和OpenAI官方接口几乎一样唯一区别是API Key随便填因为本地服务不会校验。到这一步你已经拿到“本地无限Token”的钥匙了。4. 实测数据与速度优化方向装了halogen之后我连续跑了一周各种尺寸的模型都测过一轮包括多轮长对话、代码补全、文档摘要、批量推理等场景。这一节我不会贴过于绝对的数字因为速度跟内存频率、BIOS设置、环境温度都有关系但整体趋势是稳定的可以作为参考。4.1 不同尺寸模型的推理速度参考先说明一下测试条件内存是128GB LPDDR5X-8000系统是Ubuntu 24.04驱动版本XDNA的2.xhalogen仓库保持最新main分支。测速工具直接用服务端返回的timings信息两次取值平均。模型量化参数大小上下文平均Prefill速度平均Decode速度Qwen2.5-7BQ4_K_M4.7GB32768约2200 tokens/s约48 tokens/sQwen2.5-14BQ4_K_M9.0GB32768约1500 tokens/s约38 tokens/sQwen2.5-32BQ4_K_M20GB32768约850 tokens/s约23 tokens/sQwen2.5-72BQ4_K_M44GB16384约420 tokens/s约12 tokens/s先别急着拿这个跟M系列芯片或4090对比。Decode速度确实不算夸张但在72B这种量级的本地模型里能稳定产出12 tokens/s已经很有实用价值因为长上下文场景下真正的瓶颈往往不是生成速度而是多轮对话中历史内容不断累积时的连续输出能力。对我这种写长文的人12 tokens/s换算下来每分钟700多个Token一小时四万多Token一天就是百万Token级别云API早就烧掉几十上百块钱了本地推理却毫无压力。Prefille速度才是让我惊讶的地方。850 tokens/s的32B模型Prefille意味着你可以一次性塞入很长的输入文本而不至于等太久。我测试过一次性投喂一份2万字的Markdown文档让模型做总结过程大约10秒出头属于完全可以接受的范围。这说明halogen对NPU的利用在Prefille阶段做得相当到位。4.2 怎么把速度往上拉以及哪些坑浪费了我的时间实测过程中我发现一些直接影响推理速度的细节这里分享几个最关键的经验。内存频率是第一影响力。Strix Halo平台的主板BIOS里内存配置直接影响带宽表现。我一开始没进BIOS设置系统把内存跑在DDR5-5600的默认频率上32B模型Decode速度只有17 tokens/s进BIOS打开EXPO或手动设置到LPDDR5X-8000之后速度明显回升。如果你的机器也有类似情况建议先检查内存频率是否被锁定在低功耗档。模型层的均衡分配也很重要。halogen虽然会自动调度但调度偏好不一定适合每个场景。我做了个小实验35层全扔给NPU速度不如20层给NPU、15层给GPU快。原因是NPU的连续算子吞吐确实强但KVCache的读写会占用内存带宽当容量过大时NPU的访问冲突反而成为瓶颈。官方并没有给一个“万能分配数字”最好自己跑一次--n-gpu-layers从60到99的对比测试找到自己机器上的甜点值。第三点是关于量化等级的选择。很多新手为了追求“精度无损”选了Q8结果一个32B模型跑到Q8后权重膨胀到40多GBDecode速度急剧下滑。按照我的经验Q4_K_M就是本地推理的甜点质量损失在长文本任务中几乎无法感知但速度比Q6/Q8高出一大截。如果你做的是代码补全这种对细节敏感的任务可以试试Q5_K_M做折中。还有一个容易忽略的细节是CPU频率策略。halogen在Decode阶段会频繁使用CPU做采样和部分层的计算如果你用的是节能模式推理速度会不稳定。建议把系统电源模式设为性能优先或者至少在跑推理时切换到高性能模式20%的差距经常就是这样省出来的。5. 常见问题与避坑指南halogen虽然优秀但它毕竟不是一个商业化得像CUDA生态那么成熟的产品实际操作中会遇到各种问题。我把自己以及群里朋友踩过的坑整理成一个速查表方便大家排查。5.1 装不上、跑不动、NPU不工作这几个问题最多症状可能原因解决思路启动报VitisAIExecutionProvider not foundONNX Runtime没有安装或版本不对重新执行halogen的安装脚本确认安装的是onnxruntime-gpu版本模型加载到一半报OOM内存分配过大给模型的内存超出物理内存调小--ctx-size或改选更小量化模型确认swap已关闭推理日志里只有CPU在跑NPU不工作XDNA驱动没装好或内核模块未加载重新检查/dev/accel/若为空重装amdxdna驱动并重启速度越来越慢KVCache被反复分配内存碎片化定期重启服务或缩短单次上下文长度服务启动后80端口被占端口冲突换一个自定义端口如8088同时修改客户端base_url打开Windows WSL模式后NPU不可见WSL2对PCIe直通支持不完善原生Ubuntu双系统或参考官方文档的WSL配置说明这里特别说一个我印象深刻的坑默认的swap占用。Linux系统在内存充足时一般不会用到swap但如果你在其他程序里设置过较大的swapfile为了稳妥最好在跑大模型时暂停swap或直接关掉否则推理时如果发生内存回收整个推理进程可能被卡顿拖到崩溃。我自己在一次加载70B模型时遇到过堪称噩梦的卡顿排查到最后发现就是系统在疯狂swap关掉之后一切恢复正常。5.2 Token自由不是口号成本账对比很多朋友问我“即便本地能跑云API不是更便宜吗DeepSeek这类API便宜得离谱。”这个问题我也认真算过。以我个人为例平均每天写代码辅助、跑文档摘要和对话实验约消耗120万Token其中输入占七成、输出占三成。参考主流API的价格输出Token百万约8元到20元不等输入Token约1元到5元一天的成本大约是25元左右一个月就是750元以上一年接近九千块。这还是比较便宜的API。如果用的是高端模型API同样的使用量一天冲到上百元也很正常。而一台Strix Halo主机按市场价一万出头计算本地推理几乎可以忽略边际成本电费一天撑死二三块钱。把硬件成本摊到一年看用本地推理反而比重度使用云端API更划算。更不用提“不限量生成”给实验带来的自由度失败了一次重新跑几十万Token说没就没在云端你早就心疼得不行了。“Token自由”这个词在我这里的定义是不需要为了省Token而裁剪输入不需要因为长对话烧钱而频繁清空聊天记录不需要因为余额不足而中断正在跑的任务。本地推理把Token的单位价格从“分/千Token”降到了“几乎为零”这才是真正的自由。5.3 还有哪些扩展玩法值得一试halogen跑通基本对话之后可以做的事远不止聊天。我目前最多的用法是配合VS Code的Continue插件写代码本地模型负责补全和解释云端API只保留在处理复杂架构问题时使用。这种“本地打底、云端兜底”的模式既保住了隐私和可控性又不会明显牺牲代码质量。另外halogen的OpenAI兼容接口可以非常方便地接进各类自动化脚本。我写了一个定时任务每天晚上把当天的日志文件自动喂给本地模型做摘要生成日报后推送给自己。整个过程不需要任何API费用也不用担心数据出内网。如果你有自动化的需求本地API的稳定性和零成本是云API很难替代的。再分享一个对内容创作者非常有用的场景批量改写和润色。我试过让本地模型一次处理五十篇短文每篇控制在500字左右整体跑完大约半小时成本为零。换作云端API光这50次请求的Token和调用次数就需要仔细计算即使便宜心理上还是会有负担。本地模型则可以完全放开手脚一天改到天荒地老都没人心疼。6. 最后我的一点实际体会halogen让我重新理解了“AI PC”这个词。以前大家觉得AI PC就是带个NPU跑Windows自带的那些小功能这个理解太局限了。真正值钱的不是芯片上那个AI单元而是统一内存带来的容量优势halogen把这种优势彻底释放出来了。如果你手上已经有Ryzen AI 395或者Strix Halo平台的机器我强烈建议你花一个下午把halogen跑通。它不会让你的机器变成4090甚至在某些维度上确实还比不过专门的大显存显卡但它给你的是另一种东西可以自由实验、随便折腾、不用看配额、不用付Token费、离线也能工作的本地大模型环境。这种自由带来的舒适感只有长期被云API折磨过的人才会懂。最后分享一个小经验如果你打算长期使用halogen可以把常用的模型单独放在一个磁盘分区里训练数据、日志和模型权重分开管理。这样即使切换模型损坏了缓存也不会影响其他数据。系统更新之前记得先跑一次推理确认环境没问题避免升级驱动导致NPU不可用。保持好习惯这台机器真的可以陪你用很久很久。