ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

ChatGLM-6B Mac 部署排障:量化模型报 `clang: error: unsupported option ‘-fopenmp‘` 的成因与 OpenMP 安装指南

ChatGLM-6B Mac 部署排障:量化模型报 `clang: error: unsupported option ‘-fopenmp‘` 的成因与 OpenMP 安装指南 大模型人工智能交互助手本地部署微调NLP【免费下载链接】ChatGLM-6BChatGLM-6B: An Open Bilingual Dialogue Language Model | 开源双语对话语言模型项目地址https://gitcode.com/gh_mirrors/ch/ChatGLM-6B点击查看免费下载本篇技术指南聚焦 ChatGLM-6B 在 macOS 上加载量化模型如chatglm-6b-int4时最典型的报错clang: error: unsupported option -fopenmp从根因macOS 缺少 OpenMP 运行时出发给出完整的依赖安装步骤与验证方法并串联仓库中 README.md、requirements.txt 等部署上下文帮助你在 Mac 上以多核 CPU 并行方式流畅运行量化模型。问题现象Mac 加载量化模型报-fopenmp错误按照 README.md 的说明在 Mac 上加载量化后的 ChatGLM-6B 模型通常会采用如下代码INT8 时把chatglm-6b-int4换成chatglm-6b-int8model AutoModel.from_pretrained(THUDM/chatglm-6b-int4, trust_remote_codeTrue).float()然而在 macOS 上直接执行时控制台可能出现如下提示clang: error: unsupported option -fopenmp按照 FAQ.md 的说明出现该提示后程序其实可以运行但只会使用 CPU 单核——模型推理退化为极慢的串行执行体验大打折扣。这不是模型本身的问题而是平台编译/链接环节缺少了必要的并行运行时。错误根因macOS 缺乏 OpenMPomp依赖为什么 ChatGLM-6B 需要 OpenMPChatGLM-6B 的前向计算依赖cpm_kernels这一核心 kernel 库见 requirements.txt量化模型的 CPU kernel 在编译/加载过程中需要用到 OpenMP 指令-fopenmp来开启多线程并行加速。而macOS 自带的 clang 编译器链默认没有捆绑 OpenMP 运行时libomp因此在编译或加载量化 kernel 时便会出现-fopenmp不被识别的错误。文档给出的结论FAQ.md 明确指出这是由于 Mac 由于本身缺乏 omp 导致的此时可运行但是单核。需要单独安装 openmp 依赖即可在 Mac 下使用 OMP。也就是说这一报错属于环境依赖缺失而非代码缺陷补装 OpenMP 即可解决且安装后能显著提升 CPU 推理的并行度。解决方案为 Mac 安装 OpenMP 依赖以下步骤以gcc(clang)为14.x版本为例其他版本需对照 R-Project 提供的版本表格选择对应的 OpenMP 安装包。步骤一安装 OpenMP 预编译包下载并解压 R Project 提供的 OpenMP 安装包# 参考 R-Project 提供的 openmp 预编译包 ## 假设: gcc(clang) 是 14.x 版本其他版本见 R-Project 提供的表格 curl -O https://mac.r-project.org/openmp/openmp-14.0.6-darwin20-Release.tar.gz sudo tar fvxz openmp-14.0.6-darwin20-Release.tar.gz -C /tar fvxz中的-C /表示将包内容释放到系统根目录使运行时库落入系统标准路径从而被编译器链自动识别。步骤二确认安装产物安装成功后系统会在标准目录下出现以下文件/usr/local/lib/libomp.dylib—— OpenMP 动态链接库运行时核心/usr/local/include/ompt.h—— OpenMP 工具接口头文件/usr/local/include/omp.h—— OpenMP 编程接口头文件/usr/local/include/omp-tools.h—— OpenMP 工具辅助头文件可用如下命令确认文件已就位ls -l /usr/local/lib/libomp.dylib ls -l /usr/local/include/omp.h步骤三验证修复效果重新运行量化模型加载脚本clang: error: unsupported option -fopenmp应不再出现。在 cli_demo.py 或自定义脚本中多轮对话时可借助top观察多核 CPU 占用率提升确认推理已从单核切换为多核并行。附加注意清理 Hugging Face 模块缓存FAQ 中特别提醒如果你之前运行 ChatGLM 项目失败过最好清一下 Huggingface 的缓存默认路径下的缓存目录为${HOME}/.cache/huggingface/modules/transformers_modules/chatglm-6b-int4rm -rf ${HOME}/.cache/huggingface/modules/transformers_modules/chatglm-6b-int4⚠️ 该命令使用了rm请明确知道自己在删除什么。之所以需要清理是因为trust_remote_codeTrue会将远端模型实现代码缓存在该目录若此前在缺少 OpenMP 的环境下编译失败缓存中可能残留不完整的中间产物导致后续即使补装了 OpenMP 仍加载异常。清理后重跑即可触发重新编译加载。部署背景为什么 Mac 上量化模型只能走 CPU 路径理解这一步排障需要回到 README.md 给出的 Mac 部署约束加载半精度 ChatGLM-6B 需要约 13GB 内存内存较小的机器如 16GB MacBook Pro空余内存不足时会使用硬盘虚拟内存导致推理速度严重变慢因此推荐使用量化模型如chatglm-6b-int4。GPU 上量化的 kernel 是使用 CUDA 编写的无法在 macOS 上使用因此在 Mac 上量化模型只能使用 CPU 进行推理# INT8 量化的模型将chatglm-6b-int4改为chatglm-6b-int8 model AutoModel.from_pretrained(THUDM/chatglm-6b-int4, trust_remote_codeTrue).float()为了充分使用 CPU 并行还需要单独安装 OpenMP——这正是 FAQ.md 的 Q1 所解决的问题。README 的环境安装章节也明确写道如果需要在 CPU 上运行量化后的模型还需要安装gcc与openmp并把 MacOS 的情况指引到 Q1。由此可以梳理出一条完整的依赖链Mac 上跑量化模型 → 只能走 CPU 推理 → CPU 量化 kernel 依赖 OpenMP 多线程 → macOS 默认缺 OpenMP → 报-fopenmp错误 → 手动安装 libomp 解决。延伸对比Linux / Windows 上的 OpenMP 配置FAQ 针对的是 macOSREADME 的环境安装部分则给出了其余平台的对照平台OpenMP 配置方式Linux多数发行版默认已安装gcc与openmpREADME 测试环境为gcc 11.3.0Windows安装 TDM-GCC 时勾选openmpREADME 测试环境为TDM-GCC 10.3.0macOS需要按本文步骤手动安装 OpenMP 预编译包详见 FAQ.md从源码结构看这条依赖约束与 requirements.txt 中cpm_kernels的引入直接相关该库承担量化模型在 CPU 上的核心算子其并行实现依赖 OpenMP 编译指令因此在缺少 omp 的平台上就会出现本文所述的编译报错。总结clang: error: unsupported option -fopenmp是 ChatGLM-6B 量化模型在 macOS 上部署的必经关卡它源于系统缺少 OpenMP 运行时表现为能跑但单核。通过安装 R Project 提供的 OpenMP 预编译包注意与 clang 版本对应即可让量化模型在 Mac 上以多核并行方式运行若此前构建失败记得同步清理 Hugging Face 的transformers_modules缓存以避免残留产物干扰。结合 README.md 的约束可知Mac 上量化模型仅支持 CPU 推理OpenMP 正是打通这条 CPU 路径并行能力的关键依赖。赞分享大模型人工智能交互助手本地部署微调NLP【免费下载链接】ChatGLM-6BChatGLM-6B: An Open Bilingual Dialogue Language Model | 开源双语对话语言模型项目地址https://gitcode.com/gh_mirrors/ch/ChatGLM-6B点击查看免费下载相关推荐突破显存瓶颈ChatGLM-6B-INT4量化模型部署与优化指南突破显存瓶颈ChatGLM 6B INT4量化模型部署与优化指南 你是否还在为大语言模型部署时动辄数十GB的显存占用而苦恼是否因消费级显卡无法运行高性能对话6GB显存玩转大模型ChatGLM-6B-INT4量化部署与应用全指南6GB显存玩转大模型ChatGLM 6B INT4量化部署与应用全指南 你是否曾因显卡显存不足而错失本地部署大模型的机会面对动辄需要10GB显存的AI模型PaddleNLP 中的 ChatGLM-6B模型解读、全场景微调与量化部署实践PaddleNLP 中的 ChatGLM 6B模型解读、全场景微调与量化部署实践 ChatGLM 6B 是 THUDM 开源的中英双语对话模型PaddleN人工智能大模型预训练微调LoRARLHF强化学习分布式训练模型推理服务推理引擎模型量化模型压缩本地部署NLP上一篇vllm-omni serve 命令详解基于 Stage 的分进程部署与参数配置指南下一篇BrowserSkill 完全指南让 AI Agent 复用真实登录态操作浏览器而不打断你的工作创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表