999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

邊緣計算驅動的對話機器人終端部署

2021-04-06 04:04:19馬壯楊威
軟件工程 2021年2期

馬壯 楊威

摘? 要:目前,大部分內置對話功能的終端只是用戶文字語音傳輸的“中轉站”,并不承擔計算功能。這導致用于計算的云服務需要承擔較高的網絡負載和計算負載。隨著硬件性能的不斷提升,終端設備也能運行部分自然語言處理算法,分擔云服務的壓力。本文討論了使用邊緣計算技術實現對話機器人終端部署的可行性,并設計了基于云+邊緣協同計算的對話系統架構。通過將部分對話機器人部署在終端,可以降低云服務的訪問頻率,從而降低網絡和計算負載。

關鍵詞:對話機器人;邊緣計算;深度學習模型部署

Abstract: At present, most information terminals with built-in dialogue function are only transit stations for users' text and voice transmission, and they do not undertake calculation functions. As a result, cloud services for computing have to carry high network load and computing load. With hardware improvement, terminal devices can also locally run some natural language processing algorithms to share pressure of cloud services. This paper discusses feasibility of using edge computing technology to realize deployment of chatbot terminals, and designs a dialogue system architecture based on cloud + edge collaborative computing. By deploying some chatbots on terminals, access to cloud services can be reduced, thereby lowering network and computing load.

Keywords: chatbot; edge computing; deep learning model deployment

1? ?引言(Introduction)

基于自然語言處理技術的對話機器人正在深刻地改變人機交互的模式。依托于文本相似度匹配、命名實體識別等自然語言處理算法,對話機器人能夠在一定的封閉域內理解人類的語言,并給出符合常識的響應。但受制于這些算法的高計算復雜度,對話機器人的算法部署大多采用云部署的方式,使用云端的高性能計算集群完成算法任務[1]。隨著用戶數量的增加,云端需要更大規模的計算集群來完成高并發的對話服務響應,這樣一來系統部署的成本就會顯著提升。

在硬件設備計算能力不斷高速提升的今天,許多終端設備(例如中高端手機和平板電腦)都配有高主頻多核心的中央處理器。如果使用邊緣計算技術充分調動這些計算資源,終端設備便具備了實時語音視頻信號處理、深度學習算法前向推理的能力。在邊緣計算技術的支撐下,經過優化的終端設備就能夠獨立完成自然語言處理任務,初步實現語義理解和高頻問題的應答,分擔云服務器的部分計算壓力。云服務器可以將計算資源集中在低頻、高精度、依賴海量常識信息的用戶問題的應答中。將對話機器人的云端部署與邊緣設備部署相結合,能夠充分發揮二者的優勢,在保證對話機器人能夠準確回答用戶問題的前提下,盡可能地降低部署難度和部署成本。

本文將先介紹對話機器人部署和邊緣計算的研究基礎;然后總結邊緣計算驅動的對話機器人部署技術,論證其可行性;最后提出基于云+邊緣協同計算的對話機器人部署架構。

2? ?相關研究(Related study)

2.1? ?對話機器人部署相關研究

目前,已經有很多對話機器人完成了部署并產品化,如圖1所示。小米的對話機器人小愛同學已經融入小米產品生態體系中。用戶可以與搭載了小愛同學的小米智能音箱對話,從而控制35大品類的智能家居設備,例如電視、掃地機器人、智能插座等[2]。高德地圖的對話機器人小德主要面向導航場景,通過語音交互,向用戶提供路徑導航、附近公共設施搜索等服務。阿里的店小蜜在簡單的配置之后就能夠智能回答用戶的高頻問題,大大降低了人工客服的工作量。

上述三款對話機器人分別以智能音箱、手機、網頁為載體,與用戶產生交互。當用戶通過語音或鍵盤輸入與對話機器人溝通時,終端會將用戶的語音、文本等原始數據上傳到云端,由云服務器完成語義分析并將回復返回終端,最后終端將回復結果呈現給用戶。在這個流程中,終端主要承擔著數據收發和用戶交互的任務,而核心算法都在云端的服務器上進行計算。

雖然算法的云服務部署具有擴展性高、通用性強等優點,但是隨著用戶與對話機器人的交流頻率越來越高,云服務器的網絡負載和計算負載也會越來越高,這樣一來會顯著提高云服務的部署成本。

2.2? ?邊緣計算相關研究

邊緣計算指在靠近數據源頭的一側就近提供服務的技術,已經被廣泛應用于自動駕駛、工業物聯網、智慧城市等領域[3]。基于智能終端的邊緣計算設備能夠實時分析傳感器采集的數據,并產生快速響應,在滿足實時業務的同時還能夠保護用戶的隱私。

為了保證一系列復雜算法(例如深度學習算法)能夠順利地在邊緣設備上運行,開發者通常會從硬件和軟件兩個層面進行優化。硬件加速是指使用專用的高性能計算單元代替中央處理器執行復雜算法的技術。數字信號處理器(Digital Signal Processor,DSP)專用于數字信號處理任務,圖形處理單元(Graphic Processing Unit,GPU)更擅長圖形渲染,神經網絡推理計算可以使用神經網絡處理單元(Neural Processing Unit,NPU)進行加速。軟件加速是指在軟件層面上充分調動已有的硬件資源提升計算效率的技術,常見的軟件加速技術有異構計算、內存分配優化、指令集優化等。在固定的硬件條件下,使用最適合的軟件加速方案進行調優,能夠最大程度地利用不同計算單元的特性,在邊緣設備上實現實時的數據采集、處理與分析。

但是,畢竟終端設備的計算能力無法與云服務器相比,而且目前最新的高精度的自然語言處理算法復雜度較高,因此使用邊緣計算技術部署對話機器人仍有諸多挑戰。

3? 邊緣計算驅動的對話機器人部署技術研究現狀(Research status of edge computing-driven chatbot terminal deployment technology)

在對話機器人和用戶交互的過程中,算法需要解決諸如自然語言理解、文本相似度匹配等問題。目前,基于深度學習的預訓練模型(BERT、GPT等)在這類問題上展現出很大的優勢。但是因為這類模型需要先從海量文本中學習自然語言的多樣化表示,所以參數普遍很多(超過300M個浮點數)[4]。針對這一任務,我們需要解決硬件加速、軟件加速和模型輕量化三個問題。下面本文將從這三個角度介紹邊緣計算技術應用于對話機器人部署場景的可行性。

3.1? ?硬件加速

由于目前驅動對話機器人的自然語言處理算法大多基于深度學習方法,因此如果在智能終端的硬件選型過程中考慮集成能夠提升深度學習算法推理速度的計算單元,就能使智能終端具備對話機器人部署的可能性。常見的應用于深度學習算法邊緣計算的高性能計算單元包括圖形處理單元(GPU)、神經網絡處理單元(NPU)、可編程邏輯門陣列(FPGA)等。

GPU最早應用于解決圖形渲染問題,它能夠調用計算能力不高但數量眾多的計算核心,并行地完成諸如3D坐標變換等簡單計算操作,從而實現復雜三維物體的實時渲染。自2012年Alex提出了AlexNet并使用GPU加速了神經網絡訓練過程之后,GPU被廣泛應用于深度學習模型的訓練和云端部署任務中。在邊緣計算場景下,手機等智能終端的系統級芯片(SoC)中都包含負責畫面渲染的GPU,這些GPU能夠輔助加速神經網絡的前向推理。同時,NVIDIA嘗試將高性能的GPU嵌入開發板中,推出了Jetson系列開發板。該系列產品在神經網絡計算任務上的表現遠超同價位的樹莓派開發板,為開發者硬件選型提供了新的選項。

NPU是專用于神經網絡計算的計算單元,架構設計上模仿了生物神經網絡,以“神經元”為基本單位。在計算過程中,模型中每層神經元的結果無須輸出到主內存,直接按照網絡結構傳遞給下層神經元。這使NPU無須像CPU和GPU一樣頻繁訪問內存,這樣不僅提升了整體計算速度,還能夠大大降低功耗。目前,高端手機的SoC芯片(華為麒麟990、三星Exynos980等)中都集成了專用于執行深度學習算法的NPU。

FPGA是一種半定制電路,開發者可以使用硬件描述語言(Verilog、VHDL等)修改芯片中門電路和存儲器之間的連線,從而實現算法的部署。依托于硬件電路天然的并行特性,FPGA能夠擁有更快的計算速度、更高的帶寬,同時保持較低的功耗。但是,受制于硬件開發的復雜性,將算法部署在FPGA上需要更多的時間。2020年,百度推出了基于FPGA的開發板EdgeBoard,同時提供了Paddle-Mobile到FPGA的模型轉換工具。這一產品大大簡化了深度學習算法在FPGA上的部署過程,使在FPGA上快速迭代算法成為可能。

綜上,在對話機器人載體終端的硬件設計過程中,如果采用系統級芯片(SoC)解決方案,可以在芯片設計過程中為GPU和NPU模塊分配相應的空間。如果采用板級解決方案,可以選用配有GPU模塊或FPGA模塊的開發板,然后基于開發板中的Linux/Android系統進行軟件開發。兩種方案都能夠在硬件層面提升終端執行深度學習算法的能力,從而輔助實現對話機器人的邊緣部署。

3.2? ?軟件加速

與云服務器不同,邊緣計算設備受功率和成本的限制,往往無法通過單純累加硬件的方式實現深度學習算法加速。因此,為了讓有限的硬件資源最大程度發揮出最高的性能,小米、阿里、騰訊等公司都研發了針對邊緣計算設備的深度學習算法前向推理框架。這些框架都包含以下軟件加速技術:

異構計算:當智能終端在硬件層面集成了高性能計算單元之后,為了更好地調度不同的計算單元協同完成復雜的計算任務,需要有一個跨平臺的通用軟件編程標準。2008年,蘋果公司提出了一個這樣的標準,命名為OpenCL。此后,Intel、NVIDIA、AMD等公司硬件產品的驅動程序中都陸續提供了OpenCL的API支持。前向推理框架可以使用OpenCL調度GPU等計算單元實現加速[5]。但在智能終端,尤其是Android平臺上,硬件設計沒有統一的標準。僅GPU一項就有高通的Adreno系列、ARM的Mali系列、Imagination的PowerVR系列、NVIDIA的Tegra系列,每個系列的硬件架構和紋理壓縮格式不盡相同,這導致前向推理框架想要兼容所有設備是非常困難的。目前,騰訊TNN和阿里MNN都做到了Android平臺和iOS平臺的深度調優;小米mace僅支持高通、聯發科、松果等系列芯片的異構計算,尚不支持iOS平臺。

算符級優化:在深度學習模型訓練過程中,為了提升神經網絡結構搭建的靈活性,網絡都被劃分成粒度較小的基礎算符(例如,卷積、激活函數、矩陣乘法等)。由于每個算符計算完成之后都要將計算結果從低層內存搬運到高層內存,因此會反復讀取內存造成不必要的數據傳輸開銷。因此,前向推理框架往往會采用算符融合的方式,把一些常見的同時出現的算符(Conv+bn+ReLU)合并為一個粒度較大的算符,這樣能夠顯著提升推理速度。另外,對一些常用算符的實現方式進行單獨優化也是有效地加速方案。TNN等框架中都使用了Winograd等快速卷積方法替換傳統的卷積實現方式,雖然損失了一定的精度,但是計算速度能夠至少提升四倍[6]。此外,基于Strassen算法的矩陣乘法加速算法還能夠顯著提升全連接層運算速度。

低精度優化:目前絕大部分深度學習算法的權重數據類型都是32-bit浮點數。但是大量研究表明,在模型計算尤其是模型前向推理的過程中,如此高的數據精度是不必要的[7]。如果將權重數據量化到FP16(16-bit浮點數)或INT8(8-bit整數)形式,在一定調優的前提下不僅能保證模型推理的準確性,還能顯著提升計算效率并降低內存帶寬。為了在硬件層面上加速低精度計算,ARM的GPU從Mali-G76起全面支持INT8計算指令,寒武紀等NPU廠商也都在芯片中集成了INT8壓縮方案。

此外,軟件加速還包括Neon向量化優化、內存優化等方法,通過對處理器底層資源調度的優化,能夠減少不必要的計算開銷。目前,深度學習前向推理框架仍處于快速發展階段,常規的框架并不能完美兼容所有硬件設備和計算算符。因此在對話機器人的邊緣部署過程中,需要綜合考慮目標設備的硬件條件和待使用的網絡模型,選用兼容性最好的框架。

3.3? ?模型輕量化

目前,基于語言模型預訓練的自然語言處理算法在諸多任務上表現出出色的準確度,最具代表性的模型有BERT和GPT等。這些模型為了從海量文本中學習多樣化的自然語言表示,往往在設計過程中沒有考慮計算復雜度,模型參數數量往往是上億級別,這導致了此類模型幾乎無法直接部署到任何終端設備上。因此,如果想實現對話機器人的終端部署,在自然語言處理模型的設計上就要關注輕量化的問題。

在神經網絡結構設計(Network Architecture Design,NAD)域,在保證模型特征提取能力的前提下減少模型的計算量是重要的研究方向之一。常見的輕量化神經網絡單元如圖2所示。SqueezeNet[8]中設計了一種Fire Module結構,先使用1×1卷積將通道數降為輸入的一半,然后再分別用一個1×1和3×3的卷積核對得到的特征圖進行卷積操作,最后將這兩層的結果整合之后輸出。用該結構代替普通的3×3卷積核,不僅能夠提升網絡的特征提取能力,還能將參數量減少為原來的1/4。MobileNet[9]中使用Depth-wise Convolution和Point-wise Convolution替代普通的卷積核,前者對每個通道的特征圖僅采用一個3×3的卷積核進行操作,整合單個通道特征圖的空間信息;后者使用1×1的卷積核,整合單個位置多個通道之間的信息,從而在實現傳統卷積功能的基礎上,減少參數量的效果。

當模型設計和訓練完成之后,通過分析每一層的參數,研究者們發現神經網絡模型中有些層的參數對最終輸出結果的貢獻不大,所以可以使用剪枝算法刪除這些貢獻不大的參數或層,從而顯著減小模型的體積,提升模型計算速度。剪枝算法中首先會利用L1、L2正則化等方式評價神經網絡權重參數的貢獻度,然后刪除貢獻度低的參數或層。這個過程會不可避免地帶來模型精度的損失,因此剪枝后的模型需要重新訓練。在上述過程中,如果單次剪枝掉過多的參數,會導致模型參數崩潰,需要通過重新訓練恢復精度。因此通常情況下的剪枝操作是迭代進行的,即單次剪枝掉少量參數,重新訓練之后再次評估參數貢獻度,而后繼續進行剪枝,直至模型參數減少到目標值。針對自然語言處理中常用的BERT模型,Michel等人[10]提出可以將模型中的多頭注意力模塊剪枝為單頭注意力模塊,McCarley等人[11]進一步通過剪枝操作將BERT前饋子層的寬度減小。以上方法都能實現模型的輕量化。

不同于剪枝算法迭代地降低模型參數,知識蒸餾方法先直接設計一個目標小模型,以該小模型為“學生”,以預訓練的大模型為“教師”,構建Teacher-Student架構。通過使用數據真實標簽(Hard Target)和教師模型的輸出(Soft Target)構建損失函數以訓練學生模型,能夠使學生模型獲得教師模型所學習到的“知識”,由此訓練出的輕量化模型的性能顯著優于直接使用數據真實標簽訓練得到的模型。在Tiny BERT[12]模型的訓練過程中,研究者將預訓練BERT模型的Embedding層、隱藏層和輸出層分別蒸餾到小模型中,在保證模型在多項自然語言處理任務中表現穩定的前提下,推理速度提升了9.4倍。

在實際應用中,神經網絡結構設計、剪枝和知識蒸餾三種方法通常被聯合應用于模型輕量化任務。為了構建ALBERT[13]模型,研究者首先應用神經網絡結構設計技巧搭建了輕量化的ALBERT模型,然后使用知識蒸餾方法將預訓練的IB-BERT中的知識遷移到輕量化模型中,最后使用參數剪枝操作降低模型參數數量。輕量化的自然語言處理模型能夠從根本上降低邊緣計算設備的計算壓力,從而保證對話機器人能夠成功部署在智能終端上。

4? 基于云+邊緣協同計算的對話系統架構(Chatbot system architecture based on cloud + edge collaborative computing)

雖然邊緣計算驅動的對話機器人部署技術已經較為成熟,但邊緣設備的計算和存儲能力依然無法和云端的服務器相比。在面對海量知識庫檢索等復雜對話任務時,云計算仍然有著無可替代的地位。因此本文結合邊緣設備和云端設備的性能特點及對話機器人系統的業務特殊性,提出了一種云+邊緣協同計算的對話系統架構。

在對話機器人的業務層面,可以將其業務分成封閉域問答和開放域問答兩部分。封閉域問答是指對話機器人回復產品相關問題的功能,比如小愛同學會介紹小米相關產品的常見問題和進行新品推薦,淘寶客服機器人可以回答關于產品規格、發貨時間和特價信息等問題。因為封閉域問答面向的應用場景較為單一,場景中涉及的高頻對話語料是有限,所以語義解析和信息檢索的難度相對較低,可以由智能終端直接生成回復。開放域問答的范圍相對寬泛,與業務內容沒有強關聯的部分都可以定義為開放域問答。由于用戶與對話機器人討論的話題可能橫跨多個領域,因此這意味著支持開放域問答的對話機器人背后需要有龐大的知識庫作為支撐。如果想實現海量知識庫中的知識檢索和事實檢索,就必然要使用云服務器的計算資源。因此在解決開放域問題時,智能終端只負責完成最開始部分的語義解析和文本分類任務,后續的回復生成交由云服務器完成。

綜上,在云+邊緣協同計算的對話系統架構(圖3)下,用戶輸入問題后,智能終端會使用文本分類算法確認問題的類型(封閉域、開放域),然后使用語義解析算法提取問題中的關鍵信息。如果問題為封閉域問題,則由終端在本地知識庫中檢索答案并回復給用戶;若問題無法解答或為開放域問題,則由終端上傳到云服務器,由云服務器在大規模知識庫下進行答案的檢索。

此外,云端可以統計不同問題的交互頻次,基于此動態更新保存在終端的高頻對話語料庫,保證終端能夠盡可能地解答用戶的高頻問題,分擔云端的計算壓力。同時,終端可以利用空閑時間使用本地數據訓練模型并發送給云服務器,云服務器借由安全多方學習等方法聚合來自多個終端的更新參數,獲得新的精度更高的語義解析模型,并返回每個終端。數據和模型的更新提供了對話機器人持續成長的可能性。

5? ?結論(Conclusion)

本文從硬件、軟件和算法三個層面論述了邊緣計算技術應用于對話機器人部署任務的可行性。使用專用于深度學習模型推理的框架,驅動硬件架構中的GPU、NPU等高性能計算單元,執行經過輕量化設計的自然語言處理模型,使智能終端也能夠完成自然語言處理任務,從而實現對話機器人的終端部署。

基于現有邊緣計算技術和對話業務,本文提出了一個云+邊緣協同計算的對話系統架構。在該框架下,部署在邊緣設備上的對話機器人能夠自主回答一定封閉域下的高頻問題,部署在云端的對話機器人則負責回答終端無法回復的復雜問題。通過這種方式,邊緣設備的計算資源能夠得到充分的利用,云計算平臺的網絡負載和計算負載也會顯著降低。

參考文獻(References)

[1] 姚永剛.基于云計算的人機對話系統研究與實現[D].廣州:華南理工大學,2013.

[2] 王浩暢,李斌.聊天機器人系統研究進展[J].計算機應用與軟件,2018,35(12):1-6;89.

[3] 丁春濤,曹建農,楊磊,等.邊緣計算綜述:應用、現狀及挑戰[J].中興通訊技術,2019,25(03):1-7.

[4] 李舟軍,范宇,吳賢杰.面向自然語言處理的預訓練技術研究綜述[J].計算機科學,2020,47(03):170-181.

[5] 王湘新,時洋,文梅.CNN卷積計算在移動GPU上的加速研究[J].計算機工程與科學,2018,40(01):34-39.

[6] Lavin A, Gray S. Fast algorithms for convolutional neural networks[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2016:4013-4021.

[7] 尹文楓,梁玲燕,彭慧民,等.卷積神經網絡壓縮與加速技術研究進展[J].計算機系統應用,2020,29(09):16-25.

[8] Iandola F N, Han S, Moskewicz M W, et al. SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and < 0.5 MB model size[DB/OL]. [2016-12-04]. https://arxiv.org/pdf/1602.07360.pdf.

[9] Sandler M, Howard A, Zhu M, et al. Mobilenetv2: Inverted residuals and linear bottlenecks[C]. Proceedings of the IEEE conference on computer vision and pattern recognition,2018: 4510-4520.

[10] Michel P, Levy O, Neubig G. Are sixteen heads really better than one?[C]. Advances in Neural Information Processing Systems, 2019:14014-14024.

[11] McCarley J S. Pruning a bert-based question answering model[DB/OL]. [2019-10-14]. https://arxiv.org/pdf/1910.06360.pdf.

[12] Jiao X, Yin Y, Shang L, et al. Tinybert: Distilling bert for natural language understanding[DB/OL]. [2019-09-24]. https://arxiv.org/pdf/1909.10351.pdf.

[13] Lan Z, Chen M, Goodman S, et al. Albert: A lite bert for self-supervised learning of language representations[DB/OL]. [2019-09-30]. https://arxiv.org/pdf/1909.11942.pdf.

作者簡介:

馬? ?壯(1994-),男,碩士,初級研究員.研究領域:深度學習,神經網絡部署.

楊? ? 威(1968-),男,本科,工程師.研究領域:云計算,軟件架構設計.

主站蜘蛛池模板: 久久久久青草大香线综合精品| 欧美日韩国产在线观看一区二区三区 | 久久香蕉国产线看观看精品蕉| 免费在线国产一区二区三区精品| 久久黄色视频影| 色综合成人| 91久久青青草原精品国产| 国产欧美日韩综合在线第一| 亚洲天堂视频在线观看免费| 久久久久青草线综合超碰| 国产十八禁在线观看免费| 久久黄色毛片| 亚洲婷婷丁香| 99热国产这里只有精品无卡顿"| 色吊丝av中文字幕| 欧美人在线一区二区三区| 国产理论精品| 熟女成人国产精品视频| 九月婷婷亚洲综合在线| 国产视频你懂得| 久久一级电影| 激情無極限的亚洲一区免费| av在线无码浏览| 天堂网国产| 99久久国产综合精品2020| 日本在线国产| a毛片基地免费大全| 久久综合亚洲色一区二区三区| 国产成人精品视频一区二区电影| 日韩视频福利| 天天综合色网| 美女扒开下面流白浆在线试听| 综合天天色| 国产国产人成免费视频77777| 久久久成年黄色视频| 综合色天天| 国产日韩欧美在线视频免费观看| 无码丝袜人妻| 亚洲伊人天堂| 日韩a在线观看免费观看| 亚洲精品无码av中文字幕| 特级aaaaaaaaa毛片免费视频 | 欧美不卡视频一区发布| 伊大人香蕉久久网欧美| 极品国产一区二区三区| 国产一区二区免费播放| 99久久亚洲精品影院| 亚洲日本韩在线观看| 一区二区午夜| 伊人久久精品亚洲午夜| 国产在线视频导航| 亚洲无码四虎黄色网站| 污视频日本| 四虎永久在线| 又爽又大又黄a级毛片在线视频 | 亚洲欧美国产高清va在线播放| 91成人免费观看| 久久久久九九精品影院| 国产91久久久久久| 色综合国产| 亚洲欧洲日韩久久狠狠爱| 男人的天堂久久精品激情| 91成人精品视频| 精品国产成人三级在线观看| 久久综合AV免费观看| 91精品aⅴ无码中文字字幕蜜桃| 无套av在线| 中文字幕久久精品波多野结| 日韩 欧美 小说 综合网 另类 | 久久黄色免费电影| 亚洲一级无毛片无码在线免费视频 | 日韩av无码精品专区| 国产免费好大好硬视频| 亚洲中文无码av永久伊人| 欧美三级视频在线播放| 精品福利视频导航| 久草视频中文| 国产农村妇女精品一二区| 久久精品人妻中文系列| 亚洲国产第一区二区香蕉| 中国一级特黄大片在线观看| 日韩精品一区二区三区免费|