智谱AI GLM4开源!快速上手体验

目录

前言

在线体验

模型链接及下载

模型推理

[使用Transformers 大语言模型推理代码](#使用Transformers 大语言模型推理代码)

多模态模型推理代码

使用vLLM推理

前言

GLM-4-9B 是智谱 AI 推出的最新一代预训练模型 GLM-4 系列中的开源版本。 在语义、数学、推理、代码和知识等多方面的数据集测评中,GLM-4-9B 及其人类偏好对齐的版本 GLM-4-9B-Chat 均表现出较高的性能。GLM-4-9B 模型具备了更强大的推理性能、更长的上下文处理能力、多语言、多模态和 All Tools 等突出能力。GLM-4-9B 系列模型包括:基础版本 GLM-4-9B(8K)、对话版本 GLM-4-9B-Chat(128K)、超长上下文版本 GLM-4-9B-Chat-1M(1M)和多模态版本 GLM-4V-9B-Chat(8K)。

如下为GLM-4-9B-Chat模型的经典任务评测结果:

在线体验

魔搭社区使用自研开源的推理加速引擎dash-infer也转换了模型格式,支持在CPU上运行,并搭建了体验链接

魔搭社区汇聚各领域最先进的机器学习模型,提供模型探索体验、推理、训练、部署和应用的一站式服务。https://modelscope.cn/studios/dash-infer/GLM-4-Chat-DashInfer-Demo同时创空间体验也支持vLLM推理,体验链接:

魔搭社区汇聚各领域最先进的机器学习模型,提供模型探索体验、推理、训练、部署和应用的一站式服务。https://modelscope.cn/studios/ZhipuAI/glm-4-9b-chat-vllm/summary

效果体验

语义创作:

数学:

<计算题>

<应用题>

推理:

模型链接及下载

GLM-4-9B-Chat

模型链接:

https://modelscope.cn/models/ZhipuAI/glm-4-9b-chat/summary

GLM-4-9B-Chat-1M

模型链接:

https://modelscope.cn/models/ZhipuAI/glm-4-9b-chat-1m/summary

glm-4-9b

模型链接:

https://modelscope.cn/models/ZhipuAI/glm-4-9b/summary

glm-4v-9b

模型链接:

https://modelscope.cn/models/ZhipuAI/glm-4v-9b/summary

模型weights下载

复制代码
from modelscope import snapshot_download
model_dir = snapshot_download("ZhipuAI/glm-4-9b-chat")

模型推理

使用Transformers 大语言模型推理代码

复制代码
import torch
from modelscope import AutoModelForCausalLM, AutoTokenizer

device = "cuda"

tokenizer = AutoTokenizer.from_pretrained("ZhipuAI/glm-4-9b-chat",trust_remote_code=True)

query = "你好"

inputs = tokenizer.apply_chat_template([{"role": "user", "content": query}],
                                       add_generation_prompt=True,
                                       tokenize=True,
                                       return_tensors="pt",
                                       return_dict=True
                                       )

inputs = inputs.to(device)
model = AutoModelForCausalLM.from_pretrained(
    "ZhipuAI/glm-4-9b-chat",
    torch_dtype=torch.bfloat16,
    low_cpu_mem_usage=True,
    trust_remote_code=True
).to(device).eval()

gen_kwargs = {"max_length": 2500, "do_sample": True, "top_k": 1}
with torch.no_grad():
    outputs = model.generate(**inputs, **gen_kwargs)
    outputs = outputs[:, inputs['input_ids'].shape[1]:]
    print(tokenizer.decode(outputs[0], skip_special_tokens=True))

显存占用:

多模态模型推理代码

复制代码
import torch
from PIL import Image
from modelscope import AutoModelForCausalLM, AutoTokenizer

device = "cuda"

tokenizer = AutoTokenizer.from_pretrained("ZhipuAI/glm-4v-9b", trust_remote_code=True)

query = '这样图片里面有几朵花?'
image = Image.open("/mnt/workspace/玫瑰.jpeg").convert('RGB')
inputs = tokenizer.apply_chat_template([{"role": "user", "image": image, "content": "这样图片里面有几朵花?"}],
                                       add_generation_prompt=True, tokenize=True, return_tensors="pt",
                                       return_dict=True)  # chat mode

inputs = inputs.to(device)
model = AutoModelForCausalLM.from_pretrained(
    "ZhipuAI/glm-4v-9b",
    torch_dtype=torch.bfloat16,
    low_cpu_mem_usage=True,
    trust_remote_code=True
).to(device).eval()

gen_kwargs = {"max_length": 500, "do_sample": True, "top_k": 1}
with torch.no_grad():
    outputs = model.generate(**inputs, **gen_kwargs)
    outputs = outputs[:, inputs['input_ids'].shape[1]:]
    print(tokenizer.decode(outputs[0]))

使用vLLM推理

复制代码
from modelscope import AutoTokenizer
from vllm import LLM, SamplingParams
from modelscope import snapshot_download
# GLM-4-9B-Chat
max_model_len, tp_size = 131072, 1
model_name = snapshot_download("ZhipuAI/glm-4-9b-chat")
prompt = '你好'

tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
llm = LLM(
    model=model_name,
    tensor_parallel_size=tp_size,
    max_model_len=max_model_len,
    trust_remote_code=True,
    enforce_eager=True,
)
stop_token_ids = [151329, 151336, 151338]
sampling_params = SamplingParams(temperature=0.95, max_tokens=1024, stop_token_ids=stop_token_ids)

inputs = tokenizer.apply_chat_template([{'role': 'user', 'content': prompt}], add_generation_prompt=True)[0]
outputs = llm.generate(prompt_token_ids=[inputs], sampling_params=sampling_params)

generated_text = [output.outputs[0].text for output in outputs]
print(generated_text)
相关推荐
Elastic 中国社区官方博客几秒前
在 ES|QL 中的混合搜索和多阶段检索
大数据·人工智能·sql·elasticsearch·搜索引擎·ai·全文检索
偶信科技3 分钟前
ADCP钛合金材质如何提升设备的耐用性?偶信科技 3.5kg钛合金ADCP成为新宠儿
人工智能·科技·材质·偶信科技·ocean·海洋仪器·adcp
视界先声4 分钟前
中商旅游一卡通——打造国内惠民旅游领先平台
大数据·人工智能
小咖自动剪辑5 分钟前
小咖批量剪辑助手:视频批量自动剪辑与混剪处理软件(Windows)
人工智能·实时互动·音视频·语音识别·视频编解码
hkNaruto5 分钟前
【AI】AI学习笔记:MCP 核心三角色指南:基于 OpenAI 的架构解析
人工智能·笔记·学习
四川极客创想科技6 分钟前
智慧旅游平台项目概要与核心功能全景解析
人工智能·数据分析·团队开发·旅游·风景
reesn7 分钟前
模型转ONNX流程指南
人工智能·语言模型
是Dream呀10 分钟前
从课程入坑到玩转昇腾:昇腾 310 系列平台下 Qwen2.5-7B 大模型训练实践
人工智能·鲲鹏·昇腾
杜子不疼.11 分钟前
NSP 新范式实战:AI 世界模型构建与物理规律建模指南
人工智能
AI架构师易筋11 分钟前
多模态 LLM 与本地多模态检索 PoC:从原理到工程落地(图片 / 视频关键帧 / LaTeX 公式)
人工智能·llm·多模态·多模态llm