首页 > 传媒 > 关键词 > 谷歌最新资讯 > 正文

谷歌 BERT 在环信 NLP 中的应用

2019-07-05 16:34 · 稿源:站长之家用户投稿

 Google 的 BERT 模型一经发布便点燃了 NLP 各界的欢腾,Google Brain 的资深研究科学家 Thang Luong 曾给出其“开启了 NLP 新时代”的高度定义,国内外许多公司及开发者对其进行了研究及应用,本文作者及其团队对 BERT 进行了应用探索。

  随着 Google 推出的 BERT 模型在多种 NLP 任务上取得 SOTA,NLP 技术真正进入了大规模应用阶段,环信一直致力于帮助企业应用先进的AI技术提高生产效率,对于 BERT 的探索我们一直走在了行业前列。

1562227404434002.jpg

  训练模型

  训练数据

  训练其他模型时我们已经标注了大量的训练数据,主要把相似句对分为三类来标注:

  不相似(0)、相关(0.5)、相似(1)

  所以,训练 BERT 模型时就可以“拿来主义”了。

  模型修改

  我们的主要应用点是相似度计算,期望模型返回的结果是一个概率(分值)而不是每个类别的概率。当然如果模型给的结果是每一个类别的概率,依然可以通过加权求和输出一个分值,但这样是不是又复杂了。

  所以我们在官方代码上做了点小的修改(将最后的 softmax 改为了 sigmoid)使得模型输出是一个分值,这个分值也就是我们要的相似度了。

  模型训练

  我们使用之前标注的数据集在 GeForce GTX 1070 上训练(Fine-Tune),大概训练了 8 个小时左右。

  模型导出

  模型训练完会产生几个 Checkpoint,这些 Checkpoint 是不能直接在工程中使用的,需要导出成 PB 文件,可以使用 Estimator 的 export_savedmodel 方法导出。

  模型使用

  通过调研,主要有两种方式:

  Java JNI:基于我们的 GPU 编译[1]一个合适的 libtensorflow 和libtensorflow_jni_gpu(如果你的配置和官方一致就不需要自己编译 了,自己编译太多坑,这里有一份经过验证的编译环境配置[2])打成 jar 包并加入到工程依赖,使用 TensorFlow 提供的 Java API 加载 BERT 模型,在你的 Java 工程中使用[3]。

  Docker + Nvidia-docker + Tensorflow Serving:需要一个合适的 Tensorlfow Serving 的 image,这里有一份官方做好的 image 列表[4],当然你也可以自己做一个。

  这两种方式各有优缺点,我们主要考虑以下几个方面:

  性能:我们对两种方案做了实验,Tensorflow Serving 是 C++ 写成的服务,对于 batch 做过优化[6],性能优于 Java JNI。

  多模型支持能力:方案 2 是支持多模型的,也就是多个模型共用一个 GPU,方案 1 不支持。

  简单好部署:两种方案都不复杂。

  与现有服务开发和运维体系兼容性:方案 1 更有优势。

  另外,方案 2 不仅支持多模型还支持多版本、模型的冷启动和热加载。综合考虑下,我们使用了方案 2 进行模型部署。

  效果对比

  我们用一些典型客户的数据构建了测试环境,抽取这些客户的真实访客数据,对现有模型和 BERT 模型做了对比实验,BERT 模型的效果相比于对照模型提高了超过 10%。

  调用图

  这是我们的调用时序图:

1562227428262581.png

  FAQ 服务->相似度计算服务:句子 1 和 句子 2 相似度是多少 ?

  相似度计算服务->TensorflowServing: 句子 1 和 句子 2 相似度是多少 ?

  Note right of TensorflowServing: bert 模型预测

  TensorflowServing->相似度计算服务: 句子 1 和 句子 2 相似度是 xx

  相似度计算服务->FAQ 服务: 句子 1 和 句子 2 相似度是 xx

  这里抽象出一个相似度计算服务,是因为我们集成了多种相似度计算方法。

  优化

  后处理

  这种模型的一个主要问题是:模型并不能完美解决所有问题,时不时总会有 bad case 出现。一旦模型上线,如果有问题我们无法及时解决(训练模型和上线都会消耗大量时间)。为此我们增加了后处理,以便于我们的训练师能够及时干预,解决问题。

  预训练

  BERT 预训练的模型使用的数据来源于维基百科,与我们的主要应用场景不一致。我们可以猜想如果在 BERT 原有 Pre-Training 模型的基础上,使用客服里的数据再次进行 Pre-Training 应该会更好,事实上我们也的确这样做了。结论是影响不大,可能是数据不够多,新的训练实验还在进行中。

  数据标注

  GPT 2.0 的出现再次证明了要想得到好的模型,不仅要有数据量,还要提高数据的品质。我们新的标注也在进行中,相信会对模型效果有所提高。

  其他应用

  我们在产品中还提供了意图识别的服务,意图识别服务要求必须能够在线训练。如果直接使用 BERT 来做意图识别,很难满足在线训练的要求(BERT 训练太慢了)。为此我们使用了简单的模型来支持在线训练,并把 Fine-tune 模型的倒数第二层作为特征,增强意图识别的效果。

  BERT 的近邻

  最近 Google 又携 XLnet 屠榜了,从实验效果看对比 BERT 确实有比较大的提升,我们也在关注中,实验的小手已经蠢蠢欲动了。如果在我们的场景实验效果好的话,相信我们环信的客户很快便会体验到。

  [1]: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/java/README.md

  [2]: https://www.tensorflow.org/install/source#tested_build_configurations

  [3]: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/java/README.md

  [4]: https://hub.docker.com/r/tensorflow/serving/tags

  [5]: https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/building_with_docker.md

  [6]: https://github.com/tensorflow/serving/tree/master/tensorflow_serving/batching

  [7]: https://www.tensorflow.org/tfx/serving/serving_config

  [8]: https://arxiv.org/abs/1906.08237

  作者简介:董文涛,环信人工智能研发中心算法工程师,负责环信中文语义分析开放平台和环信智能机器人的设计与研发。

免责声明:“站长之家”的传媒资讯页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与我们联系删除或处理。稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性,更不对您的投资构成建议。我们不鼓励任何形式的投资行为、购买使用行为。

  • 相关推荐
  • 大家在看
  • 谷歌版后浪发布!谷歌CEO说每代人都会低估下一代

    6 月 8 日谷歌CEO桑达尔·皮查伊在YouTube在线毕业典礼上发表演讲时提到,每代人都会低估下一代人的潜力,下一代人或许也会对上一代人不耐烦。皮查伊鼓励毕业生保持开放心态、保持不耐烦、充满希望,才有机会改变一切。

  • 谷歌Pixel 4a通过FCC认证:别急这次真的是快要发布了

    ​作为谷歌的“亲儿子”,Pixel系列手机今年还没有新品发布。此前在网络上爆料不断的Pixel 4a,由于疫情的影响发布时间一再推迟。近日据外媒报道,谷歌Pixel 4a已经通过了美国FCC的认证,看来距离发布真的不远了。

  • 谷歌商店出现bug:Pixel手机集体缺货不能下单

    6月25日消息,据外媒报道,谷歌在线商店出现bug,Pixel手机集体缺货不能下单。谷歌在线商店页面显示,Pixel 4系列和Pixelbook Go的购买按钮为灰色,不能下单,状态显示为“unavailable&r

  • OPPO 加入 OpenChain,与谷歌微软共建开源许可标准

    据外媒彭博新闻社 10 日报道,2020 年 5 月 27 日,OPPO 正式成为内地首家OpenChain 白金会员,与谷歌、微软、ARM等行业领军企业一起,参与开源许可标准的制定,共建更加健康的全球开源体系。 OpenChain 作为 Linux 基金会下的项目,旨在制定开源软件供应链标准,帮助各种组织更高效地解决开源许可证一致性地问题。通过 OpenChain 认证后,开源许可流程将更为轻松。目前 ARM、微软、谷歌、高通等各领域巨头纷纷加入 OpenChain,为

  • 谷歌Pixel 4a通过FCC认证:这次可能真的要来了

    6月29日消息,作为谷歌的“亲儿子”,近年来Pixel系列机型的地位着实尴尬。尤其作为旗下最新中端机型的Pixel 4a,在原计划5月份的I/O大会被取消后被延期到了6月份的Android 11 Beta发布会,不过随后由于疫情的原因再度被延迟现在有最新消息。现在有最新消息,近日有外媒发布最新报道称,该机已经通过了美国FCC的认证,似乎这次距离发布真的不远了。根据外媒最新晒出的认证信息显示,全新的谷歌Pixel 4a已经通过了美国FC

  • 除域名外,谷歌Chrome 85将隐藏详细的URL地址

    谷歌正加紧实施新的计划,以在Chrome中隐藏除域名以外的所有URL地址。据外媒报道,Chrome的Dev和Canary 通道(V85)中出现了一些新的特性标志,它们修改了地址栏中网址的外观和行为。

  • 谷歌删除了25个窃取Facebook证书恶意安卓应用

    本月,谷歌应用商店已经删除了 25 个窃取Facebook证书的Android应用程序,这些应用下载量总计超过了 234 万次。据悉,这些恶意程序是由同一个威胁组织开发的,尽管提供不同的功能,但它们的工作原理是一样的。

  • eMarketer预计谷歌美国广告收入将下降5.3%

    eMarketer发布数据显示,受新冠疫情影响,谷歌的广告业务将下降5.3%。eMarketer在报告中表示,这是2008年以来谷歌广告收入的首次下降。其原因主要是因为旅游公司受疫情打击较大,从而导致投放减少。旅游行业的广告收入一直是谷歌广告收入的重要组成部分。不久前,谷歌旗下的Youtube开始允许点击视频广告直接接入到品牌商售卖商品的页面中,以增加在线购物的引流。Youtube方面表示,发现消费

  • 谷歌下架快手海外应用Zynn 因涉嫌盗传TikTok视频

    据Wired报道,近日,快手在海外推出的短视频应用Zynn已被谷歌从应用商店下架。一些知名的TikTok用户举报称他们的内容未经同意就被上传到了Zynn。其中,部分网红表示他们的账户遭到Zynn的全面克隆,包括姓名、图片和近期的短视频内容。

  • 谷歌Pixel尝鲜!Android 11 Beta 1发布

    6月11日消息,谷歌正式推出Android 11 Beta 1。当前谷歌Pixel 2、Pixel 2 XL、Pixel 3、Pixel 3 XL、Pixel 3a、Pixel 3a XL、Pixel 4、Pixel 4 XL等机型可以尝鲜Android 11 Beta 1。对话通知

  • Android 12曝光:谷歌欲全面抛弃对32位的支持

    因为32位的固有限制,不少主流操作系统已经切换到64位环境,比如iOS 11、macOS Catalina等,Windows 10也自v2004版本开始停止向OEM分发32位系统。下面,该Android了。据开发者爆料,Android

  • 继Edge之后 谷歌将减少Chrome在Win10上的内存占用

    对于一款市占比超过60%份额的浏览器来说,谷歌仍然在不遗余力的优化Chrome,这确实是个好消息。据外媒报道称,Chrome程序员Bruce Dawson也在其公司的浏览器中添加了一个补丁,从而让Chrome可以

  • 共奏音乐:谷歌推Chrome实验应用Shared Piano

    据外媒报道,谷歌推出了一项名为Shared Piano(共享钢琴)的Chrome新实验,它可以让多人同时弹奏一架数码钢琴。这些音调将被记录下来并以彩色列的形式呈现出来。谷歌希望能实现一个人演奏歌曲的一部分另一个人可以演奏另一部分--或如果一位演奏者有一个“房间”的演奏者,每个人都可以为最终的杰作做出贡献。

  • 谷歌意外推送Android 11 Beta更新,新功能泄露

    据Android Police 消息,谷歌日前已推迟原定于本周举行的 Android 11 Beta 发布活动,但有少数用户的 Pixel 4 XL 手机上提前收到了 Android 11 Beta 更新,于是一些新功能被泄露出来

  • 谷歌证实已收购加拿大AR眼镜制造商North

    【TechWeb】7月1日消息,据国外媒体报道,当地时周二,谷歌证实,它已经收购了加拿大增强现实(AR)眼镜制造商North。该公司并未披露收购价格,但此前的报道显示收购价在1.8亿美元左右。此前,外媒曾报道称,谷歌母公司Alphabet正在就以1.8亿美元价格收购North进行深入谈判,该公司将此次收购视为以最少的投入或现金重新进入消费者智能眼镜市场的简单途径。与此同时,North还宣布,将逐步停产Focals 1.0 AR眼镜,且升级版Focals 2

  • 谷歌推出Android新功能:“呼叫验证”可减少垃圾电话

    据外媒PhoneArena消息,谷歌开发出了一项新的Android功能——“呼叫验证”,该功能可以帮助用户确定是否需要接听电话。

  • 谷歌将对图片进行事实核查 以遏制虚假信息传播

    为了遏制平台上虚假信息的传播,谷歌本周一表示将对谷歌图片搜索结果进行事实检查。那些误导性、深度伪造的图片、视频的虚假信息危害性往往比文本内容更大。目前,各大科技公司也正努力解决平台上猖獗传播错误信息的问题。

  • 分析师认为苹果应该收购DuckDuckGo搜索引擎 以向谷歌施压

    伯恩斯坦公司(Bernstein)分析师Toni Sacconaghi在分享的一份研究报告中表示,苹果应该收购一家搜索引擎公司,向谷歌施加压力。

  • 谷歌回应下架印度“卸载中国应用”APP:违反公司政策

    印度“卸载中国应用”App凤凰网科技讯 北京时间6月3日消息,谷歌公司发言人周三表示,印度一键 “卸载中国应用”App违反了公司政策,已经被下架。谷歌发言人证实,“卸载中国应用”App因为违反了公司的应用商店政策被下架,但没有给出更多细节。知情人士称,谷歌的政策禁止应用误导用户删除或禁用第三方应用,或者修改设备设置或功能,而“卸载中国应用”App违反了这一政策,因此被下架。“卸载中国应用”App开发商OneTouch AppLab

  • 安卓手机新功能对标苹果AirDrop 谷歌开发NearbyShare

    近日,有外媒报道称,谷歌已经为Android开发了一个类似于Airdrop的文件共享功能“Nearby Share”,可支持附近的Android设备之间快速无线传输文件。据悉谷歌文件显示,该共享服务可在Windows、macOS、Linux乃至Chrome OS的PC上运行。

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议

热文

  • 3 天
  • 7天