最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

大語言模型快速推理: 在 Habana Gaudi2 上推理 BLOOMZ

2023-04-06 21:09 作者:HuggingFace  | 我要投稿

本文將展示如何在?Habana? Gaudi?2?上使用 ???Optimum Habana。Optimum Habana 是 Gaudi2 和 ??? Transformers 庫之間的橋梁。本文設計并實現了一個大模型推理基準測試,證明了通過使用 Optimum Habana 你將能夠在 Gaudi2 上獲得?比目前市面上任何可用的 GPU 都快的推理速度。

  • Habana? Gaudi?2:
    https://habana.ai/training/gaudi2/

  • Optimum Habana:
    https://hf.co/docs/optimum/habana/index

隨著模型越來越大,將它們部署到生產環(huán)境中以用于推理也變得越來越具有挑戰(zhàn)性。硬件和軟件都需要很多創(chuàng)新來應對這些挑戰(zhàn),讓我們來深入了解 Optimum Habana 是如何有效地克服這些挑戰(zhàn)的!

BLOOMZ

BLOOM 是一個 1760 億參數的自回歸模型,經訓練后可用于文本生成。它可以處理 46 種不同的語言以及 13 種編程語言。作為 BigScience 計劃的一部分,BLOOM 作為一個開放科學項目,來自全球的大量的研究人員和工程師參與了模型的設計和訓練。最近,我們又發(fā)布了架構與 BLOOM 完全相同的模型: BLOOMZ,它是 BLOOM 在多個任務上的微調版本,具有更好的泛化和零樣本 [^1] 能力。

  • BLOOM:
    https://arxiv.org/abs/2211.05100

  • BigScience:
    https://bigscience.huggingface.co/

  • BLOOMZ:
    https://arxiv.org/abs/2211.01786

如此大的模型在 訓練 和 推理 兩個場景下都對內存和速度提出了新的挑戰(zhàn)。即使是使用 16 位精度,一個模型也需要 352 GB 的內存!目前你可能很難找到一個具有如此大內存的設備,但像 Habana Gaudi2 這樣先進的硬件已能讓低延遲 BLOOM 和 BLOOMZ 模型推理變得可能。

  • 訓練場景:
    https://hf.co/blog/zh/bloom-megatron-deepspeed

  • 推理場景:
    https://hf.co/blog/zh/bloom-inference-optimization

Habana Gaudi2

Gaudi2 是 Habana Labs 設計的第二代 AI 硬件加速器。單個服務器包含 8 張加速卡 (稱為 Habana 處理單元 (Habana Processing Units),或 HPU),每張卡有 96GB 的內存,這為容納超大模型提供了可能。但是,如果僅僅是內存大,而計算速度很慢,也沒辦法將其用于模型托管服務。幸運的是,Gaudi2 在這方面證明了自己,大放異彩: 它與 GPU 的不同之處在于,它的架構使加速器能夠并行執(zhí)行通用矩陣乘法 (General Matrix Multiplication,GeMM) 和其他操作,從而加快了深度學習工作流。這些特性使 Gaudi2 成為 LLM 訓練和推理的理想方案。
https://habana.ai/training/gaudi2/

Habana 的 SDK SynapseAI? 支持 PyTorch 和 DeepSpeed 以加速 LLM 訓練和推理。SynapseAI 圖編譯器 會優(yōu)化整個計算圖的執(zhí)行過程 (如通過算子融合、數據布局管理、并行化、流水線、內存管理、圖優(yōu)化等手段)。

SynapseAI 圖編譯器介紹:
https://docs.habana.ai/en/latest/Gaudi_Overview/SynapseAI_Software_Suite.html

此外,最近 SynapseAI 還引入了 HPU graphs 和 DeepSpeed-inference 的支持,這兩者非常適合延遲敏感型的應用,下面的基準測試結果即很好地說明了這一點。

  • HPU graphs:
    https://docs.habana.ai/en/latest/PyTorch/Inference_on_PyTorch/Inference_Using_HPU_Graphs.html

  • DeepSpeed-inference:
    https://docs.habana.ai/en/latest/PyTorch/DeepSpeed/Inference_Using_DeepSpeed.html

以上所有功能都集成進了 ?? Optimum Habana 庫,因此在 Gaudi 上部署模型非常簡單。你可以閱讀 相應文檔 快速起步。

  • Optimum Habana 庫地址:
    https://github.com/huggingface/optimum-habana

  • 快速入門鏈接:
    https://hf.co/docs/optimum/habana/quickstart

如果你想試試 Gaudi2,請登錄 英特爾開發(fā)者云 (Intel Developer Cloud) ?并按照 指南 申請。

  • 英特爾開發(fā)者云 (Intel Developer Cloud):
    https://www.intel.com/content/www/us/en/secure/developer/devcloud/cloud-launchpad.html

  • 申請指南:
    https://hf.co/blog/zh/habana-gaudi-2-benchmark

測試基準

在本節(jié)中,我們將提供 BLOOMZ 在 Gaudi2、第一代 Gaudi 和 Nvidia A100 80GB 上的早期基準測試。雖然這些設備內存都不小,但由于模型太大,單個設備還是放不下整個 BLOOMZ 模型。為了解決這個問題,我們要使用 DeepSpeed,這是一個深度學習優(yōu)化庫,它實現了很多內存優(yōu)化和速度優(yōu)化以加速模型推理。特別地,我們在這里依賴 DeepSpeed-inference,它引入了幾個特性,如 模型 (或管道) 并行 以充分利用可用設備。對 Gaudi2,我們使用 Habana 的 DeepSpeed 分支,其添加了對 HPU 的支持。

  • DeepSpeed:
    https://www.deepspeed.ai/

  • DeepSpeed-inference 論文鏈接:
    https://arxiv.org/abs/2207.00032

  • 模型 (或管道) 并行介紹:
    https://hf.co/blog/zh/bloom-megatron-deepspeed

  • Habana 的 DeepSpeed 分支:
    https://github.com/HabanaAI/deepspeed

延遲

我們測量了兩種不同大小的 BLOOMZ 模型的延遲 (batch size 為 1),兩者參數量都有數十億:

  • 1760 億 參數
    https://hf.co/bigscience/bloomz

  • 70 億 參數
    https://hf.co/bigscience/bloomz-7b1

我們使用 DeepSpeed-inference 以 16 位精度在 8 張卡上運行推理,同時我們開啟了 key-value 緩存 優(yōu)化。請注意,盡管 CUDA graphs 當前與 DeepSpeed 中的模型并行不兼容 (DeepSpeed v0.8.2,請參見 腳本第 158 行的內容,但 Habana 的 DeepSpeed 分支是支持 HPU graphs 的。所有基準測試都使用 貪心搜索 生成 100 個詞元。輸入提示為:

  • key-value 緩存:
    https://hf.co/docs/transformers/v4.27.1/en/model_doc/bloom

  • CUDA graphs:
    https://developer.nvidia.com/blog/cuda-graphs/

  • 參考腳本:
    https://github.com/microsoft/DeepSpeed/blob/v0.8.2/deepspeed/inference/engine.py

  • 貪心搜索:
    https://hf.co/blog/zh/how-to-generate

DeepSpeed is a machine learning framework” 該提示會被 BLOOM 分詞器分成 7 個詞元。

推理延遲測試結果如下表所示 (單位為?秒)。

模型卡數Gaudi2 延遲 (秒)A100-80GB 延遲 (秒)第一代 Gaudi 延遲 (秒)BLOOMZ83.7174.402/BLOOMZ-7B80.7372.4173.029BLOOMZ-7B11.0662.1192.865

Habana 團隊最近在 SynapseAI 1.8 中引入了對 DeepSpeed-inference 的支持,從而快速支持了 1000 多億參數模型的推理。對于 1760 億參數的模型,Gaudi2 比 A100 80GB 快 1.2 倍。較小模型上的結果更有意思:?對于 BLOOMZ-7B,Gaudi2 比 A100 快 3 倍。有趣的是,BLOOMZ-7B 這種尺寸的模型也能受益于模型并行。

我們還在第一代 Gaudi 上運行了這些模型。雖然它比 Gaudi2 慢,但從價格角度看很有意思,因為 AWS 上的 DL1 實例每小時大約 13 美元。BLOOMZ-7B 在第一代 Gaudi 上的延遲為 2.865 秒。因此,?對 70 億參數的模型而言,第一代 Gaudi 比 A100 的性價比更高,每小時能省 30 多美元!

我們預計 Habana 團隊將在即將發(fā)布的新 SynapseAI 版本中繼續(xù)優(yōu)化這些模型的性能。在我們上一個基準測試中,我們看到 Gaudi2 的 Stable Diffusion 推理速度比 A100 快 2.2 倍,這個優(yōu)勢在隨后 Habana 提供的最新優(yōu)化中進一步提高到了 2.37 倍。在 SynapseAI 1.9 的預覽版中,我們看到 BLOOMZ-176B 的推理延遲進一步降低到了 3.5 秒。當新版本的 SynapseAI 發(fā)布并集成到 Optimum Habana 中時,我們會更新最新的性能數字。
https://hf.co/blog/zh/habana-gaudi-2-benchmark

在完整數據集上進行推理

我們的腳本允許支持模型整個數據集上逐句進行文本補全。如果你想在自己的數據集上嘗試用 Gaudi2 進行 BLOOMZ 推理,這個腳本就很好用。

這里我們以?tldr_news?數據集為例。該數據每一條都包含文章的標題和內容 (你可以在 Hugging Face Hub 上可視化一下數據)。這里,我們僅保留?content?列 (即內容) 并對每個樣本只截前 16 個詞元,然后讓模型來生成后 50 個詞元。前 5 條數據如下所示:
https://hf.co/datasets/JulesBelveze/tldr_news/viewer/all/test

下一節(jié),我們將展示如何用該腳本來執(zhí)行基準測試,我們還將展示如何將其應用于 Hugging Face Hub 中任何你喜歡的數據集!

如何復現這些結果?

示例腳本 提供了用于在 Gaudi2 和第一代 Gaudi 上對 BLOOMZ 進行基準測試的腳本。在運行它之前,請確保按照 Habana 給出的指南 安裝了最新版本的 SynapseAI 和 Gaudi 驅動程序。

  • 示例腳本:
    https://github.com/huggingface/optimum-habana/tree/main/examples/text-generation

  • Habana 給出的指南:
    https://docs.habana.ai/en/latest/Installation_Guide/index.html

然后,運行以下命令:

最后,你可以按如下方式運行腳本:

對于多節(jié)點推理,你可以遵循 Optimum Habana 文檔中的 參考指南。
https://hf.co/docs/optimum/habana/usage_guides/multi_node_training

你還可以從 Hugging Face Hub 加載任何數據集作為文本生成任務的提示,只需使用參數?--dataset_name my_dataset_name

此基準測試基于 Transformers v4.27.1、SynapseAI v1.8.0,而 Optimum Habana 是從源碼安裝的。

對于 GPU,此代碼庫 里包含了 可用于復現這篇文章結果的腳本。要使用 CUDA graphs,需要使用靜態(tài)數據尺寸,而 ?? Transformers 中不支持這一用法。你可以使用 Habana 團隊的 參考代碼 來使能 CUDA graphs 或 HPU graphs。

  • 代碼庫地址:
    https://github.com/huggingface/transformers-bloom-inference/tree/main/bloom-inference-scripts

  • 腳本地址:
    https://hf.co/blog/zh/bloom-inference-pytorch-scripts

  • 參考代碼:
    https://github.com/HabanaAI/Model-References/tree/1.8.0/PyTorch/nlp/bloom

總結

通過本文,我們看到,?Habana Gaudi2 執(zhí)行 BLOOMZ 推理的速度比 Nvidia A100 80GB 更快。并且無需編寫復雜的腳本,因為 ?? Optimum Habana 提供了易于使用的工具用于在 HPU 上運行數十億參數模型的推理。Habana 的 SynapseAI SDK 的后續(xù)版本有望提高性能,因此隨著 SynapseAI 上 LLM 推理優(yōu)化的不斷推進,我們將定期更新此基準。我們也期待 FP8 推理在 Gaudi2 上帶來的性能優(yōu)勢。
https://hf.co/docs/optimum/habana/index

我們還介紹了在第一代 Gaudi 上的結果。對于更小的模型,它的性能與 A100 比肩,甚至更好,而價格僅為 A100 的近三分之一。對于像 BLOOMZ 這樣的大模型,它是替代 GPU 推理的一個不錯的選擇。

如果你有興趣使用最新的 AI 硬件加速器和軟件庫來加速你的機器學習訓練和推理工作流,請查看我們的 專家加速計劃。要了解有關 Habana 解決方案的更多信息,可以 從后面的鏈接了解我們雙方的相關合作并聯系他們。要詳細了解 Hugging Face 為使 AI 硬件加速器易于使用所做的工作,請查看我們的 硬件合作伙伴計劃。

  • 專家加速計劃:
    https://hf.co/support

  • 關于雙方相關合作的介紹和聯系方式:
    https://hf.co/hardware/habana

  • 硬件合作伙伴計劃:
    https://hf.co/hardware

相關話題

  • 更快訓推: Habana Gaudi-2 與 Nvidia A100 80GB
    https://hf.co/blog/zh/habana-gaudi-2-benchmark

  • 在 Hugging Face 和 Habana Labs Gaudi 上用 DeepSpeed 訓練更快、更便宜的大規(guī)模 Transformer 模型
    https://developer.habana.ai/events/leverage-deepspeed-to-train-faster-and-cheaper-large-scale-transformer-models-with-hugging-face-and-habana-labs-gaudi/

感謝閱讀!如果你有任何問題,請隨時通過 Github 或 論壇 與我聯系。你也可以在 LinkedIn 上找到我。

  • Github:
    https://github.com/huggingface/optimum-habana

  • Hugging Face 論壇:
    https://discuss.huggingface.co/c/optimum/59

  • LinkedIn:
    https://www.linkedin.com/in/regispierrard/

[^1]: “零樣本”是指模型在新的或未見過的輸入數據上完成任務的能力,即訓練數據中完全不含此類數據。我們輸給模型提示和以自然語言描述的指令 (即我們希望模型做什么)。零樣本分類不提供任何與正在完成的任務相關的任何示例。這區(qū)別于單樣本或少樣本分類,因為這些任務還是需要提供有關當前任務的一個或幾個示例的。

英文原文:?https://hf.co/blog/habana-gaudi-2-bloom

作者: Régis Pierrard

譯者: Matrix Yao (姚偉峰),英特爾深度學習工程師,工作方向為 transformer-family 模型在各模態(tài)數據上的應用及大規(guī)模模型的訓練推理。

審校、排版: zhongdongy (阿東)

大語言模型快速推理: 在 Habana Gaudi2 上推理 BLOOMZ的評論 (共 條)

分享到微博請遵守國家法律
西昌市| 石城县| 乡宁县| 高邮市| 东平县| 沧州市| 嵩明县| 大宁县| 涡阳县| 抚顺市| 镇原县| 盐池县| 金湖县| 应用必备| 桂阳县| 阜宁县| 龙泉市| 绥芬河市| 岢岚县| 江川县| 克山县| 武城县| 汾阳市| 乌兰浩特市| 秦安县| 高密市| 灌阳县| 余姚市| 谢通门县| 浏阳市| 宣威市| 阳山县| 甘南县| 甘德县| 锡林郭勒盟| 怀来县| 健康| 台东市| 林芝县| 梁河县| 大冶市|