Home

Awesome

GLM-Edge

Read this in English

<a href="https://huggingface.co/spaces/THUDM-HF-SPACE/GLM-Edge-1.5B-Chat-Space" target="_blank"> 🤗 这里</a> 体验 GLM-Edge-1.5B-Chat 端侧模型

<a href="https://huggingface.co/spaces/THUDM-HF-SPACE/GLM-Edge-V-5B-Space" target="_blank"> 🤗 这里</a> 或者 <a href="https://modelscope.cn/studios/ZhipuAI/GLM-Edge-V-5B-Demo" target="_blank"> 🤖 这里</a> 体验 GLM-Edge-V-5B 端侧模型

模型介绍

GLM-Edge 系列是我们在面向端侧真实落地使用的场景下的一次尝试,由两种尺寸的大语言对话模型和多模态理解模型组成( GLM-Edge-1.5B-ChatGLM-Edge-4B-ChatGLM-Edge-V-2BGLM-Edge-V-5B)。其中,1.5B / 2B模型主要面向手机、车机等平台, 4B / 5B 模型主要面向PC等平台。

基于GLM-4系列的技术积累,我们针对端侧实际部署情况,对模型结构和尺寸做了针对性的调整,以求在模型表现、实机推理效果和落地便利度之间达到平衡。同时,通过与伙伴企业的深入合作和在推理优化上的不懈努力,在一些端侧平台上,GLM-Edge系列模型能以极快的速度运行。

例如,在高通骁龙8 Elite平台上,借助其强大的NPU算力,GLM-Edge通过混合量化方案,1.5B对话模型、2B多模态模型能实现每秒60 tokens以上的解码速度。在应用投机采样技术之后,两个模型能以峰值每秒100 tokens以上的解码速度运行。这些推理方案会由我们或合作伙伴后续放出。暂时不会在本仓库提供。 模型下载地址:

ModelHuggingFace ModelGGUF Model
GLM-Edge-1.5B-Chat🤗 Huggingface<br> 🤖 ModelScope <br> 🟣 WiseModel🤗 Huggingface<br> 🤖 ModelScope <br> 🟣 WiseModel
GLM-Edge-4B-Chat🤗 Huggingface<br> 🤖 ModelScope <br> 🟣 WiseModel🤗 Huggingface<br> 🤖 ModelScope <br> 🟣 WiseModel
GLM-Edge-V-2B🤗 Huggingface<br> 🤖 ModelScope <br> 🟣 WiseModel🤗 Huggingface<br> 🤖 ModelScope <br> 🟣 WiseModel
GLM-Edge-V-5B🤗 Huggingface<br> 🤖 ModelScope <br> 🟣 WiseModel🤗 Huggingface<br> 🤖 ModelScope <br> 🟣 WiseModel

实机运行数据

数据采集日截止到2024年11月28日。我们还在积极地与合作伙伴们一道优化这些性能。

高通

模型任务量化方案框架1st token latency (ms)Token Rate (tokens/s)Peak Memory Footprint (GB)
GLM-Edge-4B-Chat(input/output=512/128)INT4QNN660242.9
GLM-Edge-1.5B-Chat(input/output=512/128)INT4QNN260651.2

Intel

模型任务量化方案框架1st token latency (ms)Token Rate (tokens/s)Peak Memory Footprint (GB)
GLM-Edge-4B-Chat(input/output=1024/128)INT4OPENVINO541.2273.9
GLM-Edge-1.5B-Chat(input/output=1024/128)INT4OPENVINO228.2632.3
GLM-Edge-V-2BSingle image understanding (672x672)INT4OPENVINO362.1703.4

安装依赖

请确保你的Python版本为3.10或更高版本。并按照如下方式安装依赖,安装以下依赖能确保正确运行本仓库的所有代码。

pip install -r requirements.txt

模型推理

Transformers / OpenVINO / vLLM Demo

我们提供了 vLLM, OpenVINO 和 transformers 三种后端推理方式,你可以通过运行以下命令来运行模型。这是一个命令行交互代码。

python cli_demo.py --backend transformers --model_path THUDM/glm-edge-1.5b-chat --precision bfloat16
python cli_demo.py --backend vllm --model_path THUDM/glm-edge-1.5b-chat --precision bfloat16
python cli_demo.py --backend ov --model_path THUDM/glm-edge-1.5b-chat-ov  --precision int4

注意:

OpenVINO 版本模型需要进行转换,请前往 这里 运行转换代码。

python convert_chat.py --model_path THUDM/glm-edge-1.5b-chat --precision int4 转换对话模型。

python convert.py --model_path THUDM/glm-edge-v-2b --precision int4 转换视觉理解模型。

你也可以在 这里 查看原始的转换代码。

vLLM 版本模型需要从 这里 源代码 安装 vLLM 以正常运行。

如果你想使用 glm-edge-v 系列模型,你可以运行以下命令行交互代码

python cli_demo_vision.py  --backend transformers --model_path THUDM/glm-edge-v-2b --precision bfloat16
python cli_demo.py --backend ov --model_path THUDM/glm-edge-1.5b-chat-ov  --precision int4

你也可以使用 Gradio 启动 WebUI。

python cli_demo.py --backend transformers --model_path THUDM/glm-edge-1.5b-chat --precision bfloat16
python cli_demo.py --backend vllm --model_path THUDM/glm-edge-1.5b-chat --precision int4 # For Int4 Inference

XInference

如果你使用 XInference 进行推理,你可以通过运行以下命令来运行模型。这是一个命令行交互代码。

xinference launch --model-engine Transformers --model-name glm-edge-v --size-in-billions 2 --model-format pytorch --quantization none

使用 OpenAI API进行推理:

import openai

client = openai.Client(
    api_key="cannot be empty",
    base_url="http://<XINFERENCE_HOST>:<XINFERENCE_PORT>/v1"
)
output = client.chat.completions.create(
    model="glm-edge-v",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    'type': 'text',
                    'text': 'describe this image',
                },
                {
                    'type': 'image_url',
                    'image_url': {
                        "url": "img.png",
                    }
                },
            ],
        }
    ],
    max_tokens=512,
    temperature=0.7
)

print(output)

微调模型

我们提供了微调模型的代码,请参考 微调教程

协议

本 github 仓库代码的使用 Apache2.0 LICENSE

模型权重的使用请遵循 Model License