日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

毫末智行 Fluid 实践:云原生 AI 让汽车变得“更聪明”

發(fā)布時間:2024/9/3 ChatGpt 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 毫末智行 Fluid 实践:云原生 AI 让汽车变得“更聪明” 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
簡介:毫末機(jī)器學(xué)習(xí)訓(xùn)練場景對于數(shù)據(jù)讀取有較高的性能要求,且對于元數(shù)據(jù)和數(shù)據(jù)緩存的精細(xì)化控制要求較高, 通過 Fluid + JindoRuntime 的緩存能力可以靈活地緩存 OSS 訓(xùn)練文件進(jìn)行元數(shù)據(jù)和數(shù)據(jù),提供高效的元數(shù)據(jù)和數(shù)據(jù)訪問性能?;谶@種方案,我們可以實現(xiàn)精細(xì)化控制緩存的內(nèi)容,提高生產(chǎn)資源利用率,不僅有效緩解了 OSS 帶寬的壓力,也大大提高了訓(xùn)練效率。

作者介紹:

李范:毫末智行 服務(wù)端開發(fā)工程師,負(fù)責(zé) AI 自動訓(xùn)練平臺的研發(fā)與算法優(yōu)化

陳鐵文:毫末智行 服務(wù)端開發(fā)工程師,負(fù)責(zé) AI 自動訓(xùn)練平臺的上層研發(fā)


引言:Fluid 是云原生基金會 CNCF 下的云原生數(shù)據(jù)編排和加速項目,由南京大學(xué)、阿里云及 Alluxio 社區(qū)聯(lián)合發(fā)起并開源。本文主要介紹毫末智行機(jī)器學(xué)習(xí)平臺在自動駕駛場景的使用,以及如何基于 Fluid +JindoFS 突破原有存儲與計算分離架構(gòu)帶來的性能瓶頸,從而提高生產(chǎn)資源利用率,有效緩解 OSS 帶寬壓力,并且大大提高訓(xùn)練效率的生產(chǎn)實踐。



自動駕駛商業(yè)應(yīng)用正駛?cè)肟燔嚨?/strong>


毫末智行是一家致力于自動駕駛,提供智能物流解決方案的人工智能技術(shù)公司。企業(yè)使命為以零事故、零擁堵、自由出行和高效物流為目標(biāo), 協(xié)助客戶重塑和全面升級整個社會的出行及物流方式。


數(shù)據(jù)智能是毫末智行的核心能力,乘用車自動駕駛系統(tǒng)及解決方案、低速無人車生態(tài)系統(tǒng)及解決方案、自動駕駛相關(guān)產(chǎn)品研發(fā)與定制服務(wù)三大垂類產(chǎn)品為數(shù)據(jù)智能服務(wù), 數(shù)據(jù)智能反哺三大垂類產(chǎn)品,鞏固其在各自市場內(nèi)的絕對領(lǐng)先地位。經(jīng)近10年的積累與全棧自研,以及90%以上的研發(fā)投入,在乘用車、低速無人車、智能硬件三個方 面不斷積累相關(guān)數(shù)據(jù),目前已孵化出小魔盒、小魔駝、小魔盤等10余款成熟產(chǎn)品。


毫末智行的快速發(fā)展也體現(xiàn)著更高級別的智能駕駛將在更廣泛的場景中發(fā)揮作用,自動駕駛的商業(yè)應(yīng)用正在駛?cè)肟燔嚨馈?/span>




傳統(tǒng)機(jī)器學(xué)習(xí)訓(xùn)練效能遭遇瓶頸


隨著機(jī)器學(xué)習(xí)在自動駕駛業(yè)務(wù)場景中的廣泛使用,機(jī)器學(xué)習(xí)平臺扮演了非常核心的角色。該平臺采用了存儲與計算分離的架構(gòu),使得計算資源得以與存儲資源解耦, 從而實現(xiàn)了靈活的資源配比以及便捷的存儲擴(kuò)展,并且降低了存儲資金和運維成本。


然而,這種架構(gòu)也帶來了一些挑戰(zhàn),其中比較關(guān)鍵的問題體現(xiàn)在數(shù)據(jù)訪問性能和穩(wěn)定性方面:


1、計算存儲分離架構(gòu)導(dǎo)致數(shù)據(jù)訪問高延時,導(dǎo)致訓(xùn)練慢:


業(yè)務(wù)團(tuán)隊使用的機(jī)器學(xué)習(xí)任務(wù)在訓(xùn)練過程中要實時頻繁訪問 OSS 上的數(shù)據(jù),在 OSS 帶寬受限或者壓力較大時, 訪問 OSS 上數(shù)據(jù)速度比訪問本地文件速度要慢很多;


2、Kubernetes 調(diào)度器數(shù)據(jù)緩存無感知,同一數(shù)據(jù)源多次運行訪問依舊慢:


在現(xiàn)實應(yīng)用中深度學(xué)習(xí)任務(wù)運行會不斷 重復(fù)訪問同一數(shù)據(jù),包括相同模型不同超參的任務(wù)、微調(diào)模型相同輸入的任務(wù)、以及 AutoML 任務(wù)等。這種深度學(xué)習(xí)任務(wù)的重復(fù)數(shù)據(jù)訪問就產(chǎn)生了可以復(fù)用的數(shù)據(jù)緩存。然而,由于原生 Kubernetes 調(diào)度器無法感知緩存,導(dǎo)致應(yīng)用調(diào)度的結(jié)果不佳,緩存無法重用,性能難以提升;


3、OSS 成為數(shù)據(jù)并發(fā)訪問的瓶頸點,穩(wěn)定性挑戰(zhàn)大:


毫末機(jī)器學(xué)習(xí)平臺上的大量機(jī)器學(xué)習(xí)任務(wù)在同時訓(xùn)練時都會并發(fā)訪問后端 OSS 存儲。這種并發(fā)機(jī)器學(xué)習(xí)訓(xùn)練造成的 IO 壓力比較大, OSS 服務(wù)成為了性能單點,一旦 OSS 帶寬出現(xiàn)瓶頸則會影響所有機(jī)器學(xué)習(xí)任務(wù);


4、訓(xùn)練文件分散,元數(shù)據(jù)壓力大:?


機(jī)器學(xué)習(xí)任務(wù)的訓(xùn)練數(shù)據(jù)文件通常會分散在不同路徑下,讀取文件需要耗費大量的時間在 list 操作上。對象存儲的 list 操作性能較差, 因此在進(jìn)行大規(guī)模 list 時對 OSS 元數(shù)據(jù)壓力很大,經(jīng)常出現(xiàn)超時或者 list 失敗的情況。


在現(xiàn)實應(yīng)用中,通過對于毫末機(jī)器學(xué)習(xí)平臺的監(jiān)控分析,我們發(fā)現(xiàn) IO 性能問題會導(dǎo)致 GPU 等昂貴計算資源不能被充分利用。機(jī)器學(xué)習(xí)自身訓(xùn)練的特點導(dǎo)致了數(shù)據(jù)文件訪問較分散, 元數(shù)據(jù)壓力較大。如果能夠精細(xì)化地緩存元數(shù)據(jù)和文件數(shù)據(jù),那么一方面可以提高緩存效率和磁盤利用率,另一方面也可以解決文件查找操作帶來的元數(shù)據(jù)損耗。



基于 Fluid+JindoRuntime 加速模型推理訓(xùn)練的生產(chǎn)實踐


為了能更好地滿足大規(guī)模機(jī)器學(xué)習(xí)模型訓(xùn)練的高效性需求,模型訓(xùn)練過程中需要對數(shù)據(jù)訪問取得更好的數(shù)據(jù)本地化效果。因此,我們希望達(dá)到以下目標(biāo):


  • 計算能夠充分利用本地化數(shù)據(jù)訪問:這樣就不需通過網(wǎng)絡(luò)反復(fù)讀取,從而加速機(jī)器學(xué)習(xí)模型的訓(xùn)練速度,并提升集群的 GPU 使用率。


  • 降低 OSS 負(fù)載壓力:通過應(yīng)用對于部分?jǐn)?shù)據(jù)的本地讀取,減小數(shù)據(jù)訪問延時和降低對底層 OSS 的帶寬壓力。


  • 充分發(fā)揮熱點數(shù)據(jù)集的緩存節(jié)點優(yōu)勢:在對用戶無感知的前提下,智能地將任務(wù)調(diào)度到數(shù)據(jù)緩存節(jié)點上,從而使得常用模型訓(xùn)練程序越來越快。


  • 自定義文件列表形式緩存指定文件:只緩存訓(xùn)練需要的文件,極大提高緩存使用率和磁盤利用率。


  • 元數(shù)據(jù)緩存和數(shù)據(jù)緩存分離:可單獨對文件進(jìn)行元數(shù)據(jù)緩存,緩存策略定制化。


  • 通過 POSIX 接口讀取數(shù)據(jù):這樣無需在模型開發(fā)和訓(xùn)練階段使用不同的數(shù)據(jù)訪問接口,降低開發(fā)機(jī)器學(xué)習(xí)模型程序的成本。


為了達(dá)到上述目標(biāo),我們迫切希望找到 Kubernetes 上具有分布式緩存加速能力的系統(tǒng)平臺。我們發(fā)現(xiàn) CNCF Sandbox 項目 Fluid 正好可以滿足我們的訴求。于是,我們設(shè)計了基于 Fluid 的新架構(gòu)方案,經(jīng)過驗證比較,我們選擇 JindoRuntime 作為加速運行時。



3.1 技術(shù)方案


  • Fluid


Fluid 是一個運行在 Kubernetes 上可擴(kuò)展的分布式數(shù)據(jù)編排和加速系統(tǒng),它通過數(shù)據(jù)的編排和 使用數(shù)據(jù)的應(yīng)用調(diào)度,解決云原生編排框架運行此類應(yīng)用面臨數(shù)據(jù)訪問延時高、多數(shù)據(jù)源聯(lián)合分析難、應(yīng)用使用數(shù)據(jù)過程復(fù)雜等痛點。


  • JindoRuntime


JindoRuntime 是 Fluid 一種分布式緩存 Runtime 的實現(xiàn),基于 JindoFS 分布式緩存加速引擎。JindoFS 是阿里云開源大數(shù)據(jù)-數(shù)據(jù)湖存儲團(tuán)隊自研大數(shù)據(jù)存儲優(yōu)化引擎,完全兼容 Hadoop 文件系統(tǒng)接口,給客戶帶來更加靈活、高效的計算存儲方案。JindoRuntime 使用 JindoFS 的 Cache 模式進(jìn)行遠(yuǎn)端文件的訪問和緩存,支持 OSS、HDFS、標(biāo)準(zhǔn) S3 協(xié)議等多種存儲產(chǎn)品的訪問和緩存加速。在 Fluid 上使用和部署 JindoRuntime 流程簡單、兼容原生 K8s 環(huán)境、可以開箱即用。深度結(jié)合對象存儲特性,使用 Navite 框架優(yōu)化性能,并支持免密、checksum 校驗等云上數(shù)據(jù)安全功能。


之所于選型基于JindoRuntime 的 Fluid,主要是基于以下考慮:


  • Fluid 可以將數(shù)據(jù)集編排在 Kubernetes 集群中,實現(xiàn)數(shù)據(jù)和計算的同置,并且提供基于 Persistent Volume Claim 接口,實現(xiàn) Kubernetes 上應(yīng)用 的無縫對接。同時 JindoRuntime 提供對 OSS 上數(shù)據(jù)的訪問和緩存加速能力,并且可以利用 FUSE 的 POSIX 文件系統(tǒng)接口實現(xiàn)可以像本地磁盤一樣輕松使用 OSS 上的海量文件,pytorch 等深度學(xué)習(xí)訓(xùn)練工具可利用 POSIX 文件接口讀取訓(xùn)練數(shù)據(jù)。


  • 提供元數(shù)據(jù)和數(shù)據(jù)分布式緩存,可單獨進(jìn)行元數(shù)據(jù)緩存預(yù)熱。


  • 提供元數(shù)據(jù)緩存預(yù)熱,避免訓(xùn)練文件在OSS上大量元數(shù)據(jù)操作、提供數(shù)據(jù)預(yù)熱機(jī)制,避免在訓(xùn)練時刻拉取數(shù)據(jù)造成的數(shù)據(jù)訪問競爭


  • 提供文件列表形式的數(shù)據(jù)定制化預(yù)熱,精細(xì)化預(yù)熱數(shù)據(jù)。


  • 通過 Fluid 的數(shù)據(jù)感知調(diào)度能力,用戶無需知道緩存節(jié)點信息就可以將任務(wù)放置到有緩存數(shù)據(jù)的節(jié)點,實現(xiàn)數(shù)據(jù)訪問性能的優(yōu)勢最大化。


3.2 落地實踐


  • 選擇合適的緩存節(jié)點:


?使用 JindoRuntime 可以獲得更好的數(shù)據(jù)本地性能,在實際生產(chǎn)中我們發(fā)現(xiàn)不是所有節(jié)點都來做緩存性能就比較好。原因是有些 節(jié)點的磁盤和網(wǎng)絡(luò) IO 性能不是很好,這個時候需要我們能夠把緩存節(jié)點盡量選擇到一些大容量磁盤和網(wǎng)絡(luò)較好的節(jié)點上。Fluid 支持 dataset 的可調(diào)度性,換言 之,就是緩存節(jié)點的可調(diào)度性,我們通過指定 dataset 的 nodeAffinity 來進(jìn)行數(shù)據(jù)集緩存節(jié)點的調(diào)度,從而保證緩存節(jié)點可高效的提供緩存服務(wù)。


  • 配置緩存容量與路徑:


通過 dataset 的 Mounts 和 JindoRuntime 的 tieredstore 可以設(shè)定數(shù)據(jù)的掛載目錄。同時,為避免數(shù)據(jù)量過多而導(dǎo)致 緩存量過于龐大,可手動配置 JindoRuntime 的 tieredstore 來約束緩存的最大容量與水位線(超過水位線的數(shù)據(jù)會被自動丟棄),tieredstore 也包含對緩存 存放路徑的設(shè)定與存儲層(SSD/MEM/HDD)的設(shè)定,以滿足各種場景的需要。對于多節(jié)點的場景,使用dataset 的 replacement 可以支持在同一集群上部署多個 dataset。


  • 設(shè)定緩存安全策略:


在Fluid中創(chuàng)建Dataset時,有時候我們需要在mounts中配置一些敏感信息,如 oss 賬號的 accessKeyId、accessKeySecret 。為了保證安全,Fluid提供使用Secret來配置這些敏感信息的能力。通過創(chuàng)建Secret,dataset 以 EncryptOptions 字段指定 Secret 的 name,實現(xiàn)對敏感信息的綁定。


  • 數(shù)據(jù)預(yù)加載:


對于已經(jīng)創(chuàng)建完成的 dataset 和 jindoruntime,第一次訪問掛載的數(shù)據(jù)會經(jīng)歷一次下載數(shù)據(jù)目錄下全部文件的過程,這就產(chǎn)生了一個問題:若數(shù)據(jù)所在的目錄存在無需使用的其他數(shù)據(jù),會造成無意義的空間資源與網(wǎng)絡(luò)資源浪費。為避免這種問題,Fluid 既支持對數(shù)據(jù)的預(yù)加載,同時也支持元數(shù)據(jù)緩存。通 過創(chuàng)建 dataload讀取所要預(yù)加載數(shù)據(jù)路徑信息,可以動態(tài)將數(shù)據(jù)注入。dataload 支持緩存元數(shù)據(jù)與屏蔽非預(yù)加載數(shù)據(jù)的訪問,這樣就大大降低的數(shù)據(jù)訪問效率。


3.3 帶來的性能顯著提升


我們使用了不同的模型,推理和訓(xùn)練相同的數(shù)據(jù),分別以使用 JindoRuntime 和不使用 JindoRuntime 的方式推理和訓(xùn)練,對比訓(xùn)練時長,發(fā)現(xiàn)性能帶來了顯示提升:


模型在云端推理1萬幀圖片的測試結(jié)果



另一個稍大的模型在云端推理1萬幀圖片的測試結(jié)果



模型使用 4 卡在云端訓(xùn)練1萬幀圖片幀耗時測試結(jié)果


集成了 Fluid+JindoRuntime 后,顯著提升了云端訓(xùn)練和推理的效率,尤其是一些小模型,在云端做訓(xùn)練和推理 JindoRuntime 可以有效解決 IO 瓶頸問題,訓(xùn)練速度最高可提升約 300% 。同時也大幅度提升云端 GPU 使用效率,加速了在云端數(shù)據(jù)驅(qū)動的迭代效率。


共建 Fluid 開源生態(tài),讓更多行業(yè)更“聰明”


毫末機(jī)器學(xué)習(xí)訓(xùn)練場景對于數(shù)據(jù)讀取有較高的性能要求,且對于元數(shù)據(jù)和數(shù)據(jù)緩存的精細(xì)化控制要求較高, 通過 Fluid + JindoRuntime 的緩存能力可以靈活地緩存 OSS 訓(xùn)練文件進(jìn)行元數(shù)據(jù)和數(shù)據(jù),提供高效的元數(shù)據(jù)和數(shù)據(jù)訪問性能?;谶@種方案,我們可以實現(xiàn)精細(xì)化控制緩存的內(nèi)容,提高生產(chǎn)資源利用率,不僅有效緩解了 OSS 帶寬的壓力,也大大提高了訓(xùn)練效率。


當(dāng)前 Fluid + JindoRuntime 能夠滿足生產(chǎn)環(huán)境的基本需要,對 OSS 的加速效果也比較明顯,提供的精細(xì)化緩存策略更加高效。我們期望能夠把彈性的數(shù)據(jù)加速作為毫末機(jī)器學(xué)習(xí)平臺的差異化競爭能力,提升整體訓(xùn)練任務(wù)速度和計算資源的利用率。在未來的工作中,我們也希望也幫助社區(qū)不斷演進(jìn),幫助到更多的開發(fā)者。具體來說,后面在平臺中計劃增加的功能包括:


  • 支持定時任務(wù)支持動態(tài)擴(kuò)縮容


  • 提供性能監(jiān)控控制臺


  • 支持規(guī)?;?K8s 集群中多數(shù)據(jù)集的全生命周期管理


  • 支持對緩存數(shù)據(jù)和緩存元數(shù)據(jù)的動態(tài)刪減


致謝


感謝阿里云 JindoFS 團(tuán)隊的辰山、揚禮和容器團(tuán)隊的車漾在整個方案設(shè)計和優(yōu)化過程中的巨大幫助,對生產(chǎn)過程中的需求給予定制化的支持,對遇到的各種問題進(jìn)行快速的幫助和解決。


相關(guān)鏈接


[1] Fluid:https://github.com/fluid-cloudnative/fluid

[2] JindoFS:?https://github.com/aliyun/alibabacloud-jindodata


如果你對 Fluid 項目感興趣,歡迎點擊下方鏈接了解更多:

https://github.com/fluid-cloudnative/fluid



「Kubernetes 難點攻破系列:容器持久化存儲訓(xùn)練營」啟動倒計時!


9 月 22-24 日 3 天時間集中突破,從容器持久化存儲開始,打開 Kubernetes 難點攻破之旅。完成全部打卡任務(wù),還有小米耳機(jī)、阿里云定制帽衫、精美周邊等豐富的訓(xùn)練營獎品等你來拿!


原文鏈接:https://developer.aliyun.com/article/790916?

版權(quán)聲明:本文內(nèi)容由阿里云實名注冊用戶自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,阿里云開發(fā)者社區(qū)不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。具體規(guī)則請查看《阿里云開發(fā)者社區(qū)用戶服務(wù)協(xié)議》和《阿里云開發(fā)者社區(qū)知識產(chǎn)權(quán)保護(hù)指引》。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,填寫侵權(quán)投訴表單進(jìn)行舉報,一經(jīng)查實,本社區(qū)將立刻刪除涉嫌侵權(quán)內(nèi)容。

總結(jié)

以上是生活随笔為你收集整理的毫末智行 Fluid 实践:云原生 AI 让汽车变得“更聪明”的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。