3.5. chatglm2/3¶
chatglm2/3-6b¶
模型下载¶
从huggingface上下载下列任意模型的预训练ckpt,路径记为[path to chatglm ckpt]
批量离线推理¶
python3.8 -m vllm_utils.benchmark_test \
--model=[path to chatglm ckpt] \
--demo=tc \
--dtype=float16 \
--output-len=256
性能测试¶
python3.8 -m vllm_utils.benchmark_test --perf \
--model=[path to chatglm ckpt] \
--input-len=512 \
--output-len=128 \
--num-prompts=16 \
--block-size=64 \
--max-model-len=8192 \
--dtype=float16
注:
本模型支持的
max-model-len
为8192(chatglm2-6b和chatglm3-6b ckpt)/32768(chatglm2-6b-32k和chatglm3-6b-32k ckpt);input-len
、output-len
和num-prompts
可按需调整;配置
output-len
为1时,输出内容中的latency
即为time_to_first_token_latency;chatglm2/3 32k模型运行时需要添加环境变量:
export PYTORCH_GCU_ALLOC_CONF=backend:topsMallocAsync
基于OpenCompass进行mmlu数据集评测¶
安装OpenCompass
注:建议使用OpenCompass0.2.1版本。如果安装依赖时安装了和torch_gcu不一致的版本,请重新手动安装。
准备config文件
将下面的配置信息存为一个python文件,放入OpenCompass中如下路径configs/models/chatglm/vllm_chatglm2_6b.py
from opencompass.models import VLLM
models = [
dict(
type=VLLM,
abbr='chatglm2-6b-vllm',
path='/path/to/chatglm2-6b',
max_out_len=100,
max_seq_len=4096,
batch_size=32,
generation_kwargs=dict(temperature=0),
run_cfg=dict(num_gpus=0, num_procs=1),
model_kwargs=dict(device='gcu', enforce_eager=True)
)
]
执行以下命令
python3 run.py \
--models=vllm_chatglm2_6b \
--datasets=mmlu_gen \
--max-partition-size=10000000
chatglm2/3-6b-w8a16¶
本模型推理及性能测试需要1张enflame gcu。
模型下载¶
如需要下载权重,请联系商务人员开通EGC权限进行下载
下载
ChatGLM2-6b-8k-w8a16.tar
或chatglm2-6b-32k-w8a16.tar
或ChatGLM3-6b-8k-w8a16.tar
或ChatGLM3-6b-32k-w8a16.tar
文件并解压,将压缩包内的内容全部拷贝到chatglm_w8a16
文件夹中。chatglm_w8a16
目录结构如下所示:
chatglm_w8a16/
├── config.json
├── configuration_chatglm.py
├── model.safetensors
├── quantize_config.json
├── tokenization_chatglm.py
├── tokenizer_config.json
├── tokenizer.model
└── tops_quantize_info.json
批量离线推理¶
python3.8 -m vllm_utils.benchmark_test \
--model=[path of chatglm_w8a16] \
--demo=tc \
--dtype=float16 \
--quantization=w8a16 \
--output-len=256
性能测试¶
python3.8 -m vllm_utils.benchmark_test --perf \
--model=[path of chatglm_w8a16] \
--input-len=512 \
--output-len=128 \
--num-prompts=16 \
--block-size=64 \
--max-model-len=8192 \
--dtype=float16 \
--quantization=w8a16