Max395(ubuntu24.04)AMD显卡GLM-4.7-UD-IQ1-M量化模型部署手册

同事的设备玩两天,想试试看能不能复刻GLM-4.7-UD-IQ1-M量化模型部署,以下是实验过程:

网址:https://huggingface.co/unsloth/GLM-4.7-GGUF/tree/main/UD-IQ1_M

先搞明白如下:

1.三个分卷GGUF(101GB)是超大模型文件的分卷拆分版本

拆分的目的: GLM-4.7模型的UD-IQ1_M量化版总大小高达101GB,如果做成一个单独的 GGUF 文件,会带来两个严重问题,一是传输风险高,网络稍有波动就会下载失败,且无法精准断点续传(只能从头重新下);二是存储/操作不便,单个 101GB 文件对文件系统、传输工具要求更高,容易出现如文件损坏、无法复制等问题;将其拆分成 3 个大小均匀的分卷文件,方便下载、存储和分享。

分卷文件的核心性质:缺一不可 ,这 3 个文件是完整模型的分片,必须全部下载完成,且放在同一个目录下 ,才能被如Cherry Studio等工具识别和使用(单独一个或缺少一个,都无法启动模型);无需手动合并 ,你不用像解压分卷压缩包那样手动合并它们,Cherry Studio、Ollama 等支持 GGUF 格式的工具,会自动识别这是分卷文件,加载时自动整合为完整模型,无需你做额外操作;格式不变:它们依然是GGUF量化格式,只是拆分了存储,功能和单个GGUF 文件完全一致,只是体积更大,对应的回复质量、细节丰富度更高(但对硬件要求也更高)。

文件名含义:00001-of-00003就是"第1个,共3个"的意思,用于标记分卷序号,确保工具能正确识别整合顺序。

2.101GB的UD-IQ1_M量化版是高保真量化、近无损量化,体积大、内存占用高(约 80-90GB),但回复质量更接近原版未量化模型,细节更丰富,适合对回复质量要求高的场景,如写长文、复杂推理等。

3.git clone不能直接完整下载,其先天限制是无法直接克隆大文件,git clone是Git工具的默认命令,它的核心功能是克隆普通小文件组成的代码仓,对大文件而言,Git默认不支持直接克隆。hugging face的大文件托管方式依赖特殊工具(即Git LFS/Git Xet),这俩工具是Git的大文件扩展插件,专门用于处理超大文件。直接执行git clone命令时,因未安装并启用这俩插件,Git只会克隆到仓库的目录结构和小文件(如 README.md、分卷文件清单等),会自动跳过托管在Git LFS/Git Xet上的分卷GGUF文件,最终得到的只是一个空架子仓库,没有核心的模型权重文件。

4.这里通过浏览器直接下载并设置权限

sudo chmod -R 755 /home/lisinan/Downloads/glm4/models/UD-IQ1_M

ls -ld /home/lisinan/Downloads/glm4/models/UD-IQ1_M

llama.cpp是一个轻量级、跨平台的开源项目,专门用于运行 GGUF 格式的大语言模型,无需复杂的深度学习框架(如 PyTorch/TensorFlow)

安装编译llama.cpp需要的工具

复制代码
sudo apt update -y && sudo apt install -y git gcc g++ make pkg-config libopenblas-dev cmake cmake-curses-gui

克隆 llama.cpp 官方仓库

复制代码
# 进入用户主目录(方便查找,后续可移动)
cd ~/

# 克隆llama.cpp官方仓库(获取源码)
git clone https://github.com/ggerganov/llama.cpp.git

root用户下配置 Rocm 环境变量

复制代码
# 编辑环境变量配置文件
vim /etc/profile

# 在文件末尾添加以下两行
export PATH=/opt/rocm/bin:$PATH
export LD_LIBRARY_PATH=/opt/rocm/lib:$LD_LIBRARY_PATH

# 保存并退出vim(按Esc,输入:wq,回车)

# 加载环境变量(立即生效,无需重启系统)
source /etc/profile

验证Rocm 环境变量是否生效

复制代码
# 查看Rocm版本(显示版本即生效)
rocm-smi

# 查看Rocm库路径(显示路径即生效)
echo $LD_LIBRARY_PATH

编译 llama.cpp(生成可执行文件)

cd ~/llama.cpp

复制代码
# 进入llama.cpp/build目录,清理旧编译文件
cd /root/llama.cpp/build
rm -rf *

# 重新执行CMake配置(开启ROCm加速,关闭CURL)
cmake .. -DLLAMA_HIPBLAS=ON -DLLAMA_CURL=OFF

# 并行编译(16核CPU,提升速度)
cmake --build . -j 16

运行llama-server

复制代码
# 进入bin目录
cd /root/llama.cpp/build/bin

# 复刻实验(更换8888端口)
./llama-server \
-m /home/lisinan/Downloads/glm4/models/UD-IQ1_M/GLM-4.7-UD-IQ1_M-00001-of-00003.gguf \
--host 0.0.0.0 \
--port 8888 \
--ctx-size 30720 \
--n-gpu-layers -1 \
--ubatch-size 2048 \
--flash-attn on \
--no-mmap \
--jinja \
--temp 1.0 \
--top-p 0.95

进入了模型核心加载流程,报错内存不足,硬件资源瓶颈。

临时启用超大交换分区(虚拟内存)先跑起来, 通过创建超大交换分区(即:将硬盘空间虚拟为内存),补充物理内存不足。但不推荐

创建 150GB 交换文件(补充内存,适配101GB模型)

su - root #切换到 root 用户(创建交换文件需要 root 权限)

fallocate -l 150G /home/lisinan/swapfile #创建 150GB 交换文件

chmod 600 /home/lisinan/swapfile #设置交换文件权限(仅 root 可读写)

格式化交换文件,启用交换分区

mkswap /home/lisinan/swapfile

swapon /home/lisinan/swapfile

验证交换分区是否生效

swapon --show

2、普通用户下加载模型

su - lisinan # 切换到普通用户,我这里是lisinan

cd ~/llama.cpp/build/bin # 进入 bin 目录

加载大模型,利用交换分区补充内存

./llama-cli -m /home/lisinan/Downloads/glm4/models/UD-IQ1_M/GLM-4.7-UD-IQ1_M-00001-of-00003.gguf -n 1024 -t 16 -c 1024

注:

1.基于上述硬件情况部GLM-4.7-UD-IQ1-M,速度巨慢无比,加载少说有30分钟以上,推理也巨慢无比,漫长的等待,且耗损 SSD 寿命,临时可用,长期不建议。

2.使用完成后,执行以下命令关闭并删除交换文件

su - root

swapoff /home/lisinan/swapfile

rm -f /home/lisinan/swapfile

以上是基于Max395(ubuntu24.04)AMD显卡复刻GLM-4.7-UD-IQ1-M量化模型部署实验全过程。

相关推荐
小北方城市网2 小时前
微服务接口设计实战指南:高可用、易维护的接口设计原则与规范
java·大数据·运维·python·微服务·fastapi·数据库架构
武子康3 小时前
大数据-210 如何在Scikit-Learn中实现逻辑回归及正则化详解(L1与L2)
大数据·后端·机器学习
xiaobaishuoAI3 小时前
全链路性能优化实战指南:从瓶颈定位到极致优化
大数据·人工智能·科技·百度·geo
乾元3 小时前
如何把 CCIE / HCIE 的实验案例改造成 AI 驱动的工程项目——从“实验室能力”到“可交付系统”的完整迁移路径
大数据·运维·网络·人工智能·深度学习·安全·机器学习
xiaobaishuoAI3 小时前
后端工程化实战指南:从规范到自动化,打造高效协作体系
java·大数据·运维·人工智能·maven·devops·geo
俊哥大数据3 小时前
【实战项目5】基于Flink新闻热搜大数据实时分析项目
大数据·flink
俊哥大数据3 小时前
【实战项目3】基于Flink广告投放业务领域大数据实时分析项目
大数据·flink
学好statistics和DS3 小时前
Git 同步冲突
大数据·git·elasticsearch
谷哥的小弟3 小时前
Brave Search MCP服务器安装以及客户端连接配置
搜索引擎·大模型·spring ai·mcp·brave search