將所有數據提供給機器學習需要一種專為內存速度存儲而設計的新存儲接口技術:NVM Express(NVMe)。與SATA和SAS不同,NVMe消除了延遲誘導的磁盤中心協議,而是使用最快的通用處理器連接技術PCI Express(PCIe),以最大限度地減少延遲,并為每個設備提供大量帶寬。這種具有PB級存儲和微秒存儲速度的技術使NVMe協議成為機器學習的絕佳選擇。
數據作為一種人工智能管道
機器學習的關鍵是數據。而處理有意義結果所需的數據量需要采用經過驗證的數據管道。為了滿足其業務需求,每個企業的數據管道都有所不同,但所有管道都具有相同的一般階段:收集、準備、設計、訓練。這四個階段數據管道的輸出通常是一個模型,然后可以對邊緣或核心中的新數據進行推斷。但是,由于通常需要大量數據,所有階段都必須優化其數據流以避免出現瓶頸。NVMe接口專為此類任務而設計,可以通過四種方式為人工智能管道提供幫助:
•更快、更經濟的數據收集
•更快的數據集準備周轉時間
•縮短模型設計周期的周轉時間
•更有效的硬件模型培訓
NVMe用于智能數據收集
實施人工智能的第一個挑戰是將原始數據收集到中央數據存儲中。這些數據的種類幾乎是無限的:來自物聯網設備的傳感器報告、網絡日志、制造質量報告等。實際上,Apache Spark和商業服務等工具處理此任務并對傳入數據流執行過濾,最后將非結構化數據存入NoSQL數據庫集群。NVMe可以減少這些服務器的物理占用空間,同時提高其響應能力。
傳統的NoSQL集群由具有SATA硬盤驅動器的多個本地硬盤驅動器接口的服務器組成。硬盤驅動器提供了一種存儲數PB數據的經濟方法,但實現最大帶寬通常需要每臺服務器數十個SATA或SAS硬盤驅動器。這種架構顯然增加了單個服務器的規模,并迅速填充了CPU主要處于空閑狀態的服務器的數據中心機架。
單個NVMe接口可以提供許多單獨SATA或SAS接口的帶寬,同時只需要采用附加存儲卡或2.5英寸硬盤驅動器。而采用體積更小的NVMe SSD硬盤替換單個NoSQL服務器的大型硬盤驅動器陣列,可以減少NoSQL節點,并減少總集群機架空間。
NVMe可實現更加智能的數據準備
擁有TB或PB的數據是人工智能訓練的必要先決條件,但這些數據很少以易于使用的格式存在。需要將數據轉換為人工智能管道可以更容易處理的格式。必須濾除異常值和雜散數據,可能不合適甚至非法的部分數據(例如受保護的個人信息)也可能需要在此階段進行過濾。
這種處理需求可能會讓不是為高吞吐量而設計的存儲系統不堪重負。與NVMe的基于PCIe的高達6.4GB/s或更高的帶寬相比,SAS和SATA的每個接口帶寬有限。在準備階段,帶寬并不是存儲系統的唯一要求:并行性也很重要。由于正在處理的數據量非常大,因此該處理階段跨群集中的多個服務器,并跨單個服務器中的多個核心并行運行。NVMe支持最多64K命令隊列和64K命令,簡化了這些服務器內的并行操作。
NVMe用于智能模型設計
一旦數據干凈且具有統一、易于轉化的格式,數據科學家的真正工作就可以開始了。每個問題都不同,因此科學家們通常必須迭代地開發一種獨特的機器學習結構。只有在對較小的數據子集進行大量試驗之后,候選訓練模型才會進入下一個處理階段。與所有科學和工程項目一樣,許多錯誤開始之前可能先于最終結果,這通常意味著需要多次嘗試。
在這個反復試驗的過程中,單個循環的速度會對最終的模型設計和最終的機器學習模型的質量產生外部影響。將設計和測試周期時間從10小時縮短到8小時可以使數據科學家將有效速率提高一倍。科學家們可以在第一天設計和運行測試,獲得結果并及時調整參數,而直到第二天才看到結果,這樣可以實現每天測試一次。
正如與之前幾個階段一樣,NVMe的帶寬和并行性可以發揮作用,有助于提高數據科學家的效率。他們在個人工作站或在私有沙箱中測試他們的模型,可以利用NVMe的低延遲操作系統和測試數據集,以及為分析和測試運行提供最快的空間。
NVMe智能模型訓練
一旦數據工程師將數據轉換為機器學習友好格式,并且數據科學家設計了學習模型結構,就開始訓練網絡。配備加速器的數百或數千臺機器采用格式化數據,并使用它來優化模型參數,直到它們整合到真實應用程序可用于推理的模型上。
基于GPU的原有加速技術很少受到I/O限制,因此存儲性能很少受到關注。運行服務器的通用CPU有足夠的時間來處理I/O操作,并為GPU準備好下一批數據。然而,這已不再適用于FPGA,甚至是定制ASIC實施模型訓練。
由于機器學習加速器可以比現有技術更快地處理大量的數據,因此運行服務器的通用CPU需要有效地處理I/O數量級模式。傳統的I/O堆棧(如SATA和SAS)浪費了寶貴的CPU周期,將I/O請求轉換為上個世紀設計的協議。這樣做會增加I/O請求延遲,這會直接降低加速器利用率。這些傳統的I/O堆棧也會增加主機CPU負載,可能會限制每個處理器可以運行的加速器數量。
因為NVMe從一開始就被設計為內存速度存儲協議,所以NVMe不會產生這些協議轉換開銷。因此,它最大限度地減少了處理器負載,并有助于確保及時將數據饋送到這些下一代加速器。目前正在審查的NVMe協議(控制器內存緩沖區,CMB)的令人興奮的擴展,可以通過允許NVMe設備在沒有主機干預的情況下處理這些直接內存傳輸,進一步減少這種負載。
人工智能的NVMe更加智能
機器學習和人工智能是圍繞數據構建的。而收集這些數據,將其處理成可用的格式,探索學習架構,并最終訓練模型需要一個存儲接口,該接口可以在PB級存儲有效,并針對微秒延遲進行優化。NVMe是一種專為內存速度存儲而設計的技術,可以為機器學習和許多其他任務提供這樣的界面。