GLM-4.7 是您的全新编程搭档,旨在在真实开发流程中表现更佳。与 GLM-4.6 相比,它在多语言与代理式编程、基于终端的任务以及工具使用方面有明显提升,并在 SWE-bench、SWE-bench Multilingual 和 Terminal Bench 2.0 上取得了出色成绩。它还支持“先思考后行动”,在现代代理框架中应对复杂任务更可靠。
在本教程中,我们将直接开始搭建 Runpod 环境、安装所有必要依赖,并克隆带有完整 CUDA 支持的 llama.cpp 。随后我们将从 Hugging Face 下载 GLM-4.7 的 2-bit 模型 ,分别以 CLI 和服务器模式运行,并最终使用 OpenAI SDK 测试正在运行的服务。
您也可以查看我们关于本地运行 GLM 4.7 Flash 的指南。
GLM-4.7 系统要求与硬件前置条件
在本地运行 GLM-4.7 之前,请确保您的系统满足以下要求。
NVIDIA GPU 与驱动
要获得可用的性能,必须配备 NVIDIA GPU。
安装最新的 NVIDIA 驱动,并通过以下命令验证安装:
nvidia-smi技术支持
如果该命令可以运行并显示您的 GPU,则说明驱动安装正确。
CUDA 支持
运行 GLM-4.7 进行 GPU 加速需要 CUDA。如果您从源码构建 llama.cpp,必须在构建时正确检测到 CUDA。
使用预编译的启用 CUDA 的二进制文件时,系统中必须已安装可用的 CUDA 运行时。若无 CUDA 支持,GLM-4.7 将回退到 CPU 执行,这在实际使用中会慢到不可接受。
内存要求(非常重要)
GLM-4.7 体量极大,即便量化后也是如此。模型能否运行以及运行速度如何,取决于您“总内存”,而不仅仅是 GPU 显存。
请按 GPU 显存 + 系统内存的总和 来思考。
2-bit 动态量化(UD-Q2_K_XL)
约占用 135 GB 磁盘空间
可在单张 24 GB 显存的 GPU 上运行,需搭配约 128 GB 系统内存
依赖将 MoE 层卸载到系统内存
在质量与可行性之间取得良好平衡
1-bit 量化(UD-TQ1)
比 2-bit 更小更快
可原生配合 Ollama 使用
内存占用最低
质量有明显下降
4-bit 量化
至少需要一张 40 GB 显存的 GPU
MoE 层仍需卸载至系统内存
约 165 GB 系统内存时,预计能达到约每秒 5 个 token
建议显存 + 系统内存合计 205 GB,以获得稳定性能和更长上下文
要点总结
对于 GLM-4.7,仅有 H100 GPU 本身还不够。稳定而快速的推理取决于总可用内存,即 GPU 显存与系统内存的组合。
在 RunPod 上搭建 GPU 环境
本教程将使用 RunPod ,因为其上手快且提供多种按需可用的 GPU。
先创建一个新 pod。选择 最新的 PyTorch 镜像 ,然后点击模板设置中的 Edit(编辑) 。将 卷磁盘大小提高到 200 GB ,因为 GLM-4.7 模型非常大,即便是 2-bit 量化形式。
接着,开放所需端口。保留 JupyterLab 的默认 8080 端口 ,并新增一个后续用于 llama.cpp 服务器 的端口。
配置完成后,您的价格摘要和 pod 摘要应清晰显示默认模板已被更大的卷大小覆盖。
pod 启动后,点击 Jupyter Notebook 链接以启动 JupyterLab。创建一个新笔记本并运行以下设置代码。
import os
WORKDIR = "/workspace"
LLAMA_DIR = f" { WORKDIR} /llama.cpp"
MODEL_DIR = f" { WORKDIR} /models/unsloth/GLM-4.7-GGUF"
os. makedirs( MODEL_DIR, exist_ok= True )
os. environ[ "HF_HOME" ] = f" { WORKDIR} /.cache/huggingface"
os. environ[ "HUGGINGFACE_HUB_CACHE" ] = f" { WORKDIR} /.cache/huggingface/hub"
os. environ[ "HF_HUB_CACHE" ] = f" { WORKDIR} /.cache/huggingface/hub"
os. environ[ "HF_HUB_DISABLE_SYMLINKS_WARNING" ] = "1"
os. environ[ "HF_XET_HIGH_PERFORMANCE" ] = "1"
print ( "WORKDIR:" , WORKDIR)
print ( "LLAMA_DIR:" , LLAMA_DIR)
print ( "MODEL_DIR:" , MODEL_DIR)
print ( "HF_HOME:" , os. environ[ "HF_HOME" ] )
print ( "HF_HUB_CACHE:" , os. environ[ "HF_HUB_CACHE" ] )
print ( "HF_XET_HIGH_PERFORMANCE:" , os. environ[ "HF_XET_HIGH_PERFORMANCE" ] ) 技术支持
此代码将:
将 /workspace 设为 RunPod 上的主工作目录。
定义 llama.cpp 的克隆与构建位置。
定义 GLM-4.7 GGUF 模型文件的存放位置。
如模型目录不存在则创建。
将 Hugging Face 缓存移动到 /workspace,以加快下载并提供更多磁盘空间。
在容器环境中禁用 Hugging Face 的符号链接警告。
启用 Hugging Face 的 Xet 高性能后端以加速大文件下载。
打印所有路径与环境变量以验证设置。
您应看到类似如下的输出:
WORKDIR: /workspace
LLAMA_DIR: /workspace/llama.cpp
MODEL_DIR: /workspace/models/unsloth/GLM-4.7-GGUF
HF_HOME: /workspace/.cache/huggingface
HF_HUB_CACHE: /workspace/.cache/huggingface/hub
HF_XET_HIGH_PERFORMANCE: 1 技术支持
接下来,验证 NVIDIA 驱动是否安装正确以及 GPU 是否可见。
! nvidia-smi技术支持
您应能看到一块 80 GB 显存的 H100 GPU,这表明环境已就绪并可进行 GPU 加速。
最后,安装从源码构建 llama.cpp 所需的系统依赖。
%%capture
! apt-get update -y
! apt-get install -y build-essential cmake curl libcurl4-openssl-dev git pciutils技术支持
注意: 我们使用了 %%capture 在 Jupyter 中隐藏冗长的安装日志,同时仍然执行命令。
安装带 CUDA 支持的 llama.cpp
本步骤中,我们将从源码克隆并构建启用 CUDA 的 llama.cpp ,以确保最佳 GPU 性能。
首先,将官方仓库克隆到工作区。
!git clone https://github.com/ggml-org/llama.cpp /workspace/llama.cpp技术支持
接着,配置构建以启用 CUDA,并禁用共享库。
%%capture
! cmake /workspace/llama.cpp -B /workspace/llama.cpp/build -DBUILD_SHARED_LIBS = OFF -DGGML_CUDA = ON -DLLAMA_CURL = ON技术支持
随后以 Release 模式构建所需的二进制文件。
%%capture
! cmake --build /workspace/llama.cpp/build --config Release -j --clean-first --target llama-cli llama-server技术支持
构建完成后,将二进制文件复制到主目录并验证输出。
%%capture
! cp /workspace/llama.cpp/build/bin/llama-* /workspace/llama.cpp/
! ls -la /workspace/llama.cpp | sed -n '1,60p' 技术支持
至此,llama.cpp 已具备完整 CUDA 支持,可通过 CLI 或服务器运行 GLM-4.7。
使用 Xet 支持下载 GLM 4.7 模型
本步骤将安装带有 Xet 和 HF Transfer 支持的 Hugging Face 库,以显著加速大模型下载。与 Git LFS 相比,Xet 提供更快的性能,这对于高效下载 GLM-4.7 至关重要。
首先,安装所需的 Hugging Face 依赖并启用 HF Transfer。
! pip -q install -U "huggingface_hub[hf_xet]" hf-xet
! pip -q install -U hf_transfer技术支持
通过设置环境变量启用 HF Transfer。
import os
os. environ[ "HF_HUB_ENABLE_HF_TRANSFER" ] = "1" 技术支持
安装这些软件包后,请重启 Jupyter 内核以确保新设置生效。
接着,使用 snapshot_download 从 Hugging Face 下载 GLM-4.7 GGUF 模型。我们将下载限制在推荐的 动态 2-bit 量化 ,以降低存储与内存占用。
from huggingface_hub import snapshot_download
snapshot_download(
repo_id= "unsloth/GLM-4.7-GGUF" ,
local_dir= MODEL_DIR,
allow_patterns= [ "*UD-Q2_K_XL*" ] ,
)
print ( "Downloaded into:" , MODEL_DIR) 技术支持
启用 Xet 与 HF Transfer 后,下载速度可达 每秒 726 MB ,随后可提升至 每秒 1.2 GB 。若不进行此设置,下载速度通常约为 每秒 50 MB ,下载此规模的模型可能需要接近整整一天。
下载完成后,GLM-4.7 模型将保存在工作区的模型目录中,可通过 llama.cpp 进行推理。
以交互模式运行 GLM 4.7
我们现在将使用 llama.cpp CLI 以交互模式运行 GLM-4.7。
先在 JupyterLab 内打开一个终端。点击 加号(+) 按钮,下拉并选择 Terminal(终端) 。这将在 RunPod 环境中打开一个新的 shell 会话。
在终端中运行以下命令以启动交互式 CLI。
/workspace/llama.cpp/llama-cli \
--model "/workspace/models/unsloth/GLM-4.7-GGUF/UD-Q2_K_XL/GLM-4.7-UD-Q2_K_XL-00001-of-00003.gguf" \
--jinja \
--threads -1 \
--ctx-size 16384 \
--temp 1.0 \
--top-p 0.95 \
--seed 3407 \
--fit on技术支持
该命令会加载 GLM-4.7 的动态 2-bit 模型并启动交互式对话。 --fit on 标志允许 llama.cpp 尽可能多地将模型层与 KV 缓存块自动卸载到 GPU,同时将剩余部分安全地溢出至系统内存。这样无需手动调节层数,并有助于避免内存不足错误。
模型加载完成后,您会看到 llama.cpp 的横幅以及交互式提示符。此时您可以输入消息(例如简单问候),模型将开始生成回复。
在每个回复的末尾,llama.cpp 会打印性能统计信息,包括 token 生成速度。此阶段模型约为 每秒 2.2 个 token ,这表明模型在单张 H100 GPU 上运行正常。
接下来我们将应用更多优化,以提升吞吐量并逐步接近 每秒 20 个 token 的目标。
运行 GLM 4.7 推理服务器
本步骤中,我们使用 llama.cpp 将 GLM-4.7 作为持久化推理服务器运行,并针对单张 H100 PCIe GPU 进行了优化。这些设置旨在提升吞吐、稳定性与内存效率。
为获得稳定高效的性能,我们采用以下优化:
GPU 卸载(--fit on): 尽可能将模型与 KV 缓存卸载至 GPU 内存,剩余部分安全溢出至系统内存。避免手动调层并防止内存不足错误。
Flash Attention(--flash-attn auto): 在 H100 等受支持 GPU 上启用优化的注意力内核,显著提升 token 生成速度并降低内存开销。
上下文大小调优(--ctx-size 8192): 大上下文窗口会随时间拖慢解码。将 16k 降至 8k,可为多数负载带来更稳定的 token 吞吐。
批处理(--batch-size、--ubatch-size):通过更大、更高效的批量处理提升 GPU 利用率与整体吞吐。
CPU 线程控制(--threads 32): 防止 CPU 过度订阅并减少 RunPod 等云环境中的调度开销。
在终端中运行以下命令以启动 GLM-4.7 推理服务器。
/workspace/llama.cpp/llama-server \
--model "/workspace/models/unsloth/GLM-4.7-GGUF/UD-Q2_K_XL/GLM-4.7-UD-Q2_K_XL-00001-of-00003.gguf" \
--alias "GLM-4.7" \
--threads 32 \
--host 0.0 .0.0 \
--ctx-size 8192 \
--temp 1.0 \
--top-p 0.95 \
--port 8080 \
--fit on \
--prio 3 \
--jinja \
--flash-attn auto \
--batch-size 1024 \
--ubatch-size 256 技术支持
模型加载完成后,服务器开始监听 8080 端口 ,即可接收推理请求。此时,GLM-4.7 已作为高性能推理服务在单张 H100 GPU 上运行。
下一步,我们将使用 内置 Web UI 测试该服务器(llama.cpp 自带)。
使用 llama.cpp Web UI 测试 GLM 4.7
要测试正在运行的推理服务器,打开您的 RunPod 控制台 ,找到已开放的 8080 端口的 HTTP 服务 。点击链接,即可在浏览器中打开 llama.cpp Web UI 。
llama.cpp Web UI 类似于 ChatGPT。它允许您输入提示、附加文件、调整设置,并在界面中选择可用模型。
选择 GLM-4.7 模型后,您将看到关于已加载模型的详细信息,包括文件路径、上下文大小、模型尺寸、参数数量、嵌入维度以及其他运行时细节。这表明正确的模型与配置已生效。
现在输入您的第一个提示。几乎在一瞬间,模型就会在 Web UI 中开始生成回复。
借助先前应用的优化服务器设置,模型可达到 约每秒 19 个 token ,这表明推理管线运行高效。生成的回复准确连贯。
随后您可以继续提问,例如常识问题。测试中,GLM-4.7 持续达到 约每秒 20 个 token (包含推理与回答 token),展现出在单张 H100 GPU 上的稳定高性能。
使用 OpenAI Python SDK 测试 GLM 4.7
本节将使用 llama.cpp 推理服务器 与 兼容 OpenAI 的 Python SDK 进行测试。这将确认服务器可通过编程方式正常工作,并可集成到真实应用中。
首先回到 Jupyter Notebook 。确保 llama-server 进程仍在终端中运行,请勿停止或重启。
为验证服务器处于激活状态并监听 8080 端口,运行以下命令:
! ss -lntp | grep 8080 || true 技术支持
您应看到类似如下的输出,确认 llama-server 正在监听:
LISTEN 0 512 0.0 .0.0:8080 0.0 .0.0:* users:(( "llama- server", pid= 1108 , fd= 15 )) 技术支持
接着安装 OpenAI Python SDK,我们将用它向本地服务器发送请求。
! pip -q install openai技术支持
现在创建一个指向本地 llama.cpp 服务器的 OpenAI 客户端。API Key 值并非必需,但为兼容性需要提供。
from openai import OpenAI
client = OpenAI(
base_url= "http://127.0.0.1:8080/v1" ,
api_key= "sk-no-key-required" ,
) 技术支持
发送一个简单的对话补全请求以测试多语言能力。
resp = client. chat. completions. create(
model= "GLM-4.7" ,
messages= [ { "role" : "user" , "content" : "Say hello in Urdu and explain what you said." } ] ,
temperature= 0.7 ,
)
print ( resp. choices[ 0 ] . message. content) 技术支持
模型将用 乌尔都语 进行问候,并清晰解释每个词语,展现其多语言理解与推理能力。
接着测试 流式推理 ,这对聊天等实时应用至关重要。
from openai import OpenAI
client = OpenAI(
base_url= "http://127.0.0.1:8080/v1" ,
api_key= "sk-no-key-required" ,
)
stream = client. chat. completions. create(
model= "GLM-4.7" ,
messages= [
{
"role" : "user" ,
"content" : "What makes ChatGPT so successful and popular, given that it's " just" a chatbot?"
}
] ,
temperature= 0.7 ,
stream= True ,
)
for event in stream:
choice = event. choices[ 0 ]
if getattr ( choice, "delta" , None ) and getattr ( choice. delta, "content" , None ) :
text = choice. delta. content
print ( text, end= "" , flush= True )
full_text. append( text) 技术支持
回复将以 token 为单位平滑流式输出,确认 llama.cpp 的流式能力运行稳定 ,与 GLM-4.7 配合良好。生成的答案结构清晰、内容准确,适用于接近生产的工作负载。
至此,GLM-4.7 已可通过 Web UI 与 兼容 OpenAI 的 API 全面运转,并在优化设置下高效运行于单张 H100 GPU。
结语
过去几个月里,llama.cpp 快速成熟,已达到可完全替代 Ollama 及其他本地聊天应用来运行大语言模型的水平。
它提供高度可配置且高速的推理引擎、面向交互的终端 CLI,以及与 ChatGPT 体验高度相近的内置 Web UI。
您还可以通过运行时标志与 UI 设置对模型行为进行精细控制,依据硬件在性能与质量之间进行调优。
一个重要结论是, 您并不需要企业级硬件来运行 GLM-4.7 。只要具备足够的系统内存以及如 RTX 3090 之类的 GPU,就可以通过 --fit on 并配合合适的 llama.cpp 优化,在本地运行 2-bit 的 GLM-4.7 模型。
llama.cpp 生态拥有庞大而活跃的社区,便于在为特定 GPU 或工作负载调优时找到优化配置与帮助。
在本教程中,我们搭建了 RunPod 环境,构建了带 CUDA 支持的 llama.cpp,使用高速 Hugging Face 传输下载了 GLM-4.7 模型,并以交互模式运行。随后我们启动了优化的推理服务器,通过 Web UI 进行测试,并使用兼容 OpenAI 的 API 以编程方式完成验证。
最终成果是一个 完全本地化的高性能 GLM-4.7 部署 ,在单张 GPU 上即可提供高准确度与接近实时的推理。该方案非常适合用于试验、研究,乃至注重可控性、性能与透明度的类生产工作负载。
GLM-4.7 是您的全新编程搭档,旨在在真实开发流程中表现更佳。与 GLM-4.6 相比,它在多语言与代理式编程、基于终端的任务以及工具使用方面有明显提升,并在 SWE-bench、SWE-bench Multilingual 和 Terminal Bench 2.0 上取得了出色成绩。它还支持“先思考后行动”,在现代代理框架中应对复杂任务更可靠。
在本教程中,我们将直接开始搭建 Runpod 环境、安装所有必要依赖,并克隆带有完整 CUDA 支持的 llama.cpp。随后我们将从 Hugging Face 下载 GLM-4.7 的 2-bit 模型,分别以 CLI 和服务器模式运行,并最终使用 OpenAI SDK 测试正在运行的服务。
您也可以查看我们关于本地运行 GLM 4.7 Flash 的指南。
GLM-4.7 系统要求与硬件前置条件
在本地运行 GLM-4.7 之前,请确保您的系统满足以下要求。
NVIDIA GPU 与驱动
要获得可用的性能,必须配备 NVIDIA GPU。
安装最新的 NVIDIA 驱动,并通过以下命令验证安装:
如果该命令可以运行并显示您的 GPU,则说明驱动安装正确。
CUDA 支持
运行 GLM-4.7 进行 GPU 加速需要 CUDA。如果您从源码构建 llama.cpp,必须在构建时正确检测到 CUDA。
使用预编译的启用 CUDA 的二进制文件时,系统中必须已安装可用的 CUDA 运行时。若无 CUDA 支持,GLM-4.7 将回退到 CPU 执行,这在实际使用中会慢到不可接受。
内存要求(非常重要)
GLM-4.7 体量极大,即便量化后也是如此。模型能否运行以及运行速度如何,取决于您“总内存”,而不仅仅是 GPU 显存。
请按 GPU 显存 + 系统内存的总和 来思考。
2-bit 动态量化(UD-Q2_K_XL)
1-bit 量化(UD-TQ1)
4-bit 量化
要点总结
对于 GLM-4.7,仅有 H100 GPU 本身还不够。稳定而快速的推理取决于总可用内存,即 GPU 显存与系统内存的组合。
在 RunPod 上搭建 GPU 环境
本教程将使用 RunPod,因为其上手快且提供多种按需可用的 GPU。
先创建一个新 pod。选择 最新的 PyTorch 镜像,然后点击模板设置中的 Edit(编辑)。将 卷磁盘大小提高到 200 GB,因为 GLM-4.7 模型非常大,即便是 2-bit 量化形式。
接着,开放所需端口。保留 JupyterLab 的默认 8080 端口,并新增一个后续用于 llama.cpp 服务器 的端口。
pod 启动后,点击 Jupyter Notebook 链接以启动 JupyterLab。创建一个新笔记本并运行以下设置代码。
此代码将:
/workspace设为 RunPod 上的主工作目录。llama.cpp的克隆与构建位置。/workspace,以加快下载并提供更多磁盘空间。您应看到类似如下的输出:
接下来,验证 NVIDIA 驱动是否安装正确以及 GPU 是否可见。
您应能看到一块 80 GB 显存的 H100 GPU,这表明环境已就绪并可进行 GPU 加速。
最后,安装从源码构建 llama.cpp 所需的系统依赖。
注意:我们使用了
%%capture在 Jupyter 中隐藏冗长的安装日志,同时仍然执行命令。安装带 CUDA 支持的 llama.cpp
本步骤中,我们将从源码克隆并构建启用 CUDA 的 llama.cpp,以确保最佳 GPU 性能。
首先,将官方仓库克隆到工作区。
接着,配置构建以启用 CUDA,并禁用共享库。
随后以 Release 模式构建所需的二进制文件。
构建完成后,将二进制文件复制到主目录并验证输出。
至此,llama.cpp 已具备完整 CUDA 支持,可通过 CLI 或服务器运行 GLM-4.7。
使用 Xet 支持下载 GLM 4.7 模型
本步骤将安装带有 Xet 和 HF Transfer 支持的 Hugging Face 库,以显著加速大模型下载。与 Git LFS 相比,Xet 提供更快的性能,这对于高效下载 GLM-4.7 至关重要。
首先,安装所需的 Hugging Face 依赖并启用 HF Transfer。
通过设置环境变量启用 HF Transfer。
安装这些软件包后,请重启 Jupyter 内核以确保新设置生效。
接着,使用
snapshot_download从 Hugging Face 下载 GLM-4.7 GGUF 模型。我们将下载限制在推荐的 动态 2-bit 量化,以降低存储与内存占用。启用 Xet 与 HF Transfer 后,下载速度可达 每秒 726 MB,随后可提升至 每秒 1.2 GB。若不进行此设置,下载速度通常约为 每秒 50 MB,下载此规模的模型可能需要接近整整一天。
下载完成后,GLM-4.7 模型将保存在工作区的模型目录中,可通过 llama.cpp 进行推理。
以交互模式运行 GLM 4.7
我们现在将使用 llama.cpp CLI 以交互模式运行 GLM-4.7。
先在 JupyterLab 内打开一个终端。点击 加号(+)按钮,下拉并选择 Terminal(终端)。这将在 RunPod 环境中打开一个新的 shell 会话。
在终端中运行以下命令以启动交互式 CLI。
该命令会加载 GLM-4.7 的动态 2-bit 模型并启动交互式对话。
--fit on标志允许 llama.cpp 尽可能多地将模型层与 KV 缓存块自动卸载到 GPU,同时将剩余部分安全地溢出至系统内存。这样无需手动调节层数,并有助于避免内存不足错误。模型加载完成后,您会看到 llama.cpp 的横幅以及交互式提示符。此时您可以输入消息(例如简单问候),模型将开始生成回复。
在每个回复的末尾,llama.cpp 会打印性能统计信息,包括 token 生成速度。此阶段模型约为 每秒 2.2 个 token,这表明模型在单张 H100 GPU 上运行正常。
接下来我们将应用更多优化,以提升吞吐量并逐步接近 每秒 20 个 token 的目标。
运行 GLM 4.7 推理服务器
本步骤中,我们使用 llama.cpp 将 GLM-4.7 作为持久化推理服务器运行,并针对单张 H100 PCIe GPU 进行了优化。这些设置旨在提升吞吐、稳定性与内存效率。
为获得稳定高效的性能,我们采用以下优化:
--fit on):尽可能将模型与 KV 缓存卸载至 GPU 内存,剩余部分安全溢出至系统内存。避免手动调层并防止内存不足错误。--flash-attn auto):在 H100 等受支持 GPU 上启用优化的注意力内核,显著提升 token 生成速度并降低内存开销。--ctx-size 8192):大上下文窗口会随时间拖慢解码。将 16k 降至 8k,可为多数负载带来更稳定的 token 吞吐。--batch-size、--ubatch-size):通过更大、更高效的批量处理提升 GPU 利用率与整体吞吐。--threads 32):防止 CPU 过度订阅并减少 RunPod 等云环境中的调度开销。在终端中运行以下命令以启动 GLM-4.7 推理服务器。
模型加载完成后,服务器开始监听 8080 端口,即可接收推理请求。此时,GLM-4.7 已作为高性能推理服务在单张 H100 GPU 上运行。
下一步,我们将使用 内置 Web UI 测试该服务器(llama.cpp 自带)。
使用 llama.cpp Web UI 测试 GLM 4.7
要测试正在运行的推理服务器,打开您的 RunPod 控制台,找到已开放的 8080 端口的 HTTP 服务。点击链接,即可在浏览器中打开 llama.cpp Web UI。
llama.cpp Web UI 类似于 ChatGPT。它允许您输入提示、附加文件、调整设置,并在界面中选择可用模型。
选择 GLM-4.7 模型后,您将看到关于已加载模型的详细信息,包括文件路径、上下文大小、模型尺寸、参数数量、嵌入维度以及其他运行时细节。这表明正确的模型与配置已生效。
现在输入您的第一个提示。几乎在一瞬间,模型就会在 Web UI 中开始生成回复。
借助先前应用的优化服务器设置,模型可达到 约每秒 19 个 token,这表明推理管线运行高效。生成的回复准确连贯。
随后您可以继续提问,例如常识问题。测试中,GLM-4.7 持续达到 约每秒 20 个 token(包含推理与回答 token),展现出在单张 H100 GPU 上的稳定高性能。
使用 OpenAI Python SDK 测试 GLM 4.7
本节将使用 llama.cpp 推理服务器 与 兼容 OpenAI 的 Python SDK 进行测试。这将确认服务器可通过编程方式正常工作,并可集成到真实应用中。
首先回到 Jupyter Notebook。确保 llama-server 进程仍在终端中运行,请勿停止或重启。
为验证服务器处于激活状态并监听 8080 端口,运行以下命令:
您应看到类似如下的输出,确认 llama-server 正在监听:
接着安装 OpenAI Python SDK,我们将用它向本地服务器发送请求。
现在创建一个指向本地 llama.cpp 服务器的 OpenAI 客户端。API Key 值并非必需,但为兼容性需要提供。
发送一个简单的对话补全请求以测试多语言能力。
模型将用乌尔都语进行问候,并清晰解释每个词语,展现其多语言理解与推理能力。
接着测试流式推理,这对聊天等实时应用至关重要。
回复将以 token 为单位平滑流式输出,确认 llama.cpp 的流式能力运行稳定,与 GLM-4.7 配合良好。生成的答案结构清晰、内容准确,适用于接近生产的工作负载。
至此,GLM-4.7 已可通过 Web UI 与 兼容 OpenAI 的 API 全面运转,并在优化设置下高效运行于单张 H100 GPU。
结语
过去几个月里,llama.cpp 快速成熟,已达到可完全替代 Ollama 及其他本地聊天应用来运行大语言模型的水平。
它提供高度可配置且高速的推理引擎、面向交互的终端 CLI,以及与 ChatGPT 体验高度相近的内置 Web UI。
您还可以通过运行时标志与 UI 设置对模型行为进行精细控制,依据硬件在性能与质量之间进行调优。
一个重要结论是,您并不需要企业级硬件来运行 GLM-4.7。只要具备足够的系统内存以及如 RTX 3090 之类的 GPU,就可以通过
--fit on并配合合适的 llama.cpp 优化,在本地运行 2-bit 的 GLM-4.7 模型。llama.cpp 生态拥有庞大而活跃的社区,便于在为特定 GPU 或工作负载调优时找到优化配置与帮助。
在本教程中,我们搭建了 RunPod 环境,构建了带 CUDA 支持的 llama.cpp,使用高速 Hugging Face 传输下载了 GLM-4.7 模型,并以交互模式运行。随后我们启动了优化的推理服务器,通过 Web UI 进行测试,并使用兼容 OpenAI 的 API 以编程方式完成验证。
最终成果是一个完全本地化的高性能 GLM-4.7 部署,在单张 GPU 上即可提供高准确度与接近实时的推理。该方案非常适合用于试验、研究,乃至注重可控性、性能与透明度的类生产工作负载。