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

    浏览量

    6230
  • tensorflow
    +关注

    关注

    13

    文章

    329

    浏览量

    60537
  • 自然语言
    +关注

    关注

    1

    文章

    288

    浏览量

    13355

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

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

收藏 人收藏

    评论

    相关推荐

    如何使用Python构建LSTM神经网络模型

    : NumPy:用于数学运算。 TensorFlow:一个开源机器学习库,Keras是其高级API。 Keras:用于构建和训练深度学习模型。 你可以使用pip来安装这些库: pip
    的头像 发表于 11-13 10:10 384次阅读

    TensorFlow是什么?TensorFlow怎么用?

    TensorFlow是由Google开发的一个开源深度学习框架,它允许开发者方便地构建、训练和部署各种复杂的机器学习模型TensorFlow
    的头像 发表于 07-12 16:38 726次阅读

    使用TensorFlow进行神经网络模型更新

    使用TensorFlow进行神经网络模型的更新是一个涉及多个步骤的过程,包括模型定义、训练、评估以及根据新数据或需求进行模型微调(Fine-tuning)或重新训练。下面我将详细阐述这
    的头像 发表于 07-12 11:51 434次阅读

    PyTorch神经网络模型构建过程

    PyTorch,作为一个广泛使用的开源深度学习库,提供了丰富的工具和模块,帮助开发者构建、训练和部署神经网络模型。在神经网络模型中,输出层是尤为关键的部分,它负责将
    的头像 发表于 07-10 14:57 510次阅读

    请问ESP32如何运行TensorFlow模型

    请问ESP32如何运行TensorFlow模型
    发表于 07-09 07:30

    tensorflow简单的模型训练

    在本文中,我们将详细介绍如何使用TensorFlow进行简单的模型训练。TensorFlow是一个开源的机器学习库,广泛用于各种机器学习任务,包括图像识别、自然语言处理等。我们将从安装
    的头像 发表于 07-05 09:38 700次阅读

    keras模型tensorflow session

    在这篇文章中,我们将讨论如何将Keras模型转换为TensorFlow session。 Keras和TensorFlow简介 Keras是一个高级神经网络API,它提供了一种简单、快速的方式
    的头像 发表于 07-05 09:36 552次阅读

    如何使用Tensorflow保存或加载模型

    TensorFlow是一个广泛使用的开源机器学习库,它提供了丰富的API构建和训练各种深度学习模型。在
    的头像 发表于 07-04 13:07 1567次阅读

    如何在TensorFlow构建并训练CNN模型

    TensorFlow构建并训练一个卷积神经网络(CNN)模型是一个涉及多个步骤的过程,包括数据预处理、模型设计、编译、训练以及评估。下面,我将详细阐述这些步骤,并附上一个完整的代码
    的头像 发表于 07-04 11:47 961次阅读

    TensorFlow的定义和使用方法

    数据流图,从而简化机器学习模型构建、训练和部署。自2015年11月开源以来,TensorFlow迅速成为数据科学家、软件开发者以及教育工作者广泛使用的工具,广泛应用于图像识别、自然语
    的头像 发表于 07-02 14:14 798次阅读

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

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

    谷歌发布最先进的开放模型Gemma

    在 Google,我们致力于让 AI 助力每个人。长期以来,我们对开放社区的创新贡献了许多成果,如 Transformers、TensorFlowBERT、T5、JAX、AlphaFold
    的头像 发表于 02-23 10:12 628次阅读
    谷歌发布最先进的开放<b class='flag-5'>模型</b>Gemma

    谷歌大型模型终于开放源代码,迟到但重要的开源战略

    在人工智能领域,谷歌可以算是开源的鼻祖。今天几乎所有的大语言模型,都基于谷歌在 2017 年发布的 Transformer 论文;谷歌的发布的 BERT、T5,都是最早的一批开源 AI
    发表于 02-22 18:14 447次阅读
    谷歌大型<b class='flag-5'>模型</b>终于开放源代码,迟到但重要的<b class='flag-5'>开源</b>战略

    基于TensorFlow和Keras的图像识别

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

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

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