
大模型AI Agent模型推理服务微调对话系统【免费下载链接】ChatGLM3ChatGLM3 series: Open Bilingual Chat LLMs | 开源双语对话语言模型项目地址https://gitcode.com/zai-org/ChatGLM3点击查看免费下载本指南以 Intel OpenVINO 推理加速框架为主线完整演示如何将 ChatGLM3-6B 从 HuggingFace 权重转换为 OpenVINO IR 中间表示并通过可选 INT4 量化压缩模型体积最终在 Intel CPU 或 Arc 独立显卡上以命令行交互方式运行对话推理。读完本文你将掌握 OpenVINO 工具链下大语言模型的完整部署流程、核心参数含义以及源码级的推理实现原理。背景为什么选择 OpenVINO 部署 ChatGLM3-6BOpenVINO 是 Intel 为深度学习推理设计的开源工具包其核心价值在于优化模型、提升推理性能、降低内存占用。OpenVINO 通过将训练框架导出的模型转换为统一的 IRIntermediate Representation中间表示格式再借助底层硬件指令集优化如 AVX-512、XMX 矩阵引擎完成加速推理。ChatGLM3-6B 是智谱 AI 与清华大学 KEG 实验室联合发布的开源双语对话模型项目主页。在主仓库 README 的“低成本部署”章节中OpenVINO 与 TensorRT-LLM、chatglm.cpp 等方案并列被官方推荐作为英特 CPU/GPU 设备上的加速推理方案相关步骤即记录在 Intel_device_demo/openvino_demo/README.md 中。在 Intel_device_demo/README.md 的硬件支持列表中OpenVINO 方案适用的设备包括Intel CPU 系列个人 CPU 与服务器 / 工作站 CPUIntel Arc 独立显卡系列如 Arc A770Intel CPU 核显系列其他理论上支持 OpenVINO 加速的 Intel 工具套件完整部署链路分为四步环境配置 → 模型转换 → 可选量化 → 运行推理。下文逐节展开。1. 环境配置克隆推理仓库并安装依赖OpenVINO 部署 ChatGLM3-6B 需要借助社区维护的chatglm3.openvino推理仓库其中封装了模型转换、量化与推理脚本。首先克隆仓库并进入目录git clone https://github.com/OpenVINO-dev-contest/chatglm3.openvino.git cd chatglm3.openvino说明该仓库是独立于 ChatGLM3 主仓库的 OpenVINO 集成仓库负责将主仓库发布的 THUDM/chatglm3-6b 权重转换为 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依赖安装的关键点先升级pip再安装wheel与setuptools可避免后续安装部分包含 C 扩展的包时因构建工具缺失而失败requirements.txt中通常会包含transformers、optimum-intel等核心组件——推理脚本正是依赖 optimum.intel.openvino 的OVModelForCausalLM接口加载 IR 模型详见第 4 节源码分析若运行推理时出现与 HuggingFace 相关的异常需要按第 5 节“常见问题”降级transformers见下文。2. 转换模型HuggingFace 权重 → OpenVINO IROpenVINO 无法直接加载 PyTorch 权重必须先使用convert.py脚本将 HuggingFace 格式的 ChatGLM3-6B 模型转换为 OpenVINO IR 模型包含网络结构的.xml文件与权重.bin文件。执行命令如下python3 convert.py --model_id THUDM/chatglm3-6b --output {your_path}/chatglm3-6b转换时会将模型下载到本地首次执行需联网拉取权重转换产物保存在--output指定的目录中该目录即后续量化与推理的输入。可选择的参数参数说明类型 / 默认行为--model_id模型所在目录的路径绝对路径即 HuggingFace 仓库 ID 或本地模型目录必填字符串--output转换后 IR 模型保存的地址必填字符串参数细节--model_id支持两种形式HuggingFace 仓库 ID如THUDM/chatglm3-6b自动下载或已下载到本地的模型目录绝对路径转换完成后{your_path}/chatglm3-6b目录下即为标准的 OpenVINO IR 文件可在后续命令中直接复用无需重复转换。3. 量化模型非必须INT4 / INT8 压缩chatglm3.openvino仓库提供quantize.py脚本可对转换好的 IR 模型做进一步量化压缩进一步降低内存占用、提升推理吞吐。该步骤是可选的——如果你的硬件内存/显存充足可以直接跳过本步进入推理。python3 quantize.py --model_path {your_path}/chatglm3-6b --precision int4 --output {your_path}/chatglm3-6b-int4可选择的参数参数说明类型 / 默认行为--model_pathOpenVINO IR 模型所在目录的路径即第 2 步的--output必填字符串--precision量化精度int8或int4必填二选一--output量化后模型的保存路径必填字符串参数细节--precision int4是推荐的低精度方案可将模型权重压缩至 4-bit显著减少内存占用并提升推理速度--precision int8则保留相对更高的精度适合对生成质量更敏感的场景量化后的{your_path}/chatglm3-6b-int4目录同样是标准 IR 结构可直接作为推理入口。4. 运行 ChatGLM3 模型命令行交互推理模型转换或量化完成后即可通过chat.py启动交互式对话python3 chat.py --model_path {your_path}/chatglm3-6b --max_sequence_length 4096 --device CPU程序启动后进入交互循环在用户:提示符后输入文本并回车模型随即生成回复输入stop终止程序输入clear清空对话历史并重新开始。可选择的参数参数说明类型 / 默认行为--model_pathOpenVINO IR 模型所在目录的路径量化后可用...-int4目录必填字符串--max_sequence_length输出标记token的最大大小可选整数默认256--device运行推理的设备如CPU可选字符串默认CPU源码级解析推理脚本的核心实现仓库 Intel_device_demo/openvino_demo/openvino_cli_demo.py 提供了与chat.py同构的完整推理脚本参数定义与上表一致其关键实现可直接对照理解 OpenVINO 推理的内部机制1OpenVINO 推理配置ov_config脚本为推理引擎设置了三组关键配置ov_config {PERFORMANCE_HINT: LATENCY, NUM_STREAMS: 1, CACHE_DIR: }PERFORMANCE_HINT: LATENCY优先追求低延迟面向交互式对话场景NUM_STREAMS: 1限制单条推理流配合低延迟模式保证稳定的逐 token 生成CACHE_DIR模型编译缓存目录二次加载时可跳过重复编译、加快启动。2模型与分词器加载通过optimum.intel.openvino的OVModelForCausalLM.from_pretrained加载 IR 模型并配合AutoTokenizer与AutoConfig加载 ChatGLM3 的远程代码trust_remote_codeTruetokenizer 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, )3对话模板与历史拼接convert_history_to_token将多轮历史整理为role/content消息列表再通过tokenizer.apply_chat_template(messages, add_generation_promptTrue, ...)渲染为 ChatGLM3 的对话模板对应主仓库 PROMPT.md 定义的|user|/|assistant|结构作为生成输入。4流式生成与停止条件推理在后台线程中执行ov_model.generate(...)通过TextIteratorStreamer逐 token 流式输出同时自定义StopOnTokens停止条件遇到结束符[0, 2]即 EOS 与结束标记立即终止generate_kwargs dict( input_idsmodel_inputs, max_new_tokensargs.max_sequence_length, temperature0.1, do_sampleTrue, top_p1.0, top_k50, repetition_penalty1.1, streamerstreamer, stopping_criteriaStoppingCriteriaList(stop_tokens) ) t1 Thread(targetov_model.generate, kwargsgenerate_kwargs)其中temperature0.1、top_k50、repetition_penalty1.1等采样参数保证了对话输出的稳定性与多样性平衡。参数对照表CLI 参数 ↔ 源码默认值CLI 参数源码参数默认值说明--model_path(-m)model_dir必填IR 模型目录--max_sequence_length(-l)max_new_tokens256每次生成的最大新 token 数--device(-d)deviceCPU推理设备提示--max_sequence_length 4096意味着单次最多生成 4096 个 token适用于长文本生成场景默认 256 更偏轻量对话。生成上限需同时受模型上下文长度ChatGLM3-6B 为 8k约束。运行示例完成上述部署后交互式对话效果如下用户: 你好 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新版本与 ChatGLM3 远程代码trust_remote_code的兼容性差异导致锁定版本后即可稳定加载。需要安装 OpenVINO C 推理引擎吗不需要。本方案完全基于 Python 侧的optimum.intel.openvino封装完成推理无需额外搭建 C 编译环境。一定要使用 Intel 的硬件吗官方仅在 Intel 设备上验证过推荐使用x86 架构的 Intel 设备包括但不限于Intel CPU个人电脑 CPU 与服务器 CPUIntel 独立显卡例如 Arc A770 显卡。从源码看推理脚本的--device参数直接透传给OVModelForCausalLM实际支持的设备范围由所安装 OpenVINO 运行时决定但为获得最佳兼容性与性能建议严格按上述官方验证范围选型。延伸阅读同一 Intel 设备部署目录下还提供基于IPEX-LLMIntel XPU 低精度大语言模型库支持 Xeon/Core/Flex/Arc/PVC的加速方案参见 Intel_device_demo/ipex_llm_cpu_demo 系列脚本其中chatglm3_infer.py演示了 INT4 量化加载与单次推理api_server.py则提供了 OpenAI 兼容的 API 服务ChatGLM3 全量部署方式GPU / CPU / Mac / 多卡见主仓库 README.md更多 ChatGLM3 的对话模板与提示词格式见 PROMPT.md。赞分享大模型AI Agent模型推理服务微调对话系统【免费下载链接】ChatGLM3ChatGLM3 series: Open Bilingual Chat LLMs | 开源双语对话语言模型项目地址https://gitcode.com/zai-org/ChatGLM3点击查看免费下载相关推荐ChatGLM3-6B 的 OpenVINO 部署实战模型转换、INT4 量化与 CPU 流式推理完整指南ChatGLM3 6B 的 OpenVINO 部署实战模型转换、INT4 量化与 CPU 流式推理完整指南 本篇技术指南聚焦于如何在 Intel 设备上使用大模型人工智能微调本地部署AI AgentRAG使用 OpenVINO 部署 GLM-4-9B-Chat模型转换、INT4/INT8 量化与 Intel CPU 对话推理实战使用 OpenVINO 部署 GLM 4 9B Chat模型转换、INT4/INT8 量化与 Intel CPU 对话推理实战 本篇技术指南完整讲解如何在当前人工智能大模型基础模型模型推理服务微调本地部署多模态YOLOX 的 OpenVINO Python 推理部署实战从 ONNX 导出、模型转换到 CPU/GPU 端侧推理YOLOX 的 OpenVINO Python 推理部署实战从 ONNX 导出、模型转换到 CPU/GPU 端侧推理 本文以 YOLOX 仓库中的 OpenV人工智能计算机视觉深度学习创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考