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

    浏览量

    6357
  • tensorflow
    +关注

    关注

    13

    文章

    336

    浏览量

    62369
  • 自然语言
    +关注

    关注

    1

    文章

    292

    浏览量

    14025

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    在 NPU 上运行了 eIQ TensorFlow Lite 示例模型报错

    我们已经在 NPU 上运行了 eIQ TensorFlow Lite 示例模型,但它们失败并出现以下错误: 信息:加载的模型 mobilenet_v1_1.0_224_quant.tflite
    发表于 03-18 06:52

    模型 ai coding 比较

    :DeepSeek 10/10(100%通过),Kimi 2/10(20%通过) 2. Debug修复能力(权重35%) 测试目标 :模型排查和修复代码问题的能力 测评数据集:DebugBench 真实
    发表于 02-19 13:43

    从零开始安装并配置开源AI编程神器OpenCode

    对于个人开发者而言,选择 OpenCode + 国产开源编程模型 的组合,本质上是用 开源工具 + 国产高性价比模型 复刻了甚至超越了硅谷顶尖付费产品的AI编程体验。 让我们开始安装并
    的头像 发表于 01-22 21:22 1902次阅读
    从零开始安装并配置<b class='flag-5'>开源</b>AI编程神器OpenCode

    “明牌”对局,自变量开源模型超越pi0

    “明牌”对局,自变量开源模型超越pi0
    的头像 发表于 01-10 12:00 5744次阅读
    “明牌”对局,自变量<b class='flag-5'>开源</b><b class='flag-5'>模型</b>超越pi0

    构建生态新范式!开源大脑+小脑,地平线发布两款具身智能模型

    在2025地平线技术生态大会上,地平线创始人兼CEO余凯正式发布两大具身智能开源模型——具身智能小脑基座模型HoloMotion和具身智能大脑基座模型HoloBrain。
    的头像 发表于 12-16 15:01 1.3w次阅读
    <b class='flag-5'>构建</b>生态新范式!<b class='flag-5'>开源</b>大脑+小脑,地平线发布两款具身智能<b class='flag-5'>模型</b>

    NVIDIA Nemotron如何助力企业构建专业AI智能体

    随着代理式 AI 的日益普及,开源模型与工具日趋成熟,各行业企业都在思考:我们该构建怎样的 AI 智能体解决自身独特的业务挑战?
    的头像 发表于 12-13 09:14 922次阅读

    为什么说uCentral是构建开放网络的开源利器?

    uCentral是TIP主导的开源网络管理系统,其核心uCentral Controller通过开放协议实现设备集中管控与自动化运维。该系统支持配置下发、状态监控和闭环自愈,在数据中心场景中要求底层交换机具备NETCONF/YANG、VXLAN等开放接口能力,为
    的头像 发表于 11-28 18:33 1401次阅读
    为什么说uCentral是<b class='flag-5'>构建</b>开放网络的<b class='flag-5'>开源</b>利器?

    openDACS 2025 开源EDA与芯片赛项 赛题七:基于大模型的生成式原理图设计

    智能生成。 4. 赛题内容 4.1赛题描述 本赛题要求参赛队伍构建合理规模的知识库,运用提示词工程,构建一个完整的生成式原理图设计系统。 参赛系统需充分发挥大模型在自然语言理解、上下文推理和内容生成
    发表于 11-13 11:49

    构建CNN网络模型并优化的一般化建议

    通过实践,本文总结了构建CNN网络模型并优化的一般化建议,这些建议将会在构建高准确率轻量级CNN神经网络模型方面提供帮助。 1)避免单层神
    发表于 10-28 08:02

    在Ubuntu20.04系统中训练神经网络模型的一些经验

    本帖欲分享在Ubuntu20.04系统中训练神经网络模型的一些经验。我们采用jupyter notebook作为开发IDE,以TensorFlow2为训练框架,目标是训练一个手写数字识别的神经网络
    发表于 10-22 07:03

    NVIDIA开源Audio2Face模型及SDK

    NVIDIA 现已开源 Audio2Face 模型与 SDK,让所有游戏和 3D 应用开发者都可以构建并部署带有先进动画的高精度角色。NVIDIA 开源 Audio2Face 的训练框
    的头像 发表于 10-21 11:11 1008次阅读
    NVIDIA<b class='flag-5'>开源</b>Audio2Face<b class='flag-5'>模型</b>及SDK

    瑞金医院携手华为开源RuiPath病理模型

    近日,由上海交通大学医学院附属瑞金医院(以下简称“瑞金医院”)主办、华为技术有限公司协办的“瑞金医院RuiPath病理模型开源及成果发布会”在上海举行。瑞金医院联合华为开源RuiPath病理
    的头像 发表于 07-02 14:57 1086次阅读

    华为正式开源盘古7B稠密和72B混合专家模型

    [中国,深圳,2025年6月30日] 今日,华为正式宣布开源盘古70亿参数的稠密模型、盘古Pro MoE 720亿参数的混合专家模型和基于昇腾的模型推理技术。 此举是华为践行昇腾生态战
    的头像 发表于 06-30 11:19 1434次阅读

    无法将Tensorflow Lite模型转换为OpenVINO™格式怎么处理?

    Tensorflow Lite 模型转换为 OpenVINO™ 格式。 遇到的错误: FrontEnd API failed with OpConversionFailure:No translator found for TFLite_Detection_PostP
    发表于 06-25 08:27

    从FA模型切换到Stage模型时:module的切换说明

    mainAbility。mainElement标签名称变更,Stage模型不在使用“.”符号。 package标识HAP的包结构名称,在应用内保证唯一性。/Stage模型使用name保证应用唯一性。FA
    发表于 06-05 08:16