人工智能應用架構的思考

{"type":"doc","content":[{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"一、Paddle Lite和PaddleSlim","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"目前在深度學習領域分類兩個派別,一派爲學院派,研究強大、複雜的模型網絡和實驗方法,爲了追求更高的性能;另一派爲工程派,旨在將算法更穩定、高效的落地在硬件平臺上,效率是其追求的目標。複雜的模型固然具有更好的性能,但是高額的存儲空間、計算資源消耗是使其難以有效的應用在各硬件平臺上的重要原因。所以,卷積神經網絡日益增長的深度和尺寸爲深度學習在移動端的部署帶來了巨大的挑戰,深度學習模型壓縮與加速成爲了學術界和工業界都重點關注的研究領域之一。","attrs":{}}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"1. 端側推理引擎的背景","attrs":{}}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/6a/6a4a85e9a39af094cf79dc06701ed4f1.png","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"隨着深度學習的快速發展、特別是小型網絡模型的不斷成熟,原本應用到雲端的深度學習推理,就可以放到終端上來做,比如手機、手錶、攝像頭、傳感器、音響,也就是端智能。此外,可用於深度學習計算的硬件也有井噴之勢,從Intel到Nvidia、ARM、Mali、寒武紀等等。相比服務端智能,端智能具有延時低、節省資源、保護數據隱私等優勢。目前已經在AI攝像、視覺特效等場景廣泛應用。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"然而,深度學習推理場景中,多樣的平臺、不同的芯片對推理庫的能力提出了更高的要求。端側模型的推理經常面臨算力和內存的限制,加上日趨異構化的硬件平臺和複雜的端側使用狀況,導致端側推理引擎的架構能力頗受挑戰。端側推理引擎是端智能應用的核心模塊,需要在有限算力、有限內存等限制下,高效地利用資源,快速完成推理。因此,飛槳期望提供面向不同業務算法場景、不同訓練框架、不同部署環境, 簡單、高效、安全的端側推理引擎。","attrs":{}}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"2. Paddlelite的特色","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"爲了能夠完整地支持衆多的硬件架構,實現在這些硬件之上的各種人工智能應用的性能優化,飛槳提供端側推理引擎Paddle Lite。截止到現在,Paddle Lite已廣泛應用於搜索廣告、手機百度、百度地圖、全民小視頻等多個重要業務。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" ","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Paddle Lite具備如下產品特色:","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"1) 移動端和嵌入端的模型部署工具,可使用其部署PaddlePaddle、TensorFlow、Caffe、ONNX等多種平臺的主流模型格式,包括MobileNetV1、YoloV3、UNet、SqueezeNet等主流模型。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"2)多種語言的API接口:C++/Java/Python,便於嵌入各種業務程序。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"3)豐富的端側模型:resnet、effcientnet、shufflenet、mobilenet、unet、facedetection、unet、ocr_attention等。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"4)支持豐富的移動和嵌入端芯片:ARM CPU、Mali GPU、Adreno GPU,昇騰&麒麟NPU,MTK NeuroPilot,RK NPU,寒武紀NPU,X86 CPU,NVIDIA GPU,FPGA等多種硬件平臺。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"5)除了Lite本身提供的性能優化策略外,還可以結合PaddleSlim可以對模型進行壓縮和量化,以達到更好的性能。","attrs":{}}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"3. 架構設計","attrs":{}}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/69/69fae404e25543f192813137f0d9a0c3.png","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"架構圖如上所示,Paddle-Lite 架構側重多硬件、高性能的支持,其主要設計思想如下:","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"1)引入 Type system,強化多硬件、量化方法、data layout 的混合調度能力。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"2)硬件細節隔離,通過不同編譯開關,對支持的任何硬件可以自由插拔。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"3)引入 MIR(Machine IR) 的概念,強化待執行環境下的優化支持。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"4)圖優化模塊和執行引擎實現了良好的解耦拆分,保證預測執行階段的輕量和高效率。","attrs":{}}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"二、AIOps的思考","attrs":{}}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"1. 背景","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"AIOps,最初的定義是Algorithm IT Operations,是利用運維算法來實現運維的自動化,最終走向無人化運維。隨着技術成熟,逐步確定爲Artificial Intelligence for IT Operations——智能運維,將人工智能應用於運維領域,基於已有的運維數據(日誌、監控信息、應用信息等),通過機器學習的方式來進一步解決自動化運維無法解決的問題。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" ","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"早期的運維工作大部分是由運維人員手工完成的,手工運維在互聯網業務快速擴張、人力成本高企的時代,難以維繫。於是,自動化運維應運而生,它主要通過可被自動觸發、預定義規則的腳本,來執行常見、重複性的運維工作,從而減少人力成本,提高運維的效率。總的來說,自動化運維可以認爲是一種基於行業領域知識和運維場景領域知識的專家系統。隨着整個互聯網業務急劇膨脹,以及服務類型的複雜多樣,“基於人爲指定規則”的專家系統逐漸變得力不從心,自動化運維的不足,日益凸顯。 ","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" ","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"DevOps的出現,部分解決了上述問題,它強調從價值交付的全局視角,但DevOps更強調橫向融合及打通,AIOps則是DevOps在運維(技術運營)側的高階實現,兩者並不衝突。AIOps不依賴於人爲指定規則,主張由機器學習算法自動地從海量運維數據(包括事件本身以及運維人員的人工處理日誌)中不斷地學習,不斷提煉並總結規則。AIOps在自動化運維的基礎上,增加了一個基於機器學習的大腦,指揮監測系統採集大腦決策所需的數據,做出分析、決策,並指揮自動化腳本去執行大腦的決策,從而達到運維繫統的整體目標。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"下圖是百度運維發展歷程:","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/87/877c81535522c1e75213bbbf759b3abf.png","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"從2014年開始,從最開始的行業領域知識加上運維專家經驗,到之後加上人工智能算法,演進成AIOps,從數據建設和智能監控場景入手,逐漸覆蓋到智能故障管理,變更管理,容量管理和服務諮詢。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" ","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"綜上看,自動化運維水平是AIOps的重要基石,而AIOps將基於自動化運維,將AI和運維很好地結合起來,這個過程需要三方面的知識:","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"1)行業、業務領域知識,跟業務特點相關的知識經驗積累,熟悉生產實踐中的難題。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"2)運維領域知識,如指標監控、異常檢測、故障發現、故障止損、成本優化、容量規劃和性能調優等。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"3)算法、機器學習知識,把實際問題轉化爲算法問題,常用算法包括如聚類、決策樹、卷積神經網絡等。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"百度的故障管理場景如圖所示,主要包括故障發現,故障止損,故障診斷智能預警等。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/57/57b2ebeb95f17ddbe79b5108bd5dce0a.png","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"2. 故障發現","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"運維的黃金指標有請求數(流入狀態),成功率(流出狀態),響應時間(用戶相應感受),系統容量(系統併發負載)等。其預測難點在於基線預測算法在遇到節假日這種不規律的情況時不準確,另外在於配置上的,忙閒時間機器需求差異很大,容易造成資源浪費。","attrs":{}}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"2.1 基線預測算法","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"基線預測算法主要採用魯棒迴歸+週期數據多模式挖掘相結合的算法。魯棒迴歸算法的思想是假設較小窗口內符合線性趨勢變化,即局部符合線性。週期數據多模式的思想是對於不同的節假日,春節等特殊時期採用多種基線模型進行匹配。","attrs":{}}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"3. 故障自愈","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"出現故障第一時間的原則是故障止損,而不是查明原因,甚至解決問題。先將損失止住,再進行分析。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" ","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"傳統的人工故障止損有以下三個不足:相應可能不夠迅速,決策可能不夠準確,操作可能出現失誤。AIOps中的故障止損叫做故障自愈,相對人工智障止損的不足,它可以7*24小時快速相應,全局一致性信息決策,程序自動化準確操作。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"故障自愈的場景和止損方法如下:","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/98/98f8c32f51984bbb899a2d90625d3ff2.png","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"4. 故障診斷","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如下圖所示,爲一個系統的運行流圖,G節點此時出現故障。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/fe/fe0898ffee60919a9f14a1d834e1a328.png","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"人工故障針對的做法通常從兩個方向出發,一是找出A上的某故障跟G節點的關係,二是追查G節點異常的原因。這很大程度依賴人工歷史經驗,不易準確快速定位原因。AIOps的智能故障診斷方法的做法是利用黃金指標綜合進行,做法如下所示:","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/40/40db2ab1d4339174fd509ab4b7132b41.png","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"5. 智能預警","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"一個很重要的運維手段就是在故障發生之前進行預警,從而減少實際損失。人工的預警方法通常是根據經驗,考慮的指標覆蓋範圍小,且閾值的設置較爲困難,容易產生誤報和漏報。AIOps的智能預警可以覆蓋上萬個指標,且通過機器學習自動學習到相應閾值,而無需人工干預。智能預警如下圖所示:","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/b8/b8a5cf73d334580fdd33d44ee5f3089d.png","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"三、快手推薦系統Dragonfly架構啓發","attrs":{}}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"1. 背景","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"以推薦系統爲例,通常在線推薦系統包括召回,排序,重排三個模塊。召回是利用如ANN檢索,倒排檢索算法,將候選項從千萬降到十萬的數量級;排序是利用CTR,LTR等指標,將候選項從十萬降到千的數量級;最後重排是利用多樣性打散,強插,混排技術將候選項從千降到十的數量級。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/70/7082651f82cfa82d5552fd56a9ab332f.png","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"爲了快速複用,採用的如上圖的分離的系統架構,算法人員和架構人員的代碼交織在一起,那麼如何將業務代碼和架構代碼進行解耦呢?David Wheeler說過,所有的計算機問題都可以通過增加一層抽象來解決。","attrs":{}}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"2. 實現方法","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"快手架構的基本思想是構建了一種DSL語言Dragonfly,讓算法人員用類python方式開發,而不用關注底層的實現,架構人員專注於用c++實現底層架構。下圖右側的圖就是一個算法人員實現的例子,就是純python代碼,容易實現,易於閱讀。","attrs":{}}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/80/803020858312955ca17f99b2c721de56.png","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/0a/0a21ddcd99757a3bc74068fe9dad12f2.png","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"具體解決方案是將算法都細分成算子的粒度,如下圖所示,所有的人工智能算法都是由各種算子進行組合搭建而成,架構人員負責開發這些算子的實現,算法人員在封裝好的算子基礎上進行運用。因此算法人員不關注底層實現,專心關注與上層邏輯,去編寫DSL語言,然後提交配置即可;架構人員不關注上層邏輯,只負責編寫底層算子。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/2f/2f682ba54bf25cad718ecac010e6a72c.png","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在實現這種改進之後,最大的優點就是新場景的接入成本從7人日縮減到1人日。這種利用算子話粒度解耦的思想是我們是可以借鑑的,我們在做算法開發時,很多代碼都交織在一起,不能抽取出來,導致很多重複性的工作。如果把這些算法進行一步步的切分,分成很小的算子粒度,就能夠方便進行解耦,是的算法人員可以任意組合拼接算子,實現業務算法。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"參考文獻:","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"[1]《Paddle Lite端側部署》作者:吳建明","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"https://www.cnblogs.com/wujianming-110117/p/14398502.html","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"[2]《架構設計》Paddle-Lite","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"https://paddlepaddle.github.io/Paddle-Lite/v2.2.0/architecture/","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"[3]《故障管理場景AIOps實踐與探索》 作者:陳雲","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"https://ppt.infoq.cn/slide/show?cid=83&pid=3355","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"[4]《Dragonfly 快手通用策略DSL在推薦系統架構的應用和演進》作者:方劍冰","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"https://ppt.infoq.cn/slide/show?cid=83&pid=3295","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"[5]《百度飛漿輕量化推理引擎Paddle Lite的實現和應用》作者:嚴春偉","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"https://ppt.infoq.cn/slide/show?cid=83&pid=3273","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"原文鏈接:","attrs":{}},{"type":"link","attrs":{"href":"https://mp.weixin.qq.com/s/MfI_dJpU4mwq6W0k9Mxqzg","title":"","type":null},"content":[{"type":"text","text":"人工智能應用架構的思考","attrs":{}}]}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章