上述這些AI生命週期的步驟若運用NVMe,都可受益於其效能而呈指數型的成長。有鑒於此,本文將深入探討如何善用現代式的NVMe介面儲存方案,從而促進更快速的周轉效率,來實現下一階段的AI突破。
各行各業正在將機器學習技術導入其商業流程,旨在為客戶提供更好的產品,並為股東帶來更好的獲利。不過,若要有效地部署AI,就需要客製化的機器學習模式、大量運算及無法估量的數據。未來從最小的物聯網設備到最大的城市級數據,都驅使我們必須處理PB單位的資料量,而這將對在傳統上以MB單位量及毫秒運算時代所設計的儲存技術帶來很大的挑戰。
機器學習需要消化龐大的數據量,因此需要NVMe,一種專為傳輸速度所設計的全新儲存介面技術。與SATA及SAS不同,NVMe捨棄了以傳統硬碟設計的協議與構造,取而代之的是通用處理器連接技術中速度最快的PCI Express(PCIe),藉此減少延遲(Latency),並提供每個裝置強大的頻寬。這種PB單位量以及微秒時間處理能力的特性需求,讓NVMe儲存技術成為最能符合機器學習需求的不二選擇。
實現AI仰賴周全數據管道
機器學習的關鍵在於數據,若要透過處理數據獲得有意義的結果,須要考慮周全的數據管道。每家企業的數據管道因自身業務需求而各有不同,但一般來說,所有的數據管道可被分解成收集、準備、設計及訓練四個階段。經歷四個階段後的輸出結果將建構一個模型,可在邊緣或核心推算新數據。
由於這個過程通常需要大量數據,每一個階段都必須針對數據流進行優化,以避免產生瓶頸。NVMe介面就是專為這種任務而設計,並能夠透過下列四種方式來協助優化AI數據通道:
.更快速、更具成本效益的數據收集
.更快的數據集準備與運算時間
.更短的模型設計週期時間
.訓練模型時,硬體運用更有效率
NVMe助力 收集數據更智慧
部署AI的第一個挑戰就是收集原始資料,並匯入集中式的儲存中心,而這些原始資料的種類多樣性十分繁雜,可說是廣大無邊。例如:物聯網裝置傳來的感測報告、網路日誌、生產品質報告等。在實際運用上,Apache Spark等商用服務工具可處理這些任務,並對匯入的資料加以過濾,最後累積成未經結構化的數據,再存入NoSQL的數據叢集中。NVMe可協助減少這類伺服器占用的實體運算時間,同時提高反應速度。
傳統的NoSQL叢集都經由多個SATA介面硬碟伺服器所組成,而在儲存PB單位量數據時,傳統硬碟確實是一個經濟實惠的方法。不過若要再進一步提供與達到最大頻寬,每個伺服器通常必須再結合數十個SATA或SAS硬碟。這種架構顯然會增加個別伺服器的體積,並很快就會填滿資料中心的機房,但在此情況下,伺服器的CPU卻大多是閒置且未加利用的。
相形之下,單一的NVMe介面,就能夠取代多個SATA或SAS介面並且提供相等的頻寬,而且只須要插入一片AIC板卡(Add-in-card)或是2.5吋外型規格。換言之,以體積更小的NVMe SSD來取代原本NoSQL伺服器的大型硬碟陣列,就能夠縮小NoSQL節點,並大幅減少整個硬碟叢集占用的機架空間。
如今要訓練人工智慧前,先決條件必須有TB或PB單位量的大數據,然而如此大量的數據,其格式結構通常並非立即可用。因此我們必須先將數據轉換為AI更容易處理的格式結構。太極端的異常值和雜散數據須加以濾除;不適合運用或是不符合法律規範的數據,也須在這個階段先剔除。
NVMe提升數據準備效率
面對這樣的處理需求,非專為高流量設計的儲存系統極有可能因負荷過量而當機。傳統的SAS和SATA每個介面的頻寬有限;相比下,以PCIe為基礎的NVMe介面,頻寬可達6.4GB/s或更高,頻寬優勢更為顯著。在數據準備的階段,頻寬並不是儲存系統的唯一要求,並行性也很重要,由於處理的數據量非常大,需要單個伺服器之內的多個核心及多個伺服器同時平行運算。NVMe最高可支援64K的等候中指令集和64K指令,因而讓伺服器內以及跨伺服器的平行運算更為流暢。
具高頻寬/並行性 NVMe讓模型設計更智慧
將數據整理完畢,並轉為單一易處理的格式結構之後,資料科學家才能開始大顯身手。然而資料科學家要解決的每個問題都不一樣,也因此每次都要透過往復的過程,才能開發獨特的機器學習架構。唯有針對小量的數據子集進行不斷的測試驗證,才能得到一個待選的訓練模型,再進入下一階段。所有科學和工程專案的道理都一樣,一開始會走很多冤枉路,才能找到最終解決方案,也就是需要多次嘗試才能有所結果。
在這個反覆試驗的過程中,單一測試週期的速度會影響最終模型的架構以及機器學習模型的品質,若能將設計及測試週期從10小時縮短為8小時,資料科學家的效率就能提高2倍。過去資料科學家可能一早開始工作,須等待至隔天才能看到數據結果;如今卻能在一天之內完成一項測試,也就是早上先設計模型並進行測試、取得結果,並即時調整參數,然後下午離開辦公室前跑另一次測試,在一天之內執行兩個測試週期。
和前幾個階段一樣,NVMe的頻寬和並行性,在此也可發揮作用,協助資料科學家提高效率。資料科學家的個人工作站、在專屬沙盒(Sandbox)中進行的模型測試,都能利用NVMe的低延遲性,讓作業系統和測試數據集更為順暢,同時還能提供快速效能與頻寬,供分析和測試之用。
記憶體轉換效率高 模型訓練負載量再降低
資料工程師將數據轉成機器學習易於讀取的格式結構和設計出對應機器學習的模型架構之後,接下來就要展開訓練「網路」的實際作業。配有加速器的成千上百部機器開始運作,將格式結構化的資料匯入模型,並在過程中微調模型的參數,直到能夠匯聚成為一個可用於實際應用推斷的模型。
以往的加速器技術是以繪圖處理器(GPU)為基礎,因此儲存效能不構成問題。在此情況下,在伺服器上運作的通用中央處理器(CPU)都有綽綽有餘的時間,處理GPU之間的I/O作業,並且替它準備好下一批數據。然而這種情況已不再適用,如今是交由FPGA或客製化的ASIC來負責執行模型的訓練。
現今的機器學習加速器與過往技術相比,其處理資料的速度呈指數級成長,因此通用CPU在伺服器上運作時,必須更有效率的處理呈指數級成長的I/O。傳統的I/O架構(如SATA及SAS)須轉換為舊有協定,耗費CPU週期運作資源,這會增加I/O指令的延遲性,直接影響加速器的利用率。傳統I/O堆疊也會增加CPU主機的負擔,導致每部處理器所能運作的加速器數量受到限制。
由於NVMe從一開始就是以記憶體傳輸速度儲存概念來設計的協議規格,因此不會發生必須轉換協定而大量耗費運算資源的問題,這可將處理器的負擔降到最小,並確保資料能即時匯入以供下一代的加速器使用。更令人興奮的是,目前正在審查中的擴大版NVMe協定,或稱為控制器記憶體緩衝區(CMB),可透過NVMe處理這些直接記憶體轉換而不需主機的介入,以進一步降低負載量。
NVMe成AI聰明選擇
機器學習與人工智慧應用都圍繞在數據上。收集資料、將其轉換為可用格式結構、再開發學習架構,乃至於最終訓練出一個模型來判讀數據,都需要有效的儲存介面,才能處理PB單位規模的數據量,同時又能將延遲性大幅優化、降至微秒以下。NVMe是專為記憶體速度儲存而設計的技術,可提供最佳儲存介面,供機器學習和更多其他應用使用。