Numenta 與 Intel 加速推斷

自訂訓練的大型語言模型在具有 HBM 的 Intel® Xeon® Max 系列 CPU 處理器上執行的速度更快。

概覽:

  • Numenta 是應用基於大腦的原理開發創新 AI 解決方案的先驅,在 AI 和深度學習上取得突破性的進展。

  • Numenta 示範了他們的自訂訓練大型語言模型,在配備高頻寬記憶體(HBM)的 Intel® Xeon® Max 系列 CPU 處理器上,能更快處處理大型檔案(長序列的長度)。

author-image

作者

總結

隨著 Transformer 的演進,自然語言處理(NLP)得到了迅猛的發展。然而,在生產環境中高效執行這些語言模型,不論是具有低延遲要求的簡短文字片段(如簡訊或聊天記錄),或是具有高輸送量要求的長篇檔案,在 CPU 上就算可行,也相當具有挑戰性。

之前的工作中,Numenta 展現了他們的自訂訓練語言模型如何能在第 4 代 Intel® Xeon® 可擴充處理器上以低於 <10 毫秒的延遲執行,並與目前一代 AMD Milan CPU 相比實現 100 倍的輸送量加速,以對簡短文字序列進行 BERT 推斷。1 在這個專案中,Numenta 展示了與目前一代的 AMD Milan CPU 實作相比,他們的自訂訓練的大型語言模型在配備高頻寬記憶體的 Intel® Xeon® Max 系列 CPU 處理器上執行時,如何將大型檔案(長序列的長度)的執行速度提高 20 倍。2 在這兩種情況下,Numenta 都展現了在 Intel 平台上執行語言模型能顯著降低生產環境中的成本,為客戶釋放了全新的 NLP 功能。

非關鍵性的

Numenta 是應用基於大腦的原理開發創新 AI 解決方案的先驅,在 AI 和深度學習方面取得了突破性的進展,讓客戶在自然語言處理和電腦視覺等廣泛使用案例中實現 10 至 100 倍以上的效能提升3

Numenta 一直運用他們在加速大型語言模型方面的專業知識,協助客戶在不犧牲準確性的情況下,提高短和長序列長度任務的推斷效能。在 NLP 中,不同於可用於分析對話式 AI 中的句子或文字片段的較短序列長度任務,長序列長度任務涉及了分析檔案或類似長度的字串。為了進一步加速及簡化這些客戶的工作流程,Numenta 測試了 Intel 最近發布的 Intel Xeon Max 系列 CPU。

Intel Xeon Max 系列 CPU 是搭載高頻寬記憶體(HBM)的 x86 CPU。處理器也包含用於快速矩陣乘法的全新 Intel® Advanced Matrix Extensions(Intel® AMX)指令集,以及用於自動模型最佳化的 OpenVINO 工具組。Numenta 在 Intel Xeon Max 系列 CPU 上執行神經科學啟發的技術結合,使得大型語言模型的推斷輸送量提升 20 倍。4 這個示範證明 CPU 可以成為對這些大型語言模型進行推斷的最高效、最具可擴充性且功能最強大的平台。

進一步閲讀以瞭解執行較長序列長度的推斷所面臨的挑戰,以及 Numenta 技術與 Intel® 硬體如何攜手因應這些問題。

問題

Transformer 模型在執行每次推斷作業時一般會分析的文字長度,在不同應用空間之間差異很大。對於即時對話應用程式,模型可能只考慮使用者輸入的單一句子;對於回答問題或檔案摘要等應用程式,每個作業可能會考慮整個段落(或甚至整個檔案)的文字內容。Transformer 模型不會直接在文字資料上作業,而是將輸入文字標記化,並轉換成一系列嵌入向量,然後輸入模型。對於 BERT-Large 而言,每個嵌入向量包含 1,024 個元素,當使用 FP32 表示時,每個標記需要 4 KB 的狀態。

BERT-Large 可考量包含最多 512 個標記組成的文字序列,對於大序列長度作業而言,這相當於2 MB 的狀態。這個輸入會透過 Transformer 在不同層之間流動,甚至在與特定線性層交流時也會擴充,例如在 BERT-Large 中可拓展至 8 MB。除了與保持這些啟動相關的狀態之外,還需要狀態來保持模型權重,並且在每層轉換輸入時需要大量的臨時記憶空間。

對於較新的 GPT 模型,最大序列長度與嵌入向量大小皆已增加。例如,使用 GPT-J-6B,一個序列最多可包含 2,048 個標記,每個嵌入代表16 KB 的狀態,所以利用最大序列長度的作業總共需要 32 MB。因此,尤其是在處理大型文字輸入時,與推斷作業相關的工作集可能相當重要。

如果我們考慮推斷伺服器同時處理多個輸入資料流,儘管模型權重可以在處理作業之間共享,但每個資料流的輸入狀態都是獨一無二的,並隨著同時作業的數目線性增加。

應用程式空間之間的另一項差異是典型的批次大小。對於即時應用程式而言,批次大小很小,通常只有 1(最低延遲處理、即時回應使用者互動)。然而,離線處理而言,通常可以透過增加批次大小(例如同時處理 64、128 甚至 256 個查詢)來改善整體輸送量(以延遲為代價)。可以想像,這進一步增加了每個作業所需的工作集。

在現今的多核心處理器上,處理器的晶片快取記憶體資源會在核心之間共享。例如,一款具備 56 核心的第 4 代 Intel Xeon 處理器,可能在晶片上整合了約 112 MB的 3 級快取記憶體。雖然這是一個很大的快取記憶體容量,但在使用每個核心時,每個核心資源都相當於 2 MB 的快取記憶體。因此,特別是對於較大的 Transformer 模型,即使在較大的檔案上作業,也沒有足夠的快取記憶體空間來保持所有必要的狀態,因此必須將資料不斷地在記憶體之間來回分段讀取和寫入。這會導致顯著的記憶體頻寬利用率。

工作集夠小時,處理器提供的彙總效能可能受到運算限制,可實現的總 FLOP(每秒浮點運算)接近公司資料工作表中規定的值。然而,如果工作集大到晶片容納不下,應用程式效能通常會先受到可用記憶體頻寬的限制,並且遠遠低於僅基於處理器運算能力的預期結果。

因此,在大規模使用大型 Transformer 模型執行推斷作業時,處理器的運算能力時常未獲得充分利用。

解決方案:透過最佳化模型 和 CPU 大幅加速 NLP 推斷

憑藉二十多年在神經科學領域的研究,Numenta 定義了新的架構、資料結構與演算法,帶來顛覆性的效能提升。套用於 GPT-3 BERT-Large 等模型時,推斷效率顯著提升,且不犧牲準確度。其中一部分是使用硬體感知最佳化演算法來自訂訓練模型。另一部分涉及最佳化執行階段,以充分利用運算平台進行推斷。

他們將基於大腦的技術應用於自訂訓練的 BERT-Large 版本,進而實現更高的生產輸送量。但在AMD Milan 等前一代的 CPU 平台上執行這些模型,卻未必能達到足夠的輸送量以滿足客戶的需求。因此,許多廠商被迫在生產中使用 Nvidia A100,但成本效益低得多,維護起來也更耗時。例如,建立一個用於 NLP 推斷的 GPU 系統可能需要數週的工程時間。一般需要一兩天的時間才能啟動及執行類似的 CPU 平台。為了滿足變更資料集或客戶需求,進行必要的程式碼變更,也要花差不多的時間。和 CPU 平台相比,每件事一般都必須在 GPU 平台上進行更多的工程工作。

Numenta 模型的運算效率比傳統模型高,但效率的提升往往會對記憶體頻寬提出更高的要求。大規模執行大型深度學習模型時,記憶體頻寬通常會成為限制擴展的因素。HBM 將記憶體頻寬提升三倍,讓 Numenta 更能善用運算資源。

這就是全新 Xeon Max 系列 CPU 帶來顯著差異的地方。搭配 HBM 技術,其可持續的晶片外頻寬總和,比沒有 HBM 技術的處理器高出 3 倍以上。5

最後,如本文詳加探討,Intel Xeon Max 系列 CPU 處理器包含其他加速深度學習應用程式的創新技術,包括支援 Intel AMX。Intel AMX 不僅引進對16 位元的 BF16 作業的支援,減少了與啟動和權重相關的記憶體佔用空間,而且與傳統的 Intel® Advanced Vector Extensions 512(Intel® AVX-512)指令相比,也大幅提升了峰值運算效能。Intel AMX 也旨在與 Xeon Max 系列 CPU 搭配使用。Intel AMX 提供顯著的運算輸送量加速,通常可將 AI 推斷問題從運算轉換成頻寬限制。使用 Intel AMX 將表示從 32 位降低到 16 位,基本上將頻寬需求減半,並且在此過程中,透過大型模型提供更佳的推斷輸送量。但潛在運算輸送量的顯著提升,同時也增加了充分利用 Intel AMX 所需的記憶體頻寬需求,進而將問題轉換為頻寬限制。Xeon Max CPU 搭配處處理器上 HBM,旨在順暢處理這項挑戰。

成果

為了展示 Intel 最新一代處理器與 Numenta 技術技術協同組合的優勢,我們選擇示範使用大型 512 元素序列長度時,BERT-Large 的推斷輸送量改善。這個評測基準使用的是最佳化的ONNX 模型,該模型使用 Intel 的 OpenVINO 工具組執行,並行資料流的數目與可用的處理器核心相符。Intel 透過 oneAPI 提供最佳化、開放且可擴充的軟體,讓 Numenta 得以將其技術高效地整合至 OpenVINO 工具組。

效能基準是在 48 核心 AMD Milan 系統上使用 OpenVINO 工具組建立的,示範了在不結合 Numenta 技術和 Intel 最新一代 Intel® Xeon® 處理器的情況下,客戶可獲得的效能。如圖 1 所示,從在 48 核心 AMD Milan 系統上執行的標準 BERT-Large 模型(例如 Huggingface.com 上的模型)轉為使用在 48 核心 Intel Xeon Max 系列處理器上執行的 Numenta 最佳化 BERT-Large 模型,推斷輸送量提高了 20 倍以上。6

圖 1.對於 512 的長序列長度,這種技術組合的輸送量比目前一代 AMD Milan 高出 20 倍。6

總結

對於使用大型 Transformer 模型的應用程式而言,這種技術組合證明比以前更具生產力、更有效率:

  • Numenta 的 BERT-Large 最佳化版本可提升效能,並旨在充分利用它將執行的目標運算。
  • Intel Xeon Max 系列 CPU 是第 4 代 Intel Xeon 可擴充處理器版本,將 HBM 置於處理器上,能使本來會受到頻寬限制的工作負載獲得 3 倍的頻寬容量。
  • 與前一代 Intel AVX-512 相比,Intel AMX 提供顯著的加速功能,使得第 4 代 Intel Xeon 可擴充處理器在一般情況下處理 AI 任務的效率更高。
  • OpenVINO 工具組和由 Intel 維護的開放式 oneAPI 軟體堆疊,可為開發者提供強大的體驗,不僅開箱即用、順暢執行,還大幅減少工程團隊的維護開銷。
  • 透過 Intel Xeon Max 系列 CPU 和 Numenta 最佳化版本的 BERT-Large,Numenta 能以夠快的速度執行輸送量,以滿足客戶需求,而無須在 Nvidia A100 上執行。

進一步瞭解

若遇到類似的問題,您可以立即使用相同的堆疊,處理您的特定問題:

Intel 與 Numenta 擁有各種解決方案,無論您要處理什麼 AI 問題,都能滿足您的需求。