學習筆記TF067:TensorFlow Serving、Flod、計算加速,機器學習評測體系,公開數據集

TensorFlow Serving https://tensorflow.github.io/serving/

生產環境靈活、高性能機器學習模型服務系統。適合基於實際數據大規模運行,產生多個模型訓練過程。可用於開發環境、生產環境。

模型生命週期管理。模型先數據訓練,逐步產生初步模型,優化模型。模型多重算法試驗,生成模型管理。客戶端(Client)向TensorFlow Severing請求模型,TensorFlow Severing返回適當模型給客戶端。TensorFlow Serving、gRPC(谷歌公司開源高性能、跨語言RPC框架),提供跨語言RPC接口,不同編程語言都可以訪問模型。

TensorFlow Serving代碼 https://hithub.com/tensorflow/serving 。源代碼Bazel編譯安裝 https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/setup.md ,Docker安裝。https://www.tensorflow.org/serving/setup 。結合TensorFlow Serving,訓練好模型,創建Docker鏡像,推送到Google Container Registry https://cloud.google.com/container-registry/docs/ 。模型在谷歌雲平臺(Google Cloud Platform)運行。Kubernetes成功部署模型服務。Serving Inception Model with TensorFlow Serving and Kubernetes https://tensorflow.github.ic/serving/serving_inception 。Google ML Engine,全託管TensorFlow平臺,訓練模型一鍵轉換預測服務。

TensorFlow Flod https://github.com/tensorflow/fold ,《Deep Learning with Dynamic Computation Graphs》https://openreview.net/pdf?id=ryrGawqex 。深度學習過程,模型訓練數據預處理,不同結構數據剪裁成相同維度、尺寸,劃分成批,進入訓練流程。靜態圖模型,缺點,輸入數據無法一般預處理,模型針對不同輸入數據建立不同計算圖(computation graph)分別訓練,沒有充分利用處理器、內存、高速緩存。
TensorFlow Fold(現在還出了Eager模式,可以對比學習),根據不同結構輸入數據建立動態計算圖(dynamic computation),根據每個不同輸入數據建立不同計算圖。動態批處理(dynamic batching)自動組合計算圖,實現輸入數據內部批處理,批處理單個輸入圖內不同節點,不同輸入數據間批處理,批處理不同輸入圖間運算。可插入附加指令在不同批處理操作間移動數據。簡化模型訓練階段輸入數據預處理過程。CPU模型運行速度提高10倍以上,GPU提高100倍。

TensorFlow計算加速。GPU設備,XLA 框架融合OP,分佈式計算、參數部分分佈到不同機器,硬件計算,CPU更高級指令集SSE、AVX,FPGA編寫支持TensorFlow計算單元。
CPU加速。pip命令安裝,與更廣泛機器兼容,TensorFlow默認僅在x86機器使用SSE4.1 SIMD指令。源代碼安裝可以獲得最大性能,開啓CPU高級指令集支持。bazel 構建只能在自己機器運行二進制文件。

bazel build -c opt --copt=-mavx --copt=-mavx2 --copt=-mfma --copt=-mfpmath=both --copt=-msse4.2 --copt=-cuda -k //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

在/tmp/tensorflow_pkg產生whell文件,再用pip命令安裝wheel文件。

TPU 加速、FPGA加速。
谷歌TensorFlow設計專用集成芯片-張量處理單元(Tensor Processing Unit,TPU)。CPU邏輯運算(if else)能力很強,計算能力比GPU差,深度學習需要海量計算。GPU有強大浮點計算單元,GPU着色器(shader)對一批數據以相同步調執行相同指令流水。GPU同一時鐘週期執行指令數量千級,3000條。CPU同一時鐘週期執行指令數據幾十級。數據並行能力遠超CPU。GPU邏輯運算能力差,流水線並行能力(同一時鐘週期併發執行不同邏輯序列能力)差,需要批數據同步調執行相同邏輯。神經網絡需要大規模數據並行能力,CNN卷積、矩陣運算操作,通過數據並行大幅提高性能。
GPU出廠後架構固定,硬件原生支持指令固定。如神經網絡有GPU不支持指令,無法直接硬件實現,只能軟件模擬。FPGA加速,開發者在FPGA裏編程,改變FPGA硬件結構。FPGA體系結構不同,不是馮·諾伊曼結構,是代碼描述邏輯電路。只要片上邏輯門、引腳夠多,全部輸入、運算、輸出都在一個時鐘週期內完成。FPGA一個時鐘週期執行一次全部燒好電路,一個模塊就一句超複雜“指令”,不同模塊不同邏輯序列,序列裏就一條指令。不同運算單元硬件直連,數據並行、流水線並行共存(GPU流水線並行能力約0),浮點運算能力不如GPU。適合低延遲預測推理,每批大小較小。
TPU,專用集成電路(application specific integrated circuit,ASIC),硬件邏輯一旦燒寫不可再編程,專門爲TensorFlow做深度學習開發。TPU目前版本不能完整運行TensorFlow功能,高效預測推理,不涉及訓練。

機器學習評測體系。

人臉識別性能指標。
鑑別性能,是否鑑別準確。Top-K識別率,給出前K個結果包含正確結果概率。錯誤拒絕辨識率(FNIR),註冊用戶被系統錯誤辯識爲其他註冊用戶比例。錯誤接受辯識率(FPIR),非註冊用戶被系統辨識爲某個註冊用戶比例。
驗證性能,驗證人臉模型是否足夠好。誤識率(False Accept Rate,FAR),將其他人誤作指定人員概率。拒識率(False Reject Rate,FRR),將指定人員誤作其他人員概率。識別速度,識別一副人臉圖像時間、識別一個人時間。註冊速度,註冊一個人時間。

聊天機器人性能指標。
回答正確率、任務完成率、對話回合數、對話時間、系統平均響應時間、錯誤信息率。評價基本單元,單輪對話。人機對話過程,連續過程。http://sanwen.net/a/hkhptbo.html 《中國人工智能學會通訊》2016年第6卷第1期。聊天機器人,機器人答句和用戶問句應該語義一致,語法正確,邏輯正確。機器人答句應用有趣、多樣,不是一直產生安全回答。機器人應該個性表達一致,年齡、身份、出生地基本背景信息、愛好、語言風險應該一致,能想象成一個典型人。

機器翻譯評價方法。
BLEU(bilingual evaluation understudy)方法,2002年,IBM沃森研究中心提出。機器翻譯語句與人類專業翻譯語句越接近越好。下人工評價高度相關。正確句子作參考譯文(reference)、正確句子(golden sentence),測試句子作候選譯文(candidate)。適用測試語料具有多個參考譯文。比較參考譯文與候選譯文相同片段數量,參考譯文連續出現N元組(N個單詞或字)與候選譯文N元組比較,n單位片段(n-gram)比較。計算完全匹配N元組個數與參考譯文N元組總個數比例。與位置無關。匹配片段數越多,候選譯文質量越好。
METEOR,不僅要求候選譯文在整個句子上,在句子分段級別上,都要與參考譯文更接近。https://en.wikipedia.org/wiki/METEOR#Algorithm 。在待評價字符串與參考文符串間創建平面圖。待評價翻譯每個一元組必須映射到參考翻譯1個或0個一元組。選擇映射交叉數據較少的。

常用通用評價指標。
準確率、召回率、F值、ROC、AUC、AP、mAP。
ROC(Receiver Operating Characteristic,受試者工作特徵曲線)、AUC(Area Under roc Curve,曲線下面積),評價分類器指標。ROC曲線橫座標FPR(False positive rate),縱座標TPR(True positive rate)。ROC曲線越接近左上角,分類器性能越好。AUC,ROC曲線下方面積大小。ROC曲線處於y=x直線上方,AUC值介於0.5~1.0。AUC值越大表示性能越好。專門AUC計算工具 http://mark.goadrich.com/programs/AUC/
AP(average precision,平均準確性)、mAP(mean average precision,平均準確性平均)。計算機視覺,分類問題,AP模型分類能力重要指標。只用P(precision rate, 準確率)和R(recall rate,召回率)評價,組成PR曲線趨勢召回率越高準確率越低。AP曲線下面積,等於對召回率做積分。mAP對所有類別取平均,每個類作一次二分類任務。圖像分類論文基本用mAP標準。

公開數據集。

圖片數據集。
ImageNet http://www.image-net.org/ 。世界最大圖像識別數據集,14197122張圖像,斯坦福大學視覺實驗室終身教授李飛飛創立。每年ImageNet大賽是國際計算機視覺頂級賽事。
COCO http://mscoco.org/ 。微軟創立,分割、加字幕標註數據集。目標分割,通過上下文進行識別,每個圖像包含多個目標對象,超過300000圖像,超過2000000實例,80種對象,每個圖像包含5個字幕,包含100000個人關鍵點。
CIFAR(Canada Institude For Advanced Research) https://www.cifar.ca/ 。加拿大先進技術研究院收集。8000萬小圖片數據集。包含CIFAR-10、CIFAR-100兩個數據集。CIFAR-10,60000張32x32 RGB彩色圖片,共10個類別,50000張訓練,10000張測試(交叉驗證)。CIFAR-100,60000張圖像,100個類別,每個類別600張圖像,500張訓練,100張測試。20個大類,每個圖像包含小類別、大類別兩個標記。

人臉數據集。
AFLW(Annotated Facial Landmarks in the Wild) http://lrs.icg.tugraz.at/research/aflw/ ,從Flickr收集帶標註面部圖像大規模wyskwgk,各種姿態、表情、光照、種族、性別、年齡因素影響圖片,25000萬手工標註人臉圖片,每個人臉標註21個特徵點,大多數彩色,59%女性,41%男性。非常適合人臉識別、人臉檢測、人臉對齊。
LFW(Labeled Faces in the Wild Home) http://vis-www.cs.umass.edu/lfw/ 。美國馬薩諸塞大學阿姆斯特分校計算機視覺實驗室整理。13233張圖片,5749人,4096人只有一張圖片,1680個多於一張。用於研究非受限情形人臉識別問題。人臉外形不穩定,面部表情、觀察角度、光照條件、室內室外、遮蓋物(口罩、眼鏡、帽子)、年齡影響。爲學術界評價識別性能標準(benchmark)。
GENKI http://mplab.ucsd.edu ,加利福尼亞大學收集。包含GENKI-R2009a、GENKI-4K、GENKI-SZSL。GENKI-R2009a,11159圖片。GENKI-4K,4000圖片,笑與不笑兩類,每個圖片人臉姿勢、頭轉動標註角度,專用笑臉識別。GENKI-SZSL,3500圖像,廣泛背景、光照條件、地理位置、個人身份、種族。
VGG Face http://www.robots.ox.ac.uk/~vgg/data/vgg_face/ 。2622個不同人,每個人1000張圖片,訓練人臉識別大數據集。
CelebA(Large-scale CelebFaces Atributes,大規模名人人臉標註數據集) http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html 。10177個名人,202599張名人圖像,每張圖像40個屬性標註。

視頻數據集。
YouTube-8M https://research.google.com/youtube8m/ 。800萬個YouTube視頻URL,50萬小時長度視頻,帶有視頻標註。

問答數據集。
MS MARCO(Microsoft Machine Reading Comprehension) http://www.msmarco.org 。微軟發佈,10萬個問題和答案數據集。創建像人類一樣閱讀、回答問題系統。基於匿名真實數據構建。
康奈爾大學電影對白數據集 https://www.cs.cornell.edu/~cristian/Cornell_Movie-Dialogs_Corpus.html 。600部好萊塢電影對白。

自動駕駛數據集。
法國國家信息與自動化研究所行人數據集(INRIA Person Dataset) http://pascal.inrialpes.fr/data/human/ 。作爲圖像和視頻中直立人檢測研究工作一部分收集。圖片兩種格式,一具有對應註釋文件原始圖像,二具有原始圖像經過正規化處理64x128像素正像。圖片分只有車、只有人、有車有人、無車無人4個類別。
KITTI(Karlsruhe Institute of Technology and Toyota Technological Institute) http://www.cvlibs.net/datasets/kitti/ 。車輛數據集,7481個訓練圖片、7518個測試圖片。標註車輛類型、是否截斷、遮擋情況、角度值、二維和三維框、位置、旋轉角度。

年齡、性別數據集。
Adience 數據集 http://www.openu.ac.il/home/hassner/Adience/data.html 。來源Flickr相冊。用戶用智能手機設備拍攝,2284類別,26580張圖片。保留光照、姿勢、噪聲影響。性別、年齡估計、人臉檢測。

參考資料:
《TensorFlow技術解析與實戰》

歡迎推薦上海機器學習工作機會,我的微信:qingxingfengzi

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章