大語言模型概述(三):基于亞馬遜云科技的研究分析與實踐

上期介紹了基于亞馬遜云科技的大語言模型相關研究方向,以及大語言模型的訓練和構建優化。本期將介紹大語言模型訓練在亞馬遜云科技上的最佳實踐。

大語言模型訓練在亞馬遜云科技上的最佳實踐

本章節內容,將重點關注大語言模型在亞馬遜云科技上的最佳訓練實踐。大致分為五大方面:

計算(Compute)?— Amazon SageMaker Training

存儲(Storage)?— 可以通過兩種方式完成數據加載和檢查點(checkpointing)配置:Amazon FSx Lustre 文件系統或Amazon S3

并行化(Parallelism)— 選擇分布式訓練庫對于正確使用 GPU 至關重要。我們建議使用經過云優化的庫,例如 SageMaker 分片數據并行處理,但自管理庫和開源庫也可以使用

聯網(Networking)?— 確保 EFA 和 NVIDA的 GPUDirectRDMA已啟用,以實現快速的機器間通信

彈性(Resiliency)?— 在大規模情況下,可能會發生硬件故障。我們建議定期寫入檢查點(checkpointing)

以下我們會簡單介紹下大語言模型訓練并行化(Parallelism)在亞馬遜云科技上的最佳實踐。

大語言模型訓練的并行化(Training Parallelism)

大語言模型通常有數十到數千億個參數,這使得它們無法容納在單個 GPU 卡中。大語言模型領域目前已有多個訓練分布式計算的開源庫,例如:FSDP、DeepSpeed 和 Megatron。你可以在 Amazon SageMaker Training 中直接運行這些庫,也可以使用 Amazon SageMaker 分布式訓練庫,這些庫已經針對亞馬遜云進行了優化,可提供更簡單的開發人員體驗。

因此,在大語言模型領域的開發人員,在亞馬遜云科技上目前有兩種選擇:

在 Amazon SageMaker 上使用優化過的分布式庫進行分布式訓練;

自己來管理分布式訓練。

以下將概述如何在 Amazon SageMaker 上,使用優化過的分布式庫進行分布式訓練。

為了提供更好的分布式訓練性能和可用性,Amazon SageMaker Training 提出了幾種專有擴展來擴展 TensorFlow 和 PyTorch 訓練代碼。在真實場景里,大語言模型的訓練通常以多維度并行(3D-parallelism)的方式在進行:

數據并行(data parallelism):可拆分訓練小批次并將其饋送到大語言模型的多個相同副本,以提高處理速度

流水線并行(pipeline parallelism):將大語言模型的各個層歸因于不同的 GPU 甚至實例,以便將大語言模型的大小擴展到單個 GPU 和單個服務器以外

Tensor 并行(tensor parallelism):將單個層拆分為多個 GPU,通常位于同一服務器內,以將單個層擴展到超過單個 GPU 的大小

以下示例圖,展示了如何在具有 8*k*3 個 GPU(每臺服務器 8 個 GPU)的 k*3 服務器集群上訓練 6 層模型。數據并行度為 k,流水線并行度為 6,張量并行度為 4。集群中的每個 GPU 包含模型層的四分之一,完整模型分為三臺服務器(總共 24 個 GPU)。

其中和大語言模型特別相關的分布式實踐包括:

Amazon SageMaker 分布式模型并行 — 該庫使用圖形分區生成針對速度或內存進行了優化的智能大語言模型分區。Amazon SageMaker 分布式模型并行提供了最新、最好的大語言模型訓練優化,包括數據并行、流水線并行、張量并行、優化器狀態分片、激活檢查點和卸載。

Amazon SageMaker 分片數據并行——在?MiCS: Near-linear Scaling for Training Gigantic Model on Public Cloud?論文中,引入了一種新的模型并行策略,該策略僅在數據并行組上劃分模型,而不是整個集群。借助 MiCS,亞馬遜云科技的科學家們能夠在每個 GPU 上實現 176 萬億次浮點運算(理論峰值的 56.4%),從而在 EC2 P4de 實例上訓練 210 層、1.06 萬億個參數的大語言模型。作為 Amazon SageMaker 并行共享數據,MIC 現已能夠向 Amazon SageMaker Training 客戶提供。

Amazon SageMaker 分布式訓練庫提供高性能和更簡單的開發者體驗。開發人員無需編寫和維護自定義的并行進程啟動器,或使用特定于框架的啟動工具,因為并行啟動器已經內置在 Amazon SageMaker 的任務啟動 SDK 之中。

與傳統分布式訓練相比,大語言模型的微調通常不僅要求數據并行,數據并行和模型并行需要同時進行。Amazon SageMaker Model Parallelism 在易用性和穩定性 (OOM) 上與開源自建方案(如 DeepSpeed)相比具有核心競爭優勢。對于基于哪些大語言模型進行具體微調、具體最佳實踐等技術細節,你還可以咨詢亞馬遜云科技的解決方案架構師團隊,獲得更進一步的技術支持和專業建議。

總結

本期文章我們一起探討大語言模型的發展歷史、語料來源、數據預處理流程策略、訓練使用的網絡架構、最新研究方向分析(LLaMA、PaLM-E 等),以及在亞馬遜云科技上進行大語言模型訓練的一些最佳落地實踐等。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/166528.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166528.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166528.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

解決Chrome瀏覽器無法啟動,因為應用程序的并行配置不正確

目錄 現象 方法1 方法2 附帶:書簽路徑 一次比較奇怪的問題,花了一些時間,記錄下來。 現象 進到本機默認安裝路徑: C:\Users\你的用戶名\AppData\Local\Google\Chrome\Application 下面會有個版本號的目錄,如我的…

跨地區企業組網方案對比與推薦

跨地區的企業,需要在不同的辦公室之間實現內部通信來進行業務協作。然而,在不同的地方建立局域網并將它們連接起來是一個棘手的問題。傳統的企業組網方案可能會面臨各種挑戰,包括網絡延遲、數據安全性、維護困難等等。 常見的組網方案有&…

快手ConnectionError

因為運行的程序被中斷導致 top然后查看站用處內存高的accelerate kill進程號 9回車

linux基礎5:linux進程1(馮諾依曼體系結構+os管理+進程狀態1)

馮諾依曼體系結構os管理 一.馮諾依曼體系結構:1.簡單介紹(準備一)2.場景:1.程序的運行:2.登錄qq發送消息: 3.為什么需要內存:1.簡單的引入:2.計算機存儲體系:3.內存的意義…

微服務知識小結

1. SOA、分布式、微服務之間有什么關系和區別? 1.分布式架構指將單體架構中的各個部分拆分,然后部署到不同的機器或進程中去,SOA和微服務基本上都是分布式架構的 2. SOA是一種面向服務的架構,系統的所有服務都注冊在總線上&#…

讓工作效率提升10倍:十大AIGC工具評測【建議收藏】

AI技術的普及已經在近年來不斷增長。這種技術已經改變了我們與電腦的互動方式,讓我們能夠更高效、更自然地完成任務。本文將展示10個基于ChatGPT、GPT-3.5和 GPT-4.0 AI模型構建的最強大的資源,使您更容易充分利用它們的潛力。因此,如果您想利…

詳解深度學習中的圖神經網絡GNN

引言 圖神經網絡GNN是深度學習的一個分支。 深度學習的四個分支對應了四種常見的數據格式,前饋神經網絡FNN處理表格數據,表格數據可以是特征向量,卷積神經網絡CNN處理圖像數據,循環神經網絡RNN處理時序數據,圖神經網…

android的canvas的clipRegion廢棄替代代碼

由于clipRegion的一些問題,導致他被廢棄了,但又有時候會用到,所以寫了一個工具類來替代它 代碼如下 package com.example;import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Path; import android.g…

c++|類和對象(上)

目錄 一、面向過程和面向對象初步認識 二、類的引入和定義 2.1類的引入 2.2類的定義 三、類的訪問限定符及封裝 3.1訪問限定符 3.2封裝 四、類的作用域 五、類的實例化 六、類的對象大小的計算 6.1如何計算對象的大小 6.2類對象的存儲方式 七、類成員函數的thi…

【Docker】從零開始:7.Docker命令:容器命令及參數詳解

【Docker】從零開始:7.幫助啟動類命令 一、幫助啟動類命令啟動Docker停止Docker重啟Docker查看Docker狀態開機啟動查看docker概要信息查看docker總體幫助文檔查看docker命令幫助文檔 二、鏡像命令列出本地主機上的鏡像運行示例返回說明操作參數 搜索倉庫里的某個鏡像…

Python-Django的“日志功能-日志模塊(logging模塊)-日志輸出”的功能詳解

01-綜述 可以使用Python內置的logging模塊來實現Django項目的日志記錄。 所以與其說這篇文章在講Django的“日志功能-日志模塊-日志輸出”,不如說是在講Pthon的“日志功能-日志模塊-日志輸出”,即Python的logging模塊。 下面用一個實例來進行講解。 …

2023年亞太杯數學建模A題水果采摘機器人的圖像識別功能(免費思路)

中國是世界上最大的蘋果生產國,年產量約為 3500 萬噸。同時,中國也是世界上最大的蘋果出口國,世界上每兩個蘋果中就有一個出口到國。世界上每兩個蘋果中就有一個來自中國,中國出口的蘋果占全球出口量的六分之一以上。來自中國。中…

保護服務器免受攻擊:解析攻擊情境與解決之道

在數字化時代,服務器安全問題日益突出,因為它們是企業和個人網絡活動的核心。服務器被攻擊可能引發一系列問題,理解攻擊的不同情境以及采取相應的解決方法變得至關重要。 DDoS 攻擊(分布式拒絕服務攻擊) 情境&#xff…

基于51單片機超聲波測距汽車避障系統

**單片機設計介紹, 基于51單片機超聲波測距汽車避障系統 文章目錄 一 概要二、功能設計設計思路 三、 軟件設計原理圖 五、 程序六、 文章目錄 一 概要 基于51單片機的超聲波測距汽車避障系統是一種用于幫助汽車避免碰撞和發生事故的設備,以下是一個基本…

Visual Studio 2022安裝教程(千字圖文詳解),手把手帶你安裝運行VS2022以及背景圖設置

VS2022最新最全安裝教程 很高興你打開了這篇博客,接下來我們一起安裝并且使用VS2022吧 文章目錄 VS2022最新最全安裝教程一.官網下載二.安裝啟動三.項目測試1.創建新項目2.選擇我們使用的模板(C空項目),繼續沖!3.進入…

docker的使用方法

文章目錄 為什么要用dockerdocker安裝docker工作原理docker命令docker搭建練習docker可視化docker鏡像docker容器數據卷DockerFiledocker全流程Docker網絡原理docker composedocker swarm 為什么要用docker 官網:https://www.docker.com文檔地址:https:…

Stream流開發常用場景

一、Stream流 1.將某個集合中的金額字段相加 Bigdecimal amount list.stream().map(TransInfoEntity::getAmount).reduce(BigDecimal::add).orElse(BigDecimal.ZERO); 2.將集合中某兩個字段組合成一個map Map<Long, String> map list.stream().collect(Collectors.t…

ImgUtil.scale會在某些圖片壓縮之后自動旋轉90度

需要的jar依賴&#xff1a; <dependency> <groupId>com.drewnoakes</groupId> <artifactId>metadata-extractor</artifactId> <version>2.16.0</version> <!-- 請檢查最新版本 …

ceph編譯報錯解決

1.執行./install-deps.sh提示deb無法安裝 解決方案&#xff1a; 直接使用dpkg -i來安裝deb&#xff0c;會提示缺失3個庫&#xff0c;庫名如下&#xff1a; cython python dh-systemd 其中cython和python手動安裝好后&#xff0c;也會依舊報錯。此時修改debian/control文件&…