通過NVMe™讓AI更智慧的四種方式
各領域的業務都在將以AI為例的機器學習技術引入其流程中,以期為客戶帶來更好的產品,為股東創造更高的營收成果。然而,要有效部署AI,需要自定義的機器學習模型、大量的計算和數量不可預估的資料。處理PB級資料,無論這資料是來自於最小的物聯網裝置還是世界上最大的城市,這一任務對設計於兆位元組和毫秒的時代的儲存技術來說都將是一大挑戰。
為機器學習提供所有的資料,就需要為記憶體速度儲存設計一項新的儲存介面技術:NVM Express (NVMe)。NVMe與SATA和SAS不同,它消除了磁碟為中心協議的延遲誘導水平,而使用更快的通用處理器連線技術和PCI Express (PCIe)來減少延遲,為每個裝置提供大量的頻寬能力。對於PB級別的專注和微秒的處理使得NVMe非常適合機器學習。
資料是AI傳遞途徑
機器學習的關鍵是資料。生成有意義的結果需要處理大量資料,這就要求我們有經過深思熟慮的資料工作流程。每個公司都有著不同的資料工作流程,以滿足其自身的業務需求,流程可大概分為以下階段:收集、準備、設計和訓練。這四個階段的資料工作流程輸出的通常是可以對邊緣或核心的新資料進行推斷的模型。由於需要大量的資料,因此所有階段都需要通過其對資料流的優化,避免出現瓶頸。NVMe介面的設計就是為了滿足此要求,可以通過以下四種方式為AI的傳遞途徑提供幫助:
更快捷、更經濟實惠的資料收集
更快速的資料集準備週期
更短的模型設計週期轉變時間
更有硬體效率的模型訓練
NVMe用於更智慧的資料收集
實現AI首先會面臨到的挑戰即是如何將原始資料收集到集中式資料儲存中。這些資料的種類幾乎是無限的:包括來自IOT裝置的感測器報告、網路日誌、製造質量報告等。事實上,資料是由例如Apache Spark™之類的工具或商業服務對該任務進行處理,然後在新的資料流中進行篩選,最後將非結構化資料輸出到NoSQL資料庫叢集中。NVMe在提高其反應速度的同時,還能減少佔用這些伺服器的物理空間。
傳統的非結構化查詢語言(NoSQL=Not Only SQL)叢集由具有多個本地硬碟介面的伺服器和SATA硬碟組成。硬碟確實為PB級的資料提供了經濟實惠的儲存方法,但要實現更大的頻寬,需要通過幾十個SATA或SAS硬碟與伺服器連線。此架構明顯增加了單個伺服器的大小,並且快速填充資料中心的機架,其中CPU伺服器卻大多處於空閒的狀態。
單獨的NVMe介面即可為多種獨立的SATA或SAS介面提供所需的頻寬,且只需要一個附加卡或2.5寸硬碟。用更小的NVMe SSD替換單個NoSQL伺服器的大硬碟陣列,可以縮小單個NoSQL節點並顯著減少整個機架的空間。
NVMe用於更智慧資料準備
當今AI訓練的一個必要前提就是擁有TB級或PB級的資料。但通常該資料並不是隨時可用的格式。需要將資料轉化成更容易被AI傳遞途徑處理的格式,過濾掉異常值和虛假資料。對於部分不適合使用或不能合法使用的資料,例如受到保護的個人資訊,也可能需要在這一階段將其過濾掉。
這種處理需求可能會超過一個儲存系統的可受範圍,如果該儲存系統不是為高吞吐量而設計的話。與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數量級的模式。像SATA和SAS這樣的傳統I/O棧浪費了寶貴的CPU週期,將I/O請求轉換為上世紀設計的協議。這樣就增加了I/O請求的延遲,會直接影響加速器的使用。這些遺留I/O棧也增加了主機CPU的負載,限制了每個處理器上可執行的加速器的數量。
由於從一開始就將NVMe設計成為記憶體速度儲存協議,因此其不會產生協議轉換的成本。這就減少了處理器的負載,有助於保證及時將資料反饋到下一代加速器中。目前正在研究的NVMe協議具有一個激動人心的擴充套件—控制器記憶體緩衝(CMB),允許NVMe裝置在不受主機干預的情況下,得以直接處理記憶體轉換並進一步減少負載。
NVMe-用於更智慧的AI
機器學習和AI是建立在資料之上。從最初的資料收集、將其處理為可用的格式、開發學習架構、到最後訓練的模型都需要一個在PB級規模上有效的儲存介面,並且針對微秒級延遲進行優化。NVMe作為一項提升記憶體速度的儲存技術能為機器學習和其它應用提供所需的儲存介面