0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何通过开源的 TensorFlow.js BERT 模型来构建应用

Tensorflowers 来源:TensorFlow 作者: Philip Bayer;Ping 2020-10-21 10:59 次阅读

文 / 创意技术专家 Philip Bayer;软件工程师 Ping Yu 和开发技术推广工程师 Jason Mayes

在探索 BERT 针对语言的有益用例时,我们发现了许多令人兴奋的研究。我们想知道:如果我们可以让您更方便地在网络浏览器中使用 BERT,将会怎么样?这将实现哪些可能的有趣用例?

在 Google 中搜索提出类似于“自由女神像有多高?”的问题,并从网络中得到答案(305 英尺)很容易。但是,还没有办法可以轻松针对具体内容(例如,新闻报道、研究论文或文章)用自然语言提问。您或许可以尝试使用浏览器中的“在网页中查找”这一搜索功能 (CTRL + F),但此功能依赖于字词的直接匹配(通过搜索的关键字进行匹配)。那么,输入一个完整的问题而不是要查找的关键字,期待页面上能够突出显示答案,会不会更易实现?

为了探索这一想法,我们使用 MobileBERT 问答模型制作了 Chrome 扩展程序的原型,可以在浏览网页时提出任何问题。通过 TensorFlow.js ,该扩展程序会根据页面内容返回答案。模型完全在设备端的浏览器会话中运行,因此,无需向服务器发送内容,这样可以保护隐私。

MobileBERT 问答模型
https://github.com/tensorflow/tfjs-models/tree/master/qna

本文将介绍我们的早期试验,并分享我们的发现,阐述如何通过开源的 TensorFlow.js BERT 模型来构建此类应用。探索示例很有帮助,在一些示例中,我们得到了所需的答案,而在一些示例中,我们没有得到所期待的结果。这让我们得以了解模型的潜力及其当前限制。我们希望这些示例可以帮助所有人都参与进来,并让每个人都能思考机器学习可以怎样为语言提供帮助。

TensorFlow.js BERT 模型
https://github.com/tensorflow/tfjs-models/tree/master/qna

△ 使用 Chrome 扩展程序,问一个有关文章的问题,并得到答案

我们的发现

以下是我们获得了有用答案的一些结果:

介绍螃蟹(链接见文末)- 问题:“How do they move?”答案:“Crabs typically walk sideways”

产品照明灯介绍页- 问题:“Can it get wet?”答案:“submersion in up to 1m of water for 30min”

某汽车测评 - 问题:“Gas mileage”答案:“19 miles per gallon in the city”

介绍木质摩天楼 - 问题:“How tall is it”答案:“280 feet in height”

千层面配方介绍 - 问题:“How long in the oven”答案:“25 minutes”

在一些示例中,模型没有返回我们期待的答案,但探索这些示例一样有趣。以下是我们找到的几个示例:

某产品介绍页 - 问题:“What is the pitcher made of?”返回的答案是“Ice mode pulses at staggered intervals to uniformly crush a pitcher of ice in seconds”,而不是“BPA-free polycarbonate pitcher”

某文章 - 问题:“Were the sharks real?”返回的文字是“sharks! sharks”,但问到相关问题“How did the sharks work?”时,给出的答案较为有用:“mechanical sharks often malfunctioned”

机器学习模型的工作原理

MobileBERT 问答模型可用于构建一套可用自然语言来回答用户问题的系统。模型使用预训练的 BERT 模型创建,后者基于 SQuAD 1.1 (Stanford Question Answering Dataset) 进行了微调。这是一种预训练语言表征的新方法,语言表示可以在各种自然语言处理 (NLP) 任务中获取最前沿 (SOTA) 的结果。

MobileBERT 问答模型
https://github.com/tensorflow/tfjs-models/tree/master/qna

BERT 模型
https://github.com/google-research/bert

我们很高兴地宣布,此模型现在可以在 TensorFlow.js 中供您的用例使用。MobileBERT 模型是一个紧凑型 BERT 变体,可以部署到资源有限的设备上。

TensorFlow.js 中
https://tensorflow.google.cn/js/models/

该模型将段落和问题作为输入,然后返回一段最有可能回答问题的段落。由于我们使用的是 TensorFlow.js,所有操作均在客户端的网络浏览器中进行。这意味着,用户隐私可以得到保护,不会将您的检索文本发送到服务器。

TensorFlow.js
https://tensorflow.google.cn/js

TensorFlow.js BERT API

该模型使用起来超级简单。请看下面的代码段:

正如您看到的,前两行用于从托管脚本中加载 TensorFlow.js 库和 Q&A(问答)模型,因此,我们可以执行问答搜索。这只需要调用一次 - 模型位于内存中时,将保持加载状态。然后,我们可以重复调用 findAnswers(),向其传递两个字符串。第一个字符串是用户要提出的问题,第二个字符串是我们想要用来进行搜索的文字(例如,页面上的文字)。之后,我们将返回 results 对象,其结构如下所示:

[ { text: string, score: number, startIndex: number, endIndex: number } ]

您将获得一组对象,表示可以最好地解答问题的段落的各个部分,同时还会获得一个分数,表示回答正确的置信度。另外,我们还会得到答案文字的索引,便于定位答案文字在上下文字符串中的位置。这就是全部内容!借助此数据,您现在可以突出显示找到的文字,返回一些较丰富的结果,或实现一些创造性的应用。


如果您想自己尝试 MobileBERT 问答模型,我们很高兴地告诉您,该模型现已开放源代码,您可以在我们的 GitHub 仓库中找到它。如果您实现了一些有趣应用,请与我们分享,我们期待看到有更多丰富的应用与创意!

GitHub
https://github.com/tensorflow/tfjs-models/tree/master/qna

分享
http://services.google.cn/fb/forms/TFCS/?channel=wechat

如果您想详细了解 本文提及 的相关内容,请参阅以下文档。这些文档深入探讨了这篇文章中提及的许多主题:

介绍螃蟹
https://en.wikipedia.org/wiki/Crab

某产品页介绍照明灯
https://www.rei.com/rei-garage/product/167000/black-diamond-spot-headlamp

某汽车测评
https://www.autotrader.com/car-reviews/2020-infiniti-q60-review-281474979991514

介绍木质摩天楼
https://www.cnn.com/style/article/wooden-skyscraper-revolution-timber/index.html

千层面配方介绍
https://www.allrecipes.com/recipe/23600/worlds-best-lasagna/?internalSource=hub%20recipe&referringContentType=Search

某产品介绍页
https://www.bedbathandbeyond.com/store/product/kitchenaid-reg-5-speed-diamond-blender/3242409

某文章
https://en.wikipedia.org/wiki/Jaws_(film)

责任编辑:xj

原文标题:用 TensorFlow.js 探索 BERT 在浏览器中的趣味实践

文章出处:【微信公众号:TensorFlow】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 网络浏览器
    +关注

    关注

    0

    文章

    10

    浏览量

    6194
  • tensorflow
    +关注

    关注

    13

    文章

    313

    浏览量

    60244
  • 自然语言
    +关注

    关注

    1

    文章

    271

    浏览量

    13208

原文标题:用 TensorFlow.js 探索 BERT 在浏览器中的趣味实践

文章出处:【微信号:tensorflowers,微信公众号:Tensorflowers】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    谷歌模型框架是什么软件?谷歌模型框架怎么用?

    谷歌模型框架通常指的是谷歌开发的用于机器学习和人工智能的软件框架,其中最著名的是TensorFlowTensorFlow是一个开源的机器学习框架,由谷歌的机器学习团队开发,用于
    的头像 发表于 03-01 16:25 245次阅读

    基于TensorFlow和Keras的图像识别

    ,让我们先花点时间来了解一些术语。TensorFlow/KerasTensorFlow是GoogleBrain团队创建的一个Python开源库,它包含许多算法和模型
    的头像 发表于 01-13 08:27 382次阅读
    基于<b class='flag-5'>TensorFlow</b>和Keras的图像识别

    如何使用TensorFlow构建机器学习模型

    在这篇文章中,我将逐步讲解如何使用 TensorFlow 创建一个简单的机器学习模型
    的头像 发表于 01-08 09:25 362次阅读
    如何使用<b class='flag-5'>TensorFlow</b><b class='flag-5'>构建</b>机器学习<b class='flag-5'>模型</b>

    模型数据集:构建、挑战与未来趋势

    随着深度学习技术的快速发展,大型预训练模型如GPT-4、BERT等在各个领域取得了显著的成功。这些大模型背后的关键之一是庞大的数据集,为模型提供了丰富的知识和信息。本文将探讨大
    的头像 发表于 12-06 15:28 638次阅读

    基于BERT算法搭建一个问答搜索引擎

    学习的新手发现BERT模型并不好搭建,上手难度很高,普通人可能要研究几天才能勉强搭建出一个模型。 没关系,今天我们介绍的这个模块,能让你在3分钟内基于BERT算法搭建一个问答搜索引擎。
    的头像 发表于 10-30 11:46 351次阅读
    基于<b class='flag-5'>BERT</b>算法搭建一个问答搜索引擎

    如何用BMlang搭建Tensorflow模型

    在EVM1684上如何用BMlang搭建一个Tensorflow模型,求助官方一个demo。
    发表于 09-18 07:00

    开源三方库】bignumber.js:一个大数数学库

    OpenHarmony系统上可重复使用的软件组件,可帮助开发者快速开发OpenHarmony应用。如果是发布到开源社区,称为开源三方库,开发者可以通过访问开源社区获取。接下来我们来了
    的头像 发表于 08-18 21:05 470次阅读

    TFllite模型的格式简介

    ;quot;运算,得到最终输出。 所以需要搞明白模型怎么解析,这篇讲TFllite模型的格式以及它的解析。 1 TFLite格式简介 Tflite文件由Tensorflow提供的TOCO工具生成的轻量级
    发表于 08-18 07:01

    深度学习框架tensorflow介绍

    TensorFlow可以用于各种不同的任务,包括图像和语音识别、自然语言处理和推荐系统等。 TensorFlow提供了一个灵活和强大的平台,可以用于构建和训练各种深度学习模型
    的头像 发表于 08-17 16:11 1480次阅读

    为什么无法使用POT优化Tensorflow (TF)或MXNet模型

    无法使用 POT 优化 Tensorflow (TF) 或 MXNet 模型,以便在 英特尔凌动® 平台上使用 OpenVINO™ 工具套件进行推理。 运行 pot -h。 接收错误消息: 非法指令例外
    发表于 08-15 08:05

    TensorFlow将神经网络量化为8位

    使用CoreML量化工具优化模型以进行部署。查看34T苹果开发者34Twebsite了解更多更新。 请注意,目前无法在iOS上通过CoreML部署8位量化TensorFlow模型。但是
    发表于 08-10 06:01

    如何使用TensorFlow将神经网络模型部署到移动或嵌入式设备上

    有很多方法可以将经过训练的神经网络模型部署到移动或嵌入式设备上。不同的框架在各种平台上支持Arm,包括TensorFlow、PyTorch、Caffe2、MxNet和CNTK,如Android
    发表于 08-02 06:43

    CNN到底是怎么回事?

    它用TensorFlow.js加载了一个10层的预训练模型,相当于在你的浏览器上跑一个CNN模型,只需要打开电脑,就能了解CNN究竟是怎么回事。
    的头像 发表于 06-28 14:47 3354次阅读
    CNN到底是怎么回事?

    PyTorch教程-15.9。预训练 BERT 的数据集

    实验室在 SageMaker Studio Lab 中打开笔记本 为了预训练第 15.8 节中实现的 BERT 模型,我们需要以理想的格式生成数据集,以促进两项预训练任务:掩码语言建模和下一句预测
    的头像 发表于 06-05 15:44 551次阅读

    如何使用pycoral、tensorflow-lite和edgetpu构建核心最小图像?

    如果您能告诉我们如何使用 pycoral、tensorflow-lite 和 edgetpu 构建核心最小图像,我们将不胜感激。
    发表于 06-05 10:53