AI大模型如何存儲海量數據?一文讀懂數據重刪和數據壓縮 原創
隨著人工智能技術的飛速發展,大語言模型(LLMs)已成為自然語言處理領域的核心力量,展現出強大的語言理解和生成能力。然而,LLMs的開發與部署面臨著巨大的數據管理挑戰,包括數據收集、治理、存儲和優化等多個方面。
AI對存儲的需求幾乎涵蓋所有方面:高性價比的容量、高可用性、高可靠性、高IOPS、高吞吐量和安全性。更具挑戰的是,AI流水線的不同階段對存儲性能也提出各異且動態變化的要求。簡而言之,在滿足上述需求的同時,最大化GPU利用率和最小化數據移動帶來的延遲是存儲面臨的核心挑戰。
數據重刪和數據壓縮是兩種常見的數據縮減技術,它們在存儲和數據管理中被廣泛應用,以優化存儲空間和提高數據處理效率。
重刪和壓縮,這兩個技術是目前最有效節約存儲空間的技術,普遍應用在主存、閃存、備份軟件和數據傳輸軟件中。那么數據重刪和壓縮技術區別是什么,在主存儲和閃存中是如何實現的?
重刪和壓縮到底是什么?
我們先來看看什么是重刪,重刪全稱重復數據刪除(Deduplication)是一種數據縮減技術。
簡單來說,重刪就是說有很多分相同的數據,我只存儲其中一份,其他的重復數據塊我保留一個地址引用到這個唯一存儲的塊即可。
通過重刪技術可以有效提高存儲效率和利用率,數據可以縮減到原來的1/20~1/60。這種技術可以很大程度上減少對物理存儲空間的需求,減少傳輸過程中的網絡帶寬,有效節約設備采購與維護成本。同時它也是一種綠色存儲技術,能有效降低能耗。
壓縮(Compression)技術原理就是將一個大字符串中的子串用一個很簡短的數字來標記,然后檢索該字符串出現的位置,用個簡單的字符來替代。從而來減少數據表達所需要的空間,帶來空間節省。
打比方來說,用1代表“AB”,用2代表“BC”,然后用255 來代表“Inside”。1到255只需要8個bit,而“AB”“CD”或者“Inside”則需要很多的空間,這樣多次掃描替代之后,就可以快速的將數據縮減壓縮。
用通俗的話說:重刪就是講相同的東西只存儲一次,而壓縮則是改造數據排布用一種算法來統計數據的排布模式,從而達到減少數據存儲的模式。
重刪和壓縮通常會配合起來一起使用。如在備份場景中,為了提高數據的縮減效率,在數據經過重刪之后會對唯一數據塊再執行一次壓縮。這樣,數據的縮減效果就是重刪和壓縮效果的疊加。以下是它們的定義、原理、區別以及應用場景的詳細說明:
1.數據重刪(Deduplication)
定義:數據重刪是一種通過識別和刪除重復數據來減少存儲空間需求的技術。
? 指紋計算:通過對數據塊或文件進行哈希計算(如MD5或SHA-1),生成唯一的指紋。
? 數據比對:將新數據的指紋與已存儲數據的指紋進行比對,如果發現重復,則只保留一份數據,并通過指針引用。
? 實現方式:
? 文件級重刪:以整個文件為單位進行比對,適用于文件備份和歸檔,但無法識別文件內部的部分重復。
? 塊級重刪:將文件分割成多個數據塊,對每個塊進行指紋計算和比對,能夠更細粒度地識別重復數據。
? 源端重刪:在數據寫入存儲系統之前進行,節省存儲空間,但可能影響寫入性能。
? 目標端重刪:數據寫入后進行,不影響寫入性能,但需要額外時間和存儲資源。
優勢:
? 顯著減少存儲空間需求,降低存儲成本。
? 提高備份和恢復效率,減少數據傳輸量。
? 增強數據安全性,通過數據切分和隨機化處理,防止數據被輕易識別。
2.數據壓縮(Compression)
定義:數據壓縮是通過編碼技術減少數據占用存儲空間的方法。
原理:
? 無損壓縮:通過統計數據的模式,將重復或冗余信息用更短的編碼表示,解壓后數據與原始數據完全一致。常見的算法包括Huffman編碼和LZ77。
? 有損壓縮:允許一定程度的信息丟失以換取更高的壓縮率,常用于圖像、音頻和視頻文件。
優勢:
? 減少數據存儲空間,節省存儲成本。
? 提高數據傳輸效率,減少傳輸時間。
3.數據重刪與數據壓縮的區別
? 作用對象:
? 數據重刪關注的是重復數據的刪除,只存儲唯一的數據副本。
? 數據壓縮則通過編碼技術對數據進行重新編碼,減少數據的物理存儲空間。
? 實現方式:
? 數據重刪基于哈希算法和指紋比對。
? 數據壓縮基于編碼算法,如Huffman編碼。
? 應用場景:
? 數據重刪廣泛應用于備份、存檔和虛擬化環境。
? 數據壓縮適用于需要高效存儲和傳輸的場景,如網絡傳輸和存儲密集型應用。
重刪和壓縮是怎么實現的呢?
1.重刪技術的實現
重刪一般分為文件級重刪和塊級重刪,我們先看文件級重刪,文件級重刪理解起來比較簡單,就比如我們的郵件服務器,我轉發一份郵件給100個人,大家收到我的郵件后就會產生100個一樣的文件,假設大家的數據盤使用的共享存儲,存儲只需要在每個人存入文件的時候查詢一下這個文件本地有沒有,有我就不再存儲。這樣在存儲上就只存儲了一個文件。
在計算機里面有個技術名字叫做”指紋”,非常的形象生動,就好像每個人的指紋肯定不一樣,那么我們是不是可以用一個很小的數據來標記一個文件的唯一信息。這里有很多的算法可以快速的得到一個唯一值,比如說MD5算法、Sha算法。
塊級重刪的基本原理就是對寫入的數據按照固定長度進行切片,切片后進行hash計算,然后進行寫入處理,非重復數據就單獨寫入,重復數據就寫入引用即可。塊級重刪有兩種方式,定長重刪和變長重刪。定長重刪將數據按照固定長度進行分塊,之后進行重刪。例入一個文件大小為128M,按照128K來切,切完就是一千份的子文件,然后對這一千份進行對比,把重復數據去掉就是定長重刪。
變長重刪對性能和算法要求都比較高,同時對于CPU內存消耗也大,影響了數據的實時處理效率。以下面這個圖片為例,變長重刪效率可能達到10:1,而定長重刪只有3:1。
因此,對于全閃存存儲這種響應要求高的,建議定長重刪,速度快。對于歸檔、備份這種冷存儲建議變長重刪,重刪率高節省成本。
2.壓縮技術的實現
壓縮技術由來已久,分為無損壓縮和有損壓縮。
有損壓縮主要用于圖像處理領域,比如說我微信發一個照片,明明本地10M的高清圖片傳輸到朋友手機里面就有300K的圖片。這主要為了節省網絡傳輸的流量以及微信存儲空間節省。
存儲系統領域用的壓縮都是無損壓縮。借助于算法的普及,業界主流存儲廠商的壓縮實現幾乎都沒有算法上的區別,只是在于壓縮的實現選擇上,主要考慮兼顧性能和數據縮減率。
傳統的存儲,不需要壓縮的時候,我們每個數據都是由自己在硬盤上的固定地址的。只需要記錄一共由幾塊盤,一共組成了幾個RAID組,每個RAID條帶深度是多少,起始地址是多少,就能在內存中快速的用這些基本數據算出數據對應的物理地址是多少。這種基本的寫入模式叫做COW(copy on write),就是說寫前拷貝。
由于ROW架構每個塊都需要單獨存儲一次地址的映射關系,所以容量越大,產生的元數據量也越大,所以ROW架構一般容量越大,性能越差。由于ROW架構的數據寫入采用了新找地址寫入,這樣原來邏輯上連續的數據會被不斷的離散化,最終連續IO也會變成隨機IO,對性能影響較大。而SSD盤內部的數據處理也是類似,SSD中開啟垃圾回收導致的性能下降被稱之為“寫懸崖”。
壓縮對于存儲性能帶來的沖擊,根本不是來自與壓縮本身,而是由于實現壓縮的架構而帶來的影響。按照當前業界主流存儲廠商的軟件架構和效率來評估,一般ROW架構的存儲相對于COW架構在性能上大概要下降35%左右,而壓縮本身帶來的性能損失一般在5%以內,所以對于整個存儲系統來說,開啟壓縮性能下降幅度大概在40%左右。
重刪和壓縮的珠聯璧合
數據壓縮與重復數據刪除兩種技術具有不同層面的針對性,通常需要先應用數據刪除技術,然后再使用數據壓縮技術進一步降低"結構圖"和基本數據塊的體積。
壓縮會對數據進行重新編碼,從而破壞了數據原生的冗余結構,因此再應用重復數據刪除效果則會大打折扣,而且消耗時間也更多。而先執行重復數據刪除則不同,它首先消除了冗余數據塊,然后應用數據壓縮對唯一副本數據塊進行再次壓縮。這樣,兩種技術的數據縮減作用得到疊加,而且數據壓縮的消耗時間大大降低。因此,先去重后壓縮,可以獲得更高的數據壓縮率和性能。
數據重刪和壓縮都是優化存儲和數據管理的重要技術。數據重刪通過刪除重復數據減少存儲需求,而數據壓縮通過編碼技術減少數據的物理存儲空間。兩者結合使用可以顯著提高存儲效率和數據處理性能。
數據重刪與壓縮在AI大模型的全生命周期中發揮關鍵作用,從數據準備到模型部署均需精細化設計。未來趨勢包括:
**智能化算法**:結合AI優化壓縮與重刪,實現自適應策略。
**硬件協同**:專有芯片(如TPU)支持高效壓縮計算。
**標準化工具**:開源框架(如PyTorch、TensorFlow)集成一站式壓縮/重刪工具鏈。
通過合理應用這些技術,可顯著降低AI大模型的資源門檻,推動其在更多場景落地。
本文轉載自公眾號數字化助推器 作者:天涯咫尺TGH
