本發明涉及強化學習、視頻分析、邊緣計算領域,涉及一種基于多智能體強化學習和云邊協同框架的卸載決策方法和裝置。該方法旨在分布式的云邊環境中,實現實時高精度的視頻分析任務。
背景技術:
1、深度學習在流媒體視頻領域得到廣泛應用,涵蓋視頻監控、行為識別、自動駕駛和虛擬現實等方面。在實踐中,深度學習模型常被部署在各種終端設備上,如車輛、監控攝像頭、手機和智能家具。在一些關鍵應用場景中,如自動駕駛,對視頻進行實時、高精度分析至關重要。然而,終端設備的算力通常有限,可能導致服務質量下降甚至造成嚴重事故。為了解決這一問題,常見的思路是將視頻分析任務卸載到算力強大的設備上。傳統方法是通過云計算,將視頻任務卸載到云服務器,但這會帶來巨大的傳輸成本。為了降低網絡傳輸消耗,有人提出了邊緣計算,將視頻分析流推送至就近的邊緣設備。然而,邊緣設備算力有限,無法實時處理多個任務請求。因此,云邊協同計算成為一種流行的范式,它充分利用了邊緣計算和云計算的優勢,顯著降低了總體進程延遲。
2、基于云邊協同的視頻分析需要根據系統負載、網絡環境等情況選擇合適的卸載策略。許多研究都探索了云服務器和大量邊緣設備之間的視頻分析任務協調。他們通常設計一個集中的決策者,從邊緣網絡和云中收集加載信息,然后根據應用程序的特點確定一個合適的卸載策略。例如deepdice、fastva和osmoticgate試圖為云邊協同流媒體視頻分析系統建模一個復雜的環境,并研究了新的啟發式卸載機制來平衡系統的工作負載。然而,現有的邊緣云卸載研究主要是在簡單、靜態、封閉的環境,而現實世界的場景是動態的和不確定的。集中式的啟發式決策嚴重依賴于環境的理論建模,它無法快速捕捉到終端設備和邊緣設備數量、性能、工作負載的動態變化,并難以準確地建模邊緣云中分布式設備之間的復雜交互環境,導致潛在的系統錯誤配置。且其決策需要監測收集系統全局信息,面對具有大量邊緣設備的分布式系統,集中決策的搜索空間會非常大,延遲高,且收集全局信息也會引入額外的延遲,降低了它們響應突然流量峰值的有效性。此外,為所有組件設計卸載策略是一個np-hard問題,在保證各個設備視頻處理精度的前提下,難以確保其實時性要求。
3、近年來,分布式的多智能體強化學習方法顯示出在動態云邊環境中自適應調度策略的潛力。然而,在云邊視頻分析場景,訓練rl代理以生成準確的卸載策略需要時間,并且沒有可用的數據集來支持離線rl訓練。此外,未知的系統環境不可避免地導致離線方法不切實際。其次,rl算法通常依賴于對狀態、動作和獎勵的即時觀察的可用性來學習策略。不幸的是,這種假設在邊緣云視頻分析中很少得到滿足。在云邊視頻分析場景中,由于工作負載的動態性質,來自真實環境的反饋(例如推理準確性和延遲)可能會因處理隊列阻塞而被延遲。這種接收環境反饋的延遲在計算代理的獎勵時引入了偏差,導致訓練偏差和不穩定,甚至在極端情況下失敗。
技術實現思路
1、為了克服傳統集中式決策方案在動態分布式系統中的不足,本發明提出了一種基于多智能體強化學習的云邊協同視頻實時分析方法和裝置。本發明能夠動態適應不同的分布式環境,實現靈活的卸載決策,平衡精度與延遲,確保延遲保持在可接受范圍內,同時最大化分析精度。
2、本發明設計了一種基于多智能體強化學習的云邊協同視頻實時分析方法。該方法允許每個邊緣設備配備一個智能代理,以獨立根據自身狀態制定卸載策略,從而顯著降低了傳統集中式策略制定所帶來的延遲和復雜性。同時,通過強化學習在服務器上集中訓練智能體,并設計合理的獎勵函數,引導智能體學習適應當前環境的最優策略。經過大量訓練,智能體能夠逐漸平衡準確性和延遲之間的權衡,實現協同工作。
3、在訓練過程中,設計了兩階段的在線學習框架,以解決因延遲反饋導致的訓練偏差和不穩定問題。該框架結合了on-policy和off-policy的mappo訓練算法,可以通過持續修正從而有效地利用樣本。第一階段采用on-policy訓練方式,加快智能體在在線環境中的學習,同時引入分布式安全監管器,確保系統在訓練初期的穩定運行。在第二階段,引入經驗修正模塊,并使用基于輔助的off-policy經驗重放訓練算法,以減輕訓練偏差和遺忘問題,確保智能體能夠平穩適應變化的工作負載。
4、本發明解決其技術問題所采用的技術方案是:
5、本發明的第一個方面涉及一種基于多智能體強化學習的云邊協同視頻實時分析方法,所述方法包括以下步驟:
6、s1訓練并部署視頻分析模型;
7、s2通過隨機初始化的rl模型進行系統交互;
8、s3獲取云邊端狀態信息,通過獎勵函數得到各邊端設備的本地狀態和系統全局狀態,作為交互經驗放入經驗池;
9、s4參照圖2,使用迭代式的兩階段訓練框架以預設的頻率對rl模型進行訓練;
10、s5通過多次交互訓練,得到具有一定泛化能力并適用于當前環境的最優策略模型,實現視頻實時分析。
11、進一步,所述步驟s1中包括以下過程:
12、步驟s11,使用nvidia?jetson?nx作為邊緣設備,使用rtx3090作為云端服務器,基于tcp協議設計針對視頻流傳輸的rtp協議,并在云端安裝rabbitmq和influxdb時序數據庫,通過rabbitmq的發布-訂閱模式,實現多設備之間的數據傳輸與存儲。
13、步驟s12,邊緣設備獲取到視頻流后,根據配置命令進行編碼,將其壓縮為目標比特率和分辨率以提升推理效率。編碼過程利用多核架構實現多進程并行處理。本地分析的視頻通過ffmpeg轉為bgr24格式并推入處理隊列;需云端分析的視頻壓縮為h264格式,調整分辨率和比特率后發送至傳輸隊列。當多個邊緣設備向云傳輸視頻時,因云端只能逐個接收,會產生延遲、丟包重傳甚至擁塞問題。為此設計套接字池,池中有負責偵聽連接與接收數據包的工作進程。并發進程持續監聽套接字池并重組數據包,所有數據包放入處理隊列,再由云服務器進一步處理。
14、步驟s13,使用ua-detrac交通視頻數據集(30fps,960×540分辨率)訓練分析模型。從中選取120秒不同難度的視頻構建訓練數據集,基于coco預訓練的yolov8(s,m,l)模型進行微調。采用adam優化策略,前300個epoch學習率為0.01,batch為64,后300個epoch調整為0.001,最終選出最佳模型。
15、步驟s14,實現邊緣設備和云端的推理引擎。將yolov8目標檢測代碼封裝成推理模塊嵌入系統中。邊緣設備加載多種配置模型,由智能體選擇最適合的模型來進行視頻分析;云端則部署性能最優的大型模型。利用tensorrt的層融合、精度校準和動態內存管理優化推理速度。在推斷前,將接收到的視頻塊解碼成批量幀輸入模型進行分析。
16、進一步,所述步驟s2中包括以下過程:
17、步驟s21,在各個邊端部署邊端監控器,持續監聽傳輸隊列尺寸、分析隊列尺寸和網絡帶寬,整合上一步的動作作為本地狀態并通過rabbitmq消息中間件上傳至云端。而云端會搜集每個邊端設備的狀態,并結合云端的分析隊列,告知邊端相應的隊列堵塞情況,給相應的邊端設備發送安全預警信息。該信息包括當前邊端設備的各隊列尺寸和云端分析隊列尺寸。
18、步驟s22,通過本地部署的agent得到基于當前狀態的最新卸載策略。
19、首先,邊端根據云端返回的信息來決定是否啟動安全調節器。在當前邊端設備和云端視頻分析隊列尺寸都小于預設的閾值情況下,不啟動安全調節器;在邊端或云端視頻分析隊列尺寸有一方超過預設的閾值情況下,邊端根據隊列堵塞情況,選用不同等級的安全策略,防止系統過度擁塞而崩潰。
20、初始化全為0的二維數組,本發明中稱為無效動作矩陣ma。將動作按照一定的粒度離散化,并把在安全策略限制范圍內的動作都置1,從而將安全策略轉換為一系列無效的動作掩碼。
21、部署在邊端的agent(actor網絡),根據觀察到的本地狀態生成下一步的動作。actor網絡處理邊緣設備的局部狀態。該網絡基于一個主干網絡和四個不同的線形層,生成四組不同動作的logits。在生成categorical分布之前,這些動作掩碼將不合理動作的概率調為極小值(即將對應不合理動作的logit調整為負極大值),有效地防止agent執行不期望的動作。這種采用動作掩碼的方法,仍然允許生成有效的策略梯度,從而可以讓rl在訓練期間有效利用切換成安全策略時的經驗。
22、然后據此生成categorical分布(不同動作的離散概率分布),并從這些分布中sample動作,并相應地映射到系統配置。這些動作包括設置生成的視頻幀的分辨率,確定用于編碼和解碼視頻流的比特率,選擇具有不同推理延遲和分析精度的模型,以及確定生成的視頻幀的卸載比率。這種動作采樣方法有效地提高了actor網絡的探索能力,從而防止了學習過程局限于局部最優。
23、進一步,所述步驟s3中包括以下過程:
24、步驟s31,為了實現對系統狀態的監控,本發明以rabbitmq作為中間件實現了消息轉發模塊。并在云端部署監控器,它會開啟多個線程去監聽不同的信息通道,包括各個視頻塊的分析結果、各邊端設備的傳輸和推理隊列大小、云端視頻推理隊列大小、帶寬和每個邊端的策略(動作)。在邊緣設備和服務器上每一個視頻塊的分析結果,包括總體延遲和推理精度,都會在分析完成后立馬通過rabbitmq傳輸到云端的監控器。同時,各個邊緣設備和服務器也會通過rabbitmq向云端監控器每秒傳輸一次運行狀態。監控器會將收集到的狀態信息存儲到influxdb數據庫中。根據分析結果所屬的step標識,監控器會將其分為及時反饋和延遲反饋,并分別存儲到influxdb的dorder和dunorder兩個數據表中。每隔10秒讀取一次dorder數據庫,得到各邊端設備的本地狀態和系統全局狀態,并通過獎勵函數計算不同動作的獎勵值,將上述信息放入經驗池供rl模型訓練。
25、步驟s32,獎勵函數設計。在視頻分析應用中,優化更高的準確性通常會增加延遲。增加編碼配置(如幀速率、分辨率或比特率)通常可以提高分析準確性,但這會帶來更高的處理延遲。這就產生了一個相互沖突的多目標優化問題,其中系統需要平衡最大化準確性和最小化延遲的競爭目標。所以,設計延遲和預設的目標延遲差值的絕對值來使處理延遲控制在可接收的范圍內,并通過精度和這一絕對值的線性組合來平衡沖突。另外,當agent生成的動作導致異常系統狀態時,會觸發安全策略以將系統恢復到正常狀態。但應該對這種行為給予懲罰,否則,agent可能會學會頻繁觸發安全機制,以便在接下來的步驟中獲得可能更高的獎勵。所以需要通過分段的獎勵函數阻止過度依賴安全調節器。
26、進一步,所述步驟s4中包括以下過程:
27、步驟s41,基于上述模型和獎勵函數,設計兩階段的在線學習框架對模型進行集中式訓練。總共進行n個episode的訓練,每個episode分為t個step,每個step持續10s。當每一輪的步數到達t時,啟動第一階段訓練。
28、設計基于ppo的多智能體強化學習(mappo)來訓練模型。對于模型結構,基于actor-critic網絡框架,設計一個critic網絡和一個actor網絡,并將他們存儲在云端進行集中式訓練。云端critic網絡的輸入層結合了本地所有狀態和云隊列大小狀態(全局狀態),輸出層將收集的信息轉換成基于全局狀態的預測值。critic通過最小化狀態值函數的預測值和目標值之間的誤差lc(v,φ)來進行更新。基于critic對狀態值的估計誤差,本發明使用gae技術計算優勢函數值,并利用該優勢值指導actor更新。actor使用策略梯度法,通過最大化損失函數l(π,θ)來更新其參數,從而實現最大化累計獎勵的更新目標。通過actor和critic的系統訓練,多代理ppo架構在在線環境中的學習合作,如此便完成了一個episode的訓練。
29、步驟s42,在經過niters個episode后,訓練進入第二階段。首先,設計獎勵修正器來修正獎勵偏差并更新經驗池,這是由于分析隊列堵塞引起的延遲反饋導致的。本發明創建兩個數據庫dorder和dunorder來實時存儲收集及時反饋和延遲反饋數據。該修正器通過定期從dunorder數據庫查詢范圍為前t·niters個step的延遲反饋并合并到經驗池來修正獎勵偏差。然后從經驗池隨機取出一批次經驗bsam用于基于off-policy的輔助訓練階段。該階段會利用bsam來訓練actor網絡中的骨干網絡和連接在骨干網絡后的一個額外的線性層(價值頭),并最小化laux(π,θv),這個目標函數允許actor能夠從大量經驗中學習價值函數(價值頭),同時優化其骨干網絡。bsam也會再次訓練critic網絡。通過第二階段off-policy方式的訓練,該發明可以利用修正后的經驗來矯正actor和critic網絡,并增強它們的泛化能力。
30、進一步,所述步驟s5中包括以下過程:
31、步驟s51,重復基于步驟s2、s3、s4的訓練過程,在每次訓練完成后,云端將最新的actor網絡通過rabbitmq轉發部署到各個邊緣設備。
32、步驟s52,邊緣設備基于最新的agent繼續與環境進行交互,基于本地觀察到的狀態,通過部署在邊端的agent進行決策,實現系統性能的最大化。
33、本發明的第二個方面涉及一種基于多智能體強化學習的云邊協同視頻實時分析裝置,包括存儲器和一個或多個處理器,所述存儲器中存儲有可執行代碼,所述一個或多個處理器執行所述可執行代碼時,用于實現本發明的基于多智能體強化學習的云邊協同視頻實時分析方法。
34、本發明的第三個方面涉及一種計算機可讀存儲介質,其上存儲有程序,該程序被處理器執行時,實現本發明的一種基于多智能體強化學習的云邊協同視頻實時分析方法。
35、本發明針對云邊視頻分析場景中因延遲反饋導致的訓練偏差和不穩定問題,提出了集中式訓練,分布式部署的多代理rl在線訓練框架和方法,使邊緣設備能夠自主適應不斷變化的條件。訓練期間集成了兩階段學習范式和在線安全監管機制,以有效應對快速的環境變化。為了減輕訓練偏差,本發明在經驗糾正后開發了用于輔助off-policy訓練的新算法,使系統能夠穩定適應動態甚至極端的系統負載環境,實現高精度的視頻實時分析。
36、本發明的優點是:
37、本發明針對云邊視頻分析場景中因延遲反饋導致的訓練偏差和不穩定問題,提出了集中式訓練,分布式部署的多代理rl在線訓練框架,使邊緣設備能夠自主適應不斷變化的條件。與傳統的rl方法不同,本發明集成了兩階段學習范式和在線安全監管機制,以有效應對快速的環境變化。為了減輕訓練偏差,本發明在經驗糾正后開發了用于輔助off-policy訓練的新算法,使系統能夠穩定適應動態甚至極端的系統負載環境,實現高精度的視頻實時分析。