智東西(公眾號:zhidxcom)
作者 | GenAICon 2024

2024中國生成式AI大會于4月18-19日在北京舉行,在大會第二天的主會場AI Infra專場上,焱融科技CTO張文濤以《多云環境下大模型訓練和推理的高效存儲》為題發表演講。

隨著大模型訓練和推理需要的算力越來越高,單個數據中心已經無法滿足大模型訓練所需要的算力要求,需要多數據中心進行訓練和推理。

多個數據中心存在多份數據拷貝的成本越來越大,如何在保證性能的前提下,讓數據按需跟隨算力進行流轉,成為大模型廠商和存儲廠商要解決的難題。從數據加載、模型加載到Checkpoint保存等過程中,存在大量的讀寫請求、元數據訪問和內存拷貝等操作。在此背景下,張文濤解讀了存儲對大模型訓練和推理的重要性和一些可行方法。

對于多模態大模型,高性能存儲對訓練的提升效果更好,效率可提升20-40%。針對訓練推理,焱融科技推出了多云存儲解決方案。基于統一的數據湖底座,通過數據編排將數據按需加載到數據中心,并異步將新增的模型數據推到數據湖。數據加載支持對接OSS、COS、BOS等各大主流對象存儲平臺。

以下為張文濤的演講實錄:

炎融科技專注于高性能分布式文件存儲,是英偉達在中國的合作伙伴之一。在Gartner中國軟件定義存儲競爭格局報告中,我們是唯一一家專注于文件存儲的廠商。

我們曾參與過IO500測試,全球排名第六,是國內首家進入云原生存儲領域的公司。去年,焱融科技入選了賽迪中國式存儲挑戰者象限,展現了我們在行業中的競爭實力。焱融科技的產品在AI和智能汽車行業占有領先地位。

接下來,我們將分享三個主要方面:第一,為什么存儲對大模型訓練和推理很重要;第二,大模型推理和訓練的解決方案;第三,在當前算力短缺的情況下,我們不得不采用多云方式進行訓練和推理,在此過程中,將會遇到哪些問題,又該如何去解決?

一、大模型場景六大環節需要存儲,優秀方案能平衡性能與成本問題

大模型場景里有哪些環節,這些環節里對存儲又有哪些訴求?主要分為六個部分。

第一,數據采集。包括從第三方購買數據、網絡爬取以及現場采集。由于采集方式各異,存儲訪問也需考慮多種協議。采集的原始數據量較大,因此需要高容量、低成本的存儲方案。同時,我們希望存儲能夠支持高并發、高帶寬。

焱融科技張文濤:將大模型訓練效率提升40%!詳解多云架構下高效存儲策略丨GenAICon 2024

第二,數據預處理。包括清洗、篩選、格式轉換和集成。這一過程涉及多個環節,對存儲而言需要支持多種協議,如NFS、SMB、S3、HCFS、POSIX等。在數據預處理中,需要進行大量的數據檢索,從各個維度提取數據,滿足不同的檢索需求。數據在此階段的特點是混亂的,IO大小和讀寫方式也是混合的。

第三,模型訓練。在存儲方面相對簡單,但也具有挑戰性。在這一階段,性能是關鍵,包括對讀取帶寬、讀取IOPS和寫入帶寬的要求,以及整體低延遲的需求。

第四,模型驗證。這也是訓練過程的一部分。

第五,推理。推理本身并不需要頻繁訪問存儲,其主要對存儲的需求源自模型的部署和更新。在模型部署和更新時,要批量將模型加載到GPU中,這可能引發類似啟動風暴的問題,需要瞬時加載大量數據,峰值瞬時流量可能達數十TB。

第六,數據歸檔。隨著數據的不斷增加,涵蓋了模型數據、數據集以及原始數據,數據治理問題日益顯現。在存儲方面,我們期望實現全生命周期的數據管理,最好是基于時間維度的方式。隨著數據訪問熱度的降低,我們希望自動將冷數據轉移到低成本的存儲介質上,但同時保證當需要訪問時,數據能夠隨時可見。

這幾個環節對存儲的需求很高,特別是在模型的訓練和推理階段,這兩個環節尤為挑戰性。

為何存儲在這兩個方面至關重要?主要有兩個原因。

首先,存儲直接影響了模型訓練的效率。在訓練過程中,需要從存儲加載模型和數據,并定期將GPU內存中的數據保存到存儲中。在每個環節,存儲都必須提供最佳性能。

其次,推理業務上線時通常會同時啟動數十甚至上百個業務pod,需要瞬時提供幾十TB的流量。例如,一個量化后的模型可能有數十GB甚至上百GB,幾十個業務pod同時啟動,會產生巨大的瞬時流量。由于模型更新頻繁,業務上線的延遲應控制在分鐘級別,并且希望不受推理業務規模擴大影響,以避免存儲帶寬峰值對模型下載延遲的影響。優秀的存儲解決方案不僅能夠解決這些問題,還能平衡性能與成本。

二、高性能存儲如何影響訓練與推理?縮短多模態訓練時間可提升40%效率

接下來介紹一下存儲對于訓練的影響,在訓練過程當中,有4個地方會對存儲有要求:

1、數據的預讀和訓練。我們進行數據訓練時,需要將數據從存儲加載到GPU進行計算。在這個過程中,可能會采用預讀機制或直接讀取方式。特別是在Batch Size較小時,會產生大量小的I/O操作。在多模態大模型中,由于存在許多圖文對形式的小文件,因此會出現大量小文件訪問帶來的大量元數據操作。

焱融科技張文濤:將大模型訓練效率提升40%!詳解多云架構下高效存儲策略丨GenAICon 2024

2、POSIX和GDS協議。盡管當前許多訓練任務都使用對象存儲,但在訓練階段,實際上還是通過文件接口進行訪問。只有文件接口能夠提供高性能,并且具有最佳的兼容性。隨著越來越多的訓練任務面臨內存拷貝性能問題,將數據從CPU內存拷貝到GPU內存時,性能問題變得突出。目前,許多客戶開始嘗試使用GPU Direct技術來加速性能。

3、模型的加載。當啟動新的訓練任務,或由于其他原因需要重新啟動訓練時,需要將模型加載到GPU中。在這個過程會產生大量的讀取I/O。英偉達在2021年發表了一篇論文,關于千卡規模,當時的存儲峰值讀取帶寬可達到1TB/秒。

4、Checkpoint的保存。在訓練過程中,Checkpoint起著重要作用。由于有大量GPU同時進行Checkpoint,且GPU的故障率相對較高,因此需要定期保存Checkpoint。這個過程本身就是保存一個模型,保存過程中,訓練狀態會暫停,并進行同步等待。保存過程的時長越短,訓練的GPU利用率就越高。

焱融科技張文濤:將大模型訓練效率提升40%!詳解多云架構下高效存儲策略丨GenAICon 2024

這個圖比較直觀,紅色表示數據加載,綠色表示訓練,黃色表示Checkpoint保存。

對于大語言模型而言,由于其訓練集較小,存儲訪問占比并不會很高。但是對于多模態大模型,尤其像Sora模型,數據訪問占比較大。對于訓練任務來說,普通存儲和高性能存儲之間的差異會非常明顯。高性能存儲能夠大大壓縮存儲訪問時間。對于多模態任務來說,縮短訓練時間可以提升20%至40%的效率。

在英偉達的最佳實踐中,對于NLP任務,單臺GPU只需要4GBps的讀取帶寬。但對于多模態任務而言,單節點需要40GBps的讀取帶寬,基本上需要一張400Gb NDR的卡來處理。一個SuperPod需要500GBps的讀取帶寬,這個要求是相當高的

存儲對推理的影響主要集中在模型加載和更新的過程。在啟動推理業務時需要先加載模型文件,模型文件大小在幾十G到上百GB之間,而一次性會啟動幾十個pod,因此整個數據量可達幾十到上百TB。

焱融科技張文濤:將大模型訓練效率提升40%!詳解多云架構下高效存儲策略丨GenAICon 2024

推理業務通常部署在邊緣節點,其GPU配置不如訓練集群那么高。在這樣的環境中,存儲和計算之間的網絡帶寬通常也會受限,一般為25Gb的以太網絡。此時啟動整個推理業務時的延遲會很高,在啟動和擴容過程中會遇到嚴重的啟動風暴問題。

三、基于四大核心組件,精準部署存儲解決方案

我們的大模型訓練和推理過程的存儲解決方案基于YRCloudFile系統,整體架構包含四個核心組件:1)集群管理服務,采用一主多備的高可用架構;2)元數據服務,支持海量小文件場景,我們的元數據集群能夠橫向水平擴展;3)集群服務,能夠水平擴展;4)客戶端。相比于基于FUSE的用戶態私有客戶端,它有更高的性能。

焱融科技張文濤:將大模型訓練效率提升40%!詳解多云架構下高效存儲策略丨GenAICon 2024

在硬件方面,我們能夠支持標準x86架構,也支持Arm架構的鯤鵬服務器、海光服務器和飛騰服務器;在數據冗余方面,支持副本的方式,也可以支持低成本的糾刪碼的方式;在網絡方面,支持25Gb、100Gb、200Gb的以太網,以及支持200Gb、400Gb的Infiniband網絡,也支持RoCE網絡;在協議層面,支持標準的NFS、SMB、S3、HCFS以及私有的POSIX協議。

針對大模型訓練場景,我們提供了一系列功能和特性,以支持和加速模型的訓練過程。

焱融科技張文濤:將大模型訓練效率提升40%!詳解多云架構下高效存儲策略丨GenAICon 2024

其中包括Multi-Channel技術,支撐單節點提供超高性能帶寬和IOPS的核心技術。

其次是GPU Direct Storage(GDS)技術。隨著客戶內存的不斷增大,傳統的緩存技術已經無法滿足數據集的存儲需求,GDS技術應運而生。

還有內核私有客戶端,能夠減少上下文的切換,能夠提供高帶寬和IOPS。

第四,能夠支持400Gb NDR的網絡,結合Multi-Channel技術,在x86架構下,提供單節點90GBps的帶寬,以及300萬IOPS的性能。

針對多模態的海量小文件場景,我們提供了分布式元數據集群,單個集群能夠支撐千億級的文件數量。我們線上最大的單一集群包含接近400億文件,擁有100多個元數據節點,是目前線上最大的單一元數據集群。

在功能層面,我們提供了多種功能。

第一,智能分層。能夠有效地將數據下沉到對象存儲中,從而極大地降低成本。即便在提供高性能的情況下,也能夠實現低成本。

第二,目錄級Quota和QoS。為運維人員提供方便的管理工具,同時提供了日審計和回收站功能,使運維同學能更好地應對客戶的需求和問題。

第三,協議網絡支持。近一年來,對多協議網絡支持的需求急劇增加。由于GPU卡供應緊張,數據中心構建時出現了異構網絡場景,既有InfiniBand網絡,又有以太網。

在這種情況下,構建多套存儲是不現實的,因為存儲之間不互通,且會增加成本和管理復雜度。我們提供了多網絡協議支持,在同一個集群中可以同時支持InfiniBand和以太網訪問,方便數據中心存儲設施的構建和管理。

GDS技術的最大優勢在于能夠有效減少CPU和CPU Memory的使用,從而極大地降低了CPU的利用率。在沒有GDS技術時,數據的傳輸路徑通常是從網卡拷貝到CPU Memory,涉及多次內存的拷貝。而使用了GDS技術后,數據可以直接從網卡經由DMI方式傳輸到GPU的Memory里面,減少了內存拷貝的次數,有效降低了CPU的利用率。

接下來是一些我們在實驗環境和客戶現場測得的數據。

我們對比了使用GDS和不使用GDS的情況,在帶寬和延遲方面都取得了顯著的性能提升。具體來說,在帶寬方面,使用了GDS后,整體帶寬性能提升了近40%;而在延遲方面,我們觀察到有50%至60%的性能提升。

當然,在低負載情況下,性能提升不太明顯,但在高負載情況下,其效果顯著。這與GDS的作用相符合。在CPU利用率方面,我們可以看到,在高并發量的情況下,CPU負載顯著降低。使用了GDS后,CPU的利用率基本上處于空閑狀態。

針對推理環節的解決方案,主要在于存儲和計算之間的網絡瓶頸。由于推理集群通常采用25Gb以太網絡,無法像訓練集群那樣構建200Gb或400Gb的IB網絡,因此存儲和計算之間的帶寬成為一個重要瓶頸。

我們推出了客戶端緩存池解決方案,該方案在加載模型時充分利用計算節點的本地SSD形成一個大的緩存池。當需要加載模型時,我們首先將模型并發加載到客戶端緩存池中,然后再由客戶端緩存池將模型加載到GPU中。這樣一來,我們有效地解決了啟動風暴的問題。隨著計算節點規模的增加,緩存池的性能也會相應提升,從而有效地應對啟動風暴的挑戰。

四、訓練推理無法在單一數據中心完成,多云方式帶來一系列挑戰

之前我們討論了單一數據中心內的解決方案,然而,由于諸多因素的影響,如卡的采購、資源租賃等,訓練和推理往往無法在單一數據中心完成。

因此,我們不得不采用多云的方式,但這也帶來了一系列挑戰。

對于大模型廠商而言,通常會將所有數據存放在一個稱為“Source of Truth”的數據中心內,而訓練集群和推理集群則分布在多個云上,它們之間通過公網或專網連接。

訓練集群通常需要共享數據,而不是為每個集群提供一份全量數據,這樣做成本高且管理復雜。推理集群也需要共享模型數據,以便靈活擴展推理業務。由于邊緣數據中心的存儲容量有限,我們的訓練集群和推理集群都需要按需加載數據。

我們面臨兩個主要特點:共享和按需。在這種情況下,通常會有一個中心的“Source of Truth”數據湖提供對象存儲訪問。當我們在邊緣數據中心進行訓練時,需要通過數據編排的方式將數據集按需加載到數據中心。當訓練產生模型數據或結束后,我們可以將模型數據導出到數據湖中,而其他推理集群可以根據需要訂閱并拉取這些模型數據到各自的集群中。

整個架構的基本思路就是這樣,所有邊緣數據中心都能與數據湖進行連接,數據的流轉通過數據編排的方式按需拉取或導回到數據湖中

實現數據的靈活流轉,需要具備相應的功能支持。其中,數據加載功能可以讓數據在各個平臺之間靈活地流動;Dataload功能可以與主流的調度平臺對接起來進行數據編排,對接標準的S3,如公有云的OSS、COS、BOS以及開源的對象存儲,如Ceph、Minio等。Dataload功能能夠關聯對象和文件,將對象bucket或者Prefix與文件路徑關聯起來,并支持多次導入導出;通過API方式,可以按需進行數據流轉。

焱融科技張文濤:將大模型訓練效率提升40%!詳解多云架構下高效存儲策略丨GenAICon 2024

為了方便管理員管理,我們提供了查看導入導出進度和歷史記錄的功能。這些功能不會影響業務對數據的訪問,業務仍然可以通過標準的NFS、SMB、POSIX、S3等接口進行訪問。

當數據發生變化時,例如A集群的數據推送到Source of Truth的數據湖中,其他集群可以通過訂閱方式實時感知這些數據的變化。這樣,我們可以通過API制定策略,選擇是否要更新本地數據。同時,我們還適配了Fluid對數據集進行編排,使用戶的訪問更加靈活。

以上是張文濤演講內容的完整整理。