2018 年 9 月 6 日下午,網(wǎng)易有道在 AI 開放日上發(fā)布了全新一代有道翻譯王 2.0 Pro。隨后在 9 月 20 日舉辦的Google開發(fā)者大會上,有道技術(shù)總監(jiān)林會杰分享了端側(cè) AI 在智能硬件產(chǎn)品上的重要性,并且現(xiàn)場演示了有道翻譯王基于端側(cè) AI技術(shù)實現(xiàn)的全離線語音翻譯功能。與云側(cè) AI 相比,端側(cè) AI 具有無網(wǎng)絡(luò)延遲、更高的穩(wěn)定性、數(shù)據(jù)隱私性、響應(yīng)實時性, 這些特性使得端側(cè) AI 滿足超低延遲場景,如文檔掃描、AR 翻譯、實時語音翻譯等。
在這場發(fā)布會之前,有道技術(shù)團隊已經(jīng)在移動端離線 AI 技術(shù)上做了很多努力和探索。尤其是在端側(cè) AI 部分應(yīng)用了 Google 發(fā)布的 TensorFlow Lite,本文將介紹有道翻譯王的 AI 技術(shù),以及 TensorFlowLite 在有道翻譯王上的應(yīng)用。
有道翻譯王主要用到的 AI 技術(shù)有 OCR(光學字符識別)、NMT(神經(jīng)機器翻譯)、ASR(自動語音識別)、TTS(語音合成)。這些技術(shù)滿足了一個翻譯機的基本要求,通過在 TensorFlow Lite 框架上實現(xiàn)和加速,使得應(yīng)用效果更加優(yōu)異。
一臺有道翻譯王包括多少種 AI 技術(shù)?
OCR
光學字符識別(Optical Character Recognition,OCR)是指對文本資料的圖像文件進行分析識別處理,獲取文字及版面信息的過程。亦即將圖像中的文字進行識別,并以文本的形式返回。有道 OCR 主要分為兩個部分,一個是檢測部分,另一個是識別部分。檢測部分是指在一張圖片上尋找文字所在區(qū)域并框選出來,然后將標出的區(qū)域送入識別部分從而得出結(jié)果。
NMT
近年來,深度學習技術(shù)的發(fā)展為解決上述挑戰(zhàn)提供了新的思路。將深度學習應(yīng)用于機器翻譯任務(wù)的方法大致分為兩類:
仍以統(tǒng)計機器翻譯系統(tǒng)為框架,只是利用神經(jīng)網(wǎng)絡(luò)來改進其中的關(guān)鍵模塊,如語言模型、調(diào)序模型等;
不再以統(tǒng)計機器翻譯系統(tǒng)為框架,而是直接用神經(jīng)網(wǎng)絡(luò)將源語言映射到目標語言,即端到端的神經(jīng)網(wǎng)絡(luò)機器翻譯(End-to-End Neural Machine Translation,End-to-End NMT),簡稱為 NMT 模型。
ASR
自動語音識別技術(shù) ( Automatic Speech Recognition,ASR ) 是一種將人的語音轉(zhuǎn)換為文本的技術(shù)。語音識別是一個多學科交叉的領(lǐng)域,它與聲學、語音學、語言學、數(shù)字信號處理理論、信息論、計算機科學等眾多學科緊密相連。由于語音信號的多樣性和復(fù)雜性,語音識別系統(tǒng)目前只能在一定的限制條件下獲得滿意的性能,或者說只能應(yīng)用于某些特定的場合。
TTS
語音合成(Text To Speech,TTS)技術(shù)將文本轉(zhuǎn)化為聲音,目前廣泛應(yīng)用于語音助手、智能音箱、地圖導(dǎo)航等場景。TTS 的實現(xiàn)涉及到語言學、語音學的諸多復(fù)雜知識,因合成技術(shù)的區(qū)別,不同的 TTS 系統(tǒng)在準確性、自然度、清晰度、還原度等方面也有著不一樣的表現(xiàn)。
以上這些 AI 技術(shù)會用到 CNN、RNN 等神經(jīng)網(wǎng)絡(luò),這些網(wǎng)絡(luò)會用到較為常用的算子,如卷積層、全連接層、池化層、Relu 層。由于 TensorFlow 工作流程相對容易,API 穩(wěn)定,兼容性好,并且 TensorFlow 與 Numpy 完美結(jié)合,使其較為容易上手,所以我們在訓練模型時主要采用 TensorFlow 框架,可以大大的降低成本和節(jié)省精力。
有道首個運用 TensorFlow Lite 技術(shù)的智能硬件設(shè)備
TensorFlow Lite 簡介
TensorFlow Lite 是 TensorFlow 針對移動和嵌入式設(shè)備的輕量級解決方案。它為設(shè)備上的機器學習預(yù)測降低了延遲,減小了二進制大小。TensorFlow Lite 還支持硬件加速的 Android NNAPI。這樣一來,就對算法的開發(fā)和部署有了很大的優(yōu)勢。
TensorFlow Lite 優(yōu)勢
輕量級:允許小 binarysize和快速初始化/啟動的設(shè)備端機器學習模型進行推斷。
跨平臺:運行時的設(shè)計使其可以在不同的平臺上運行,如目前支持的 Android 和 iOS。
快速:專為移動設(shè)備進行優(yōu)化,包括大幅提升模型加載時間,支持硬件加速。
TensorFlow Lite 集成 Android 項目
(1)首先添加 TensorFlowLite 庫到項目中:
compile ‘org.tensorflow:tensorflow-lite:+’
(2)然后導(dǎo)入 TFliteinterpreter:
import org.tensorflow.lite.Interpreter;
(3)這樣就可以創(chuàng)建一個 Interpreter:
protected Interpreter tflite;
tflite = new Interpreter(loadModelFile(activity));
(4)載入模型函數(shù)示例:
/** Memory-map the model file in Assets. */
private MappedByteBuffer loadModelFile(Activity activity) throwsIOException {
AssetFileDescriptor fileDescriptor =activity.getAssets().openFd(getModelPath());
FileInputStream inputStream = newFileInputStream(fileDescriptor.getFileDescriptor());
FileChannel fileChannel = inputStream.getChannel(); long startOffset = fileDescriptor.getStartOffset();
long declaredLength = fileDescriptor.getDeclaredLength();
return fileChannel.map(FileChannel.MapMode.READ_ONLY, startOffset,declaredLength);
}
(5)執(zhí)行模型:
tflite.run(imgData, labelProbArray);
模型速度測試及比較
我們測試了常用的深度學習模型在 TensorFlow 和 TensorFlow Lite 上的運行速度, 模型分別為 InceptionV3、MobileNetV1、MobileNetV2。
同時,在 TensorFlow Lite 平臺上,對浮點模型和量化模型進行速度測試比較。
TensorFlow 和 TensorFlow Lite 具有良好的通用性,除此之外,對于專有硬件平臺,我們還對比了高通公司的SNPE ( Snapdragon Neural Processing Engine),測試InceptionV3 模型運行在驍龍 835 芯片的 CPU、GPU、DSP 上的速度。
測試有道 OCR Detection 模型在 TensorFlow、TensorFlow Lite 和高通 SPNE 上的運行情況。
由此可見,SNPE 的 CPU 運行速度要比 TensorFlow 的 CPU 速度慢了很多,但是在DSP 上的運行速度明顯優(yōu)于 CPU 和 GPU。雖然各大芯片廠商積極推出了高效能的神經(jīng)網(wǎng)絡(luò)處理器(NPU),但在模型轉(zhuǎn)換和平臺集成方面不盡如人意,其通用性和便利性遠遠不如 TensorFlow Lite。
TensorFlow Lite + 有道翻譯王 探索更多可能性
近年來,網(wǎng)易有道在 AI 領(lǐng)域已經(jīng)做出了很多嘗試和探索,積累了很多經(jīng)驗,同時也創(chuàng)造了很多價值。隨著深度學習的模型所需算力的增加,在移動端流暢運行模型則成為了一大挑戰(zhàn),為了解決這一大問題,各大硬件廠商推出神經(jīng)網(wǎng)絡(luò)加速芯片,軟件廠商也通過各種優(yōu)化來提高速度。Google 也為此做出了努力, 推出了 TensorFlow Lite,優(yōu)化了模型體積,提高了運行速度,還可以通過NNAPI 實現(xiàn)硬件加速。
由于 TensorFlow Lite 具有良好的通用性,可以適應(yīng)多種不同的硬件平臺,所以在模型適配上節(jié)省了很多成本。目前 TensorFlow Lite 對 LSTM 的支持在不斷完善,有道未來打算進一步完成相關(guān)模型的遷移和適配。同時也希望 TensorFlow Lite 能通過 Android NNAPI 可以集成更多的硬件平臺,包括 Google 最新發(fā)布的 Edge TPU 等, 充分利用不同硬件平臺的神經(jīng)網(wǎng)絡(luò)芯片加速,從而能夠使得更多的 AI 技術(shù)能夠更加高效率、低功耗、低延遲的運行在各種智能硬件設(shè)備上,真正實現(xiàn)讓 AI 無處不在。
-
機器翻譯
+關(guān)注
關(guān)注
0文章
139瀏覽量
14880 -
tensorflow
+關(guān)注
關(guān)注
13文章
329瀏覽量
60527 -
ai技術(shù)
+關(guān)注
關(guān)注
1文章
1266瀏覽量
24285
原文標題:當 TensorFlow Lite 遇到有道翻譯王 2.0 Pro
文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論