Sedna 0.1.0發(fā)布,全球首個(gè)云原生邊云協(xié)同AI框架正式開源!
來源微信公眾號(hào): 容器魔方
Sedna基于KubeEdge提供的邊云協(xié)同能力,實(shí)現(xiàn)AI的跨邊云協(xié)同訓(xùn)練和協(xié)同推理能力。支持現(xiàn)有AI類應(yīng)用無縫下沉到邊緣,快速實(shí)現(xiàn)跨邊云的增量學(xué)習(xí),聯(lián)邦學(xué)習(xí),協(xié)同推理等能力,最終達(dá)到降低邊緣AI服務(wù)構(gòu)建與部署成本、提升模型性能、保護(hù)數(shù)據(jù)隱私等效果。
Sedna應(yīng)用場(chǎng)景
邊云協(xié)同增量學(xué)習(xí)提升模型精度
機(jī)動(dòng)車逆行檢測(cè)是保障交通安全的一個(gè)常見任務(wù),通過在邊緣部署一個(gè)AI攝像頭來檢測(cè)機(jī)動(dòng)車事件。但由于設(shè)備老化、天氣原因等會(huì)引起數(shù)據(jù)分布變化,導(dǎo)致當(dāng)前AI攝像頭的檢測(cè)模型不能適應(yīng)當(dāng)前的環(huán)境,檢測(cè)精度下降,最終引發(fā)邊緣上普遍存在的模型泛化性問題。需要不定期使用新的數(shù)據(jù)重新微調(diào)模型,使得模型能夠持續(xù)的適配當(dāng)前的推理樣本。傳統(tǒng)方式下,可以通過人工拷貝的方式,將當(dāng)前環(huán)境新的樣本回傳,由云上訓(xùn)練新的模型后,再下發(fā)到邊緣側(cè)更新AI攝像頭中的模型。但這種情況會(huì)占用大量的人工成本,并且模型更新的周期會(huì)很長(zhǎng)。
Sedna增量學(xué)習(xí)特性允許用戶連續(xù)監(jiān)視新生成的數(shù)據(jù),并通過配置一些觸發(fā)規(guī)則來確定是否自動(dòng)開始訓(xùn)練、評(píng)估和部署,能將新產(chǎn)生的數(shù)據(jù)立刻反應(yīng)到模型中去。并且更新的過程不占用工程師的人工時(shí)間、更新的周期更短,模型檢測(cè)精度也不斷提高。
當(dāng)前的增量學(xué)習(xí)會(huì)不斷的采集新的數(shù)據(jù)并進(jìn)行訓(xùn)練,未來,我們將把這些積累的知識(shí)進(jìn)行存儲(chǔ)和索引,構(gòu)造特定場(chǎng)景下的知識(shí)庫(kù)。當(dāng)服務(wù)運(yùn)行時(shí)如果有新的節(jié)點(diǎn)接入的時(shí),也可以重復(fù)使用這些現(xiàn)有的知識(shí),減少重復(fù)的計(jì)算資源消耗、提高知識(shí)的利用率。

邊云協(xié)同聯(lián)邦學(xué)習(xí)應(yīng)對(duì)數(shù)據(jù)孤島
對(duì)于邊緣AI,數(shù)據(jù)是天然在邊緣生成的。在多個(gè)不同的質(zhì)檢產(chǎn)線,由于原始圖像數(shù)據(jù)不愿意共享到云端,且單個(gè)產(chǎn)線的數(shù)據(jù)量有限,通常很難在單個(gè)邊緣節(jié)點(diǎn)上訓(xùn)練好的模型,但工廠又需要他們共同訓(xùn)練出一個(gè)檢測(cè)精度較高的模型來滿足生產(chǎn)需求。
傳統(tǒng)方式中,可以通過KubeEdge把本地訓(xùn)練的應(yīng)用部署到邊緣,但是如果要將這些本地訓(xùn)練應(yīng)用協(xié)同起來,共同訓(xùn)練一個(gè)模型,則需要開發(fā)者做大量的工作,包括在云上做聚合計(jì)算的編寫和部署、邊側(cè)訓(xùn)練權(quán)重的共享、訓(xùn)練狀態(tài)的監(jiān)控等。但現(xiàn)在可以通過Sedna,簡(jiǎn)單的配置所需要的訓(xùn)練腳本、訓(xùn)練數(shù)據(jù)、以及聚合算法,即可快速的完成聯(lián)邦學(xué)習(xí)任務(wù)的部署。
后續(xù)的聯(lián)邦學(xué)習(xí)特性中,我們考慮到在訓(xùn)練過程中,會(huì)頻繁大量的交換權(quán)重?cái)?shù)據(jù),而且邊云之間的數(shù)據(jù)傳輸帶寬相比中心云來說是更小的、更不穩(wěn)定的,因此改善邊云協(xié)同的過程中的梯度傳輸效率是一個(gè)亟需解決的問題。

Sedna部署與使用
部署
先決條件:
- KUBECTL with right kubeconfig
- Kubernetes 1.16+.
- KubeEdge version v.15+.
Sedna的核心組件有云上的GM(GlobalManager)和邊上的LC(LocalController),部署Sedna需要提前獲取GM節(jié)點(diǎn)名稱,使用一鍵安裝部署腳本即可完成sedna安裝:
使用
Sedna給每個(gè)特性提供了一個(gè)入門的樣例,樣例鏈接如下:
協(xié)同推理樣例:
增量學(xué)習(xí)樣例:
https://github.com/kubeedge/sedna/blob/main/examples/incremental_learning/helmet_detection/README.md
聯(lián)邦學(xué)習(xí)樣例:
后續(xù)計(jì)劃
當(dāng)前Sedna提供的增量學(xué)習(xí)、聯(lián)邦學(xué)習(xí)、協(xié)同推理在我們?cè)O(shè)定的場(chǎng)景下能完成協(xié)同訓(xùn)練和推理任務(wù),但現(xiàn)實(shí)的場(chǎng)景會(huì)出現(xiàn)更多復(fù)雜的情況,也帶來更多的需求。我們希望能基于Sedna,探索出更多有價(jià)值的邊云協(xié)同技術(shù),給邊緣AI類應(yīng)用帶來精度提升、成本降低、部署快速、隱私保護(hù)等好處。
后續(xù)計(jì)劃:
支持更多機(jī)器學(xué)習(xí)框架(Pytorch、MindSpore、PaddlePaddle)
支持邊邊協(xié)同推理
支持硬件感知模型轉(zhuǎn)換
集成Serving、Pipeline等現(xiàn)有生態(tài)
構(gòu)建Edge AI Benchmark
歡迎更多對(duì)邊緣計(jì)算感興趣的同學(xué)們加入KubeEdge社區(qū),參與AI SIG,一起建設(shè)云原生邊緣計(jì)算生態(tài)。