騰訊優圖開源深度學習推理框架TNN,助力AI開發降本增效
從學界到工業界,“開源”已經成為AI領域的一個關鍵詞。一方面,它以“授人以漁”的方式為AI構建了一個開放共進的生態環境,幫助行業加速AI應用落地;另一方面,在解決行業實際問題時持續更新和迭代,源源不斷地給AI領域輸送重要的技術養料和創造力,可以説開源是AI落地和繁榮不可或缺的源動力。
6月10日,騰訊優圖實驗室宣佈正式開源新一代移動端深度學習推理框架TNN,通過底層技術優化實現在多個不同平台的輕量部署落地,性能優異、簡單易用。基於TNN,開發者能夠輕鬆將深度學習算法移植到手機端高效的執行,開發出人工智能APP,真正將 AI 帶到指尖。
輕量級部署,TNN助力深度學習提速增效
深度學習對算力的巨大需求一直制約着其更廣泛的落地,尤其是在移動端,由於手機處理器性能弱、算力無法多機拓展、運算耗時長等因素常常導致發熱和高功耗,直接影響到app等應用的用户體驗。騰訊優圖基於自身在深度學習方面的技術積累,並借鑑業內主流框架優點,推出了針對手機端的高性能、輕量級移動端推理框架TNN。
TNN在設計之初便將移動端高性能融入核心理念,對2017年開源的ncnn框架進行了重構升級。通過GPU深度調優、ARM SIMD深入彙編指令調優、低精度計算等技術手段,在性能上取得了進一步提升。以下是MNN, ncnn, TNN框架在多款主流平台的實測性能:
低精度計算的運用對TNN的性能提升發揮了重要作用。在神經網絡計算中,浮點精度在許多研究和業務落地成果上都被證明存在一定冗餘,而在計算、內存資源都極為緊張的移動端,消除這部分冗餘極為必要。TNN引入了INT8、FP16、 BFP16等多種計算低精度的支持,相比大部分僅提供INT8支持的框架,不僅能靈活適配不同場景,還讓計算性能大大提升。TNN通過採用8bit整數代替float進行計算和存儲,模型尺寸和內存消耗均減少至1/4,在計算性能上提升50%以上。同時引入arm平台BFP16的支持,相比浮點模型,BFP16使模型尺寸、內存消耗減少50%,在中低端機上的性能也提升約20%。驍龍615平台實測:
通用、輕便是TNN框架的另一大亮點。長久以來,不同框架間的模型轉換都是AI項目應用落地的痛點。TNN設計了與平台無關的模型表示,為開發人員提供統一的模型描述文件和調用接口,支持主流安卓、iOS等操作系統,適配CPU、GPU、NPU硬件平台。企業一套流程就能部署到位,簡單易用、省時省力。同時, TNN通過ONNX可支持TensorFlow, PyTorch, MXNet,Caffe等多種訓練框架,目前支持ONNX算子超過80個,覆蓋主流CNN網絡。TNN所有算子均為源碼直接實現,不依賴任何第三方,接口易用,切換平台僅需修改調用參數即可。
開源文化興起,AI底層技術助推產業發展
事實上,作為騰訊旗下頂級AI實驗室,騰訊優圖長期致力於AI基礎設施的研發和推進。此前,騰訊優圖已開發了Rapidnet前向計算框架、RapidAIoT 邊緣計算框架,實現了業界首個專注移動端的推斷框架ncnn的開源,並在業界受到廣泛推崇。從2017年開源至今,ncnn在GitHub上star(8.9k)和 fork(2.3k)數均領先於其它各大推理框架。
據悉,TNN已於3月中旬在騰訊內部開源,為騰訊QQ、QQ空間、騰訊微視、騰訊雲、天天P圖等多款產品和服務中持續提供技術能力,釋放出更多效能。
“TNN已在GitHub上開源,歡迎業界人士參與協同共建,共同打造更優的移動端推理框架。“騰訊優圖實驗室副總經理吳永堅介紹,騰訊優圖後續將在現有CV業務的基礎上研發更多的AI推理模型,如語音、NLP等相關業務,同時開展針對CPU、GPU服務器端的服務,為業界公司提供更廣泛的優化服務。 “作為產業發展的高速公路,以深度學習框架、組件為代表的AI基礎設施將是未來的主流趨勢,騰訊優圖也將以此為着力點,助推產業發展。”吳永堅表示,騰訊優圖還將持續開發模型訓練組件、模型壓縮組件、基礎算法組件,並擇機開源,希望從框架到平台、到算法,打造一體化的AI基礎設施,降低AI門檻,加速產業發展。
隨着以開源為代表的新代碼文化的興起,騰訊近年來在開源領域表現亮眼:在全球最大的代碼託管平台GitHub上,騰訊發佈的開源項目已經超過一百個,涵蓋雲原生、大數據、AI、雲計算、安全、硬件等多個熱門的技術方向。
通過開源協同,騰訊將各個事業羣最底層和共性的技術能力進行梳理和拉通,在業務實踐和海量用户檢驗下,優質的內部開源項目不僅在公司層面推廣複用,同時也對外貢獻整個開源社區。僅在Github上,騰訊的開源項目就收穫了30w star數,躋身國際上有影響力的開源企業之一。
在開源的道路上,騰訊不僅將內部優質項目持續對外開放,也積極與開源社區協同合作,發揮中國企業的科技力量,推動開源和開放進一步升級。