讓人們暢所欲言:微軟利用 NVIDIA Triton 提高人工智慧 Translator 功能的品質和效率

作者 NVIDIA

當您的軟體能夠讓人笑中帶淚,便傳播了快樂。

因此微軟 Azure 認知服務中的  Translator 使用了部分世界上最龐大的人工智慧模型,以協助更多人暢所欲言。

「有很多很棒的故事。」Translator 的開發經理 Vishal Chowdhary 說。

例如海地在 2010 年發生七級大地震後,便在 Translator 裡加入海地的克里奧爾語,以協助五天搶救黃金時間的救援人員進行溝通。還有像是第一次使用 Translator,透過網路與身處遠方、說著他們聽不懂的語言的孩孫們進行對話時,語帶哽咽的祖父母們。

遠大目標

Chowdhary 說:「我們的願景是用這個已經被成千上萬名開發者使用的同一個 API,消除所有語言與模式所帶來的障礙。」

全球各地使用約七千種語言,這可是一個非常遠大的目標。

該團隊為此採用一種強大又複雜的工具,即混合專家(MoE)人工智慧方法。

它是推動自然語言處理快速發展之 transformer 模型類別裡最先進的成員。它有50億個參數,比團隊已在生產環境裡用於自然語言處理的最大模型,還要大上80倍。

MoE 模型的運算量極大,很少有人把它實際投入生產環境。在第一次測試時,搭載 CPU 的伺服器無法滿足團隊用它們在一秒鐘內翻譯一份文件的要求。

速度提高 27

後來該團隊在搭載 NVIDIA Triton 推論伺服器加速系統上進行測試,並且在本週的 GTC 大會中宣布結果。

Chowdhary 說:「使用 NVIDIA GPU 和 Triton 讓我們做到這一點,而且效率極佳。」

其實跟未經過最佳化的GPU 執行時間相比,使用 NVIDIA GPU 和 Triton 的速度提高了27倍。

「我們能夠建立一個模型來執行不同的語言理解工作,像是總結、文字生成和翻譯,不用一一為每一項工作開發模型。」監督測試的微軟首席研究員 Hanny Hassan Awadalla 說。

Triton 如何協助做到這件事

微軟的模型將翻譯一疊文件這樣的龐大工作,拆成多個翻譯數百個句子的小任務。Triton 的動態批次處理功能將這些請求集中起來,以充分利用 GPU 的力量。

該團隊稱讚 Triton 能夠使用 CPU、GPU 或其他加速器,在任何模式下運行任何模型一事。

Chowdhary 說:「它似乎是經過周全考慮所開發出的產品,提供各項我想要的功能,就像是我為自己開發的東西。」他所帶領的團隊在過去十多年間,一直在開發大規模分散式系統。

底下的兩個軟體元件是 Triton 成功的關鍵。NVIDIA 擴大了處理推論運算的軟體層 FasterTransformer 的規模,以支援 MoE 模型。NVIDIA 的數學函式庫 CUTLASS 則是有助於高效地執行這些模型。

四週內通過驗證的原型

測試內容很複雜,但該團隊與 NVIDIA 的工程師合作,在不到一個月的時間內便使用 Triton 完成端到端的原型。

Awadalla 說:「這麼快就能拿出產品 – 我真的覺得很厲害。」

這雖然是團隊第一次使用 Triton,「我們重新架構運行環境,不用花太多力氣,就能用它來發布 MoE 模型,現在我希望它會是我們長期主機系統的一部分。」Chowdhary 又說。

後續步驟

後續將以審慎態度提供加速服務,一開始將用於幾種主要語言的文件翻譯。

「最終我們希望客戶在各種情境裡,都能清楚地享受到這些新模型的優點。」Chowdhary 說。

這項工作是微軟一項更大計畫的其中一部分。微軟的目標是推動 Office 和 Teams 等一系列產品有更進一步的發展,以及其開發者和客戶(從只開發單一應用程式的小公司,到《財星》500大企業)都能一起進步。

Awadalla 的團隊在去年九月發表了一項研究成果,即使用 NVIDIA A100 Tensor Core GPU 來訓練有多達2000億個參數的 MoE 模型。該團隊後來又使用 80G 版本的 A100 GPU 來訓練有著超過3000億個參數的模型,將速度又加快了八倍。

「模型需要變得愈來愈大,才能呈現更多語言,尤其是那些我們沒有大量資料的語言。」Adawalla 說。