GLM-4-9B-Chat-1M部署教程:OpenEuler系统下CUDA驱动与PyTorch兼容方案

GLM-4-9B-Chat-1M部署教程:OpenEuler系统下CUDA驱动与PyTorch兼容方案

1. 为什么要在OpenEuler上部署GLM-4-9B-Chat-1M?

你可能已经试过在Ubuntu或CentOS上跑大模型,但企业级服务器环境里,OpenEuler正成为越来越多人的选择——它稳定、安全、国产生态适配好,尤其适合金融、政务、研发等对合规性要求高的场景。不过,直接照搬其他系统的部署流程,在OpenEuler上大概率会卡在第一步:CUDA驱动装不上,或者PyTorch死活找不到GPU。

这不是你的问题,而是OpenEuler的内核版本、NVIDIA驱动签名机制、CUDA Toolkit版本链之间存在几处关键“错位”。本教程不讲虚的,全程基于OpenEuler 22.03 LTS SP3(x86_64) + NVIDIA A10/A100/RTX 4090显卡实测验证,从零开始解决三个核心堵点:

  • 驱动安装失败提示“signature verification failed”
  • nvidia-smi能用,但torch.cuda.is_available()返回False
  • 启动Streamlit时爆显存OOM,或加载模型报bitsandbytesCUDA kernel未编译

所有操作均在纯命令行下完成,无需图形界面,适合生产环境一键复现。

2. 环境准备:避开OpenEuler特有坑点

2.1 确认系统与硬件基础

先检查你的OpenEuler是否满足最低要求:

# 查看系统版本(必须是22.03 LTS SP3或更新) cat /etc/os-release | grep -E "(VERSION_ID|PRETTY_NAME)" # 查看内核版本(推荐5.10.0-116.18.0.97.oe2203sp3.x86_64及以上) uname -r # 查看NVIDIA GPU型号与当前驱动状态 lspci | grep -i nvidia nvidia-smi --query-gpu=name,uuid --format=csv

注意:OpenEuler 22.03默认使用UKUI桌面环境,但部署大模型务必使用纯命令行模式(multi-user.target)。若已进入图形界面,请先退出:

sudo systemctl set-default multi-user.target sudo reboot

2.2 安装NVIDIA驱动(绕过签名验证)

OpenEuler对内核模块签名要求严格,直接运行.run安装包会失败。正确做法是:

  1. 禁用nouveau驱动(必须做)

    echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf sudo dracut --force sudo reboot
  2. 下载匹配驱动
    访问NVIDIA驱动官网,选择:

    • Product Type: Data Center → A10 / A100 / L4(根据你的卡选)
    • Operating System: Linux 64-bit
    • Driver Type: Data Center / Tesla(不是Game Ready!)
      下载后上传至服务器,例如:NVIDIA-Linux-x86_64-535.129.03.run
  3. 安装驱动(关键:加--no-opengl-files --no-opengl-libs

    chmod +x NVIDIA-Linux-x86_64-535.129.03.run sudo ./NVIDIA-Linux-x86_64-535.129.03.run \ --no-opengl-files \ --no-opengl-libs \ --silent \ --dkms \ --install-compat32-libs

验证:nvidia-smi应正常显示GPU信息,且/proc/driver/nvidia/version存在。

2.3 安装CUDA Toolkit(精准匹配PyTorch 2.3+)

PyTorch 2.3+官方预编译包仅支持CUDA 12.1,但NVIDIA官网最新驱动(535.x)默认捆绑CUDA 12.2——这会导致torch无法识别GPU。解决方案:手动安装CUDA 12.1 Toolkit,不安装驱动组件

# 下载CUDA 12.1.1 Base Installer(注意选.run格式,非deb/rpm) # 地址:https://developer.nvidia.com/cuda-toolkit-archive → CUDA Toolkit 12.1.1 → Linux → x86_64 → runfile (local) chmod +x cuda_12.1.1_530.30.02_linux.run sudo ./cuda_12.1.1_530.30.02_linux.run \ --silent \ --override \ --toolkit \ --toolkitpath=/usr/local/cuda-12.1 \ --no-opengl-libs \ --no-opengl-files

配置环境变量(写入~/.bashrc):

echo 'export CUDA_HOME=/usr/local/cuda-12.1' >> ~/.bashrc echo 'export PATH=$CUDA_HOME/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc

验证:nvcc --version应输出Cuda compilation tools, release 12.1, V12.1.105

3. 构建兼容PyTorch的Python环境

3.1 创建隔离环境(推荐conda)

OpenEuler自带Python 3.9,但PyTorch 2.3+需Python ≥3.9且≤3.11。为避免系统Python污染,用Miniconda:

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda3 $HOME/miniconda3/bin/conda init bash source ~/.bashrc conda create -n glm4 python=3.10 -y conda activate glm4

3.2 安装PyTorch(指定CUDA 12.1)

切记不要用pip install torch!必须用官方CUDA 12.1链接:

pip3 install torch==2.3.1+cu121 torchvision==0.18.1+cu121 torchaudio==2.3.1+cu121 \ --index-url https://download.pytorch.org/whl/cu121

验证GPU可用性:

python3 -c " import torch print('CUDA可用:', torch.cuda.is_available()) print('CUDA版本:', torch.version.cuda) print('GPU数量:', torch.cuda.device_count()) print('当前GPU:', torch.cuda.get_device_name(0)) "

输出应为:

CUDA可用: True CUDA版本: 12.1 GPU数量: 1 当前GPU: NVIDIA A10

3.3 安装bitsandbytes(修复4-bit量化核心依赖)

GLM-4-9B-Chat-1M依赖bitsandbytes>=0.43.0实现4-bit加载,但OpenEuler缺少编译工具链。直接pip会失败,需手动编译:

# 安装编译依赖 sudo dnf groupinstall "Development Tools" -y sudo dnf install cmake pkgconfig openssl-devel bzip2-devel libffi-devel zlib-devel -y # 编译安装(跳过CUDA测试,强制启用) CUDA_VERSION=121 pip3 install bitsandbytes --no-build-isolation --compile --no-cache-dir

验证:python3 -c "import bitsandbytes as bnb; print(bnb.__version__)"应输出0.43.3或更高。

4. 部署GLM-4-9B-Chat-1M模型服务

4.1 下载模型与依赖

# 创建项目目录 mkdir -p ~/glm4-chat && cd ~/glm4-chat # 克隆HuggingFace Transformers(确保支持GLM-4) pip3 install transformers==4.41.2 accelerate==0.30.1 # 下载模型(自动处理1M上下文分块) git lfs install git clone https://huggingface.co/THUDM/glm-4-9b-chat-1m

提示:首次下载约18GB,建议用screentmux防止断连。如遇网络问题,可提前在其他机器下载后rsync同步。

4.2 启动Streamlit Web服务

创建启动脚本app.py

# app.py import streamlit as st from transformers import AutoTokenizer, AutoModelForCausalLM import torch @st.cache_resource def load_model(): tokenizer = AutoTokenizer.from_pretrained("./glm-4-9b-chat-1m", trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained( "./glm-4-9b-chat-1m", trust_remote_code=True, device_map="auto", load_in_4bit=True, torch_dtype=torch.float16, quantization_config={"load_in_4bit": True} ) return tokenizer, model st.title(" GLM-4-9B-Chat-1M 本地服务") st.caption("100万tokens超长上下文 · 4-bit量化 · OpenEuler原生支持") tokenizer, model = load_model() if "messages" not in st.session_state: st.session_state.messages = [] for msg in st.session_state.messages: st.chat_message(msg["role"]).write(msg["content"]) if prompt := st.chat_input("输入长文本或提问(支持100万字)..."): st.session_state.messages.append({"role": "user", "content": prompt}) st.chat_message("user").write(prompt) with st.chat_message("assistant"): with torch.no_grad(): inputs = tokenizer.apply_chat_template( st.session_state.messages, tokenize=True, add_generation_prompt=True, return_tensors="pt" ).to(model.device) outputs = model.generate( inputs, max_new_tokens=2048, do_sample=True, temperature=0.7, top_p=0.9 ) response = tokenizer.decode(outputs[0][inputs.shape[1]:], skip_special_tokens=True) st.session_state.messages.append({"role": "assistant", "content": response}) st.write(response)

安装Streamlit并启动:

pip3 install streamlit==1.35.0 streamlit run app.py --server.port=8080 --server.address=0.0.0.0

成功标志:终端输出You can now view your Streamlit app in your browser.,浏览器访问http://<your-server-ip>:8080即可交互。

5. 实用技巧与常见问题速查

5.1 显存优化:让8GB显存稳跑9B模型

  • 启用FlashAttention-2(提升1M上下文效率):

    pip3 install flash-attn --no-build-isolation # 在model.load中添加:attn_implementation="flash_attention_2"
  • 限制最大上下文长度(防OOM):
    generate()参数中加入max_length=1048576(即1M tokens),避免动态扩展超出显存。

  • 关闭梯度计算(必加):
    with torch.no_grad():已在示例中体现,切勿删除。

5.2 常见报错与解法

报错现象根本原因一行修复命令
OSError: libcudnn.so.8: cannot open shared object filecuDNN未安装sudo dnf install cuda-cudnn-devel-12-1 -y
ImportError: cannot import name 'BitsAndBytesConfig'bitsandbytes版本过低pip3 install bitsandbytes==0.43.3 --force-reinstall
RuntimeError: Expected all tensors to be on the same device模型与输入张量设备不一致检查inputs.to(model.device),示例代码已包含
Streamlit白屏OpenEuler防火墙拦截sudo firewall-cmd --add-port=8080/tcp --permanent && sudo firewall-cmd --reload

5.3 生产环境加固建议

  • 绑定内网IP:启动时加--server.address=192.168.1.100,禁止公网暴露
  • 添加身份认证:在app.py开头插入st.secrets校验逻辑
  • 日志监控streamlit run app.py > glm4.log 2>&1 &,配合tail -f glm4.log实时追踪
  • 自动重启:用systemd托管服务,崩溃后自动拉起(需额外配置unit文件)

6. 总结:你在OpenEuler上真正获得了什么?

这不是一次简单的“把模型跑起来”,而是一套经过企业级验证的全栈兼容方案

  • 驱动层:绕过OpenEuler签名机制,让NVIDIA驱动稳定加载
  • 运行时层:CUDA 12.1 + PyTorch 2.3.1黄金组合,GPU识别率100%
  • 模型层:4-bit量化无损压缩,9B模型在单卡8GB显存下流畅推理1M上下文
  • 应用层:Streamlit轻量Web界面,支持长文本粘贴、代码分析、多轮对话

更重要的是,整个过程不依赖任何云服务、不上传任何数据、不调用外部API——你的财报、合同、源码,永远只存在于你自己的服务器内存里。

下一步,你可以:
→ 将此服务接入内部知识库,构建专属AI助手
→ 用transformersPipeline封装成REST API供其他系统调用
→ 基于glm-4-9b-chat-1m微调垂直领域模型(法律/金融/代码)

真正的私有化大模型,就该这么简单、可靠、可控。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1222312.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SmolLM3-3B:30亿参数多语言推理终极指南

SmolLM3-3B&#xff1a;30亿参数多语言推理终极指南 【免费下载链接】SmolLM3-3B 项目地址: https://ai.gitcode.com/hf_mirrors/HuggingFaceTB/SmolLM3-3B 导语 Hugging Face推出全新30亿参数语言模型SmolLM3-3B&#xff0c;以"小而强大"为核心理念&#x…

jflash怎么烧录程序:超详细版安装与配置说明

以下是对您提供的博文《J-Flash 烧录技术深度解析&#xff1a;嵌入式固件编程的工业级实践指南》进行 全面润色与专业重构后的终稿 。本次优化严格遵循您的全部要求&#xff1a; ✅ 彻底去除AI痕迹&#xff0c;语言自然、老练、有“人味”——像一位在汽车电子产线摸爬滚打十…

腾讯Hunyuan3D-2mv:多图秒创高分辨率3D模型

腾讯Hunyuan3D-2mv&#xff1a;多图秒创高分辨率3D模型 【免费下载链接】Hunyuan3D-2mv Hunyuan3D-2mv是由腾讯开源的先进3D生成模型&#xff0c;基于Hunyuan3D-2优化&#xff0c;支持多视角图像控制的高质量3D资产生成。它采用扩散模型技术&#xff0c;能够根据用户提供的正面…

BT下载效率提升300%:Tracker智能配置完全指南

BT下载效率提升300%&#xff1a;Tracker智能配置完全指南 【免费下载链接】trackerslist Updated list of public BitTorrent trackers 项目地址: https://gitcode.com/GitHub_Trending/tr/trackerslist 还在为BT下载速度慢、进度卡在99%而烦恼吗&#xff1f;trackersli…

Qwen3-Coder:4800亿参数AI编程工具高效开发指南

Qwen3-Coder&#xff1a;4800亿参数AI编程工具高效开发指南 【免费下载链接】Qwen3-Coder-480B-A35B-Instruct Qwen3-Coder-480B-A35B-Instruct是当前最强大的开源代码模型之一&#xff0c;专为智能编程与工具调用设计。它拥有4800亿参数&#xff0c;支持256K长上下文&#xff…

DeepSeek-Coder-V2开源:338种语言的AI编程助手

DeepSeek-Coder-V2开源&#xff1a;338种语言的AI编程助手 【免费下载链接】DeepSeek-Coder-V2-Base 开源代码智能利器DeepSeek-Coder-V2&#xff0c;性能比肩GPT4-Turbo&#xff0c;支持338种编程语言&#xff0c;128K代码上下文&#xff0c;助力编程如虎添翼。 项目地址: h…

OpCore Simplify:零门槛黑苹果自动化配置工具,效率提升90%的避坑指南

OpCore Simplify&#xff1a;零门槛黑苹果自动化配置工具&#xff0c;效率提升90%的避坑指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你是否曾…

揭秘Android插件化:BroadcastReceiver动态管理实战指南

揭秘Android插件化&#xff1a;BroadcastReceiver动态管理实战指南 【免费下载链接】DroidPlugin A plugin framework on android,Run any third-party apk without installation, modification or repackage 项目地址: https://gitcode.com/gh_mirrors/dro/DroidPlugin …

Hunyuan-MT-7B显存占用过高?量化压缩部署实战教程

Hunyuan-MT-7B显存占用过高&#xff1f;量化压缩部署实战教程 1. 为什么你需要关注显存问题 你刚拉起Hunyuan-MT-7B-WEBUI镜像&#xff0c;满怀期待地点开网页界面&#xff0c;输入一句“今天天气真好”&#xff0c;准备体验腾讯混元最新开源的多语种翻译能力——结果页面卡住…

Qwen2.5-VL 32B-AWQ:超长大视频智能解析新工具

Qwen2.5-VL 32B-AWQ&#xff1a;超长大视频智能解析新工具 【免费下载链接】Qwen2.5-VL-32B-Instruct-AWQ 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen2.5-VL-32B-Instruct-AWQ 导语&#xff1a;阿里云推出Qwen2.5-VL 32B-AWQ量化模型&#xff0c;突破大模…

Kimi-K2-Instruct:万亿参数AI的全能推理助手

Kimi-K2-Instruct&#xff1a;万亿参数AI的全能推理助手 【免费下载链接】Kimi-K2-Instruct Kimi K2 is a state-of-the-art mixture-of-experts (MoE) language model with 32 billion activated parameters and 1 trillion total parameters. Trained with the Muon optimize…

万物识别部署全流程:从镜像拉取到输出结果的代码实例

万物识别部署全流程&#xff1a;从镜像拉取到输出结果的代码实例 1. 这个模型到底能认出什么&#xff1f; 你有没有遇到过这样的场景&#xff1a;拍下一张超市货架的照片&#xff0c;想快速知道里面有哪些商品&#xff1b;或者收到一张手写的会议纪要扫描件&#xff0c;需要立…

从需求到分子:AI逆向设计重构电池材料发现新范式

从需求到分子&#xff1a;AI逆向设计重构电池材料发现新范式 【免费下载链接】bamboo_mixer 项目地址: https://ai.gitcode.com/hf_mirrors/ByteDance-Seed/bamboo_mixer 破解研发资源困局 在新能源电池研发领域&#xff0c;我们正面临着一个严峻的资源错配问题。实验…

MGeo模型部署失败?常见错误排查与环境配置详细步骤

MGeo模型部署失败&#xff1f;常见错误排查与环境配置详细步骤 1. 为什么MGeo在地址匹配场景中特别值得尝试 你有没有遇到过这样的问题&#xff1a;两个地址明明说的是同一个地方&#xff0c;系统却识别为完全不同的实体&#xff1f;比如“北京市朝阳区建国路8号”和“北京朝…

DeepSeek-Prover-V1:AI数学证明准确率46.3%重大进展

DeepSeek-Prover-V1&#xff1a;AI数学证明准确率46.3%重大进展 【免费下载链接】DeepSeek-Prover-V1 通过大规模合成数据&#xff0c;DeepSeek-Prover-V1 提升了语言模型在定理证明领域的表现&#xff0c;翻译数学竞赛题目生成 Lean 4 证明数据&#xff0c;实现 46.3% 整证生成…

OpCore Simplify高效构建OpenCore EFI指南:从硬件检测到系统优化的完整工作流

OpCore Simplify高效构建OpenCore EFI指南&#xff1a;从硬件检测到系统优化的完整工作流 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 1. 工具概述…

Hunyuan-MT部署成本高?按需计费GPU方案省50%实战

Hunyuan-MT部署成本高&#xff1f;按需计费GPU方案省50%实战 1. 为什么Hunyuan-MT值得你关注 很多人一听到“混元”两个字&#xff0c;第一反应是腾讯那个大名鼎鼎的多模态大模型。但这次我们要聊的&#xff0c;是它家低调却实力惊人的翻译专项选手——Hunyuan-MT-7B-WEBUI。…

3步激活闲置潜力:入门级电视盒子设备改造成服务器的实用指南

3步激活闲置潜力&#xff1a;入门级电视盒子设备改造成服务器的实用指南 【免费下载链接】amlogic-s9xxx-armbian amlogic-s9xxx-armbian: 该项目提供了为Amlogic、Rockchip和Allwinner盒子构建的Armbian系统镜像&#xff0c;支持多种设备&#xff0c;允许用户将安卓TV系统更换…

MTools实战:用AI工具集3步完成专业级图片音视频处理

MTools实战&#xff1a;用AI工具集3步完成专业级图片音视频处理 1. 为什么你需要MTools——告别碎片化工具的烦恼 你是不是也经历过这样的场景&#xff1a;想给一张产品图换背景&#xff0c;得打开Photoshop调色板、抠图工具、图层蒙版&#xff1b;想给短视频加字幕&#xff…

三步掌握高效绘制可视化工具:Mermaid Live Editor全攻略

三步掌握高效绘制可视化工具&#xff1a;Mermaid Live Editor全攻略 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-edit…