《胡爭-下一代多模數據湖Lance的設計和實踐0327.pdf》由會員分享,可在線閱讀,更多相關《胡爭-下一代多模數據湖Lance的設計和實踐0327.pdf(24頁珍藏版)》請在三個皮匠報告上搜索。
1、Lance的設計和實踐演講人:黃昭偉 火山引擎 EMR Lance 引擎研發(Lance Committer)下一代多模數據湖演講人:楊華華 火山引擎 EMR Lance 引擎研發(Lance Committer)多模數據處理挑戰01Lance數據湖介紹02Lance核心技術特點03Lance數據湖演示04目 錄CONTENTSLance數據湖優化05多模數據處理挑戰The changeswithdealingmulti-modal data多模態數據特點多模多模態數據態數據多模態數據(Multimodal Data)是指由多種不同類型或形式的數據(模態)組合而成的信息集合。這些模態可以包括文
2、本、圖像、音頻、視頻、傳感器信號、結構化數據等。行業場景 大模型,正在轉向多模模型的場景,而非單一文本模型 自動駕駛,天生多模態場景,融合傳感器和圖片輸入Yin,Shukang,et al.A survey on multimodal large language models.arXiv:2306.13549數據特點 單值巨大單值巨大,例如圖片數據,數據大小會比文本大很多 結構多列結構多列,例如傳感器數據,字段個數會多很多 處理復雜處理復雜,例如混合GPU|CPU對數據處理,如打標操作維度特點分離式(數據庫+對象數據)ParquetWebDatasetLMDB數據存儲存儲介質數據庫+對象存儲
3、對象存儲對象存儲本地存儲數據管理管理成本兩份數據時刻保持一致統一存儲統一存儲統一存儲大寬表取決于數據庫能力列字段數限制列字段不限通過Key名字模擬列數據讀取全列讀取2次讀取一行數據,小IO順序讀取順序迭代順序讀讀和隨機讀取部分列取決于數據庫能力支持部分列必須全部讀取,才能完成過濾和部分列讀取不支持key前綴過濾,只能全部讀取數據過濾取決于數據庫能力支持過濾數據處理更新數據取決于數據庫能力讀取全部,再全部修改回去必須全部讀取,處理完,再重新全部寫回支持修改Value數據刪除取決于數據庫能力支持刪除Key結構變化取決于數據庫能力通過Key名字模擬列模型訓練全局混洗通過表混洗,用的時候讀取先加載內存
4、,在內存完成混洗先加載內存,在內存完成混洗通過key混洗,用時再讀取value常見多模存儲方案對比多模態的業務中,經常會用模型對數據集打標,會不定期加列或者更新列。支持結構變更多模態訓練的時候,全局shuffle已經無法在內存中完成,因此需要隨機點查支持隨機點查多模態數據的列數可能比較多,因此存儲結構需要支持上百以上的列數支持大寬表多模態數據單值比較大,因此存儲結構能夠高效的存儲大列支持大小列多模存儲要求滿足數據探索需求,能夠很方便完成過濾,讀取部分列的能力列式存儲Lance數據湖介紹Introduce of lance data lake什么是LanceLance是一種列式數據集格式,可輕松
5、快速地進行版本控制、查詢和訓練。它旨在用于圖像、視頻、3D 點云、音頻,當然還有表格數據。它支持任何 POSIX 文件系統和云存儲,如 AWS S3 和 Google Cloud Storage。Lance 的主要功能包括:高性能隨機訪問:比比 Parquet 快快 100 倍倍。向量搜索向量搜索:在 1 毫秒內找到最近鄰居,并將 OLAP 查詢與向量搜索相結合。零拷貝、自動版本控制:自動管理數據版本,并使用內置的零拷貝邏輯減少冗余。生態系統集成:Apache-Arrow、DuckDB 以及Spark/Ray等。Lance數據湖介紹多模數據處理場景Lance支持binary或者large_bi
6、nary 類型,可以把多模數據按照二進制數據存儲。生態集成高效存儲Lance集成Arrow生態,因此它能夠很方便的集成Duckdb、Spark,Ray等分布式計算引擎,并完成數據操作。數據變更Lance支持結構變更,支持加列、刪列操作,支持對于多模數據進行GPU打標操作。數據探索Lance提供隨機點查和二級索引能力,在進行可視化探索的時候,能夠快速完成查詢多模模型訓練場景Lance擁有全局隨機點查能力,可以全局Shuffle出來一個Int類型的ID,通過ID就直接找到訓練需要的整行數據,用于GPU的模型計算任務。云上訓練全局混洗Lance數據湖天然支持對象存儲,也可以無縫切換到本地模態,兩者A
7、PI一致,可以同時在Lance上完成小規模的代碼驗證和大規模模型訓練。透明壓縮Lance使用列存存儲,支持數據壓縮,數據寫入時自動壓縮,數據讀取時自動解壓。相比于訓練的行存Raw data,Lance數據存儲能減少3-4倍左右。Lance核心技術特點Three key technologies enable lance to process multi-modal dataLance格式一級標題英文(可不要)Data,Metadata和Footer三者解耦,可以非常有效的處理大大寬表寬表的場景,規避大寬表footer過大,導致成為IO瓶頸三段式存儲DataPage不強制要求完全順序,可以按照P
8、ageBuffer的順序寫入。大列寫入大列寫入的時候,無須一直Buffer在內存中,做到array at a time亂序寫入較大的RowGroup導致并發較低,寫入內存消耗巨大。較小的RG導致page過小,IO次數增加。Lance去掉RG,Page相同大小,提高提高IO效率效率去除RG參考文章:https:/ ID構建虛虛擬的擬的_rowidRowID點查通過Packed Struct特性,實際上將Struct對象拉成行存,在訓練中減少IO讀取次數讀取次數Packed Struct差異編碼基礎類型,采用Page模式編碼,讀取和寫入都以Page為力度操作Binary類型,會存儲額外的offse
9、t,指定每個Value的offset,讀取時只讀取單個對象,減少IO帶寬帶寬放大Lance數據湖演示The demo about how to operator lance data and train a modelLance Demo Show演示場景:數據探查數據分析數據處理數據集管理Lance 分布式:Spark 與 Ray ConnectorPySpark:Ray:Demo:LLM Train on Lance Dataset演示場景:自定義 torch 數據集自定義采樣器基于Lance Dataset的訓練Lance 數據湖優化The contributions of our team have done for lance data lakeLance火山引擎Lance Catalog:讓 Lance 生態更開放Proposal:https:/ 火山引擎多模數據湖服務基于lance的數據集探查:多模數據湖服務:Lance 小文件壓縮LAS Catalog:管理Lance表搶先體驗Lance 多模數據湖服務掃碼搶先體驗掃碼搶先體驗謝謝觀看DataFunSummit 2025黃昭偉楊華