❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- 模型类型:包含大语言对话模型和多模态理解模型,适用于不同平台。
- 技术优化:采用混合量化和投机采样技术,提升端侧推理速度。
- 应用广泛:支持智能助手、聊天机器人、图像标注等多种应用场景。
正文(附运行示例)
GLM-Edge 是什么
GLM-Edge是智谱开源的一系列端侧部署优化的大语言对话模型和多模态理解模型,包含GLM-Edge-1.5B-Chat、GLM-Edge-4B-Chat、GLM-Edge-V-2B和GLM-Edge-V-5B。这些模型主要面向手机、车机和PC等平台,基于GLM-4系列技术积累,调整模型结构和尺寸,实现模型性能、实机推理效果和落地便利性之间的最佳平衡。
在高通骁龙8 Elite等端侧平台上,GLM-Edge基于混合量化方案和投机采样技术,1.5B对话模型、2B多模态模型能实现每秒60至100个tokens的高速解码,展现出卓越的推理性能。
GLM-Edge 的主要功能
- 大语言对话模型:提供基于大型语言模型的对话能力,理解和生成自然语言,适用于聊天机器人、智能助手等应用。
- 多模态理解模型:结合视觉和语言信息,理解和描述图片内容,适用于图像标注、视觉问答等多模态交互场景。
- 端侧优化:针对手机、车机和PC等端侧设备进行优化,实现在资源受限的环境中高效运行。
- 快速推理:在特定硬件平台上,如高通骁龙8 Elite,基于混合量化和投机采样技术,实现高速的模型推理。
- 跨平台部署:支持在多种硬件和操作系统上部署,包括但不限于Android、iOS和Windows。
GLM-Edge 的技术原理
- 预训练语言模型:GLM-Edge系列模型基于自回归语言模型,在大规模文本数据上进行预训练,学习语言的复杂结构和语义信息。
- 迁移学习:预训练完成后,模型基于迁移学习适应特定的下游任务,如对话生成、文本分类等。
- 量化技术:为在端侧设备上高效运行,GLM-Edge采用量化技术,将模型的权重和激活从浮点数转换为低精度表示,如INT4或INT8,减少模型大小和计算需求。
- 混合量化方案:结合不同的量化策略,如动态量化和静态量化,平衡模型性能和推理速度。
- 投机采样技术:预测性地执行计算,减少实际需要的计算量,提高模型的推理速度。
如何运行 GLM-Edge
安装依赖
请确保你的Python版本为3.10
或更高版本,并按照如下方式安装依赖:
pip install -r requirements.txt
模型推理
我们提供了 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 仓库:https://github.com/THUDM/GLM-Edge
- HuggingFace 模型库:
- GLM-Edge-1.5B-Chat:https://huggingface.co/THUDM/glm-edge-1.5b-chat
- GLM-Edge-4B-Chat:https://huggingface.co/THUDM/glm-edge-4b-chat
- GLM-Edge-V-2B:https://huggingface.co/THUDM/glm-edge-v-2b
- GLM-Edge-V-5B:https://huggingface.co/THUDM/glm-edge-v-5b
- 在线体验 Demo:
- GLM-Edge-1.5B-Chat:https://huggingface.co/spaces/THUDM-HF-SPACE/GLM-Edge-1.5B-Chat-Space
- GLM-Edge-V-5B:https://huggingface.co/spaces/THUDM-HF-SPACE/GLM-Edge-V-5B-Space
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦