GLM-4-9B-0414权重文件修改教程:config.json关键参数配置详解

【免费下载链接】GLM-4-9B-0414 【免费下载链接】GLM-4-9B-0414 项目地址: https://ai.gitcode.com/hf_mirrors/MindIE/GLM-4-9B-0414

GLM-4-9B-0414是一款功能强大的AI模型,在使用前需要对其权重文件中的config.json进行关键参数配置。本教程将详细介绍如何修改config.json文件,帮助新手用户快速完成模型配置,顺利启用GLM-4-9B-0414的各项功能。

权重文件准备与下载

要开始配置GLM-4-9B-0414模型,首先需要下载其权重文件。你可以通过访问GLM-4-9B-0414获取权重文件。下载完成后,找到权重路径下的config.json文件,这是我们进行参数配置的关键文件。

config.json关键参数修改步骤

修改config.json文件是启用GLM-4-9B-0414模型的重要环节,以下是详细的修改步骤:

增加关键键值对

在config.json文件中,需要增加一个重要的键值对:"_name_or_path": "THUDM/glm-4-9b-chat"。这个键值对无论是什么模型都需要添加,它有助于模型正确识别和加载相关资源。

修改模型类型参数

找到"model_type"参数,将其值从"glm4"修改为"chatglm"。这一修改能确保模型以正确的类型进行加载和运行。

修改后样例展示

修改完成后的config.json文件样例如下:

{
  "_name_or_path": "THUDM/glm-4-9b-chat", // 增加键值对,不管是什么模型都是这个 key
  "architectures": ["Glm4ForCausalLM"],
  "attention_bias": false,
  "attention_dropout": 0.0,
  "eos_token_id": [151329, 151336, 151338],
  "head_dim": 128,
  "hidden_act": "silu",
  "hidden_size": 6144,
  "initializer_range": 0.02,
  "intermediate_size": 23040,
  "max_position_embeddings": 131072,
  "model_type": "chatglm", // 从 glm4 改为 chatglm
  "num_attention_heads": 48,
  "num_hidden_layers": 61,
  "num_key_value_heads": 8,
  "pad_token_id": 151329,
  "partial_rotary_factor": 0.5,
  "rms_norm_eps": 1e-5,
  "rope_theta": 10000.0,
  "tie_word_embeddings": false,
  "torch_dtype": "bfloat16",
  "transformers_version": "4.52.0.dev0",
  "use_cache": true,
  "vocab_size": 151552
}

模型加载与部署准备

完成config.json文件的修改后,就可以进行模型的加载与部署准备工作了。

下载并加载镜像

首先下载镜像,使用以下命令:

wget https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/MindIE/docker/mindie_2.0.T3-20250417-800I-A2-py311-openeuler24.03-lts-aarch64.tar.gz --no-check-certificate

然后加载镜像:

docker load -i ./mindie_2.0.T3-20250417-800I-A2-py311-openeuler24.03-lts-aarch64.tar.gz

约束条件说明

部署GLM-4-0414系列模型有一定的约束条件,需要至少1台Atlas 800I A2服务器,并且支持TP=1/2/4/8推理。

新建容器

目前提供的MindIE镜像预置了GLM-4-9B-0414系列模型推理脚本,无需额外下载模型适配代码,直接新建容器即可。

如果使用root用户镜像且可以使用特权容器,使用以下命令启动容器:

docker run -it -d --net=host --shm-size=1g \
    --privileged \
    --name <container-name> \
    --device=/dev/davinci_manager \
    --device=/dev/hisi_hdc \
    --device=/dev/devmm_svm \
    -v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
    -v /usr/local/sbin:/usr/local/sbin:ro \
    -v /path-to-weights:/path-to-weights:ro \
    <IMAGE ID> bash

如果使用自行构建的普通用户镜像,可使用以下命令指定用户与设备:

docker run -it -d --net=host --shm-size=1g \
    --name <container-name> \
    --device=/dev/davinci_manager \
    --device=/dev/hisi_hdc \
    --device=/dev/devmm_svm \
    --device=/dev/davinci0 \
    --device=/dev/davinci1 \
    --device=/dev/davinci2 \
    --device=/dev/davinci3 \
    --device=/dev/davinci4 \
    --device=/dev/davinci5 \
    --device=/dev/davinci6 \
    --device=/dev/davinci7 \
    -v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
    -v /usr/local/sbin:/usr/local/sbin:ro \
    -v /path-to-weights:/path-to-weights:ro \
    <IMAGE ID> bash

容器内环境配置

由于GLM-4-0414系列模型依赖最新版本transformers,需要在容器内更改transformers版本并使其兼容PyTorch 2.1.0。

进入容器

使用以下命令进入容器:

docker exec -it ${容器名称} bash

下载源码并修改

下载transformers源码:

git clone https://github.com/huggingface/transformers.git

修改transformers/utils/generic.py中355行左右的代码,将from torch.utils._pytree import register_pytree_node修改为from torch.utils._pytree import _register_pytree_node,使高版本transformers兼容PyTorch 2.1.0。

另外,若后续服务化出现错误,可能是读取chat_template时ASCII编码错误导致,需要修改transformers/tokenization_utils_base.py约2160行左右,将with open(chat_template_file) as chat_template_handle:修改为with open(chat_template_file, encoding="utf-8") as chat_template_handle:

安装transformers

从源码安装transformers:

pip install ./transformers

确保transformers>=4.51.3。可能还需要安装einops:

pip3 install einops

模型推理测试

完成上述配置后,就可以进行模型推理测试了。

对话测试

进入llm_model路径:

cd $ATB_SPEED_HOME_PATH

执行对话测试:

torchrun --nproc_per_node 2 \
         --master_port 20037 \
         -m examples.run_pa \
         --model_path ${权重路径} \
         --input_texts 'What is deep learning?' \
         --max_output_length 20

服务化推理

服务化推理需要进行配置文件修改和服务拉起等操作。首先打开配置文件:

vim /usr/local/Ascend/mindie/latest/mindie-service/conf/config.json

在配置文件中进行相应的更改,如自定义端口、设置模型路径等。然后拉起服务化:

cd /usr/local/Ascend/mindie/latest/mindie-service/bin
./mindieservice_daemon

最后可以新建窗口进行测试(VLLM接口):

curl 127.0.0.1:1025/generate -d '{
  "prompt": "What is deep learning?",
  "max_tokens": 32,
  "stream": false,
  "do_sample":true,
  "temperature": 0.6,
  "top_p": 0.95,
  "model": "chatglm"
}'

通过以上步骤,你就成功完成了GLM-4-9B-0414权重文件config.json的关键参数配置,并进行了模型的推理测试。希望本教程能帮助你顺利使用GLM-4-9B-0414模型。

【免费下载链接】GLM-4-9B-0414 【免费下载链接】GLM-4-9B-0414 项目地址: https://ai.gitcode.com/hf_mirrors/MindIE/GLM-4-9B-0414

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐