Transformer 是當今最具影響力的人工智能模型架構之一,正在塑造未來人工智能研發的方向。Transformer 最初被發明為自然語言處理( NLP )的工具,現在幾乎被用于每一項人工智能任務,包括計算機視覺、自動語音識別、分子結構分類和金融數據處理。
在韓國, Kakao Brain 開發了一種基于 transformer 架構的高精度大型語言模型( LLM ) KoGPT 。它在一個大型韓國數據集上進行了訓練,并使用 NVIDIA FasterTransformer 成功地對其進行了優化。
在這篇文章中,我們將介紹 NVIDIA 和 Kakao Brain 如何使用 FasterTransformer 優化 KoGPT 。
FasterTransformer 簡介

Transformer 層是目前深度學習領域應用最廣泛的深度學習架構。它起源于 NLP ,目前正在將其應用范圍從語言擴展到視覺、語音和生成人工智能。
NLP 中最流行的人工智能模型之一是 GPT 模型家族。 GPT 是由 OpenAI 開發的 LLM ,它從 transformer 模型架構中堆疊多層所謂的解碼器塊。例如, GPT-3 是一種具有數千億個參數的 LLM ,可以像一本巨大的百科全書一樣聚集大量信息。
然而,培訓這些 LLM 帶來了一些挑戰:
- 這些 LLM 占用大量內存,可能超過單個 GPU 的容量。
- 由于需要大量的計算工作,訓練和推理可能需要相當長的時間。因此,您必須優化堆棧的每一個級別:算法、軟件和硬件。
這個NVIDIA NeMo framework和 FasterTransformer 使得能夠對具有數千億個參數的 LLM 進行更快的訓練和推理。
FasterTransformer 中的優化
FasterTransformer 是一個庫,它使用前面描述的模型并行化(張量并行和流水線并行)方法為大型 transformer 模型實現推理加速引擎。與以前可用的深度學習框架相比, FasterTransformer 的開發旨在最大限度地減少延遲并最大限度地提高吞吐量。
FasterTransformer 提供了 transformer 模型的優化解碼器和編碼器塊。它是用 C ++/ CUDA 編寫的,具有 TensorFlow 、 PyTorch 和Triton Backend框架。它附帶了演示其主要功能的示例代碼。
FasterTransformer 是開源的。它已經支持許多型號,如 GPT-3 、 GPT-J 、 GPT-NeoX 、 BERT 、 ViT 、 Swin transformer 、 Longformer 、 T5 、 XLNet 和 BLOOM 。不斷增加對新機型的支持。它還支持即時學習技術。有關詳細信息,請參閱latest support matrix.
如前所述, FasterTransformer 實現了比其他深度學習框架更快的推理管道,具有更低的延遲和更高的輸出。以下是 FasterTransformer 中使用的一些優化技術:
- 層融合:該技術將多個層合并為一個層,通過減少數據傳輸和增加計算強度來加速推理計算。這種加速的例子是偏置加層歸一化、偏置加激活、偏置加 softmax 以及注意力層的三個轉置矩陣的融合。
- 多頭注意力加速:多頭注意力計算序列中標記之間的關系,需要大量的計算和內存拷貝。 FasterTransformer 使用融合內核維護數據緩存( K / V 緩存)以減少計算并最大限度地減少內存傳輸的大小。
- GEMM 內核自動調諧:矩陣乘法是基于 transformer 的模型中最常見和最繁重的運算。 FasterTransformer 使用 cuBLAS 和 CUTRASS 庫提供的功能來執行此操作。矩陣乘法運算可以在硬件級別上具有不同的低級別實現。 FasterTransformer 對模型的參數(附著層、大小、附著頭數量、隱藏層大小等)和輸入數據進行實時基準測試。它選擇最合適的功能和參數。
- 精度較低:FasterTransformer 支持較低精度的數據類型,如 FP16 、 BF16 和 INT8 。 Tensor Core 在最近的 NVIDIA GPU (在 NVIDIA -Volta 架構之后)上可以加速對這些數據類型的操作。特別是, NVIDIA Hopper GPU 可以運行專用硬件,如 transformer 引擎。
KoGPT 簡介

Kakao Brain 的 KoGPT 從詞匯和上下文角度理解韓語,并根據用戶意圖生成句子。使用 KoGPT ,用戶可以執行與韓語相關的各種任務,例如確定給定句子的情感、預測摘要或結論、回答問題或生成下一個句子。它還可以處理各種領域的高級語言任務,如機器閱讀、機器翻譯、寫作和情感分析。
KoGPT 與 FasterTransformer 的性能
Kakao Brain 希望運行 KoGPT ,這是一種使用 HuggingFace 實現的基于 GPT-3 的語言模型服務。訓練時速度不是問題,因為表現更重要。但在發球方面,速度成了一個主要問題。推理速度越慢,必須為該服務專用的服務器就越多。它呈指數級增長,這導致了更高的運營成本。
Kakao Brain 的團隊試圖找到并應用各種方法來優化 GPT-3 的推理速度,但未能取得太大改進。直到采用 NVIDIA FasterTransformer 后,該團隊才發現推理速度有了顯著提高。推理速度因輸入和輸出令牌的數量而異,但平均而言,該團隊在一臺 NVIDIA V100 GPU 上將推理速度提高了 400% 。
FasterTransformer 還支持張量和流水線并行。當使用四個 V100 GPU 時,該團隊的推理速度比基線提高了 1100% 以上。

總結
NVIDIA FasterTransformer 使 KoGPT 很容易克服團隊在推出服務之前必須面對的技術挑戰。 Kakao Brain ML 優化團隊通過在同一硬件上提供更多請求,將總擁有成本( TCO )提高了 15% 以上。
有關 Kakao Brain 的韓國 LLM 、 KoGPT 和韓國人工智能聊天機器人 KoChat GPT 的更多信息,請參閱Kakao網站
?