Bootstrap

清华开源语言大模型ChatGLM-6B调研

1. 综述性调研

简介

ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。
VisualGLM-6B 是一个开源的,支持图像、中文和英文的多模态对话语言模型,语言模型基于 ChatGLM-6B,具有 62 亿参数;图像部分通过训练 BLIP2-Qformer 构建起视觉模型与语言模型的桥梁,整体模型共78亿参数。


另外一个清华开源语言大模型就是VisualGLM-6B

VisualGLM-6B 依靠来自于 CogView 数据集的30M高质量中文图文对,与300M经过筛选的英文图文对进行预训练,中英文权重相同。该训练方式较好地将视觉信息对齐到ChatGLM的语义空间;之后的微调阶段,模型在长视觉问答数据上训练,以生成符合人类偏好的答案。

VisualGLM-6B 由 SwissArmyTransformer(简称sat) 库训练,这是一个支持Transformer灵活修改、训练的工具库,支持Lora、P-tuning等参数高效微调方法。本项目提供了符合用户习惯的huggingface接口,也提供了基于sat的接口。

结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4量化级别下最低只需8.7G显存)。

论文分析

GLM

已经存在各种类型的预训练体系结构,包括自动编码模型(例如BERT)、自回归模型(例如GPT)和编码器-解码器模型(例如T5)。然而,没有一个预训练框架在三个主要类别的所有任务中表现最好,包括自然语言理解(NLU)、无条件生成和条件生成。为了应对这一挑战,我们提出了一种基于自回归空白填充的通用语言模型(GLM)。GLM通过添加2D位置编码和允许任意顺序预测跨度来改进空白填充预训练,这导致在NLU任务上比BERT和T5的性能提高。同时,GLM可以通过改变空白的数量和长度来针对不同类型的任务进行预训练。在NLU、条件和无条件生成的广泛任务中,在给定相同的模型大小和数据的情况下,GLM优于BERT、T5和GPT,并且在具有1.25×BERTLarge参数的单个预训练模型中实现了最佳性能,证明了其对不同下游任务的可推广性。
0
本文[1]提出了一种基于自回归空白填充的通用语言模型(General Language Model, GLM)预训练框架。按照自动编码的思路,从输入文本中随机清空连续的标记跨度,并按照自回归预训练的思路,训练模型顺序重建跨度(见图1)。虽然在T5 (rafael et al., 2020)中已经使用了空白填充进行文本到文本的预训练,但我们提出了两个改进,即跨度变换和二维位置编码。从经验上看,在相同数量的参数和计算成本下,GLM在SuperGLUE基准上的性能明显优于BERT 4.6% - 5.0%,并且在类似大小的语料库(158GB)上进行预训练时优于RoBERTa和BART。在参数和数据较少的NLU和生成任务上,GLM也显著优于T5。受模式开发训练(PET)的启发(Schick和sch<s:1> tze, 2020a),将NLU任务重新制定为模仿人类语言的人工制作的填空问题。与PET使用的基于bert的模型不同,GLM可以通过自回归填空的方式自然地处理完形填空问题的多标记答案。
0.0

通过优化一个自回归的空白填充目标来训练GLM。给定输入文本x = [x1,···,xn],对多个文本跨度{s1,···,sm}进行采样,其中每个跨度si对应于x中一系列连续的令牌[si,1,···,si,li]。每个跨度被替换为单个[MASK]令牌,形成一个损坏的文本xcorrupt。该模型以一种自回归的方式从损坏的文本中预测跨度中缺失的标记,这意味着在预测跨度中缺失的标记时,该模型可以访问损坏的文本和先前预测的跨度。为了充分捕捉不同跨度之间的相互依赖性,我们随机排列跨度的顺序,类似于排列语言模型(Yang et al., 2019)。形式上,设Zm为长度为m的索引序列[1,2,···,m]的所有可能排列的集合,且sz<i为[sz1,···,szi−1],定义预训练目标为
在这里插入图片描述
我们总是按照从左到右的顺序在每个空格中生成令牌,即生成跨度si的概率被分解为:
在这里插入图片描述
我们用以下技术实现了自回归的空白填充目标。输入分为两部分:A部分是损坏的文本xcorrupt, B部分由屏蔽的跨度组成。A部分令牌可以相互关注,但不能关注B中的任何令牌。B部分令牌可以关注B中的A部分和先行词,但不能关注B中的任何后续令牌。为了启用自回归生成,每个跨度都用特殊的令牌[START]和[END]填充,分别用于输入和输出。通过这种方式,我们的模型在一个统一的模型中自动学习一个双向编码器(用于部分a)和一个单向解码器(用于部分B)。

GLM-130B [2]

GLM-130B与其他100b级llm和PaLM 540B的比较。(LN:层范数;FPF:浮点格式;MIP:多任务指令预训练;CN:中文)
在这里插入图片描述
GLM-130B训练不同分层规范的试验。结果表明,DeepNorm是最稳定的,因为它具有较小的梯度范数,并且在早期训练中不会出现峰值。

在这里插入图片描述
机器学习模型的架构定义了其归纳偏差。然而,已经意识到,探索llm的各种架构设计在计算上是负担不起的。我们介绍并解释了 GLM-130B 的独特设计选择。

以GLM为主干,最近的100b级llm,如GPT-3、PaLM、OPT和BLOOM,都遵循传统的gpt风格(Radford et al., 2019)的解码器自回归语言建模架构。在GLM-130B中,我们尝试探索双向glm -通用语言模型(Du et al., 2022)作为其主干的潜力。GLM是一种基于变换的语言模型,利用自回归填充空白作为其训练目标。简而言之,对于文本序列x = [x1,···,xn],从中采样文本跨度{s1,···,sm},其中每个si表示一个连续标记[si,1,···,si,li]的跨度,并用单个掩码标记替换(即损坏)以形成xcorrupt。要求模型自回归地恢复它们。为了允许损坏跨度之间的交互,它们对彼此的可见性是由它们顺序的随机抽样排列决定的。GLM在未屏蔽(即未损坏)上下文上的双向注意将GLM- 130b与使用单向注意的gpt式llm区分开来。为了支持理解和生成,它混合了两个损坏目标,每个目标由一个特殊的掩码标记表示:

  • MASK:句子中的短空白,其长度加起来等于输入的某个部分。
  • gMASK:在提供前缀上下文的句子末尾随机长度的长空白。

GLM-130B和类似规模的llm在零射击LAMBADA语言建模上的应用。Du et al.(2022)提供了GLM双向注意的详细信息
在这里插入图片描述

GLM-130B的训练稳定性

训练稳定性是GLM-130B质量的决定性因素,它也在很大程度上受到其通过令牌数量的影响(Hoffmann et al., 2022)。因此,考虑到计算使用约束,必须在浮点(FP)格式的效率和稳定性之间进行权衡:低精度FP格式(例如16位精度- fp16)提高了计算效率,但容易出现溢出和下流错误,导致训练崩溃

Mixed-Precision。我们遵循混合精度(micicikevicius et al., 2018)策略(Apex O2)的常见做法,即FP16用于向前和向后,FP32用于优化器状态和主权重,以减少GPU内存使用并提高训练效率。与OPT-175B和BLOOM-176B类似(参见附录图10),GLM-130B的训练也会因为这种选择而面临频繁的损耗峰值,并且随着训练的进行,损耗峰值会越来越频繁。与精度相关的峰值往往没有明确的原因:有些会自行恢复;另一些则预示着梯度标准突然飙升,最终出现峰值甚至NaN损失。OPT-175B试图通过手动跳过数据和调整超参数来修复;BLOOM176B通过嵌入规范技术做到了这一点(Dettmers等人,2021)。我们花了几个月的时间对峰值进行实证调查,并意识到当变压器扩大规模时出现了几个问题:首先,如果使用Pre-LN,变压器主分支的值规模在更深的层中可能非常大。这在GLM130B中通过使用基于DeepNorm的Post-LN(参见第2.1节)来解决,这使得值尺度始终是有界的。
其次,随着模型的扩大,注意力得分变得如此之大,以至于超过了FP16的范围。在法学硕士中,有几个选项可以克服这个问题。在CogView (Ding et al., 2021)中,提出了PB-Relax来去除偏差项并在注意力计算中扣除极值以避免该问题,不幸的是,这并不能帮助避免GLM-130B中的解收敛。在BLOOM-176B中,使用BF16格式代替FP16,因为它在NVIDIA安培gpu(即A100)上的值范围很广。然而,在我们的实验中,由于它在梯度积累中转换为FP32, BF16消耗的运行时GPU内存比FP16多15%,更重要的是它不支持其他GPU平台(例如NVIDIA Tesla V100),限制了生成的llm的可访问性。BLOOM-176B的另一个选择是将嵌入范数应用于BF16,但牺牲了对模型性能的重大惩罚,因为他们注意到嵌入范数会损害模型的零学习(Cf. 4.3 in (Scao et al., 2022))。

嵌入层梯度收缩(EGS)

实证研究表明,梯度范数可以作为训练崩溃的信息指标。具体地说,训练崩溃通常落后于梯度范数的“峰值”几个训练步骤。这种峰值通常是由嵌入层的异常梯度引起的,在GLM-130B的早期训练中,其梯度范数往往比其他层的梯度范数大几个数量级。此外,在早期训练中,它往往波动很大。这个问题在视觉模型(Chen et al., 2021)中通过冻结patch投影层来处理。不幸的是,我们不能冻结语言模型中嵌入层的训练。最后,嵌入层上的梯度收缩可以克服损失峰值,从而稳定GLM-130B的训练。它首先用于多模态变压器CogView (Ding et al., 2021)。设α为收缩因子,该策略可以通过word_embedding =word_embedding∗α + word_embedding.detach()∗(1−α)来实现。根据经验,图4 (b)表明,设置α = 0.1可以消除我们可能遇到的大多数峰值,延迟可以忽略不计。事实上,最后的GLM-130B训练运行只经历了三次后期损失偏离情况,尽管由于硬件故障多次失败。对于三个意想不到的峰值,进一步缩小嵌入梯度仍然可以帮助稳定GLM-130B训练。
EGS通过减小梯度尺度和方差来稳定LLM的预训练
在这里插入图片描述

RESULTS

我们遵循 GPT-3 和 PaLM 等 LLM 中的常见设置来评估英语的 GLM-130B。作为中文双语 LLM,在中文基准上也评估了 GLM-130B。GLM-130B 中零样本学习范围的讨论。由于 GLM-130B 是用 MIP 训练的,这里我们阐明了它的零样本评估范围。事实上,“零样本”似乎有争议的解释,没有社区的共识。我们遵循其中一个有影响力的相关调查(Xian et al., 2018),它说“在测试时,在零样本学习设置中,目标是将测试图像分配给一个看不见的类标签”,其中涉及看不见的类标签是关键。因此,我们推导出我们选择 GLM-130B 的零样本(和少样本)数据集的标准:
英语:

  • 对于具有固定标签(例如自然语言推理)的任务:不应评估此类任务中的数据集;

  • 对于没有固定标签的任务(例如,(多项选择)QA、主题分类):仅考虑与 MIP 中具有明显域转移的数据集。

中文: 所有数据集都可以评估,因为存在零样本跨语言迁移。

过滤测试数据集
遵循先前的实践(Brown 等人,2020;Rae 等人,2021)和我们上面提到的标准,我们过滤并避免报告潜在污染的数据集的评估结果。对于 LAMBADA 和 CLUE,我们在 13-gram 设置下发现最小重叠。
GLM-130B 在 Pile 评估(18 个子数据集)上的平均 BPB
在这里插入图片描述
沿训练步骤在 MLU(57 个任务)上的 GLM-130B
在这里插入图片描述
跨尺度的big -bench- life评估(24个任务)
在这里插入图片描述

BIGbench-lite(24 个任务)的详细信息

2. 相关背景与重点整理

相关背景

OpenAI 借助 ChatGPT 所点燃的大语言模型(LLM)之火已在全球范围内燃烧了半年有余,而在此期间,OpenAI 与微软所推出的一系列基于 GPT3.5 或 GPT4 模型的 AI 产品也纷纷在不同领域取得了亮眼的表现。

然而令人略感失望的是,作为如今 LLM 圈内绝对的领头羊,OpenAI 并没有遵从其创立初衷,无论是 ChatGPT 早期所使用的的 GPT3、GPT3.5 还是此后推出的 GPT4 模型,OpenAI 都因“暂无法保证其不被滥用”为由拒绝了对模型开源,开启了订阅付费模式。

对于大型科技企业而言,不管是出于秀肌肉还是出于商业竞争目的,自研 LLM 都是一条几乎无可避免的道路。但对于缺少算力和资金的中小企业以及希望基于 LLM 开发衍生产品的开发者来说,选择开源显然是更理想的一条路线。

在这些开源大模型中,GLM 由于效果出众而受到大众关注,而且清华大学开源了基于 GLM 架构研发的基座模型:ChatGLM-6B、GLM-130B。

截止到5月26号,ChatGLM-6B 全球下载达到200万,数百垂直领域模型和国内外应用基于该模型开发。联想、中国民航信息网络公司、360、美团都选择了 GLM-130B 作为基座模型。

  • [2023.05.28]科技部在中关村论坛上发布的《中国人工智能大模型地图研究报告》显示 ChatGLM-6B位列大模型开源影响力第一名,千亿基座 GLM-130B、代码模型 CodeGeeX、文生视频模型 CogVideo、GLM模型同时入围开源影响力前十
  • [2023.05.26]ChatGLM-6B 全球下载达到200万,数百垂直领域模型和国内外应用基于该模型开发
  • [2023.05.25]联想接入 ChatGLM-130B API 开发智能打印产品
  • [2023.05.15]中国民航信息网络公司基于接入 ChatGLM-130B API 开发航旅智能产品
  • [2023.04.25]清华研究生会基于 ChatGLM-130B 开发的【水木ChatGLM】上线,服务全校同学
  • [2023.04.24]360基于 ChatGLM-130B 联合研发千亿级大模型【360GLM】
  • [2023.04.15]值得买部署 ChatGLM-130B 私有化实例用于电商平台产品
  • [2023.04.14]美团私有化部署 ChatGLM-130B,联合研发【美团GLM】
  • [2023.04.13]ChatGLM-6B 开源30天内,全球下载量达到75万,GitHub 星标数达到1.7万
  • [2023.03.31]ChatGLM-6B 推出基于 P-Tuning-v2 的高效参数微调,最低只需7GB显存即可进行模型微调
  • [2023.03.18]ChatGLM-6B 登上 Hugging Face Trending 榜第一,持续12天
  • [2023.03.16]ChatGLM-6B 登上 GitHub Trending 榜第一
  • [2023.03.14]千亿对话模型 ChatGLM 开始内测,60亿参数 ChatGLM-6B 模型开源
  • [2023.03.10]竹间智能科技接入 ChatGLM-130B API 开发智能客服产品
大模型

NLP 任务通常分为三类:

  • NLU(文本分类、分词、句法分析、信息抽取等)
  • 有条件生成任务(seq-seq,如翻译任务、QA)
  • 无条件生成任务(用预训练模型直接生成内容)

预训练模型也分为三类,分别是:自编码自回归编码解码。三种训练模型分别在前面三种任务中表现良好。

自回归(比如 GPT):从左往右学习的模型,根据句子中前面的单词,预测下一个单词。例如,通过“LM is a typical task in natural language ____”预测单词“processing”。在长文本的生成能力很强,缺点就是单向的注意力机制在 NLU 任务中,不能完全捕捉 token 的内在联系。

自编码(比如 BERT):通过覆盖句中的单词,或者对句子做结构调整,让模型复原单词和词序,从而调节网络参数。例如,可以把 BERT 看成一种自编码器,它通过 Mask 改变了部分 Token,然后试图通过其上下文的其它Token 来恢复这些被 Mask 的 Token。自编码在语言理解相关的文本表示效果很好。缺点是不能直接用于文本生成。

编码解码(比如T5):编码器使用双向注意力,解码器使用单向注意力,并且有交叉注意力连接两者,在有条件生成任务(seq-seq)中表现良好(文本摘要,回答生成)。

这些训练框架都不足以在所有 NLP 中具有竞争力任务。以往的工作(T5)试图通过多任务学习统一不同的框架。然而,由于自编码和自回归的目标性质不同,一个简单的统一的优点不能完全继承这两个框架。

GLM 介绍

相比其它大语言模型,GLM 具有以下3个特点:

  1. 自编码,随机 MASK 输入中连续跨度的 token
  2. 自回归,基于自回归空白填充的方法重新构建跨度中的内容
  3. 2维的编码技术,来表示跨间和跨内信息

通常预训练语言模型是指利用大量无标注的文本数据,学习语言的通用知识和表示,然后在特定的下游任务上进行微调或者零样本学习。预训练语言模型在自然语言理解(NLU)和文本生成等多个任务上都取得了显著的效果提升。随着预训练语言模型的发展,模型的参数规模也不断增大,以提高模型的性能和泛化能力。

目前预训练语言模型主要有三种类型:自回归模型自编码模型编码器-解码器模型

  • 自回归模型从左到右学习语言模型,适合于长文本生成和少样本学习,但不能捕捉上下文词之间的双向依赖关系。
  • 自编码模型通过去噪目标学习双向上下文编码器,适合于自然语言理解任务,但不能直接用于文本生成。
  • 编码器-解码器模型结合了双向注意力和单向注意力,适合于有条件的生成任务,如文本摘要和回复生成。

这三类语言模型各有优缺点,但没有一种框架能够在所有的自然语言处理任务中都表现出色。一些先前的工作尝试通过多任务学习的方式,将不同框架的目标结合起来,但由于自编码和自回归目标本质上的不同,简单的结合不能充分继承两者的优势。因此,清华大学提出了一种基于自回归空白填充的通用语言模型(GLM),来解决这个挑战。GLM 通过添加二维位置编码和允许任意顺序预测空白区域,改进了空白填充预训练,在自然语言理解任务上超越了 BERT 和 T5。

GLM 从输入文本中随机挖掉一些连续的词语,然后训练模型按照一定的顺序逐个恢复这些词语。这种方法结合了自编码和自回归两种预训练方式的优点。GLM 还有两个改进点,一个是打乱空白区域的预测顺序,另一个是使用二维位置编码。实验表明,GLM 在参数量和计算成本相同的情况下,能够在 SuperGLUE 基准测试中显著超越BERT,并且在使用相似规模的语料(158GB)预训练时,能够超越 RoBERTa 和 BART。GLM 还能够在自然语言理解和生成任务上显著超越 T5,而且使用的参数和数据更少。

GLM 是基于模式利用训练(PET),将自然语言理解(NLU)任务转化为人工设计的完形填空问题,模仿人类的语言。与 PET 使用的基于 BERT 的模型不同,GLM 可以自然地处理完形填空问题中的多个词答案,通过自回归的空白填充。模式利用训练(PET)是一种半监督的训练方法,它利用模式来帮助语言模型理解给定的任务。这些模式是用自然语言写的,表示任务的语义。例如,情感分类任务可以转化为“{句子}。这真的很[MASK]”。候选标签也被映射为完形填空问题的答案,称为 verbalizer。在情感分类中,标签“正面”和“负面”被映射为单词“好”和“坏”。

重点整理

pretrain 设置

GLM 使用了与 BERT 相同的数据集和词汇表,以便与 BERT 进行公平的比较。作者还训练了多种规模的 GLM 模型,包括基于 BERTBase 和 BERTLarge 的 GLMBase 和 GLMLarge,以及更大的 GLM410M 和 GLM515M。作者还训练了一个与 RoBERTa 相同的数据集和词汇表的 GLMRoBERTa 模型,以便与最新的模型进行比较。

SuperGLUE

SuperGLUE 是一个包含 8 个难度较高的自然语言理解任务的基准。作者将这些任务转化为填空式的问题,然后用预训练的 GLM 模型来生成答案。作者选择了 T5、BART 和 RoBERTa 作为其他的对比模型。表 1 显示了各个模型在 SuperGLUE 上的结果。结果表明,GLM 在大多数任务上都优于 BERT,无论是 base 还是 large 的架构。GLM 在平均得分上也优于其他的模型,但是优势较小。作者认为 BART 的表现不佳可能是由于其编码器-解码器架构和去噪序列到序列目标的低参数效率所导致的。

多任务 pretrain

在一个训练批次中同时采样不同长度的文本跨度,来训练 GLM 适应不同类型的任务。作者训练了两个多任务模型,分别是 GLMDoc 和 GLMSent,它们与 GLMLarge 的区别在于采样的文本跨度的长度。GLMDoc 采样的是文档级的跨度,而 GLMSent 采样的是句子级的跨度。作者发现,多任务预训练会导致模型在 NLU 任务上略有下降,但仍然优于 BERTLarge 和 UniLMLarge。在多任务模型中,GLMSent 的表现优于 GLMDoc,平均提升了 1.1%。作者还发现,增加 GLMDoc 的参数量到 410M(相当于 BERTLarge 的 1.25 倍)可以使其表现优于 GLMLarge。GLM 的参数量增加到 515M(相当于 BERTLarge 的 1.5 倍)时,可以取得更好的效果。

Sequence-to-Sequence:序列到序列任务是指给定一个输入序列,生成一个输出序列,例如摘要生成和问题生成。作者使用了 Gigaword 和 SQuAD 1.1 这两个数据集来评估在 BookCorpus 和 Wikipedia 上预训练的模型,以及使用了 CNN/DailyMail 和 XSum 这两个数据集来评估在更大的语料库上预训练的模型。作者发现,GLMLarge 可以达到与其他预训练模型相当的性能。GLMSent 比 GLMLarge 表现更好,而 GLMDoc 比 GLMLarge 稍差。这表明,文档级的目标对于条件生成任务并不有利,因为条件生成任务的目的是从上下文中提取有用的信息,而不是扩展上下文。增加 GLMDoc 的参数量到 410M 可以使其在两个任务上都取得最好的性能。在更大的语料库上预训练的模型中,GLMRoBERTa 可以与 BART 这个序列到序列模型相媲美,并且超过了 T5 和 UniLMv2。

Text Infilling(文本填充):文本填充任务是指预测文本中缺失的部分,并使其与前后文相一致。GLM 是用自回归空白填充目标来训练的,因此可以直接解决这个任务。作者在 Yahoo Answers 数据集上评估了 GLM,并将其与专门为文本填充设计的 BLM(Blank Language Model)进行了比较。结果表明,GLM 在 BLEU 评分上显著优于之前的方法,并在这个数据集上达到了最先进的水平。作者还注意到,GLMDoc 在文本填充任务上略逊于 GLMLarge,这与他们在序列到序列任务上的观察一致。

Language Modeling:语言建模任务是指训练一个模型来预测文本中的下一个词。作者使用了 WikiText103 和 LAMBADA 两个数据集来评估 GLM 的性能。WikiText103 是一个基于维基百科文档构建的数据集,LAMBADA 是一个测试模型对长距离依赖的能力的数据集,要求模型预测一段文本的最后一个词。作者使用了 GPTLarge 作为基准模型,它是一个单向自回归模型。作者发现,GLM 在语言建模任务上优于GPTLarge,尤其是在使用双向注意力编码上下文时。作者还发现,2D位置编码对于生成长文本有重要作用,去掉它会降低准确率。

总的来说,GLM 是一个通用的预训练语言模型,它可以同时处理自然语言理解和生成任务,而不需要切换不同的模型架构或目标。GLM 通过自回归空白填充目标来统一不同的任务,并使用混合注意力机制和 2D 位置编码来提高模型的泛化能力。作者通过在多个数据集上的实验,证明了 GLM 比单独的 BERT、T5或 GPT 模型有更好的性能。

消融实验

消融实验是一种评估模型组件对性能影响的方法,通过逐个移除或替换模型的某些部分,来观察模型在下游任务上的表现变化。作者使用了 SuperGLUE 作为评估数据集,它包含了八个自然语言理解任务。作者与 BERT 进行了对比实验,发现 GLM 在预训练和微调阶段都有优势。作者还分析了 GLM 的不同设计选择,如空白填充目标、空白顺序、空白表示、2D 位置编码等,对模型性能的影响。作者指出,GLM 与T5有三个主要区别:(1)GLM 只有一个编码器,(2)GLM 打乱了空白的顺序,(3)GLM 只用一个 [MASK] 标记来表示不同的空白。

3. 相关开源代码与数据集

VisualGLM-B的开源代码
ChatGLM-B的开源代码
langchain-ChatGLM:基于 langchain 的 ChatGLM 应用,实现基于可扩展知识库的问答
闻达:大型语言模型调用平台,基于 ChatGLM-6B 实现了类 ChatPDF 功能
ChatGLM-6B 结合 langchain 实现本地知识库 QA Bot
lyraChatGLM: 对 ChatGLM-6B 进行推理加速,最高可以实现 9000+ tokens/s 的推理速度

4. 相关改进问题与延伸应用想法

相关改进问题

由于 ChatGLM-6B 的小规模,其能力仍然有许多局限性。以下是目前发现的一些问题:

  • 模型容量较小:6B 的小容量,决定了其相对较弱的模型记忆和语言能力。在面对许多事实性知识任务时,ChatGLM-6B 可能会生成不正确的信息;它也不擅长逻辑类问题(如数学、编程)的解答。
例子

1
2

  • 产生有害说明或有偏见的内容:ChatGLM-6B
    只是一个初步与人类意图对齐的语言模型,可能会生成有害、有偏见的内容。(内容可能具有冒犯性,此处不展示)

  • 英文能力不足:ChatGLM-6B
    训练时使用的指示/回答大部分都是中文的,仅有极小一部分英文内容。因此,如果输入英文指示,回复的质量远不如中文,甚至与中文指示下的内容矛盾,并且出现中英夹杂的情况。

  • 易被误导,对话能力较弱:ChatGLM-6B 对话能力还比较弱,而且 “自我认知”
    存在问题,并很容易被误导并产生错误的言论。例如当前版本的模型在被误导的情况下,会在自我认知上发生偏差。

例子

3
4
5

  • 图像描述事实性/模型幻觉问题。在生成图像长描述的时候,距离图像较远时,语言模型的将占主导,有一定可能根据上下文生成并不存在于图像的内容。
  • 属性错配问题。在多物体的场景中,部分物体的某些属性,经常被错误安插到其他物体上。
  • 分辨率问题。本项目使用了224*224的分辨率,也是视觉模型中最为常用的尺寸;然而为了进行更细粒度的理解,更大的分辨率和计算量是必要的。
  • 由于数据等方面原因,模型暂时不具有中文ocr的能力(英文ocr能力有一些),会在后续版本中增加这个能力。

延伸应用想法

  1. 智能客服和问答系统:
    利用大模型的自然语言处理能力,搭建智能客服系统,为用户提供更快速、更准确的答案。这种系统可以应用于各种领域,如电子商务、医疗、金融等。

  2. 智能文本编辑和写作辅助:
    提供一个工具,能够辅助人们进行文章写作、内容生成或语法纠错,从而提高写作效率和质量。

  3. 知识图谱构建和智能搜索:
    利用大模型处理海量文本数据,构建知识图谱并实现更智能、更精准的信息检索。

  4. 情感分析和舆情监控:
    运用模型对文本进行情感分析,从而帮助企业或组织监控舆情,了解公众对其产品或服务的反馈和情感倾向。

  5. 教育辅助:
    开发教育应用,为学生提供个性化的学习内容和答疑解惑服务,帮助他们更好地理解和掌握知识点。

  6. 智能编程辅助工具:
    支持开发者在编程过程中获取更智能的建议和提示,提高代码质量和开发效率。

  7. 医疗领域应用:
    支持医疗专业人员处理和分析医学文献,辅助诊断和治疗方案的制定。

  8. 跨语言交流和翻译:
    基于模型的语言理解和生成能力,支持跨语言交流和翻译服务,促进不同语言用户之间的沟通和交流。

这些只是潜在的应用方向之一,随着技术的不断发展和创新,还会有更多的领域可以利用清华开源语言大模型的能力进行延伸应用。

参考文献

[1] Du, Z., Qian, Y., Liu, X., Ding, M., Qiu, J., Yang, Z., & Tang, J. (n.d.). GLM: General Language Model Pretraining with Autoregressive Blank Infilling.
[2]Zeng, A., Liu, X., Du, Z., Wang, Z., Lai, H., Ding, M., … Tang, J. (2022). GLM-130B: An Open Bilingual Pre-trained Model.
[3]Xian, Y., Lampert, C. H., Schiele, B., & Akata, Z. (2019). Zero-Shot Learning—A Comprehensive Evaluation of the Good, the Bad and the Ugly. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2251–2265. https://doi.org/10.1109/tpami.2018.2857768
[4]Hendrycks, D., Burns, C., Basart, S., Zou, A., Mazeika, M., Song, D., & Steinhardt, J. (2020). Measuring Massive Multitask Language Understanding. Cornell University - arXiv,Cornell University - arXiv.
[5]Radford, A., Wu, J., Child, R., Luan, D., Amodei, D., & Sutskever, I. (n.d.). Language Models are Unsupervised Multitask Learners.
[6]Kwiatkowski, T., Palomaki, J., Redfield, O., Collins, M., Parikh, A., Alberti, C., … Petrov, S. (2019). Natural Questions: A Benchmark for Question Answering Research. Transactions of the Association for Computational Linguistics, 453–466. https://doi.org/10.1162/tacl_a_00276
[7]Ba, J., Kiros, J., & Hinton, GeoffreyE. (2016). Layer Normalization. arXiv: Machine Learning,arXiv: Machine Learning.
[8]Xiong, R., Yang, Y., He, D., Zheng, K., Zheng, S., Chen, X., … Liu, T.-Y. (2020). On Layer Normalization in the Transformer Architecture. arXiv: Learning,arXiv: Learning.
[9]Rae, JackW., Borgeaud, S., Cai, T., Millican, K., Hoffmann, J., Song, F., … I, I. (n.d.). Scaling Language Models: Methods, Analysis & Insights from Training Gopher.
[10]Hendrycks, D., Burns, C., Basart, S., Zou, A., Mazeika, M., Song, D., & Steinhardt, J. (2020). Measuring Massive Multitask Language Understanding. Cornell University - arXiv,Cornell University - arXiv.
[11]Raffel, C., Shazeer, N., Roberts, A., Lee, K., Narang, S., Matena, M., … Liu, PeterJ. (2019). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv: Learning,arXiv: Learning.

;