ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

龙虾系列--openclaw基于昇腾910B单卡完成GLM-4.7-flash模型的加载并推理成功

龙虾系列--openclaw基于昇腾910B单卡完成GLM-4.7-flash模型的加载并推理成功 摘要本文记录使用 OpenClaw龙虾在昇腾环境部署大模型的完整流程涵盖安装配置、技能安装、模型下载与基础环境搭建。针对模型加载时的显存不足问题依次尝试优化启动参数、模型量化与 CPU offload 等方案最终通过 transformers 成功完成推理。关键词OpenClaw、昇腾、模型部署、显存优化、CPU offload。部署流程总览在开始具体操作前先通过下图快速了解 OpenClaw龙虾在昇腾环境部署大模型的完整链路后续章节将按此流程逐步展开。flowchart TD A[环境准备] -- B[安装 OpenClaw] B -- C[安装昇腾 skills] C -- D[下载模型权重] D -- E[安装基础环境] E -- F{模型加载} F --|vllm-ascend 失败| G[transformers 成功] F --|vllm-ascend 成功| H[推理验证] G -- H H -- I[问题排查] I --|显存不足| J[优化启动参数/量化/CPU offload] I --|网络中断| K[刷新重试/断点续传] I --|版本冲突| L[指定版本重装] J -- H K -- D L -- E一、龙虾安装安装 Node.jscurl -o https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh |bashsource ~/.bashrcnvm install 22校验 Node.js 版本node -vnpm -v安装龙虾命令npm install -g openclawlatestopenclaw --version根据向导配置 OpenAI 大模型的接口命令如下openclaw onboard --install-daemon打开网页http://10.23.45.123:18789 IP为服务器网络地址网关令牌通过配置文件 .openclaw/openclaw.conf 查看 auth.token 字段接入权限设置查看终端接入请求命令如下openclaw devices list审核终端接入请求命令如下openclaw devices approve 32496f3faffe7b77919346eb356aa7 # device idOpenClaw 界面登录二、技能安装昇腾skills安装包地址awesome-ascend-skills下载skills安装包并解压到路径/root/.openclaw/ascend-skills打开聊天输入安装命令如下检查路径/root/.openclaw/ascend-skills并安装skills技能列举当前技能三、下载模型下载模型权重命令如下下载模型权重ZhipuAI/GLM-4.7-Flash保存到本地路径 /root/autodl-tmp/GLM-4.7-Flash权重下载时间较长会发生Agent执行超时现象需要重新刷新页面输入上面命令四、基础环境指定安装软件版本可以有效减少token消耗和skills处理时间安装cann 版本 8.5.0安装cann-910b-ops 版本 8.5.0安装nnal 版本 8.5.0安装vllm 版本 0.17.0安装vllm-ascend 版本 0.17.0rc1安装transformers 版本 5.3.0安装torch 版本2.9.0安装torch_npu 版本 2.9.0五、模型加载使用vllm-ascend技能移植模型龙虾自动进行环境检测根据依赖告警发现版本冲突校验模型下载地址提供两种启动方式选择2 运行离线推理测试模型地址: /root/autodl-tmp/GLM-4.7-Flash发现模型加载显存不足优化启动参数由于 vllm-ascend 对 GLM-4.7-Flash 的 CPU offload 支持不完整最终改用 transformers 直接加载模型并将部分权重 offload 到 CPU 完成推理。关键代码如下import torch from transformers import AutoModelForCausalLM, AutoTokenizer 1. 模型加载指定本地权重路径并开启 CPU offload model_path /root/autodl-tmp/GLM-4.7-Flash tokenizer AutoTokenizer.from_pretrained(model_path, trust_remote_codeTrue) device_mapauto 自动分配设备配合 max_memory 将部分权重放到 CPU 从第 45 层开始 offload 到 CPU缓解 NPU 显存不足 model AutoModelForCausalLM.from_pretrained( model_path, trust_remote_codeTrue, device_mapauto, max_memory{0: 20GiB, cpu: 40GiB}, # 0 为 NPU 设备cpu 为内存上限 offload_folderoffload, # CPU offload 临时目录 torch_dtypetorch.float16 # 半精度加载进一步降低显存 ) 2. 推理调用构造输入并生成回复 prompt 请用一句话介绍昇腾 NPU 的优势 inputs tokenizer(prompt, return_tensorspt).to(model.device) 调整生成参数避免输出异常 outputs model.generate( **inputs, max_new_tokens256, do_sampleTrue, temperature0.7, top_p0.9, repetition_penalty1.1 ) 3. 输出处理解码并打印结果 response tokenizer.decode(outputs[0], skip_special_tokensTrue) print(response)加载完成后可通过model.hf_device_map查看权重分布确认从第 45 层开始已 offload 到 CPU 执行。在本次部署中先后尝试了 vllm-ascend 与 transformers 两种模型加载方案二者在显存占用、加载时间、推理速度与 CPU offload 支持等方面存在明显差异对比如下对比维度vllm-ascendtransformers显存占用整体加载到 NPU 显存GLM-4.7-Flash 加载时显存不足支持 device_mapauto 配合 max_memory可将部分权重 offload 到 CPU显存占用可控加载时间依赖环境检测与版本校验首次加载流程较长直接加载本地权重流程更简洁加载耗时相对更短推理速度面向高吞吐推理优化显存充足时推理性能更优通用推理框架单次推理速度略慢但可正常完成推理CPU offload 支持对 GLM-4.7-Flash 的 CPU offload 支持不完整无法将权重卸载到 CPU原生支持 CPU offload可将第 45 层之后的权重卸载到 CPU 执行综合来看vllm-ascend 在推理吞吐上更具优势但其对 GLM-4.7-Flash 的 CPU offload 支持不完整在当前 NPU 显存不足的情况下无法完成模型加载。而 transformers 提供了灵活的 device_map 与 max_memory 配置能够将部分权重 offload 到 CPU从而在有限显存下成功加载模型并完成推理。因此最终选择 transformers 作为本次部署的模型加载方案。调用工具查看硬件显存并修改启动脚本glm4_offline_inference.py中上下文长度重新加载模型加载显存失败提供优化方式提供模型量化 和cpu offload方案结论发现vllm-Ascend 对此模型支持不完整尝试transformers直接推理发现vllm不支持cpu offload针对模型进行量化安装量化工具msmodelslim创建模型量化脚本网络中断重新加载问题尝试transformers加载模型部分权重offload到cpu成功加载模型并推理但是输出有问题调整生成参数最终输出结果手动验证执行脚本模型加载权重分布从权重45层开始offload到cpu上执行六、龙虾总结总结内容如下七、常见问题与排查在部署过程中主要遇到以下三类问题下面分别给出简要说明、解决方案和排查步骤。1. 显存不足问题说明模型加载时提示显存不足导致推理无法启动。解决方案依次尝试优化启动参数、模型量化、CPU offload 三种方案最终通过 transformers 将部分权重 offload 到 CPU 后成功加载模型。排查步骤调用工具查看硬件显存确认可用显存大小。修改启动脚本 glm4_offline_inference.py 中的上下文长度降低显存占用。若仍失败尝试模型量化或 CPU offload 方案。验证权重加载分布确认 offload 生效。2. 网络中断问题说明模型权重下载时间较长发生 Agent 执行超时或网络中断导致下载失败。解决方案重新刷新页面再次输入下载命令断点续传后继续下载。排查步骤刷新页面重新发起下载命令。确认本地路径 /root/autodl-tmp/GLM-4.7-Flash 下权重文件是否完整。若中断频繁可考虑分批次下载或使用更稳定的网络环境。3. 版本冲突问题说明环境检测时发现依赖版本冲突导致模型加载失败。解决方案指定安装软件版本减少 token 消耗和 skills 处理时间确保各组件版本兼容。排查步骤根据依赖告警信息定位冲突组件。按指定版本重新安装 cann、vllm、transformers、torch 等组件。重新加载模型确认版本冲突已解决。八、参考资料本文部署过程中涉及的主要官方文档与资源链接如下供读者参考OpenClaw 安装指南GitHub - openclaw/openclaw: Your own personal AI assistant. Any OS. Any Platform. The lobster way. · GitHub包含龙虾的安装、配置与命令行使用说明。awesome-ascend-skills 仓库GitHub - ascend-ai-coding/awesome-ascend-skills: A comprehensive knowledge base for Huawei Ascend NPU development, structured as distributed Agent Skills. https://ascend-ai-coding.github.io/awesome-ascend-skills/ · GitHub提供昇腾环境下的 skills 技能安装包与使用示例。GLM-4.7-Flash 模型页面https://huggingface.co/ZhipuAI/GLM-4.7-Flash模型权重下载地址与官方说明。vllm-ascend 文档GitHub - vllm-project/vllm-ascend: Community maintained hardware plugin for vLLM on Ascend · GitHubvllm 在昇腾 NPU 上的适配与使用文档。transformers 文档https://huggingface.co/docs/transformersHugging Face transformers 库的官方文档涵盖模型加载、推理与 device_map 配置说明。link-titlehttps://huggingface.co/ZhipuAI/GLM-4.7-Flash hrefhttps://huggingface.co/ZhipuAI/GLM-4.7-Flash titlehttps://huggingface.co/ZhipuAI/GLM-4.7-Flashhttps://huggingface.co/ZhipuAI/GLM-4.7-Flash模型权重下载地址与官方说明。vllm-ascend 文档GitHub - vllm-project/vllm-ascend: Community maintained hardware plugin for vLLM on Ascend · GitHubvllm 在昇腾 NPU 上的适配与使用文档。transformers 文档https://huggingface.co/docs/transformersHugging Face transformers 库的官方文档涵盖模型加载、推理与 device_map 配置说明。
返回列表