強強聯手!Google 和 Nvidia 帶來最優化版 TensorFlow 1.7

Google 目前已經發布了 TensorFlow 1.7,同時也將跟 NVIDIA 更緊密地合作。希望這個新的解決方案額能夠在提供最強性能的同時,保持TensorFlow 的易用性和靈活性!
評論
評論

本篇來自合作媒體 雷鋒網 ,INSIDE 經授權轉載。

日前,Google 和英偉達宣布將 NVIDIA TensorRT 集成到 TensorFlow 1.7 中。在 Google 開發者部落格中,他們介紹了此次合作的詳細資訊以及整合之後的性能,編譯整理如下:

TensorRT 是一個可以用於優化深度學習模型,以進行推理,並為生產環境中的 GPU 建立運行環境的庫。它能優化 TensorFlow 中的 FP16 浮點數和 INT8 整型數,並能自動選擇針對特定平台的內核,以最大化吞吐量,並最大限度的降低 GPU 推理期間的延遲。全新的集成工作流程簡化了在 TensorFlow 中使用 TensorRT 的步驟,同時使得 TensorFlow 達到了世界一流的性能水平。

經測試,在 NVIDIA Volta Tensor 核心上,集成了 TensorRT 的 TensorFlow 運行 ResNet-50 比沒有集成 TensorRT 的 TensorFlow 執行速度提高了 8 倍。

Google 和Nvidia 強強聯手,帶來優化版TensorFlow 1.7

優化 TensorFlow 中的子圖

在 TensorFlow 1.7 中,TensorRT 可以用於優化子圖,而 TensorFlow 執行其餘未優化的部分。這個方法使得開發者既能夠使用 TensorFlow 的眾多功能來快速構建模型,同時也可以在執行推理時使用 TensorRT 獲得強大的優化能力。如果你嘗試過在之前的 TensorFlow 模型中使用 TensorRT,你應該知道,要想使用某些不受支持的 TensorFlow 層,必須手動導入,這在某些情況下可能會耗費大量時間。

從工作流程的角度來看,開發者可以使用 TensorRT 來優化 TensorFlow 的每個子圖。

Google 和Nvidia 強強聯手,帶來優化版TensorFlow 1.7

在推斷過程中,TensorFlow 先將執行所有支持區域的圖,之後調用 TensorRT 去執行那些經過 TensorRT 優化過的節點。舉個例子,如果你的圖包含 A,B,C 三段,其中 B 段被 TensorRT 優化過,B 將被一個節點代替。那麼在推理過程中,TensorFlow 將先執行 A,之後調用 TensorRT 執行 B,最後 TensorFlow 執行 C。

這個用於優化 TensorRT 的新加入的 TensorFlow API,以凍結的 TensorFlow 圖為輸入,針對該子圖進行優化,最後將優化過的推理子圖發送回 TensorFlow 中。

下面為一段示例代碼:

# Reserve memory for TensorRT inference engine

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction = number_between_0_and_1)

... 

trt_graph = trt.create_inference_graph(

                 input_graph_def = frozen_graph_def,

                 outputs = output_node_name,

                 max_batch_size=batch_size,

                 max_workspace_size_bytes=workspace_size,

                 precision_mode=precision) # Get optimized graph

per_process_gpu_memory_fraction 這個參數定義了 TensorFlow 允許使用的 GPU 顯存的比例,剩餘的顯存將分配給 TensorRT。這個參數應該在 TensorFlow-TensorRT 進程第一次啟動的時候設定好。比如,per_process_gpu_fraction=0.67,那麼 67% 的顯存會被分配給 TensorFlow,其餘的 33% 會被分配給 TensorRT 引擎。

Create_inference_graph 函數將凍結住的 TensorFlow 圖作為輸入,返回一個經過 TensorRT 節點優化過的圖。我們看看這個函數的參數:

Input_graph_def: 凍結住的 TensorFlow 圖

Outputs: 輸出節點名字的字符串列表,比如:[“resnet_v1_50/predictions/Resape_1”]

Max_batch_size: 整數,輸入的 batch size,比如,16

Max_workspace_size_bytes: 整數,能分配給 TensorRT 的最大 GPU 顯存大小

Precision_mode: 字符串,可選的值為「FP32」,「FP16」,「INT8」

舉個例子,如果 GPU 有 12GB 顯存,想要給 TensorRT 引擎分配 4GB 顯存,那麼應該設置 per_process_gpu_memory_fraction 為(12-4)/12=0.67,max_workspace_size_bytes=4,000,000,000.

我們來試著將這個新的 API 應用在 ResNet-50 上,看看經過優化後的模型在 TensorBoard 中看起來是什麼樣的。左側的圖像是沒有經過 TensorRT 優化的 ResNet-50,右側是經過優化的。在這個設定下,大部分圖被 TensorRT 優化,並用一個單一節點代替了(圖中高亮部分)。

Google 和Nvidia 強強聯手,帶來優化版TensorFlow 1.7

經過優化的 INT8 推理性能

TensorRT 兼容單精度(FP32)和半精度(FP16)訓練的模型(也可以將它們量化為 INT8),同時能盡可能減少由精度降低而導致的準確率降低。INT8 模型能夠更快的計算,同時對帶寬的需求也會降低,但是因為可用的動態範圍降低了,這也對神經網絡的權重和啟動表示提出了很大的挑戰。

Google 和Nvidia 強強聯手,帶來優化版TensorFlow 1.7

為了解決這個問題,TensorRT 使用了一個校正過程,以盡可能減小將 FP32 網絡近似成 8-bit 整型表示時的資料損失。在使用 TensorRT 優化 TensorFlow 圖之後,可以使用下面的命令將圖傳遞給 TensorRT 進行校準,如下:

trt_graph=trt.calib_graph_to_infer_graph(calibGraph)

除此之外的網路推理流程都沒有變化。這一步的輸出為一個可以被 TensorFlow 執行的凍結圖。

在 NVIDIA Volta GPU 上自動使用 Tensor 核心

在 NVIDIA Volta GPU 的 Tensor 核心上透過 TensorRT 進行半精度 TensorFlow 模型推理,能夠提供相較於單精度模型八倍的吞吐量。相較於更高精度的 FP32 或者 FP64,半精度數據(FP16)能夠減少神經網路的顯存使用量,這使得開發者能夠訓練和部署更大規模的神經網路,同時 FP16 相比 FP32 和 FP64 有更少的傳輸時間。

如果每個 Tensor 核心執行的是 D=A*B+C,其中 A 和 B 為半精度 4*4 矩陣,D 和 C 是單精度或者半精度 4*4 矩陣,那麼 V100 上此時 Tensor 核心的峰值性能是雙精度(FP64)性能的 10 倍,是單精度(FP32)性能的 4 倍。

Google 目前已經發布了 TensorFlow 1.7,同時也將跟 NVIDIA 更緊密地合作。希望這個新的解決方案額能夠在提供最強性能的同時,保持 TensorFlow 的易用性和靈活性。隨著 TensorRT 支持越來越多的網路結構,大家只要更新就可以享受到這些好處,而無須改寫代碼。

使用標準 pip install 即可更新到 TensorFlow 1.7:

pip install tensorflow-gpu r1.7

詳細的安裝說明可在下面找到:

https://github.com/tensorflow/tensorflow/tree/r1.7/tensorflow/contrib/tensorrt


疫情促數位轉型,資策會用 STEPS 方法論助產業無痛升級

面對疫情期間面臨消費者行為的改變、電子商務侵蝕實體零售服務業的市場等態勢,台灣中小企業、零售業和實體通路品牌,必須加速數位轉型腳步,才能繼續保有競爭力!
評論
Photo Credit:unsplash
評論

COVID─19 疫情讓全球產業界都受到嚴重衝擊,而台灣自 5 月中旬啟動三級警戒後,首當其衝的當屬零售服務業、教育產業、旅遊觀光等,企業界體認「數位轉型」趨勢已然成形的事實。而顧問公司 KPMG 亦指出,台灣有超過 40% 的執行長認為,疫情會加速企業數位轉型的步伐。在防疫期間,消費者亦會更加普遍地使用數位通路;因此,具備數位營運能力已成為公司營運的基本功。

本文專訪有 10 多年產業研究及數位輔導經驗的資策會創生服務處跨域共創中心主任張為詩,分享哪些產業最需要做數位轉型?究竟企業做數位轉型會面臨到何種困難?執行數位轉型有何成功的秘訣?

針對上述疑問,張為詩指出,在疫情爆發之前,談到「數位轉型」這件事,比較像是企業內部的口號,某些人以為,把公司內部流程數位化,就是「數位轉型」,甚至部分業者認為導入 AI 等新興科技就算完成數位轉型。去年全球疫情爆發,台灣卻仍如常上班上課,企業對於數位轉型便無迫切需求。反觀,今年 5 月中旬爆發本土疫情後,許多企業便意識到「數位轉型」是一件非做不可的事。

「這段期間發生的問題,是以前從未想像過的。比方說遠距教學,從前只在偏鄉教育裡推動,但現在每間學校、每個老師和學生都要使用遠距教學,甚至連同泛教育體系的各式補習班如插大、研究所、高普考等,也必須有所改變。另外像是研討會、工作坊這些著重現場感的會議,現在都必須要改成線上進行,甚至如『線上展會』,完成一套模擬的線上商品展也是需要投資的,但現在若不做這樣的投資,客戶就完全看不到你的東西」,張為詩說,「疫情讓民眾的生活型態完全改變,連帶使『零接觸經濟』蓬勃發展」。

STEPS 五步驟 數位轉型方法論

企業主既然意識到「數位轉型」之不可不為,但究竟要如何去執行?他們大多沒有答案。而且,企業面臨數位轉型的最大難題即是缺乏專業人才,並且缺乏系統化的方法工具。對此,資策會在今(2021)年中出版《數位轉型進化論-step by STEPS》,以會內歸納出的 STEPS 數位轉型方法論架構,藉以系統化助企業拆解數位轉型的挑戰,並實際推動轉型案例經驗,輔助培育相關數位人才。

所謂「STEPS」即為 Survey(需求挖掘)、Target(擬定主題目標)、Engage(鏈結組隊)、Pilot(市場先導驗證)、Spread(服務廣度擴散)共 5個步驟。而創生處北中南各地的「RDTIH 區域數位轉型中心」,即應用此架構,並透過會內數位轉型顧問,來傳達數位轉型的重要性。

資策會數位轉型STEPS方法論。Photo Credit:財團法人資訊工業策進會

作為資策會第一線業務與地方智庫幕僚單位的創生服務處,去年底開始推動 RDTIH 區域數位轉型創新中心 (Regional Digital Transformation Innovation Hub),創生處主任張為詩說明,RDTIH 概念是來自歐盟 2016 年提出「數位創新中心(Digital Innovation Hubs, DIHs)」,主要是協助以一站式服務據點(one-stop-shop )的型式,提供企業所需知識、方法、軟體、技術平台、解決方案和測試設施及場域,與地方的產官學界合作,形成各地區的 Ecosystem 商業生態,協助中小企業轉型。

RDTIH 區域創新中心 扶植北中南特色產業善用數位工具

由於資策會創生處在北部、中部、南部都有辦公室,且北、中、南產業的主題特色各不相同,例如很多 AR/VR 業者都位於北部,因此北區 RDTIH 服務項目即以互動體感科技為主,提供業者們試驗與創新的場域。

而中區則是製造機械產業的重點聚落,其中又以自行車、DIY 手工具及水五金為主。因此中區 RDTIH 提供諮詢診斷、數據商情分析、商模規劃、科技導入測試、產業成果推廣,帶領中部產業進入數位高階製造及智慧運動觀光領域。

南部產業則包括扣件、金屬等傳統製造業,另外則有近期政策主推的 5G 文化、AIoT 產業等。南區 RDTIH 主要任務是運用 5G/AIoT 等智慧科技,推動南部產業數位轉型,打造南台灣數位轉型生態聚落,服務領域包含智慧製造、體感娛樂、運動娛樂、智慧醫療等多方位業務,同時也擔任區域產業調研專家與地方政府智庫幕僚。

資策會創生服務處跨域共創中心主任張為詩。Photo Credit:財團法人資訊工業策進會

飯店高層 尋求數位轉型方向

創生處 RDTIH 的數位顧問在協助企業做數位轉型時,曾發現不少有趣案例。張為詩舉國內某家飯店集團為例,這家飯店的老闆在疫情期間仍需出國考察,入境後需要隔離,這期間他每天都滑 FB,看到各企業粉專的貼文,於是老闆覺得「小編」這個職務非常重要,要求行銷部立即處理。於是創生處便請了公關專業人士來幫這個集團所有的小編上課,為飯店品牌做正面的網路行銷。

後來這位飯店老闆又滑 FB 發現其他同業都已投入線上購物,他認為自家的商城也需要改進。而疫情期間訂房數明顯下降,空房率變高,這些空置的客房要如何行銷出去?老闆和高層主管們迫切想找到數位轉型的方向,資策會顧問以  STEPS 方法論,助其擬出智慧酒店的發展藍圖;也就是現在很夯的「無人旅店」,旅客從 Check in到進房門,都不需要看到真人,也能減少疫情期間人與人的接觸。

觀光樂園 借科技力量拉回顧客

另一個「觀光樂園」的案例,則是由於近年娛樂選擇趨於多元,主題樂園業者面臨來自觀光工廠及生態旅遊的競爭,迫使樂園業者力求轉型,借助科技力量讓原有設施產生更豐富的娛樂效果,成為主題樂園轉型的重要作法之一。

資策會創生處顧問團隊運用數位轉型方法論(STEPS),協助樂園業者規劃具備「沈浸娛樂體驗」、「群眾互動性」與「空間複合效益」等特色的商品,將 VR 海盜船/雲霄飛車、AR 摩天輪/咖啡杯、VR/AR 互動解謎/密室鬼屋等設施分門別類,最後選定以高互動程度及空間複合效益較大的「VR/AR 互動解謎與密室逃脫」為主題產品,達成強化科技娛樂體驗,並解決營運坪效和服務人力問題,進而提升入園人次與消費者再入園意願的目標。

哪些產業亟需數位轉型?

張為詩認為,數位化正在改變用戶的期望。用戶希望簡單、便捷及用戶良好的體驗,企業則需要重塑用戶參與模式。此外,所謂的競爭對手已經不僅僅是行業內,很有可能是其他的產業,而且這些對手可能是巨頭公司,且往往因新進入者的玩法不同,帶來不同的遊戲規則。

以最近興起的雲端廚房為例,張為詩分享,「過去餐飲業新創面臨前期投資門檻高,但後期回收速度慢,經常入不敷出,容易倒閉。雲端廚房只有廚房設施、廚師以及食材,運用外送平台或是自家外送服務提供餐點的營業模式,租金及其他間接成本可降低 25%,人事成本平均可減少 20%。甚至,陸續發展出包含共享廚房、品牌餐飲代工、自創品牌等新興商業模式,甚至讓雲端廚房變成新創加速器的角色。」

台灣目前亟需數位轉型的產業,不只有超過 100 萬家的中小企業,還有平常接觸最多消費者的零售服務業,疫情期間面臨消費者行為的改變,及電子商務正在侵蝕實體零售服務業的市場,因此,中小企業、零售業和實體通路品牌必須加速數位化腳步,才能繼續保有競爭力!