GLM4模型開源,意料之中的尺寸,意料之外的效果
今天智譜開了GLM-4-9B的模型,不是6B,是9B。
一共開源了四個(gè)模型,Base版本模型(GLM-4-9B)、Chat版本模型(GLM-4-9B-Chat和GLM-4-9B-Chat-1M)和多模態(tài)模型(GLM-4V-9B-Chat)。
其中,模型為多語(yǔ)言模型除了支持中文、英文之外,還支持日語(yǔ),韓語(yǔ),德語(yǔ)在內(nèi)的26種語(yǔ)言;Chat系列模型支持網(wǎng)頁(yè)瀏覽、代碼執(zhí)行、自定義工具調(diào)用(Function Call)的能力;GLM-4V-9B模型支持中英雙語(yǔ)多輪對(duì)話能力。
Github: https://github.com/THUDM/GLM-4
HF: https://huggingface.co/collections/THUDM/glm-4-665fcf188c414b03c2f7e3b7
模型說(shuō)明
GLM-4-9B模型的結(jié)構(gòu)與GLM-3-6B模型結(jié)構(gòu)一致,主要修改為模型層數(shù)、詞表大小、支持更長(zhǎng)的上下文。
- 詞表由65024增加到151552;
- 模型層數(shù)由28增加到40;
- 最大長(zhǎng)度之前的32K、128K到128K、1M。
模型的License還是免費(fèi)學(xué)術(shù)研究、商業(yè)需要登記,但必須遵守相關(guān)條款和條件,與GLM3一致。
效果說(shuō)明
效果一句話總結(jié),全面領(lǐng)先Llama-3-8B模型,全面領(lǐng)先上一代ChatGLM3-6B模型。(這讓我更加期待過(guò)兩天即將開源的Qwen2系列模型的效果啦,開源真的越來(lái)越好了)
下面效果來(lái)自于官方Github效果截圖。
在Base和Chat模型上,GLM-4-9B均優(yōu)于Llama-3-8B模型。
Base
Chat
1M模型上進(jìn)行大海撈針,效果全綠。
工具調(diào)用上,也是優(yōu)于Llama-3-8B模型。
最后是GLM-4V-9B多模態(tài)模型效果,全面領(lǐng)先前一陣爆火的面壁MiniCPM-Llama3-V2.5多模態(tài)模型(畢竟斯坦福都來(lái)抄)。
現(xiàn)在這些榜單的效果雖然可以展現(xiàn)出來(lái)一定能力,但我還是更相信對(duì)戰(zhàn)榜單,后面不知道lmsys上會(huì)不會(huì)有GLM-4-9B-Chat的效果,真實(shí)場(chǎng)景中PK一把,看看誰(shuí)弱誰(shuí)強(qiáng)。
快速調(diào)用
直接transformers走起,以GLM-4-9B-Chat模型為例。
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": 5}
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))
