智谱AI最新开源模型CHATGLM4-9B试用

walk walk 2024-08-20 12:31:01 阅读 75

智谱AI最近开源了GLM4-9B模型。之前已开源chatglm1到chatglm3,相比前面开源的相比GLM3-6B有了大幅度提升。本次开源基本的GLM4-9B,还开源了对话版GLM-4-9B-Chat, 多模态版GLM-4V-9B, 长文本版GLM-4-9B-Chat-1M。  在语义、数学、推理、代码和知识等多方面的数据集测评中, GLM-4-9B 及其人类偏好对齐的版本 GLM-4-9B-Chat 均表现出超越 Llama-3-8B 的卓越性能。除了能进行多轮对话,GLM-4-9B-Chat 还具备网页浏览、代码执行、自定义工具调用(Function Call)和长文本推理(支持最大 128K 上下文)等高级功能。本代模型增加了多语言支持,支持包括日语,韩语,德语在内的 26 种语言。我们还推出了支持 1M 上下文长度(约 200 万中文字符)的 GLM-4-9B-Chat-1M 模型和基于 GLM-4-9B 的多模态模型 GLM-4V-9B。GLM-4V-9B 具备 1120 * 1120 高分辨率下的中英双语多轮对话能力,在中英文综合能力、感知推理、文字识别、图表理解等多方面多模态评测中,GLM-4V-9B 表现出超越 GPT-4-turbo-2024-04-09、Gemini 1.0 Pro、Qwen-VL-Max 和 Claude 3 Opus 的卓越性能。

在一些典型任务上对 GLM-4-9B 基座模型进行的评测结果如下:

长文本版 在 1M 的上下文长度下进行大海捞针实验,结果如下:

在 LongBench-Chat 上对长文本能力进行了进一步评测,结果如下:

多模态GLM-4V-9B版的评测结果:

对话版GLM-4-9B-Chat在一些经典任务上评测结果:

工具调用能力

在 Berkeley Function Calling Leaderboard 上测试并得到以下结果:

模型运行方法可以使用transformers 或者vLLM:

使用 transformers 后端进行推理:

<code>import torch

from transformers import AutoModelForCausalLM, AutoTokenizer

device = "cuda"

tokenizer = AutoTokenizer.from_pretrained("THUDM/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",code>

return_dict=True

)

inputs = inputs.to(device)

model = AutoModelForCausalLM.from_pretrained(

"THUDM/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))

使用 vLLM进行推理:

from transformers import AutoTokenizer

from vllm import LLM, SamplingParams

# GLM-4-9B-Chat-1M

# max_model_len, tp_size = 1048576, 4

# GLM-4-9B-Chat

# 如果遇见 OOM 现象,建议减少max_model_len,或者增加tp_size

max_model_len, tp_size = 131072, 1

model_name = "THUDM/glm-4-9b-chat"

prompt = [{"role": "user", "content": "你好"}]

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,

# GLM-4-9B-Chat-1M 如果遇见 OOM 现象,建议开启下述参数

# enable_chunked_prefill=True,

# max_num_batched_tokens=8192

)

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(prompt, tokenize=False, add_generation_prompt=True)

outputs = llm.generate(prompts=inputs, sampling_params=sampling_params)

print(outputs[0].outputs[0].text)

在huggingface上体验对话:https://huggingface.co/spaces/Azure99/ChatGLM-4-9B

测试了个简单的脑筋急转弯问题,第一次答错,再次提示后答对了,所以对于大模型尽量问的细一些,这样回答也会更准确。

文章网址智谱AI最新开源模型CHATGLM4-9B试用 – AI小站 (aisites.cn)



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。