WeRide旨在為未來提供L4自動駕駛技術。數(shù)據(jù)訪問是開發(fā)智能移動性的關鍵部分。采用Alluxio作為本地緩存層可消除對S3的冗余請求,同時消除了數(shù)據(jù)同步的復雜性,每位工程師在數(shù)據(jù)傳輸中每位問題減少了5美元。那么如何在WeRide上為ML和AI構(gòu)建跨區(qū)域的混合云存儲網(wǎng)的問題,其實就是介紹如何利用Alluxio作為混合云數(shù)據(jù)網(wǎng),用于本地應用程序訪問AWS S3等公共云存儲。
新的數(shù)據(jù)訪問體系結(jié)構(gòu)為每個位置提供了本地化的緩存,以消除對S3的冗余請求。除了消除手動數(shù)據(jù)同步的復雜性之外,Alluxio還直接將數(shù)據(jù)提供給在同一辦公室使用相同數(shù)據(jù)的工程師,從而避免了與S3相關的傳輸成本。
WeRide的數(shù)據(jù)挑戰(zhàn)
WeRide是一家在智能移動行業(yè)創(chuàng)建L4自動駕駛算法的公司。像所有自動駕駛汽車公司一樣,從實況道路測試中不斷收集數(shù)據(jù),以進行模型訓練,算法測試和仿真。
到目前為止,WeRide累計已經(jīng)實現(xiàn)了200萬公里的自動駕駛里程,并且隨著更多的測試車輛投入使用,數(shù)據(jù)收集的速度只會增加。到2020年,每天都會生成TB級的數(shù)據(jù),我們預計第二年的數(shù)據(jù)量將增長10倍。
除了從測試驅(qū)動器收集的數(shù)據(jù)之外,諸如模擬,SIL(環(huán)路軟件)測試和模型基準測試之類的應用程序每天還會產(chǎn)生數(shù)TB的數(shù)據(jù)。隨著我們技術的進步,這些附加應用程序的輸出也將繼續(xù)增長,以覆蓋更大的數(shù)據(jù)集并處理更多的極端情況。
WeRide是一家全球分布的公司,在多個城市設有辦事處,包括美國的圣何塞以及中國的廣州,北京,上海和安慶。跨辦公室的不同團隊并行生成和使用數(shù)據(jù)。我們使用AWS S3作為在不同辦公室之間共享的數(shù)據(jù)湖。
在為我們的自動駕駛汽車設計一種新算法或修復現(xiàn)有算法中的錯誤時,我們的工程師需要針對現(xiàn)有數(shù)據(jù)測試該算法。考慮到我們的數(shù)據(jù)架構(gòu),這會導致瓶頸,例如:
1. 開發(fā)中的迭代速度很慢:在進行開發(fā)或調(diào)試之前,開發(fā)人員需要將最新數(shù)據(jù)從云下載到其本地環(huán)境。這通常受到下載速度和網(wǎng)絡帶寬的限制。
2. 高昂和不必要的出口成本:每次從S3下載數(shù)據(jù)時,出口數(shù)據(jù)傳輸都會產(chǎn)生費用。通常,要調(diào)試一個問題,數(shù)據(jù)傳輸成本總計為5美元。如果多個人進行協(xié)作,即使他們正在下載相同的數(shù)據(jù),該成本也會進一步增加。
3. 容易出錯的數(shù)據(jù)同步:在WeRide,我們建立了一個自定義數(shù)據(jù)上傳過程,該過程將數(shù)據(jù)復制到云中并保留存儲在NAS或HDFS中的本地副本。為了使工程師更快地訪問數(shù)據(jù),必須使用本地副本,但這會導致數(shù)據(jù)同步問題。當前,我們通過運行cron作業(yè)來定期清理本地數(shù)據(jù)來維護本地副本。
使用Alluxio的新架構(gòu)
經(jīng)過調(diào)查,我們意識到以下架構(gòu)將帶來巨大的好處:
1. 始終將S3視為唯一的事實來源,以消除不同辦公室之間的數(shù)據(jù)沖突。
2. 在S3之上部署本地緩存系統(tǒng)以應對每個辦公室的按需工作負載,以加快開發(fā)速度。
但是,從頭開始構(gòu)建內(nèi)部緩存系統(tǒng)可能很昂貴,并且對于WeRide的業(yè)務需求而言是不必要的。我們決定探索現(xiàn)有技術以滿足我們的需求并滿足以下要求:
1. 它是一種低成本或免費的成熟技術,已經(jīng)過大規(guī)模數(shù)據(jù)訪問的嚴格測試;
2. 它易于使用,易于集成,不會引入新的ETL作業(yè);
3. 當預算允許時,它允許我們通過使用更好的硬件進行擴展。
考慮到上述標準,Alluxio成為加速我們的數(shù)據(jù)訪問的首選。除了與S3兼容之外,它還通過其POSIX和HTTP端點提供了易于訪問的接口。作為一種開源技術,我們可以將其合并到我們的系統(tǒng)中,而不會增加額外的業(yè)務成本。
在每個辦公室中,我們都使用S3作為事實來源,將Alluxio部署為小型本地群集。道路測試數(shù)據(jù)直接上傳到本地的Alluxio群集中,同一辦公室的工程師可以立即使用。同時,Alluxio會在后臺自動將道路測試數(shù)據(jù)上傳到S3。當其他辦公室的工程師希望使用道路測試數(shù)據(jù)時,他們可以通過其本地的Alluxio集群提出請求。如果由Alluxio緩存,則數(shù)據(jù)將立即返回;否則,將從S3中獲取數(shù)據(jù)。為了進一步減少從S3獲取新數(shù)據(jù)的時間,我們與Alluxio團隊合作實施了分布式加載命令,該命令可以打開多個同時連接以下載數(shù)據(jù)。該功能已添加到Alluxio 2.1.0版本中。
使用Alluxio,從云中獲取的應用程序數(shù)據(jù)也將在本地緩存。如果數(shù)據(jù)不是從同一辦公室上載的,這以前是不可能的。在工程師想要查看同一辦公室中另一位工程師的模擬結(jié)果的常見情況下,數(shù)據(jù)立即可用。
通過將新的實現(xiàn)與Alluxio結(jié)合使用,我們觀察到以下改進:
· 通過具有用于訪問數(shù)據(jù)的單個接口,降低了數(shù)據(jù)同步的復雜性,并且無需維護自定義本地副本
· 開箱即用的云數(shù)據(jù)緩存解決方案
· 快速訪問數(shù)據(jù)是工程效率的關鍵因素
· 減少了下載冗余數(shù)據(jù)的S3數(shù)據(jù)輸出成本
下一步
現(xiàn)在,通過Alluxio進行數(shù)據(jù)傳輸是將辦公室本地數(shù)據(jù)與云中數(shù)據(jù)連接的關鍵組成部分。為了進一步改善系統(tǒng),我們正在與Alluxio團隊合作添加與數(shù)據(jù)傳輸策略有關的功能。諸如在工作時間內(nèi)限制上傳帶寬或確定某些文件類型的優(yōu)先級之類的功能將對我們的工程師有所幫助。
以上就是關于如何在WeRide上為ML和AI構(gòu)建跨區(qū)域的混合云存儲網(wǎng)的全部內(nèi)容介紹,想了解更多關于人工智能的信息,請繼續(xù)關注中培偉業(yè)。