CoolFace
Apppublic

jackbond2024/glm4

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
App README

Basic Demo

Read this in English.

本 demo 中,你将体验到如何使用 GLM-4-9B 开源模型进行基本的任务。

请严格按照文档的步骤进行操作,以避免不必要的错误。

设备和依赖检查

相关推理测试数据

本文档的数据均在以下硬件环境测试,实际运行环境需求和运行占用的显存略有不同,请以实际运行环境为准。

测试硬件信息:

  • —OS: Ubuntu 22.04
  • —Memory: 512GB
  • —Python: 3.10.12 (推荐) / 3.12.3 均已测试
  • —CUDA Version: 12.3
  • —GPU Driver: 535.104.05
  • —GPU: NVIDIA A100-SXM4-80GB * 8

相关推理的压力测试数据如下:

所有测试均在单张GPU上进行测试,所有显存消耗都按照峰值左右进行测算

GLM-4-9B-Chat
精度显存占用PrefillingDecode SpeedRemarks
BF1619 GB0.2s27.8 tokens/s输入长度为 1000
BF1621 GB0.8s31.8 tokens/s输入长度为 8000
BF1628 GB4.3s14.4 tokens/s输入长度为 32000
BF1658 GB38.1s3.4 tokens/s输入长度为 128000
精度显存占用PrefillingDecode SpeedRemarks
INT48 GB0.2s23.3 tokens/s输入长度为 1000
INT410 GB0.8s23.4 tokens/s输入长度为 8000
INT417 GB4.3s14.6 tokens/s输入长度为 32000
GLM-4-9B-Chat-1M
精度显存占用PrefillingDecode SpeedRemarks
BF1675 GB98.4s2.3 tokens/s输入长度为 200000

如果您的输入超过200K,我们建议您使用vLLM后端进行多卡推理,以获得更好的性能。

GLM-4V-9B
精度显存占用PrefillingDecode SpeedRemarks
BF1628 GB0.1s33.4 tokens/s输入长度为 1000
BF1633 GB0.7s39.2 tokens/s输入长度为 8000
精度显存占用PrefillingDecode SpeedRemarks
INT410 GB0.1s28.7 tokens/s输入长度为 1000
INT415 GB0.8s24.2 tokens/s输入长度为 8000

最低硬件要求

如果您希望运行官方提供的最基础代码 (transformers 后端) 您需要:

  • —Python >= 3.10
  • —内存不少于 32 GB

如果您希望运行官方提供的本文件夹的所有代码,您还需要:

  • —Linux 操作系统 (Debian 系列最佳)
  • —大于 8GB 显存的,支持 CUDA 或者 ROCM 并且支持 BF16 推理的 GPU 设备。(FP16 精度无法训练,推理有小概率出现问题)

安装依赖

shell
pip install -r requirements.txt

基础功能调用

除非特殊说明,本文件夹所有 demo 并不支持 Function Call 和 All Tools 等进阶用法

使用 transformers 后端代码

  • —使用命令行与 GLM-4-9B 模型进行对话。
shell
python trans_cli_demo.py # GLM-4-9B-Chat
python trans_cli_vision_demo.py # GLM-4V-9B
  • —使用 Gradio 网页端与 GLM-4-9B 模型进行对话。
shell
python trans_web_demo.py  # GLM-4-9B-Chat
python trans_web_vision_demo.py # GLM-4V-9B
  • —使用 Batch 推理。
shell
python trans_batch_demo.py

使用 vLLM 后端代码

  • —使用命令行与 GLM-4-9B-Chat 模型进行对话。
shell
python vllm_cli_demo.py
  • —自行构建服务端,并使用 OpenAI API 的请求格式与 GLM-4-9B-Chat 模型进行对话。本 demo 支持 Function Call 和 All Tools功能。

启动服务端:

shell
python openai_api_server.py

客户端请求:

shell
python openai_api_request.py

压力测试

用户可以在自己的设备上使用本代码测试模型在 transformers后端的生成速度:

shell
python trans_stress_test.py