谷歌开源的自然言语处理技术再获高分,准确度超过人类!

图灵汇官网

Google近日对外发布了其最新研发的自然语言预训练技术BERT(Bidirectional Encoder Representations from Transformers),允许用户利用云端TPU或GPU快速训练问答系统及其他类型模型。此版本的BERT基于TensorFlow构建,不仅提供了源代码,还包含了一些预先训练的语言表示模型。

自然语言处理领域面临的一个主要挑战是缺乏足够的训练数据。Google指出,尽管自然语言处理涵盖了许多不同的任务,但大多数特定任务的数据集通常只包含几千到几十万个标注样本。然而,基于现代深度学习技术的自然语言处理需要数百万甚至数十亿的标注样本才能取得理想效果。

鉴于获取如此大规模训练数据的难度,预训练技术应运而生。这种技术利用网络上的大量未标注文本来训练通用语言表示模型,随后再用少量特定领域的标注数据对模型进行微调,从而显著提升模型性能。预训练技术可分为基于上下文和非基于上下文两种类型。无上下文模型如word2vec或GloVe,为每个词汇生成单一嵌入表示,而上下文模型则根据句子中的其他词语动态调整词汇表示。例如,“银行”这个词在无上下文模型中可能对应“账户”或“河岸”,但在上下文模型中则取决于其所在的句子。

BERT采用了预训练上下文表示方法,结合了半监督序列学习、生成式预训练及ELMo和ULMFit等技术。它是首个深度双向、无监督的语言表示模型,仅依靠纯文本数据库进行预训练。在上述例子中,BERT的双向上下文模型会考虑句子中“银行”前后的内容,即“我存取过”和“账户”,来确定“银行”的含义。Google从神经网络的基础层开始,使其具备双向处理能力。

尽管双向上下文模型功能强大,但其训练过程较为复杂。单向模型只需预测句子中某个词前一个词即可有效训练,而双向模型则需同时考虑词前后的上下文信息。为此,Google采用了一种直观的方法,即随机屏蔽部分输入词,并双向预测被遮盖的词。这种方法虽然早已存在,但BERT首次成功将其应用于深度神经网络的训练。

为了验证BERT的效果,Google将其与其他先进的自然语言处理系统进行了比较。结果显示,BERT在斯坦福问答数据集SQuAD v1.1中取得了93.2%的准确率,超过了此前的最佳成绩91.6%,且接近人类水平的91.2%。

此外,Google开源了BERT项目,使用户能够利用云端TPU在约30分钟内或借助单个GPU在数小时内训练出先进的问答系统。得益于云端TPU的支持,Google得以更快地进行实验和模型调整,这对开发新型预训练技术至关重要。此次发布的BERT项目基于TensorFlow构建,不仅方便自然语言处理研究人员快速上手,还提供了一系列预训练模型,帮助用户在较短时间内完成各类自然语言任务的微调。目前,发布的BERT模型仅支持英语,未来还将推出更多语种的预训练模型。

本文来源: 图灵汇 文章作者: 自广