ChatGLM3-6B 的 OpenVINO 部署实战:模型转换、INT4 量化与 CPU 流式推理完整指南

发布时间:2026/10/4 1:44:50
ChatGLM3-6B 的 OpenVINO 部署实战:模型转换、INT4 量化与 CPU 流式推理完整指南 大模型人工智能微调本地部署AI AgentRAG【免费下载链接】ChatGLM3ChatGLM3 series: Open Bilingual Chat LLMs | 开源双语对话语言模型项目地址https://gitcode.com/gh_mirrors/ch/ChatGLM3点击查看免费下载本篇技术指南聚焦于如何在 Intel 设备上使用 OpenVINO 推理工具包部署 ChatGLM3-6B 开源对话模型完整覆盖环境配置、HuggingFace 模型到 OpenVINO IR 的转换、INT8/INT4 权重量化可选以及命令行对话推理的全流程。读完本文你将掌握 ChatGLM3-6B 在 OpenVINO 上的标准部署命令与参数含义并能结合仓库内的参考实现 openvino_cli_demo.py 理解底层推理原理实现在个人电脑 CPU 或 Intel 独立显卡上的低内存、流式对话。一、为什么选择 OpenVINO 部署 ChatGLM3-6BOpenVINOOpen Visual Inference and Neural Network Optimization是 Intel 为深度学习推理设计的开源工具包其核心价值在于帮助开发者优化模型、提升推理性能并显著减少模型的内存占用。对于 ChatGLM3-6B 这类 6B 参数的对话模型直接以 FP32 权重加载推理对内存和算力要求较高而借助 OpenVINO 的模型优化与量化能力可以明显降低部署门槛让模型在普通个人电脑上流畅运行。在本仓库的定位中OpenVINO 被明确列为 ChatGLM3-6B 的推荐推理加速方案之一见 README.md 的推理加速一节作为Intel 开发的高性能 CPU 和 GPU 加速推理方案与 TensorRT-LLM、chatglm.cpp 等方案并列。其对应的完整部署步骤即记录在 Intel_device_demo/openvino_demo/README.md 中这也是本文展开的核心依据。需要说明的是OpenVINO 部署方案的整体流程分为四步环境配置 → 模型转换生成 OpenVINO IR→ 可选量化 → 运行推理。前三步的核心脚本convert.py、quantize.py、chat.py来自配套的 OpenVINO GLM3 推理仓库克隆后即可使用本仓库则在 openvino_demo 目录下提供了等价原理的参考实现脚本可用于对照理解。二、环境配置克隆推理仓库与安装依赖首先克隆 OpenVINO GLM3 推理仓库并进入目录git clone https://github.com/OpenVINO-dev-contest/chatglm3.openvino.git cd chatglm3.openvino官方推荐在独立的虚拟环境中安装依赖避免与系统 Python 环境互相污染。创建并激活虚拟环境后依次执行python3 -m venv openvino_env source openvino_env/bin/activate python3 -m pip install --upgrade pip pip install wheel setuptools pip install -r requirements.txt其中requirements.txt位于克隆下来的chatglm3.openvino仓库中会拉取optimum-intel提供OVModelForCausalLM加载入口、transformers以及 OpenVINO 运行时等相关依赖。如果安装后导入模型时出现 huggingface 链接类报错可参考本文常见问题一节将transformers降级至 4.37.2 版本解决。注意本仓库根目录的 requirements.txt 是 ChatGLM3 通用基础依赖transformers、torch、gradio 等与上述 OpenVINO 推理仓库的依赖清单不同两者用途各异不要混淆。三、转换模型从 HuggingFace 权重到 OpenVINO IR由于 OpenVINO 推理需要的是经过图优化的 IRIntermediate Representation格式模型而非原始的 HuggingFace 权重因此第一步是把下载好的 HuggingFace 模型转换到 OpenVINO IR 格式。在虚拟环境激活状态下执行python3 convert.py --model_id THUDM/chatglm3-6b --output {your_path}/chatglm3-6b可选择的参数参数说明--model_id模型所在目录的路径绝对路径即 HuggingFace 模型 ID 或本地已下载的模型目录--output转换后 IR 模型保存的地址转换完成后{your_path}/chatglm3-6b目录下即为可直接供 OpenVINO 加载的模型文件通常包含 IR 权重文件与 tokenizer 相关文件。四、量化模型非必须进一步压缩内存占用如果对内存占用有更高要求例如希望在内存有限的个人电脑上运行可以在 IR 模型基础上继续进行权重量化。官方支持int8与int4两种精度量化后模型体积与内存占用进一步下降是低配设备上的推荐做法。执行python3 quantize.py --model_path {your_path}/chatglm3-6b --precision int4 --output {your_path}/chatglm3-6b-int4可选择的参数参数说明--model_pathOpenVINO IR 模型所在目录的路径即上一步--output指向的目录--precision量化精度取值为int8或int4int4相比int8占用更少内存--output量化后模型保存的路径注意量化属于可选优化步骤若不量化可直接用转换得到的 IR 模型推理量化则需在推理时指定量化后的模型路径。五、运行 ChatGLM3 模型命令行对话推理模型转换及可选量化完成后即可启动对话推理。执行python3 chat.py --model_path {your_path}/chatglm3-6b --max_sequence_length 4096 --device CPU若使用了 INT4 量化模型将--model_path改为量化输出路径如{your_path}/chatglm3-6b-int4即可。可选择的参数参数说明--model_pathOpenVINO IR 模型所在目录的路径--max_sequence_length输出标记token的最大大小即单次生成的最大输出长度--device运行推理的设备如CPU也可指定 Intel GPU 等 OpenVINO 支持的设备启动后进入交互式对话模式直接输入文本并按回车即可与模型对话。六、仓库内参考实现openvino_cli_demo.py 的原理剖析除了上文外部推理仓库的chat.py本仓库还在 Intel_device_demo/openvino_demo/openvino_cli_demo.py 提供了一份可直接阅读的 OpenVINO CLI 推理参考实现其加载与生成逻辑与上述流程完全同源非常适合用来理解整条链路背后的实现细节。6.1 命令行参数定义脚本通过argparse定义了三组参数见 openvino_cli_demo.py与chat.py的参数一一对应-m/--model_path必填模型目录路径-l/--max_sequence_length可选默认256即最大输出 token 数-d/--device可选默认CPU指定推理设备。6.2 模型加载与运行时配置加载阶段的核心是OVModelForCausalLM来自optimum.intel.openvino它负责把 OpenVINO IR 模型包装成与transformers一致的因果语言模型接口见 openvino_cli_demo.pyov_config {PERFORMANCE_HINT: LATENCY, NUM_STREAMS: 1, CACHE_DIR: } tokenizer AutoTokenizer.from_pretrained(model_dir, trust_remote_codeTrue) ov_model OVModelForCausalLM.from_pretrained( model_dir, deviceargs.device, ov_configov_config, configAutoConfig.from_pretrained(model_dir, trust_remote_codeTrue), trust_remote_codeTrue, )其中三个ov_config项各有明确作用PERFORMANCE_HINT: LATENCY向 OpenVINO 运行时声明以低延迟为优化目标NUM_STREAMS: 1限制使用单条推理流水线保证请求串行、结果稳定CACHE_DIR指定模型编译缓存目录设为空字符串表示不使用磁盘缓存。同时注意trust_remote_codeTrue被同时传入 tokenizer 与模型加载这是 ChatGLM3 这类依赖远程自定义代码的模型所必需的配置。6.3 流式输出与停止条件推理脚本使用transformers的TextIteratorStreamer实现逐 token 流式输出见 openvino_cli_demo.pystreamer TextIteratorStreamer( tokenizer, timeout60.0, skip_promptTrue, skip_special_tokensTrue ) stop_tokens [0, 2] stop_tokens [StopOnTokens(stop_tokens)]timeout60.0表示等待新 token 的超时上限为 60 秒skip_promptTrue与skip_special_tokensTrue保证输出中不包含输入提示与特殊符号stop_tokens [0, 2]对应 ChatGLM 的结束标记 token id配合自定义的StopOnTokens(StoppingCriteria)见 openvino_cli_demo.py在生成到结束符时立即停止避免无谓计算。6.4 多轮对话组装与采样参数多轮对话通过tokenizer.apply_chat_template按 ChatGLM3 的对话模板组装历史消息见 openvino_cli_demo.py最新一轮用户输入不带 assistant 回复历史消息按user/assistant角色依次排列并设置add_generation_promptTrue追加生成提示符。生成阶段传入的采样与生成参数见 openvino_cli_demo.py如下参数默认值作用max_new_tokens取--max_sequence_length限制单次生成的输出 token 数temperature0.1采样温度值越低输出越确定do_sampleTrue开启随机采样top_p1.0核采样阈值top_k50限制候选 token 数量repetition_penalty1.1重复惩罚系数抑制语句重复6.5 交互控制与 Markdown 渲染对话循环中支持两个控制指令输入stop退出程序输入clear清空当前对话历史。此外脚本中的parse_text函数见 openvino_cli_demo.py会把用户输入中的 Markdown 代码块转换为 HTML 代码块标签并对特殊字符进行转义确保模型输出的代码等内容在终端中正确呈现。七、对话效果示例转换并启动推理后典型的交互过程如下用户: 你好 ChatGLM3-6B-OpenVINO: 你好有什么我可以帮助你的吗 用户: 你是谁 ChatGLM3-6B-OpenVINO: 我是一个名为ChatGLM3-6B的人工智能助手是由清华大学KEG实验室和智谱AI 公司于2023 年共同训练的语言模型开发而成。我的任务是针对用户的问题和要求提供适当的答复和支持。 用户: 请给我讲一个有趣的故事 ChatGLM3-6B-OpenVINO: 从前有一个名叫小明的小男孩他是一个非常喜欢动物的人。有一天他在森林里散步时发现了一个非常漂亮的小鸟。小鸟受伤了无法飞行。小明非常心疼于是决定照顾这只小鸟。小明带着小鸟回家为它搭建了一个小小的巢穴并找来了一些软草和食物。每天他都会给小鸟喂食并为它换水。渐渐地小鸟的伤势好了起来开始在小明的家里飞来飞去它们成了非常好的朋友。然而一天小明的父母告诉他他们必须把小明养的小鸟送到森林里去。小明非常伤心因为他已经和小鸟成为了好朋友。但是他的父母告诉他小鸟在森林里会更加自由自在而且他也可以继续观看小鸟在森林中的生活。于是小明和他的父母一起将小鸟送到了森林中。小鸟非常高兴因为它又可以飞行了并且还有许多其他的小动物朋友。小明也感到非常开心因为他知道即使不能一直拥有小鸟他仍然可以欣赏到它们在自然中的美丽。从此以后小明常常来到森林中寻找小鸟。 用户: 请给这个故事起一个标题 ChatGLM3-6B-OpenVINO: 《友谊的力量小明与小鸟的森林冒险》从示例可以看出OpenVINO 部署的 ChatGLM3-6B 保持了完整的多轮对话能力能够流畅完成自我介绍、长文本故事生成与总结等任务输出质量与原生部署一致。八、常见问题排查为什么导入本地模型还会报 huggingface 链接错误将transformers库降级到4.37.2版本即可解决。这是该部署方案在实际操作中最常见的兼容性问题多由 transformers 版本与 ChatGLM 远程代码不兼容导致。需要安装 OpenVINO C 推理引擎吗不需要。本方案全程通过 Python 侧接口optimum-intel的OVModelForCausalLM完成模型加载与推理无需额外安装 C 开发环境。一定要使用 Intel 的硬件吗官方仅在 Intel 设备上完成过验证推荐使用 x86 架构的 Intel 设备包括但不限于Intel CPU涵盖个人电脑 CPU 和服务器 CPUIntel 独立显卡例如 ARC A770Intel CPU 核显系列详见 Intel_device_demo/README.md 的硬件支持列表。九、在 Intel 设备生态中的定位本方案隶属于仓库的 Intel_device_demo 目录该目录专注于辅助开发者在 Intel 设备上加速部署 ChatGLM3-6B硬件覆盖 Intel CPU个人电脑与服务器/工作站、Intel Arc 独立显卡如 A770、Intel CPU 核显以及其他理论支持 OpenVINO 加速的 Intel 工具套件。与之并列的还有 IPEX-LLM 方案见 ipex_llm_cpu_demo两者定位互补OpenVINO 侧重于模型图优化与运行时加速、通过 IR 格式与量化降低部署成本IPEX-LLM 则是面向 Intel XPU 的低精度轻量级大语言模型库强调广泛的模型支持与最小内存占用。实际选型时可根据目标设备CPU 优先选 OpenVINOGPU 或更激进的低内存场景可评估 IPEX-LLM与部署形态CLI 交互、Web 服务或 OpenAI 兼容 API来决定采用哪条路线。赞分享大模型人工智能微调本地部署AI AgentRAG【免费下载链接】ChatGLM3ChatGLM3 series: Open Bilingual Chat LLMs | 开源双语对话语言模型项目地址https://gitcode.com/gh_mirrors/ch/ChatGLM3点击查看免费下载相关推荐ChatGLM3-6B 低成本部署完全指南量化、CPU、Mac 与多卡推理实战ChatGLM3 6B 低成本部署完全指南量化、CPU、Mac 与多卡推理实战 本文围绕 ChatGLM3 开源仓库中的 DEPLOYMENT.md http大模型人工智能微调本地部署AI AgentRAGChatGLM3-6B 低成本部署指南量化、CPU/Mac 与多卡推理实战ChatGLM3 6B 低成本部署指南量化、CPU/Mac 与多卡推理实战 ChatGLM3 6B 是智谱 AI 与清华 KEG 联合开源的 6B 级双语对话大模型人工智能微调本地部署AI AgentRAG终极指南如何快速实现ChatGLM3的OpenVINO部署与Intel CPU/GPU推理加速终极指南如何快速实现ChatGLM3的OpenVINO部署与Intel CPU/GPU推理加速 ChatGLM3是一款开源双语对话语言模型通过OpenVIN大模型人工智能微调本地部署AI AgentRAG创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询