赞
踩
GLM-4-9B 是智谱 AI 推出的最新一代预训练模型 GLM-4 系列中的开源版本。
在语义、数学、推理、代码和知识等多方面的数据集测评中, 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 的卓越性能。
Github:https://github.com/THUDM/GLM-4
huggingface:https://huggingface.co/collections/THUDM/glm-4-665fcf188c414b03c2f7e3b7
GLM-4-9B 的能力掠影
技术要学会分享、交流,不建议闭门造车。一个人可以走的很快、一堆人可以走的更远。
成立了GLM大模型技术交流群,相关资料、技术交流&答疑,均可加我们的交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。
方式①、微信搜索公众号:机器学习社区,后台回复:加群
方式②、添加微信号:mlc2040,备注:来自CSDN + 技术交流
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",
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))
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
from transformers import AutoTokenizer
from vllm import LLM, SamplingParams
# 如果遇见 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)
import torch
from PIL import Image
from transformers import AutoModelForCausalLM, AutoTokenizer
device = "cuda"
tokenizer = AutoTokenizer.from_pretrained("THUDM/glm-4v-9b", trust_remote_code=True)
query = '描述这张图片'
image = Image.open("your image").convert('RGB')
inputs = tokenizer.apply_chat_template([{"role": "user", "image": image, "content": query}],
add_generation_prompt=True, tokenize=True, return_tensors="pt",
return_dict=True) # chat mode
inputs = inputs.to(device)
model = AutoModelForCausalLM.from_pretrained(
"THUDM/glm-4v-9b",
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]))
基于强大的预训练基座,GLM-4-9B 的模型中英文综合性能相比 ChatGLM3-6B 提升了 40%,尤其是在中文对齐能力 AlignBench,指令遵从 IFeval,工程代码 Natural Code Bench 方面都取得了非常显著的提升。对比训练量更多的 Llama 3 8B 模型也没有逊色,英文方面有小幅领先,中文学科方面更是有着高达 50% 的提升。
GLM-4-9B 模型的上下文从 128K 扩展到了 1M tokens,这意味着模型能同时处理 200 万字的输入,大概相当于 2 本红楼梦或者 125 篇论文的长度。
GLM-4-9B-Chat-1M 模型在 1M 的上下文长度下进行了“大海捞针”实验,展现出了出色的无损处理能力。
GLM-4-9B 支持包括汉语、英语、俄语、西班牙语、德语、法语、意大利语、葡萄牙语、波兰语、日语、荷兰语、阿拉伯语、土耳其语、捷克语、越南语、波斯语、匈牙利语、希腊语、罗马尼亚语、瑞典语、乌克兰语、芬兰语、韩语、丹麦语、保加利亚语和挪威语在内的 26 种语言。
为了提升性能,我们将 tokenizer 的词表大小从 65k 扩充到了 150k,这一改进使得编码效率提高了 30%。在多语言能力方面,我们在六个不同的多语言理解和生成数据集上进行了测试,结果显示 GLM-4-9B-Chat 显著超越 Llama-3-8B-Instruct。具体评测结果如下:
ChatGLM3-6B 模型的函数调用一直广受各大开发者喜爱。GLM-4-9B 模型的函数调用能力更是迎来了巨大的升级,相比上一代提升了 40%,在 Berkeley Function-Calling Leaderboard 上,GLM-4-9B 模型的 Function Call 能力与 GPT-4 不相上下。
“All Tools”即模型能够理解和使用一系列外部工具(比如代码执行、联网浏览、画图、文件操作、数据库查询、API 调用等)来辅助回答问题或完成任务。
在 1 月 16 日的 Zhipu DevDay 上,GLM-4 模型全线升级了 All Tools 能力,模型可以智能调用网页浏览器、代码解释器、CogView 来完成用户的复杂请求。
在强化文本能力的同时,我们首次推出了基于GLM基座的开源多模态模型GLM-4V-9B。这一模型采用了与CogVLM2相似的架构设计,能够处理高达1120 x 1120分辨率的输入,并通过降采样技术有效减少了token的开销。为了减小部署与计算开销,GLM-4V-9B没有引入额外的视觉专家模块,采用了直接混合文本和图片数据的方式进行训练,在保持文本性能的同时提升多模态能力。
在性能方面,GLM-4V-9B模型展现了显著的优势。尽管其参数量仅为13B,但它成功地超越了许多参数量更大的开源模型。在众多任务中,GLM-4V-9B的性能与GPT-4V不相上下。
以下两个 demo 展示了 GLM-4-9B 多模态能力。
在第一个示例中,我们要求模型识别一件T恤上的公式印花。模型准确地识别出这是麦克斯韦方程组,并且当我们进一步追问关于麦克斯韦方程组的细节时,模型能够依靠其文本处理能力给出回答。这一过程证明了我们在引入多模态功能的同时,并未牺牲模型的文本处理能力。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。