文 / 創意技術專家 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瀏覽量
6233 -
tensorflow
+關注
關注
13文章
329瀏覽量
60537 -
自然語言
+關注
關注
1文章
288瀏覽量
13357
原文標題:用 TensorFlow.js 探索 BERT 在瀏覽器中的趣味實踐
文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論