GLM4 Models
GLM 4 智谱 AI 模型,在语义、数学、推理、代码、知识等数据集的评测中,该模型都展现出了超越 Llama 3 8B 的优异表现。
GLM 4 模型包含了多语言支持,支持日文、韩文、德文等 26 种语言。
可以从以下网址下载本文中使用的预训练模型 OneDrive or Tsinghua-Cloud.
Name | Params | Language | Corpus | Objective | File | Config |
---|---|---|---|---|---|---|
GLM-Base | 110M | English | Wiki+Book | Token | glm-base-blank.tar.bz2 | model_blocklm_base.sh |
GLM-Large | 335M | English | Wiki+Book | Token | glm-large-blank.tar.bz2 | model_blocklm_large.sh |
GLM-Large-Chinese | 335M | Chinese | WuDaoCorpora | Token+Sent+Doc | glm-large-chinese.tar.bz2 | model_blocklm_large_chinese.sh |
GLM-Doc | 335M | English | Wiki+Book | Token+Doc | glm-large-generation.tar.bz2 | model_blocklm_large_generation.sh |
GLM-410M | 410M | English | Wiki+Book | Token+Doc | glm-1.25-generation.tar.bz2 | model_blocklm_1.25_generation.sh |
GLM-515M | 515M | English | Wiki+Book | Token+Doc | glm-1.5-generation.tar.bz2 | model_blocklm_1.5_generation.sh |
GLM-RoBERTa | 335M | English | RoBERTa | Token | glm-roberta-large-blank.tar.bz2 | model_blocklm_roberta_large.sh |
GLM-2B | 2B | English | Pile | Token+Sent+Doc | glm-2b.tar.bz2 | model_blocklm_2B.sh |
GLM-10B | 10B | English | Pile | Token+Sent+Doc | Download | model_blocklm_10B.sh |
GLM-10B-Chinese | 10B | Chinese | WuDaoCorpora | Token+Sent+Doc | Download | model_blocklm_10B_chinese.sh |
请安装 transformers>=4.23.1 并在此处查找所有可用模型。
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM tokenizer = AutoTokenizer.from_pretrained("THUDM/glm-10b", trust_remote_code=True) model = AutoModelForSeq2SeqLM.from_pretrained("THUDM/glm-10b", trust_remote_code=True) model = model.half().cuda() model.eval() # Inference inputs = tokenizer("Ng is an adjunct professor at [MASK] (formerly associate professor and Director of its Stanford AI Lab or SAIL ). Also a pioneer in online education, Ng co-founded Coursera and deeplearning.ai.", return_tensors="pt") inputs = tokenizer.build_inputs_for_generation(inputs, max_gen_length=512) inputs = inputs.to('cuda') outputs = model.generate(**inputs, max_length=512, eos_token_id=tokenizer.eop_token_id) print(tokenizer.decode(outputs[0].tolist())) # Training inputs = tokenizer( ["Tsinghua University is located in [MASK].", "One minus one equals zero, is it correct? Answer: [MASK]"], return_tensors="pt", padding=True) inputs = tokenizer.build_inputs_for_generation(inputs, targets=["Beijing", "No"], max_gen_length=8, padding=False) inputs = inputs.to('cuda') outputs = model(**inputs) loss = outputs.loss logits = outputs.logits