【大模型】 智谱 AI 的 GLM-4 来了,26 种语言支持,最高支持 1M 上下文长度(约 200 万中文字符)

szZack 2024-07-18 12:31:01 阅读 90

【大模型】 智谱 AI 的 GLM-4 来了,26 种语言支持,最高支持 1M 上下文长度(约 200 万中文字符)

模型介绍运行模型使用 transformers 后端进行推理:使用 VLLM后端进行推理:

下载开源协议

模型介绍

GLM-4-9B-Chat-1M

GLM-4-9B 是智谱 AI 推出的最新一代预训练模型 GLM-4 系列中的开源版本。 在语义、数学、推理、代码和知识等多方面的数据集测评中,GLM-4-9B 及其人类偏好对齐的版本 GLM-4-9B-Chat 均表现出较高的性能。

GLM-4-9B-Chat 还具备网页浏览、代码执行、自定义工具调用(Function Call)和长文本推理(支持最大 128K 上下文)等高级功能。

模型增加了多语言支持,支持包括日语,韩语,德语在内的 26 种语言。

还推出了支持 1M 上下文长度(约 200 万中文字符)的模型。

运行模型

使用 transformers 后端进行推理:

<code>import torch

from transformers import AutoModelForCausalLM, AutoTokenizer

device = "cuda"

tokenizer = AutoTokenizer.from_pretrained("THUDM/glm-4-9b-chat-1m",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-1m",

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

max_model_len, tp_size = 131072, 1

model_name = "THUDM/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,

# 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.build_chat_input(prompt, history=None, role='user')['input_ids'].tolist()code>

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

generated_text = [output.outputs[0].text for output in outputs]

print(generated_text)

下载

model_id: THUDM/glm-4-9b-chat-1m

下载地址:https://hf-mirror.com/THUDM/glm-4-9b-chat-1m 不需要翻墙

开源协议

查看LICENSE



声明

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