GLM

用于自然语言理解和生成的通用预训练框架
授权协议 MIT
开发语言 Python SHELL
所属分类 神经网络/人工智能、 机器学习/深度学习
软件类型 开源软件
地区 国产
投 递 者 封永嘉
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

GLM (General Language Model) 是清华大学推出的一种使用自回归填空目标进行预训练的通用语言模型,可以针对各种自然语言理解和生成任务进行微调。

GLM 通过添加 2D 位置编码并允许以任意顺序预测跨度来改进空白填充预训练,从而在 NLU 任务上获得优于 BERT 和 T5 的性能。同时,GLM 可以通过改变空白的数量和长度对不同类型的任务进行预训练。在横跨 NLU、条件和无条件生成的广泛任务上,GLM 在给定相同的模型大小和数据的情况下优于 BERT、T5 和 GPT,并从单一的预训练模型中获得了 1.25 倍 BERT Large 参数的最佳性能,表明其对不同下游任务的通用性。

关于 GLM 的详细描述可参考论文 GLM: General Language Model Pretraining with Autoregressive Blank Infilling (ACL 2022)

ChatGLM-6B 就是在 GLM 框架的基础上为中文 QA 和对话进行了优化。

预训练模型

可以从 OneDrive 或 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

将下载的文件解压到本地文件夹中,并在相应的脚本中设置CHECKPOINT_PATH为文件夹路径。

结果

SuperGLUE

验证集、单模型、单任务微调

Model COPA WSC RTE WiC CB MultiRC BoolQ ReCoRD
GLM-10B 98.0 95.2 93.1 75.7 98.7/98.2 88.1/63.3 88.7 94.4/94.0
DeBERTa-XXLarge-v2 97.0 - 93.5 - - 87.8/63.6 88.3 94.1/93.7

Seq2Seq

CNN/Daily Mail (test set,没有使用额外的数据)

Model ROUGE-1 ROUGE-2 ROUGE-L
GLM-10B 44.7 21.4 41.4
T5-11B 43.5 21.6 40.7
PEGASUS-Large 44.2 21.5 41.4
BART-Large 44.2 21.3 40.9

XSum (test set,没有使用额外的数据)

Model ROUGE-1 ROUGE-2 ROUGE-L
GLM-10B 48.9 25.7 40.4
PEGASUS-Large 47.2 24.6 39.3
BART-Large 45.1 22.3 37.3

Language Modeling

测试集,零样本

Model LAMBADA (accuracy) Wikitext103 (perplexity)
GLM-10B (bi) 72.35 11.33
GLM-10B (uni) 67.18 12.22
GPT-2 52.66 17.48
Megatron-LM (8.3B) 66.51 10.81
Turing-NLG 67.98 10.21
  • GLEW是一个基于OpenGL图形接口的跨平台的C++扩展库。GLEW能自动识别当前平台所支持的全部OpenGL高级扩展涵数。只要包含glew.h头文件,就能使用gl,glu,glext,wgl,glx的全部函数。GLEW支持目前流行的各种操作系统。 官方解释如下:GLEW is an open-source cross-platform extension loading library wit

  • 对于glm模型summary()输出的汇总结果,如何解读是非常重要的,它直接影响得出的结论。 例如下面这样一个输出结果,该如何理解呢? Call: glm(formula = bl ~ I, family = gaussian,data = anaData) Deviance Residuals:    Min       1Q   Median      3Q      Max   -62.36

  • 问题:无法打开包括文件:“glm/glm.hpp”, 文件中包含 “glm/glm.hpp” 报错,但是可以打开文件            在工程中包含了glm 文件夹 解决方案: 在项目属性中包含 ./glm 和 $(ProjectDir)

  • 矩阵必须用单位矩阵初始化,否则不会显示出图像 glm::mat4 transform=glm::mat4(1.0f); 以下的transform代表先平移后旋转,和定义的顺序是相反的 transform = glm::rotate(transform, (GLfloat)glfwGetTime() * 10.0f, glm::vec3(0.0f, 0.0f, 1.0f)); transform

 相关资料
  • 询问项目: 预训练数据清洗流程 爬虫数据来源 数据挖掘流程 继续预训练策略选择 评测集是怎么合成的 数据配比对模型能力的提升 大模型与小模型之间的scaling law 图文模型怎么收集数据,怎么制作评测集,怎么数据增强 八股问了 1F1B的流程,解决了dreampipe什么问题 microbatch的意义 空泡时间怎么算 zero123的区别 如果是3D并行zero最多开多少,如果开到2会怎么样

  • 本文向大家介绍基于pytorch 预训练的词向量用法详解,包括了基于pytorch 预训练的词向量用法详解的使用技巧和注意事项,需要的朋友参考一下 如何在pytorch中使用word2vec训练好的词向量 这个方法是在pytorch中将词向量和词对应起来的一个方法. 一般情况下,如果我们直接使用下面的这种: 这种情况下, 因为没有指定训练好的词向量, 所以embedding会帮咱们生成一个随机的词

  • 在本章中,我们以第六章和第七章讨论的序列建模概念为基础,将它们扩展到序列到序列建模的领域,其中模型以一个序列作为输入,并产生另一个可能不同长度的序列作为输出。序列对序列问题的例子随处可见。例如,给定一封电子邮件,我们可能希望预测响应。给出一个法语句子,预测它的英语翻译。或者,给定一篇文章,写一篇摘要。我们还讨论了序列模型的结构变体,特别是双向模型。为了最大限度地利用序列表示,我们介绍了注意机制并对

  • 主要内容 前言 课程列表 推荐学习路线 数学基础初级 程序语言能力 机器学习简介 自然语言学习初级 数学和机器学习知识补充 自然语言处理中级 自然语言处理专项领域学习 前言 我们要求把这些课程的所有Notes,Slides以及作者强烈推荐的论文看懂看明白,并完成所有的老师布置的习题,而推荐的书籍是不做要求的,如果有些书籍是需要看完的,我们会进行额外的说明。 课程列表 课程 机构 参考书 Notes

  • 本书旨在介绍如何通过Python和NLTK实现自然语言处理。本书包括三个模块。模块1介绍文本挖掘/NLP任务中所需的所有预处理步骤,包括文本的整理和清洗、词性标注、对文本的结构进行语法分析、文本的分类等。 模块2讲述如何使用Python 3的NLTK 3进行文本处理,包括标记文本、替换和校正单词、创建自定义语料库、词性标注、提取组块、文本分类等。模块3讨论了如何通过Python掌握自然语言处理,包

  • 我正在启动一个以情绪分析为中心的项目。具体来说,我们将对Twitter、Facebook、YouTube和其他社交网络数据进行情绪分析。 我知道Apache的OpenNLP。它看起来很棒,但我认为它对于我想做的事情来说有点重量级,除了它对Hadoop等的依赖。我以前没有使用过它,我对它的评估可能是错误的。 我在这个网站的其他地方看到过斯坦福NLP。我似乎无法从这个图书馆得到一个好的起点;一种教程。

  • 知识图谱 接口: nlp_ownthink 目标地址: https://ownthink.com/ 描述: 获取思知-知识图谱的接口, 以此来查询知识图谱数据 限量: 单次返回查询的数据结果 输入参数 名称 类型 必选 描述 word str Y word="人工智能" indicator str Y indicator="entity"; Please refer Indicator Info

  • PyTorch 自然语言处理(Natural Language Processing with PyTorch 中文版)