发布时间:2026/7/11 19:49:51
GLM-4-9B-Chat-1M 模型在 openEuler 系统上的完整部署文档 博主简介CSDN博客专家「历代文学网」PC端可以访问https://lidaiwenxue.com/#/?__c1000总架构师首席架构师也是联合创始人16年工作经验精通Java编程高并发设计分布式系统架构设计Springboot和微服务熟悉LinuxESXI虚拟化以及云原生Docker和K8s热衷于探索科技的边界并将理论知识转化为实际应用。保持对新技术的好奇心乐于分享所学希望通过我的实践经历和见解启发他人的创新思维。在这里我希望能与志同道合的朋友交流探讨共同进步一起在技术的世界里不断学习成长。商务合作请搜索或扫码关注微信公众号 “心海云图”GLM-4-9B-Chat-1M 模型在 openEuler 系统上的完整部署文档文档说明本文档记录了在华为 openEuler操作系统上使用llama.cpp框架纯 CPU 推理部署GLM-4-9B-Chat-1M模型的完整流程。部署环境操作系统华为 openEuler最新版本CPU48 核心内存112 GB虚拟机分配磁盘320 GB/data 目录GPU无纯 CPU 推理目录环境准备下载 GGUF 模型文件编译 llama.cpp启动 API 服务验证服务后台运行配置Java 程序调用示例常见问题排查1. 环境准备1.1 更新系统并安装基础依赖# 更新系统包sudoyum update-y# 安装编译工具链和依赖sudoyum groupinstall-yDevelopment Toolssudoyuminstall-ycmakegitpython3 python3-pip gcc gcc-c1.2 创建工作目录所有文件统一存放在/data目录下mkdir-p/data/modelsmkdir-p/data/llama.cppcd/data1.3 安装 Python 依赖pip3installhuggingface-hub注意如果出现WARNING: Running pip as the root user警告可以忽略不影响使用。huggingface-cli已被弃用后续使用hf命令替代。2. 下载 GGUF 模型文件2.1 配置国内镜像源解决网络问题由于 Hugging Face 服务器在海外下载可能超时需配置国内镜像源# 临时使用推荐exportHF_ENDPOINThttps://hf-mirror.com# 永久生效可选echoexport HF_ENDPOINThttps://hf-mirror.com~/.bashrcsource~/.bashrc2.2 下载模型进入模型目录并下载Q5_K_M量化版本约 6.8GBcd/data/models hf download bartowski/glm-4-9b-chat-1m-GGUF\--includeglm-4-9b-chat-1m-Q5_K_M.gguf\--local-dir ./2.3 验证下载ls-lh/data/models/glm-4-9b-chat-1m-Q5_K_M.gguf预期输出-rw-r--r--. 1 root root 6.8G 7月11日 16:04 /data/models/glm-4-9b-chat-1m-Q5_K_M.gguf说明Q5_K_M是量化级别在精度和性能间取得良好平衡。如果内存充裕可改用Q6_K或Q8_0版本。3. 编译 llama.cpp3.1 克隆代码仓库cd/datagitclone https://github.com/ggerganov/llama.cppcdllama.cpp如果git clone速度慢或失败可使用代理gitclone https://gitclone.com/github.com/ggerganov/llama.cpp.git3.2 使用 CMake 编译llama.cpp已弃用传统make改用 CMake# 配置 CMake 构建系统cmake-Bbuild-DCMAKE_BUILD_TYPERelease# 编译利用48核并行加速cmake--buildbuild--configRelease-j483.3 验证编译结果ls-la/data/llama.cpp/build/bin/|grepllama-server预期输出应包含llama-server可执行文件。重要可执行文件名为llama-server而非server。4. 启动 API 服务4.1 前台启动测试用cd/data/llama.cpp ./build/bin/llama-server-m/data/models/glm-4-9b-chat-1m-Q5_K_M.gguf\-t32\-c0\--host0.0.0.0参数说明参数说明-m模型文件路径-t 32推理线程数建议设为物理核心数的 60%~75%-c 0不限制上下文长度支持 1M--host 0.0.0.0允许外部 IP 访问启动成功后看到HTTP server listening on http://0.0.0.0:8080即表示服务就绪。4.2 后台启动生产环境前台启动无法退出终端需使用nohup后台运行nohup/data/llama.cpp/build/bin/llama-server\-m/data/models/glm-4-9b-chat-1m-Q5_K_M.gguf\-t32\-c0\--host0.0.0.0\/data/llama.log21说明nohup忽略挂断信号终端关闭不影响进程 /data/llama.log 21将标准输出和错误输出重定向到日志文件放到后台执行5. 验证服务5.1 检查健康状态curlhttp://localhost:8080/health预期返回ok5.2 测试聊天接口curlhttp://localhost:8080/v1/chat/completions\-HContent-Type: application/json\-d{ model: glm-4-9b-chat-1m, messages: [{role: user, content: 你好请用一句话介绍自己}] }预期返回 JSON 格式的模型回复。5.3 查看实时日志tail-f/data/llama.log按Ctrl C退出日志查看不影响服务运行。6. 后台运行配置6.1 使用 systemd 服务推荐支持开机自启创建服务文件sudovi/etc/systemd/system/glm-server.service写入以下内容[Unit] DescriptionGLM-4-9B-Chat-1M API Server Afternetwork.target [Service] Typesimple WorkingDirectory/data/llama.cpp ExecStart/data/llama.cpp/build/bin/llama-server -m /data/models/glm-4-9b-chat-1m-Q5_K_M.gguf -t 32 -c 0 --host 0.0.0.0 Restartalways RestartSec10 Userroot [Install] WantedBymulti-user.target启动并设置开机自启sudosystemctl daemon-reloadsudosystemctl start glm-serversudosystemctlenableglm-server管理命令sudosystemctl status glm-server# 查看状态sudosystemctl stop glm-server# 停止服务sudosystemctl restart glm-server# 重启服务sudojournalctl-uglm-server-f# 查看实时日志6.2 使用 nohup备选# 启动nohup/data/llama.cpp/build/bin/llama-server-m/data/models/glm-4-9b-chat-1m-Q5_K_M.gguf-t32-c0--host0.0.0.0/data/llama.log21# 停止查找进程并杀掉psaux|grepllama-server|grep-vgrepkillPID7. Java 程序调用示例7.1 添加 Maven 依赖dependencygroupIdcom.squareup.okhttp3/groupIdartifactIdokhttp/artifactIdversion4.12.0/version/dependencydependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.15.2/version/dependency7.2 Java 调用代码importokhttp3.*;importcom.fasterxml.jackson.databind.ObjectMapper;importcom.fasterxml.jackson.databind.node.ObjectNode;importjava.io.IOException;publicclassLlamaClient{// 服务地址根据实际情况修改 IP 和端口privatestaticfinalStringBASE_URLhttp://你的服务器IP:8080;privatestaticfinalStringAPI_URLBASE_URL/v1/chat/completions;privatefinalOkHttpClientclientnewOkHttpClient();privatefinalObjectMappermappernewObjectMapper();publicStringchat(StringuserMessage)throwsIOException{// 1. 构建请求体OpenAI 兼容格式ObjectNodemessageNodemapper.createObjectNode();messageNode.put(role,user);messageNode.put(content,userMessage);ObjectNoderequestBodymapper.createObjectNode();requestBody.put(model,glm-4-9b-chat-1m);requestBody.set(messages,mapper.createArrayNode().add(messageNode));requestBody.put(stream,false);// 2. 创建 HTTP 请求无需 API KeyRequestrequestnewRequest.Builder().url(API_URL).post(RequestBody.create(mapper.writeValueAsString(requestBody),MediaType.parse(application/json; charsetutf-8))).build();// 3. 执行请求try(Responseresponseclient.newCall(request).execute()){if(!response.isSuccessful()){thrownewIOException(请求失败: response.code());}returnresponse.body().string();}}publicstaticvoidmain(String[]args)throwsIOException{LlamaClientclientnewLlamaClient();Stringreplyclient.chat(请用中文简单介绍一下李白。);System.out.println(reply);}}7.3 重要说明无需 API Keyllama.cpp默认不启用身份验证直接调用即可如需启用 API Key启动服务时加--api-key your-secret-key参数服务地址中的 IP 需替换为实际服务器 IP8. 常见问题排查8.1 下载模型卡住/超时现象hf download命令长时间无响应报Connection timed out解决方案exportHF_ENDPOINThttps://hf-mirror.com hf download bartowski/glm-4-9b-chat-1m-GGUF--includeglm-4-9b-chat-1m-Q5_K_M.gguf--local-dir ./8.2 make: 没有指明目标并且找不到 makefile原因llama.cpp已改用 CMake 构建解决方案cmake-Bbuild-DCMAKE_BUILD_TYPERelease cmake--buildbuild--configRelease-j488.3 找不到 server 可执行文件原因可执行文件名为llama-server解决方案/data/llama.cpp/build/bin/llama-server# 正确路径8.4 端口被占用现象启动时报Address already in use解决方案# 查看占用 8080 端口的进程netstat-tlnp|grep8080# 杀掉占用进程或换用其他端口./build/bin/llama-server...--port80818.5 服务启动慢原因6.8GB 模型文件加载需要时间正常等待时间1030 秒取决于磁盘 I/O 速度8.6 性能调优参数建议值说明-t线程数2836设为物理核心数的 60%~75%内存预留100%在 ESXi 中预留全部 112GB 内存量化级别Q5_K_M平衡性好内存充裕可换 Q8_09. 快速命令参考操作命令启动服务前台/data/llama.cpp/build/bin/llama-server -m /data/models/glm-4-9b-chat-1m-Q5_K_M.gguf -t 32 -c 0 --host 0.0.0.0启动服务后台nohup ... /data/llama.log 21 查看日志tail -f /data/llama.log健康检查curl http://localhost:8080/health测试接口curl http://localhost:8080/v1/chat/completions -H Content-Type: application/json -d {model:glm-4-9b-chat-1m,messages:[{role:user,content:你好}]}systemd 启动sudo systemctl start glm-serversystemd 状态sudo systemctl status glm-server10. 参考资料官方模型仓库zai-org/glm-4-9b-chat-1mllama.cpp 项目ggerganov/llama.cppGGUF 模型下载bartowski/glm-4-9b-chat-1m-GGUF国内镜像源hf-mirror.com文档版本1.0创建日期2026年7月11日适用系统华为 openEuler最新版本

相关新闻

2026/7/11 19:49:50

AI创意生成技术解析:提示词工程与人类主导的创作流程

这次我们来探讨一个在AI领域持续引发讨论的话题:AI的创造力本质。很多人认为AI能够独立产生创意,但实际上,当前的AI系统更多是高效执行指令的工具。这篇文章将从技术角度分析AI创意生成的原理,并通过实际案例展示AI如何依赖人类输…

2026/7/11 19:49:50

如何快速掌握MatAnyone视频抠像工具:面向新手的完整教程

如何快速掌握MatAnyone视频抠像工具:面向新手的完整教程 【免费下载链接】MatAnyone [CVPR 2025] MatAnyone: Stable Video Matting with Consistent Memory Propagation 项目地址: https://gitcode.com/gh_mirrors/ma/MatAnyone MatAnyone是一个革命性的视频…

2026/7/11 20:49:53

3 款虚拟串口方案对比:com0com vs VSPD vs FabulaTech,功能与兼容性实测

3 款虚拟串口方案深度评测:功能、兼容性与实战选型指南在工业自动化、嵌入式开发和物联网应用场景中,串口通信依然是设备间数据交互的基石。然而现代计算机普遍取消了物理串口接口,这使得虚拟串口技术成为开发者不可或缺的工具。本文将针对三…

2026/7/11 20:49:53

Python 生产者-消费者模式:在 RAG 文档处理 pipeline 中的并发设计

Python 生产者-消费者模式:在 RAG 文档处理 pipeline 中的并发设计 一、深度引言与场景痛点 RAG 系统的第一步永远是文档处理——把 PDF、Word、网页之类的东西变成向量化的文本块。这听起来是个简单的"读文件、切文本、生成向量"三步走,但当你…

2026/7/11 20:44:53

ADP5350与PIC18F46K20的智能电源管理方案

1. 项目背景与核心需求在嵌入式系统设计中,电源管理始终是决定产品可靠性和用户体验的关键因素。ADP5350作为ADI公司推出的高级电源管理集成电路(PMIC),配合Microchip的PIC18F46K20单片机,能够构建一套完整的智能电源解决方案。这套组合特别适…

2026/7/11 5:30:49

国内大模型选型与企业级落地实战指南

我不能提供任何关于访问境外网络信息的技术方案或变通方法。根据中国法律法规和网络管理要求,所有互联网服务必须遵守国家关于网络安全、数据安全和内容安全的规定。ChatGPT及其后续版本(如所谓“GPT-5”)是由境外机构研发的大语言模型&#…

2026/7/11 2:43:05

三步实战方案:高效获取智慧教育平台电子课本PDF的完整流程

三步实战方案:高效获取智慧教育平台电子课本PDF的完整流程 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项目…

2026/7/11 8:37:53

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…