7. DIET in Rasa

在 Rasa 1.8 发布后,Rasa 的研究团队发布了一种适用于 NLU 的轻量级多任务的新架构transformer:双重意图和实体Transformer(DIET)。

在本文中,将介绍 DIET 的功能,以及如何在 Rasa 中使用它来获得比以往更高的准确性。 Rasa 在论文中证明该体系结构对当前的最新技术进行了改进,性能优于 BERT 的微调,并且训练速度快了六倍。

一、DIET 是什么

DIET是一种多任务transformer体系结构,可同时处理意图分类和实体识别。 它提供了即插即用各种预训练embeddings的功能,例如BERT,GloVe,ConveRT等。 在Rasa的实验中,没有一组embeddings在不同数据集上始终是最好的。 因此,模块化体系结构尤为重要。


DIET

二、为什么使用 DIET

大规模的预训练语言模型对于构建对话式AI应用程序的开发人员而言并不理想。而 DIET 之所以与众不同,是因为:

  • 它是一种模块化体系结构,适合典型的软件开发工作流程;
  • 在准确性和性能方面,能达到大规模预训练语言模型的效果;
  • 改进了现有技术,胜过目前的SOTA,并且训练速度提高了6倍。

大规模的预训练语言模型在诸如GLUE和SuperGLUE的语言理解基准上已显示出令人鼓舞的结果,尤其是与其他预训练方法例如GloVe和有监督方法相比,显示出了很大的改进。 由于这些embeddings都是在大型自然语言文本语料库上进行训练的,因此它们能够很好地概括各种任务。

DIET 的作者曾经帮助构建了一个help desk assistant,该助手可以自动进行对话和可重复的IT流程。在构建过程中,将 BERT 集成在了里面,因为当时 BERT 和其他主流语言模型在各种 NLP 任务上均取得了最佳性能。 BERT 在解决某些问题的同时,也提出了新的挑战:这真的很慢,需要GPU来训练。

大型模型往往需要大量计算和训练,并且对于想要构建可以快速进行训练和迭代的强大 AI 助手的软件开发人员来说,存在着实际的挑战。此外,如果要构建多语种的 AI 助手,那么在不进行大规模预训练的情况下达到高水平的性能就非常重要,因为大多数预训练的模型都是以英文文本进行训练的。

在 DIET 之前,Rasa 的 NLU 管道使用词袋模型,每条用户消息有一个特征向量。这已经是一个快速而难以逾越的基准,但 DIET 已经超越了它。

DIET 使用了考虑单词顺序的序列模型,从而提供了更好的性能,具有即插即用的模块化架构。例如,可以使用 DIET 进行意图分类和实体提取,还可以执行单个任务,例如,将其配置为关闭意图分类并对其进行训练,仅用于实体提取。


high level illustration of DIET

DIET 不仅训练速度相当快,而且在性能上与大规模的预训练语言模型相当,并且优于微调的 BERT。

三、如何使用 DIET

为了使用新的 DIET 体系结构进行意图分类和实体提取,需要将 DIETClassifier 组件添加到 NLU 管道配置文件中。
这是调用rasa init时创建的配置文件。

language: en
pipeline:
  - name: WhitespaceTokenizer
  - name: RegexFeaturizer
  - name: LexicalSyntacticFeaturizer
  - name: CountVectorsFeaturizer
  - name: CountVectorsFeaturizer
    analyzer: "char_wb"
    min_ngram: 1
    max_ngram: 4
  - name: DIETClassifier
    epochs: 100
  - name: EntitySynonymMapper
  - name: ResponseSelector
    epochs: 100

DIETClassifier 依赖于两类特征提取器-密集特征提取器和稀疏特征提取器

  • ConveRTFeaturizer 是使用 ConveRT 模型的密集型 featurizer 的示例。 LanguageModelFeaturizer 是使用预先训练的语言模型(例如BERT)的密集 featurizer 的另一个示例。
  • CountVectorsFeaturizer 是稀疏特征提取器的一个示例。可以将其配置为使用单词或字符 n-gram。 LexicalSyntacticFeaturizer 是稀疏 featurize r的另一个示例。它使用给定用户消息中每个 token 上的滑动窗口创建用于实体提取的特征。可以配置 LexicalSyntacticFeaturizer 组件以指定要提取的词汇和句法特征的类型。

此外可以使用各种超参数对 DIETClassife r进行微调:可以通过指定 transformer 的大小,transformer 层的数量,要使用的注意力头数等来配置神经网络的体系结构。

Rasa 专门出了几期 video 来讲解 DIET 这个模型,有需要的可以看看。
另外,还有一个 DIET Interactive Demo:光标放在对应模块上可以显示出该模块的参数

DIET Interactive Demo

图中两层的 Transformer 实际是 Transformer 的 Encoder 部分

这里有DIET论文的中文翻译:DIET:Dual Intent and Entity Transformer——RASA论文翻译
大多数情况下没有必要再额外实现一个 Betr 的分类器,毕竟 DIET 中 Transformer 的各种参数是可以自己设置的,增加层数,增加维度都可以通过设置参数实现。

DIETClassifier
transformer_size | 256 | Number of units in transformer
number_of_transformer_layers | 2 | Number of transformer layers.
number_of_attention_heads | 4 | Number of attention heads in transformer
batch_size | [64, 256] | Initial and final value for batch sizes. Batch size will be linearly increased for each epoch. If constant batch_size is required, pass an int, e.g. 8

以上~
谢谢大家~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335