## GLM-5.1 ## 论文 [GLM-5.1: Towards Long-Horizon Tasks](https://z.ai/blog/glm-5.1) ## 模型简介 GLM-5.1 是智谱AI面向智能体工程的下一代旗舰模型,其代码能力相比前代显著增强。它在 SWE-Bench Pro 上达到了当前最优水平,并在 NL2Repo(代码仓库生成)和 Terminal-Bench 2.0(真实终端任务)上大幅领先于 GLM-5。
但最具意义的飞跃并不仅限于首次通过的表现。以往的模型(包括 GLM-5)往往过早耗尽其能力储备:它们会快速应用熟悉的技术以获得初步成果,随后便陷入停滞。即使给予更多时间也无济于事。 相比之下,GLM-5.1 被设计为在更长的时间跨度内持续高效地处理智能体任务。该模型在面对模糊问题时具备更佳的判断力,并能在更长时间的会话中保持高效产出。它能够分解复杂问题、运行实验、解读结果,并精准识别障碍点。通过不断回顾自身推理过程并反复迭代调整策略,GLM-5.1 能在数百轮交互和数千次工具调用中持续优化。运行时间越长,结果越好。 ## 环境依赖 | 软件 | 版本 | | :------: |:-------:| | DTK | 26.04 | | python | 3.10.12 | | transformers | 5.2.0 | | torch | 2.9.0+das.opt1.dtk2604.20260331.g4e3c1e7 | | vllm | 0.15.1+das.opt1.alpha.dtk2604.torch290.2604042155.gba9f96 | 当前仅支持镜像: harbor.sourcefind.cn:5443/dcu/admin/base/custom:vllm015-ubuntu22.04-dtk26.04-glm5-0408 - 挂载地址`-v`根据实际模型情况修改 ```bash docker run -it \ --shm-size 256g \ --network=host \ --name glm-5.1 \ --privileged \ --device=/dev/kfd \ --device=/dev/dri \ --device=/dev/mkfd \ --group-add video \ --cap-add=SYS_PTRACE \ --security-opt seccomp=unconfined \ -u root \ -v /opt/hyhal/:/opt/hyhal/:ro \ -v /path/your_code_data/:/path/your_code_data/ \ harbor.sourcefind.cn:5443/dcu/admin/base/custom:vllm015-ubuntu22.04-dtk26.04-glm5-0408 bash ``` 更多镜像可前往[光源](https://sourcefind.cn/#/service-list)下载使用。 ## 数据集 `暂无` ## 训练 `暂无` ## 推理 ### vllm #### 单机推理 1. 加入环境变量 ```bash # 环境变量 rm -rf ~/.cache rm -rf ~/.triton export VLLM_TORCH_PROFILER_DIR=/home/GLM-5/ export HIP_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 export ALLREDUCE_STREAM_WITH_COMPUTE=1 export NCCL_MIN_NCHANNELS=16 export NCCL_MAX_NCHANNELS=16 export Allgather_Base_STREAM_WITH_COMPUTE=1 export SENDRECV_STREAM_WITH_COMPUTE=1 export HIP_KERNEL_EVENT_SYSTENFENCE=1 export VLLM_RPC_TIMEOUT=1800000 export VLLM_USE_PD_SPLIT=1 export VLLM_USE_PIECEWISE=1 export VLLM_REJECT_SAMPLE_OPT=1 export USE_FUSED_RMS_QUANT=0 export USE_FUSED_SILU_MUL_QUANT=1 export VLLM_USE_GLOBAL_CACHE13=1 export VLLM_FUSED_MOE_CHUNK_SIZE=16384 export VLLM_CUSTOM_CACHE=1 export VLLM_USE_OPT_CAT=1 export VLLM_USE_FUSED_FILL_RMS_CAT=1 export VLLM_USE_LIGHTOP_MOE_SUM_MUL_ADD=0 export VLLM_USE_LIGHTOP_RMS_ROPE_CONCAT=0 export VLLM_USE_V32_ENCODE=1 export VLLM_USE_FLASH_MLA=1 export VLLM_DISABLE_DSA=0 export USE_LIGHTOP_TOPK=1 export USE_LIGHTOP_PER_TOKEN_GROUP_QUANT_FP8=1 export USE_LIGHTOP_CONVERT_REQ_INDEX_TO_GLOBAL_INDEX=1 ``` 2. 启动vllm serve ```bash vllm serve ZhipuAI/GLM-5.1-FP8 \ --gpu-memory-utilization 0.925 \ --port 8001 \ --tensor-parallel-size 8 \ --tool-call-parser glm47 \ --reasoning-parser glm45 \ --enable-auto-tool-choice \ --kv-cache-dtype fp8_ds_mla \ --served-model-name glm-5.1-fp8 \ --disable-log-requests \ --compilation-config '{"pass_config": {"fuse_act_quant": false}}' ``` 3. 启动完成后可通过以下方式访问: ```bash curl http://localhost:8001/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "glm-5.1-fp8", "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Summarize GLM-5 in one sentence."} ], "max_tokens": 4096, "temperature": 0.7, "chat_template_kwargs": {"enable_thinking": false} }' ``` #### 多机推理 1. 加入环境变量 > 请注意: > 每个节点上的环境变量都写到.sh文件中,保存后各个计算节点分别source`.sh`文件 > > VLLM_HOST_IP:节点本地通信口ip,尽量选择IB网卡的IP,**避免出现rccl超时问题** > > NCCL_SOCKET_IFNAME和 GLOO_SOCKET_IFNAME:节点本地通信网口ip对应的名称 > > 通信口和ip查询方法:ifconfig > > IB口状态查询:ibstat !!!一定要active激活状态才可用,各个节点要保持统一 ```bash export ALLREDUCE_STREAM_WITH_COMPUTE=1 export VLLM_HOST_IP=x.x.x.x # 对应计算节点的IP,选择IB口SOCKET_IFNAME对应IP地址 export NCCL_SOCKET_IFNAME=ibxxxx export GLOO_SOCKET_IFNAME=ibxxxx export NCCL_IB_HCA=mlx5_0:1 # 环境中的IB网卡名字 unset NCCL_ALGO export NCCL_MIN_NCHANNELS=16 export NCCL_MAX_NCHANNELS=16 export NCCL_NET_GDR_READ=1 export HIP_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 export VLLM_SPEC_DECODE_EAGER=1 export VLLM_MLA_DISABLE=0 export VLLM_USE_FLASH_MLA=1 export VLLM_RPC_TIMEOUT=1800000 # 海光CPU绑定核 export VLLM_NUMA_BIND=1 export VLLM_RANK0_NUMA=0 export VLLM_RANK1_NUMA=1 export VLLM_RANK2_NUMA=2 export VLLM_RANK3_NUMA=3 export VLLM_RANK4_NUMA=4 export VLLM_RANK5_NUMA=5 export VLLM_RANK6_NUMA=6 export VLLM_RANK7_NUMA=7 ``` 2. 启动RAY集群 > x.x.x.x 对应第一步 VLLM_HOST_IP ```bash # head节点执行 ray start --head --node-ip-address=x.x.x.x --port=6379 --num-gpus=8 --num-cpus=32 # worker节点执行 ray start --address='x.x.x.x:6379' --num-gpus=8 --num-cpus=32 ``` 3. 启动vllm serve ```bash vllm serve ZhipuAI/GLM-5.1 \ --port 8001 \ --trust-remote-code \ --tensor-parallel-size 32 \ --gpu-memory-utilization 0.85 \ --distributed-executor-backend ray \ --dtype bfloat16 \ --max-model-len 32768 \ --tool-call-parser glm47 \ --reasoning-parser glm45 \ --enable-auto-tool-choice \ --served-model-name glm-5.1 ``` 4. 启动完成后可通过以下方式访问: ```bash curl http://localhost:8001/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "glm-5.1", "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Summarize GLM-5 in one sentence."} ], "max_tokens": 4096, "temperature": 1 }' ``` ## 效果展示
### 精度 `DCU与GPU精度一致,推理框架:vllm。` ## 预训练权重 | 模型名称 | 权重大小 | DCU型号 | 最低卡数需求 |下载地址| |:-----:|:----------:|:----------:|:---------------------:|:----------:| | GLM-5.1 | 754B | BW1000,BW1100 | 32 | [ModelScope](https://modelscope.cn/models/ZhipuAI/GLM-5.1) | | GLM-5.1-FP8 | 754B | BW1100 | 8 | [ModelScope](https://modelscope.cn/models/ZhipuAI/GLM-5.1-FP8) | ## 源码仓库及问题反馈 - https://developer.sourcefind.cn/codes/modelzoo/glm-5.1_vllm ## 参考资料 - https://github.com/zai-org/GLM-5