0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何通過(guò)開(kāi)源的 TensorFlow.js BERT 模型來(lái)構(gòu)建應(yīng)用

Tensorflowers ? 來(lái)源:TensorFlow ? 作者: Philip Bayer;Ping ? 2020-10-21 10:59 ? 次閱讀

文 / 創(chuàng)意技術(shù)專家 Philip Bayer;軟件工程師 Ping Yu 和開(kāi)發(fā)技術(shù)推廣工程師 Jason Mayes

在探索 BERT 針對(duì)語(yǔ)言的有益用例時(shí),我們發(fā)現(xiàn)了許多令人興奮的研究。我們想知道:如果我們可以讓您更方便地在網(wǎng)絡(luò)瀏覽器中使用 BERT,將會(huì)怎么樣?這將實(shí)現(xiàn)哪些可能的有趣用例?

在 Google 中搜索提出類(lèi)似于“自由女神像有多高?”的問(wèn)題,并從網(wǎng)絡(luò)中得到答案(305 英尺)很容易。但是,還沒(méi)有辦法可以輕松針對(duì)具體內(nèi)容(例如,新聞報(bào)道、研究論文或文章)用自然語(yǔ)言提問(wèn)。您或許可以嘗試使用瀏覽器中的“在網(wǎng)頁(yè)中查找”這一搜索功能 (CTRL + F),但此功能依賴于字詞的直接匹配(通過(guò)搜索的關(guān)鍵字進(jìn)行匹配)。那么,輸入一個(gè)完整的問(wèn)題而不是要查找的關(guān)鍵字,期待頁(yè)面上能夠突出顯示答案,會(huì)不會(huì)更易實(shí)現(xiàn)?

為了探索這一想法,我們使用 MobileBERT 問(wèn)答模型制作了 Chrome 擴(kuò)展程序的原型,可以在瀏覽網(wǎng)頁(yè)時(shí)提出任何問(wèn)題。通過(guò) TensorFlow.js ,該擴(kuò)展程序會(huì)根據(jù)頁(yè)面內(nèi)容返回答案。模型完全在設(shè)備端的瀏覽器會(huì)話中運(yùn)行,因此,無(wú)需向服務(wù)器發(fā)送內(nèi)容,這樣可以保護(hù)隱私。

MobileBERT 問(wèn)答模型
https://github.com/tensorflow/tfjs-models/tree/master/qna

本文將介紹我們的早期試驗(yàn),并分享我們的發(fā)現(xiàn),闡述如何通過(guò)開(kāi)源的 TensorFlow.js BERT 模型來(lái)構(gòu)建此類(lèi)應(yīng)用。探索示例很有幫助,在一些示例中,我們得到了所需的答案,而在一些示例中,我們沒(méi)有得到所期待的結(jié)果。這讓我們得以了解模型的潛力及其當(dāng)前限制。我們希望這些示例可以幫助所有人都參與進(jìn)來(lái),并讓每個(gè)人都能思考機(jī)器學(xué)習(xí)可以怎樣為語(yǔ)言提供幫助。

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

△ 使用 Chrome 擴(kuò)展程序,問(wèn)一個(gè)有關(guān)文章的問(wèn)題,并得到答案

我們的發(fā)現(xiàn)

以下是我們獲得了有用答案的一些結(jié)果:

介紹螃蟹(鏈接見(jiàn)文末)- 問(wèn)題:“How do they move?”答案:“Crabs typically walk sideways”

產(chǎn)品照明燈介紹頁(yè)- 問(wèn)題:“Can it get wet?”答案:“submersion in up to 1m of water for 30min”

某汽車(chē)測(cè)評(píng) - 問(wèn)題:“Gas mileage”答案:“19 miles per gallon in the city”

介紹木質(zhì)摩天樓 - 問(wèn)題:“How tall is it”答案:“280 feet in height”

千層面配方介紹 - 問(wèn)題:“How long in the oven”答案:“25 minutes”

在一些示例中,模型沒(méi)有返回我們期待的答案,但探索這些示例一樣有趣。以下是我們找到的幾個(gè)示例:

某產(chǎn)品介紹頁(yè) - 問(wèn)題:“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”

某文章 - 問(wèn)題:“Were the sharks real?”返回的文字是“sharks! sharks”,但問(wèn)到相關(guān)問(wèn)題“How did the sharks work?”時(shí),給出的答案較為有用:“mechanical sharks often malfunctioned”

機(jī)器學(xué)習(xí)模型的工作原理

MobileBERT 問(wèn)答模型可用于構(gòu)建一套可用自然語(yǔ)言來(lái)回答用戶問(wèn)題的系統(tǒng)。模型使用預(yù)訓(xùn)練的 BERT 模型創(chuàng)建,后者基于 SQuAD 1.1 (Stanford Question Answering Dataset) 進(jìn)行了微調(diào)。這是一種預(yù)訓(xùn)練語(yǔ)言表征的新方法,語(yǔ)言表示可以在各種自然語(yǔ)言處理 (NLP) 任務(wù)中獲取最前沿 (SOTA) 的結(jié)果。

MobileBERT 問(wèn)答模型
https://github.com/tensorflow/tfjs-models/tree/master/qna

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

我們很高興地宣布,此模型現(xiàn)在可以在 TensorFlow.js 中供您的用例使用。MobileBERT 模型是一個(gè)緊湊型 BERT 變體,可以部署到資源有限的設(shè)備上。

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

該模型將段落和問(wèn)題作為輸入,然后返回一段最有可能回答問(wèn)題的段落。由于我們使用的是 TensorFlow.js,所有操作均在客戶端的網(wǎng)絡(luò)瀏覽器中進(jìn)行。這意味著,用戶隱私可以得到保護(hù),不會(huì)將您的檢索文本發(fā)送到服務(wù)器。

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

TensorFlow.js BERT API

該模型使用起來(lái)超級(jí)簡(jiǎn)單。請(qǐng)看下面的代碼段:

正如您看到的,前兩行用于從托管腳本中加載 TensorFlow.js 庫(kù)和 Q&A(問(wèn)答)模型,因此,我們可以執(zhí)行問(wèn)答搜索。這只需要調(diào)用一次 - 模型位于內(nèi)存中時(shí),將保持加載狀態(tài)。然后,我們可以重復(fù)調(diào)用 findAnswers(),向其傳遞兩個(gè)字符串。第一個(gè)字符串是用戶要提出的問(wèn)題,第二個(gè)字符串是我們想要用來(lái)進(jìn)行搜索的文字(例如,頁(yè)面上的文字)。之后,我們將返回 results 對(duì)象,其結(jié)構(gòu)如下所示:

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

您將獲得一組對(duì)象,表示可以最好地解答問(wèn)題的段落的各個(gè)部分,同時(shí)還會(huì)獲得一個(gè)分?jǐn)?shù),表示回答正確的置信度。另外,我們還會(huì)得到答案文字的索引,便于定位答案文字在上下文字符串中的位置。這就是全部?jī)?nèi)容!借助此數(shù)據(jù),您現(xiàn)在可以突出顯示找到的文字,返回一些較豐富的結(jié)果,或?qū)崿F(xiàn)一些創(chuàng)造性的應(yīng)用。


如果您想自己嘗試 MobileBERT 問(wèn)答模型,我們很高興地告訴您,該模型現(xiàn)已開(kāi)放源代碼,您可以在我們的 GitHub 倉(cāng)庫(kù)中找到它。如果您實(shí)現(xiàn)了一些有趣應(yīng)用,請(qǐng)與我們分享,我們期待看到有更多豐富的應(yīng)用與創(chuàng)意!

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

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

如果您想詳細(xì)了解 本文提及 的相關(guān)內(nèi)容,請(qǐng)參閱以下文檔。這些文檔深入探討了這篇文章中提及的許多主題:

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

某產(chǎn)品頁(yè)介紹照明燈
https://www.rei.com/rei-garage/product/167000/black-diamond-spot-headlamp

某汽車(chē)測(cè)評(píng)
https://www.autotrader.com/car-reviews/2020-infiniti-q60-review-281474979991514

介紹木質(zhì)摩天樓
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

某產(chǎn)品介紹頁(yè)
https://www.bedbathandbeyond.com/store/product/kitchenaid-reg-5-speed-diamond-blender/3242409

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

責(zé)任編輯:xj

原文標(biāo)題:用 TensorFlow.js 探索 BERT 在瀏覽器中的趣味實(shí)踐

文章出處:【微信公眾號(hào):TensorFlow】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 網(wǎng)絡(luò)瀏覽器

    關(guān)注

    0

    文章

    10

    瀏覽量

    6210
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    327

    瀏覽量

    60413
  • 自然語(yǔ)言
    +關(guān)注

    關(guān)注

    1

    文章

    279

    瀏覽量

    13295

原文標(biāo)題:用 TensorFlow.js 探索 BERT 在瀏覽器中的趣味實(shí)踐

文章出處:【微信號(hào):tensorflowers,微信公眾號(hào):Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    TensorFlow是什么?TensorFlow怎么用?

    TensorFlow是由Google開(kāi)發(fā)的一個(gè)開(kāi)源深度學(xué)習(xí)框架,它允許開(kāi)發(fā)者方便地構(gòu)建、訓(xùn)練和部署各種復(fù)雜的機(jī)器學(xué)習(xí)模型。TensorFlow
    的頭像 發(fā)表于 07-12 16:38 ?389次閱讀

    使用TensorFlow進(jìn)行神經(jīng)網(wǎng)絡(luò)模型更新

    使用TensorFlow進(jìn)行神經(jīng)網(wǎng)絡(luò)模型的更新是一個(gè)涉及多個(gè)步驟的過(guò)程,包括模型定義、訓(xùn)練、評(píng)估以及根據(jù)新數(shù)據(jù)或需求進(jìn)行模型微調(diào)(Fine-tuning)或重新訓(xùn)練。下面我將詳細(xì)闡述這
    的頭像 發(fā)表于 07-12 11:51 ?200次閱讀

    請(qǐng)問(wèn)ESP32如何運(yùn)行TensorFlow模型

    請(qǐng)問(wèn)ESP32如何運(yùn)行TensorFlow模型?
    發(fā)表于 07-09 07:30

    tensorflow簡(jiǎn)單的模型訓(xùn)練

    在本文中,我們將詳細(xì)介紹如何使用TensorFlow進(jìn)行簡(jiǎn)單的模型訓(xùn)練。TensorFlow是一個(gè)開(kāi)源的機(jī)器學(xué)習(xí)庫(kù),廣泛用于各種機(jī)器學(xué)習(xí)任務(wù),包括圖像識(shí)別、自然語(yǔ)言處理等。我們將從安裝
    的頭像 發(fā)表于 07-05 09:38 ?292次閱讀

    keras模型轉(zhuǎn)tensorflow session

    在這篇文章中,我們將討論如何將Keras模型轉(zhuǎn)換為TensorFlow session。 Keras和TensorFlow簡(jiǎn)介 Keras是一個(gè)高級(jí)神經(jīng)網(wǎng)絡(luò)API,它提供了一種簡(jiǎn)單、快速的方式
    的頭像 發(fā)表于 07-05 09:36 ?312次閱讀

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

    TensorFlow是一個(gè)廣泛使用的開(kāi)源機(jī)器學(xué)習(xí)庫(kù),它提供了豐富的API來(lái)構(gòu)建和訓(xùn)練各種深度學(xué)習(xí)模型。在
    的頭像 發(fā)表于 07-04 13:07 ?530次閱讀

    如何在TensorFlow構(gòu)建并訓(xùn)練CNN模型

    TensorFlow構(gòu)建并訓(xùn)練一個(gè)卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型是一個(gè)涉及多個(gè)步驟的過(guò)程,包括數(shù)據(jù)預(yù)處理、模型設(shè)計(jì)、編譯、訓(xùn)練以及評(píng)估。下面,我將詳細(xì)闡述這些步驟,并附上一個(gè)完整的代碼
    的頭像 發(fā)表于 07-04 11:47 ?382次閱讀

    TensorFlow的定義和使用方法

    數(shù)據(jù)流圖,從而簡(jiǎn)化機(jī)器學(xué)習(xí)模型構(gòu)建、訓(xùn)練和部署。自2015年11月開(kāi)源以來(lái),TensorFlow迅速成為數(shù)據(jù)科學(xué)家、軟件開(kāi)發(fā)者以及教育工作者廣泛使用的工具,廣泛應(yīng)用于圖像識(shí)別、自然語(yǔ)
    的頭像 發(fā)表于 07-02 14:14 ?523次閱讀

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

    谷歌模型框架通常指的是谷歌開(kāi)發(fā)的用于機(jī)器學(xué)習(xí)和人工智能的軟件框架,其中最著名的是TensorFlow。TensorFlow是一個(gè)開(kāi)源的機(jī)器學(xué)習(xí)框架,由谷歌的機(jī)器學(xué)習(xí)團(tuán)隊(duì)開(kāi)發(fā),用于
    的頭像 發(fā)表于 03-01 16:25 ?640次閱讀

    谷歌發(fā)布最先進(jìn)的開(kāi)放模型Gemma

    在 Google,我們致力于讓 AI 助力每個(gè)人。長(zhǎng)期以來(lái),我們對(duì)開(kāi)放社區(qū)的創(chuàng)新貢獻(xiàn)了許多成果,如 Transformers、TensorFlow、BERT、T5、JAX、AlphaFold
    的頭像 發(fā)表于 02-23 10:12 ?474次閱讀
    谷歌發(fā)布最先進(jìn)的開(kāi)放<b class='flag-5'>模型</b>Gemma

    谷歌大型模型終于開(kāi)放源代碼,遲到但重要的開(kāi)源戰(zhàn)略

    在人工智能領(lǐng)域,谷歌可以算是開(kāi)源的鼻祖。今天幾乎所有的大語(yǔ)言模型,都基于谷歌在 2017 年發(fā)布的 Transformer 論文;谷歌的發(fā)布的 BERT、T5,都是最早的一批開(kāi)源 AI
    發(fā)表于 02-22 18:14 ?347次閱讀
    谷歌大型<b class='flag-5'>模型</b>終于開(kāi)放源代碼,遲到但重要的<b class='flag-5'>開(kāi)源</b>戰(zhàn)略

    基于TensorFlow和Keras的圖像識(shí)別

    ,讓我們先花點(diǎn)時(shí)間來(lái)了解一些術(shù)語(yǔ)。TensorFlow/KerasTensorFlow是GoogleBrain團(tuán)隊(duì)創(chuàng)建的一個(gè)Python開(kāi)源庫(kù),它包含許多算法和模型
    的頭像 發(fā)表于 01-13 08:27 ?661次閱讀
    基于<b class='flag-5'>TensorFlow</b>和Keras的圖像識(shí)別

    如何使用TensorFlow構(gòu)建機(jī)器學(xué)習(xí)模型

    在這篇文章中,我將逐步講解如何使用 TensorFlow 創(chuàng)建一個(gè)簡(jiǎn)單的機(jī)器學(xué)習(xí)模型。
    的頭像 發(fā)表于 01-08 09:25 ?801次閱讀
    如何使用<b class='flag-5'>TensorFlow</b><b class='flag-5'>構(gòu)建</b>機(jī)器學(xué)習(xí)<b class='flag-5'>模型</b>

    模型數(shù)據(jù)集:構(gòu)建、挑戰(zhàn)與未來(lái)趨勢(shì)

    隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,大型預(yù)訓(xùn)練模型如GPT-4、BERT等在各個(gè)領(lǐng)域取得了顯著的成功。這些大模型背后的關(guān)鍵之一是龐大的數(shù)據(jù)集,為模型提供了豐富的知識(shí)和信息。本文將探討大
    的頭像 發(fā)表于 12-06 15:28 ?1223次閱讀

    基于BERT算法搭建一個(gè)問(wèn)答搜索引擎

    學(xué)習(xí)的新手發(fā)現(xiàn)BERT模型并不好搭建,上手難度很高,普通人可能要研究幾天才能勉強(qiáng)搭建出一個(gè)模型。 沒(méi)關(guān)系,今天我們介紹的這個(gè)模塊,能讓你在3分鐘內(nèi)基于BERT算法搭建一個(gè)問(wèn)答搜索引擎。
    的頭像 發(fā)表于 10-30 11:46 ?504次閱讀
    基于<b class='flag-5'>BERT</b>算法搭建一個(gè)問(wèn)答搜索引擎