文 / 創(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 中搜索提出類似于“自由女神像有多高?”的問(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)建此類應(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”
某汽車測(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
某汽車測(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)注明出處。
-
網(wǎng)絡(luò)瀏覽器
+關(guān)注
關(guān)注
0文章
10瀏覽量
6240 -
tensorflow
+關(guān)注
關(guān)注
13文章
329瀏覽量
60584 -
自然語(yǔ)言
+關(guān)注
關(guān)注
1文章
289瀏覽量
13382
原文標(biāo)題:用 TensorFlow.js 探索 BERT 在瀏覽器中的趣味實(shí)踐
文章出處:【微信號(hào):tensorflowers,微信公眾號(hào):Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論