大规模语言模型,微信版,来了!
并且甫一登场,就没藏着掖着:
论文、API 接口、在线试玩网站…… 一条龙全都齐备。
续写文本、阅读理解等常规任务就不说了,这个名叫 WeLM 的 AI,竟然直接让我和李白跨时空聊起了杜甫:
我:现在有一首关于你的歌,其中一句歌词是「要是能重来,我要选李白」,请问你自己有什么看法?
李白:我要选杜甫。
这还不算完,WeLM 甚至还治好了我不会聊天的毛病,分分钟教会我如何高情商说话。
这么一个 AI,参数量不算大,目前处于百亿水平。
但值得关注的是,实验结果显示,它在 18 个中文语言任务里,效果堪比参数量是其 25 倍的模型。
是不是有点手痒想上手一试了?先奉上链接,咱们再仔细说说,这波微信是怎么做到的。
体验链接:https://WeLM.weixin.qq.com/ docs / playground/
API 接口:https://welm.weixin.qq.com/ docs / api/
论文地址:https://arxiv.org/ abs / 2209.10372
「学富五车」的大模型
微信语言大模型 WeLM,全名 Well-Read Language Model,也就是「学富五车的语言模型」。
在翻译任务上,WeLM 不光可以做到基本的,甚至三语夹杂也难不倒它。
在文本续写任务上,只需给出开头就能生成适应不同风格的文本。
这种多语言、多任务能力是怎么做到的?
其实 WeLM 与著名的 GPT-3 是同类,都是自回归解码器结构,微信团队选择这种结构就是看中其在海量数据中掌握无穷范式的能力。
在具体实现方法上,WeLM 还有两项特色。
一是采用 RoPE 相对位置编码,与传统的固定位置编码相比能更好处理长文本,比如理解整篇文章甚至整本书。
二是使用 62k 个 token 的 SentencePiece 并保留其中的空格和 Tab,这样更有利于下游任务。
使用这些方法,WeLM 总共设计了从 13 亿到 100 亿参数的三个版本,可按需调用。
其中 100 亿参数的满血版 WeLM 在 14 项中文任务中整体表现超过同大小的模型,甚至在零样本任务上超过比它大 25 倍的模型。
这其中最大的秘诀就是精心准备的高质量训练数据上充分训练,也就是「学富五车」的含义所在。
高质量训练数据包括从 Common Crawl 下载的近两年中文网页、大量书籍、新闻、论坛数据和学术论文。
收集到的数据总量超过 10TB,其中包含 750G 英文数据,中文中夹杂的英日韩语为了语义连贯也全部保留。
不过这还不算完,需要经过清洗、去重等一系列步骤才能算得上是高质量数据。
首先是去除噪声和脏数据,结合使用规则和模型检测后,超过 87% 的数据被过滤。
再利用 SimHash 算法去重,进一步过滤掉 40% 的数据。
接下来要去除一切和测评相关的数据,保证公平性,以 17-gram 为检测重复粒度再次过滤了 0.15% 的数据。
一系列处理后留下的数据量为 262B tokens,最后再对这些数据进行不同比重的采样,使数据平滑分布在各个话题上。
对于预训练,团队认为当今多数大模型的训练都不够充分,WeLM 100 亿参数版的训练量基本与 1750 亿的 GPT-3 相当(300B tokens),在 128 张 A100 上训练用了大概 24 天时间。
为了保证训练效率,WeLM 在训练过程中还使用了完全可原地复现的形式,不管发生任何问题都能从最近的 checkpoint 恢复。
自 1750 亿参数的 GPT-3 之后,语言模型规模越来越大,到今年谷歌的 PaLM 已经达到 5400 亿,中文大模型同样有这个趋势。
可以看出微信团队选择了另一条路线,以高质量训练数据和高效训练做到「四两拨千斤」的效果。
到这一步 WeLM 已经有了不错的表现,不过接下来这个步骤再次将其零样本泛化能力提到新的高度。
研究团队针对 76 个数据集各人工撰写 10-20 个 Prompt,将原任务中的文本关系的标签和输入信息转化成流畅通顺的自然语言形式,更符合自回归语言模型的训练形式。
使用这些 Prompt 对模型微调后,相当于让模型学会了面对多样的 Prompt 该做什么。如果遇到相似 Prompt 形式的全新任务,也可以有更稳定的表现。
实验证明,在全量数据上微调后的模型在新的 NLP 任务上具备更优秀的零样本迁移能力,同时也使得微调变为一项一劳永逸的工作。
最后,研究团队还测试了 WeLM 的三个额外能力。
通过提供示例,WeLM 可以对自己的决策作出解释,不过这种能力不太稳定,还需要进一步探索。
通过简单提问,WeLM 可以对结果进行自我纠正和检查能力,为后续提高性能提供了可能方向。
WeLM 还表现出一定的记忆能力,如果输入内容完美匹配前文,即使内容很长、出现频次很低,模型依然可以准确的生成剩下的部分。
最后再来总结一下,WeLM 精通中文的同时掌握英日韩等多种外语、可以通过少样本或零样本学习执行全新任务,同时以合理尺寸做到与 25 倍参数量的模型相媲美使用成本较低,总之就是奔着实用性和大规模落地去的。
同步开放在线体验与 API,也是希望有想法的开发者能方便的用起来,让 WeLM 大模型真正实用的工具。
WeLM 怎么用
具体来说,WeLM 线上 Demo 目前释出的功能包括:对话-采访、阅读理解、翻译、改写、续写以及自由任务。
在正式开始跟 WeLM 玩耍之前,记得要先给模型扔一段简单的「范文」,也就是「prompt」。
在线网站会给出一些默认的 prompt,你也可以自行修改设计。需要遵循的设计原则是:
第一,描述清楚;第二,例子具备代表性(多个例子更好)。
以文本分类任务为例,prompt 应该长这样:
其中的技巧包括,首先,把分类任务用自然语言清晰地表达出来,在上面这个示例中,「微博」即为输入,「类别」即为输出。
其次,在第一句的指令型描述中,需要把可能的分类结果都列出来。
最后,如果效果不佳,可以尝试加入更多例子,让 WeLM 更清楚你到底想要做怎样的任务。
另外,正如前文所说,WeLM 拥有零样本学习能力。
所以直接把它当作问答搜索引擎来用,也不是不行(手动狗头)。
如果你还想得到更多样化的生成结果,token 数量、temperature 等参数均可调整。
更重要的一点是,WeLM 已开放 API 接口 。也就是说,如果身为开发者的你想在自己的 App 里用上这个大模型,填写调查问卷注册即可。
One More Thing
说起来,这样的大模型要是真的落地应用了,妈妈岂不是再也不用担心我因为不会聊天而母胎 solo ?
比如说……
你还有什么有趣的脑洞?大胆招呼起来~
本文来自微信公众号:量子位 (ID:QbitAI),作者:鱼羊 梦晨