Tăng tốc PyTorch với DeepSpeed ​​để huấn luyện các mô hình ngôn ngữ lớn với các phiên bản DL1 EC2 dựa trên Intel Habana Gaudi | Dịch vụ web của Amazon

Tăng tốc PyTorch với DeepSpeed ​​để huấn luyện các mô hình ngôn ngữ lớn với các phiên bản DL1 EC2 dựa trên Intel Habana Gaudi | Dịch vụ web của Amazon

Việc đào tạo các mô hình ngôn ngữ lớn (LLM) với hàng tỷ tham số có thể là một thách thức. Ngoài việc thiết kế kiến ​​trúc mô hình, các nhà nghiên cứu cần thiết lập các kỹ thuật đào tạo tiên tiến nhất để đào tạo phân tán như hỗ trợ độ chính xác hỗn hợp, tích lũy độ dốc và điểm kiểm tra. Với các mô hình lớn, thiết lập đào tạo thậm chí còn khó khăn hơn vì bộ nhớ khả dụng trong một thiết bị tăng tốc duy nhất giới hạn kích thước của các mô hình được đào tạo chỉ bằng cách sử dụng song song dữ liệu và sử dụng đào tạo song song mô hình yêu cầu mức độ sửa đổi bổ sung đối với mã đào tạo. Các thư viện như Tốc độ sâu (một thư viện tối ưu hóa deep learning mã nguồn mở cho PyTorch) giải quyết một số thách thức này và có thể giúp đẩy nhanh quá trình phát triển và đào tạo mô hình.

Trong bài đăng này, chúng tôi thiết lập đào tạo về Intel Habana Gaudi dựa trên Đám mây điện toán đàn hồi Amazon (Amazon EC2) DL1 và định lượng lợi ích của việc sử dụng khung mở rộng chẳng hạn như DeepSpeed. Chúng tôi trình bày kết quả chia tỷ lệ cho mô hình máy biến áp kiểu bộ mã hóa (BERT với 340 triệu đến 1.5 tỷ tham số). Đối với mô hình 1.5 tỷ tham số, chúng tôi đã đạt được hiệu suất mở rộng quy mô là 82.7% trên 128 máy gia tốc (16 phiên bản dl1.24xlarge) bằng cách sử dụng DeepSpeed ​​Zero tối ưu hóa giai đoạn 1. Các trạng thái của trình tối ưu hóa được DeepSpeed ​​phân vùng để huấn luyện các mô hình lớn bằng cách sử dụng mô hình song song dữ liệu. Cách tiếp cận này đã được mở rộng để đào tạo mô hình 5 tỷ tham số bằng cách sử dụng dữ liệu song song. Chúng tôi cũng đã sử dụng hỗ trợ riêng của Gaudi cho loại dữ liệu BF16 để giảm kích thước bộ nhớ và tăng hiệu suất đào tạo so với sử dụng loại dữ liệu FP32. Kết quả là chúng tôi đã đạt được sự hội tụ của mô hình trước đào tạo (giai đoạn 1) trong vòng 16 giờ (mục tiêu của chúng tôi là đào tạo một mô hình lớn trong vòng một ngày) cho mô hình 1.5 tỷ tham số BERT bằng cách sử dụng tập dữ liệu wikicorpus-en.

thiết lập đào tạo

Chúng tôi đã cung cấp một cụm điện toán được quản lý bao gồm 16 phiên bản dl1.24xlarge bằng cách sử dụng Hàng loạt AWS. Chúng tôi đã phát triển một Hội thảo hàng loạt AWS minh họa các bước để thiết lập cụm đào tạo phân tán với AWS Batch. Mỗi phiên bản dl1.24xlarge có tám bộ tăng tốc Habana Gaudi, mỗi bộ có bộ nhớ 32 GB và mạng lưới RoCE đầy đủ giữa các thẻ với tổng băng thông kết nối hai chiều là 700 Gbps mỗi bộ (xem Phiên bản Amazon EC2 DL1 Deep Dive để biết thêm thông tin). Cụm dl1.24xlarge cũng sử dụng bốn Bộ điều hợp vải đàn hồi AWS (EFA), với tổng kết nối 400 Gbps giữa các nút.

Hội thảo đào tạo phân tán minh họa các bước thiết lập cụm đào tạo phân tán. Hội thảo giới thiệu cách thiết lập đào tạo phân tán bằng cách sử dụng AWS Batch và đặc biệt là tính năng công việc song song nhiều nút để khởi chạy các công việc đào tạo được chứa trong bộ chứa quy mô lớn trên các cụm được quản lý hoàn toàn. Cụ thể hơn, một môi trường điện toán AWS Batch được quản lý hoàn toàn được tạo bằng các phiên bản DL1. Các container được kéo từ Đăng ký container đàn hồi Amazon (Amazon ECR) và khởi chạy tự động vào các phiên bản trong cụm dựa trên định nghĩa công việc song song nhiều nút. Hội thảo kết thúc bằng cách chạy đào tạo song song dữ liệu nhiều nút, nhiều HPU của mô hình BERT (340 triệu đến 1.5 tỷ tham số) bằng PyTorch và DeepSpeed.

Đào tạo trước BERT 1.5B với DeepSpeed

Havana SynapseAI v1.5v1.6 hỗ trợ tối ưu hóa DeepSpeed ​​Zero1. Các Habana fork của kho DeepSpeed ​​GitHub bao gồm các sửa đổi cần thiết để hỗ trợ máy gia tốc Gaudi. Có hỗ trợ đầy đủ cho dữ liệu phân tán song song (đa thẻ, đa phiên bản), tối ưu hóa ZeRO1 và loại dữ liệu BF16.

Tất cả các tính năng này được kích hoạt trên Kho tham chiếu mô hình BERT 1.5B, giới thiệu mô hình bộ mã hóa hai chiều 48 lớp, 1600 chiều ẩn và 25 đầu, xuất phát từ triển khai BERT. Kho lưu trữ cũng chứa triển khai mô hình BERT Large cơ bản: kiến ​​trúc mạng thần kinh 24 lớp, 1024 ẩn, 16 đầu, 340 triệu tham số. Các tập lệnh mô hình hóa trước khi đào tạo được bắt nguồn từ Kho lưu trữ ví dụ học sâu NVIDIA để tải xuống dữ liệu wikicorpus_en, xử lý trước dữ liệu thô thành mã thông báo và phân chia dữ liệu thành các bộ dữ liệu h5 nhỏ hơn để đào tạo song song dữ liệu phân tán. Bạn có thể áp dụng cách tiếp cận chung này để đào tạo kiến ​​trúc mô hình PyTorch tùy chỉnh của mình bằng cách sử dụng bộ dữ liệu của bạn bằng các phiên bản DL1.

Kết quả chia tỷ lệ trước đào tạo (giai đoạn 1)

Đối với đào tạo trước các mô hình lớn ở quy mô lớn, chúng tôi chủ yếu tập trung vào hai khía cạnh của giải pháp: hiệu suất đào tạo, được đo bằng thời gian đào tạo và hiệu quả chi phí khi đạt được giải pháp hội tụ đầy đủ. Tiếp theo, chúng tôi đi sâu hơn vào hai số liệu này với ví dụ về đào tạo trước BERT 1.5B.

Mở rộng hiệu suất và thời gian để đào tạo

Chúng tôi bắt đầu bằng cách đo lường hiệu suất của việc triển khai BERT Large làm cơ sở cho khả năng mở rộng. Bảng sau đây liệt kê thông lượng đo được của các chuỗi mỗi giây từ 1-8 phiên bản dl1.24xlarge (với tám thiết bị tăng tốc cho mỗi phiên bản). Bằng cách sử dụng thông lượng của một phiên bản làm đường cơ sở, chúng tôi đã đo lường hiệu quả của việc thay đổi quy mô trên nhiều phiên bản, đây là một đòn bẩy quan trọng để hiểu chỉ số đào tạo về hiệu suất giá.

Số lượng phiên bản Số máy gia tốc Trình tự mỗi giây Trình tự mỗi giây trên mỗi Máy gia tốc Mở rộng quy mô hiệu quả
1 8 1,379.76 172.47 100.0%
2 16 2,705.57 169.10 98.04%
4 32 5,291.58 165.36 95.88%
8 64 9,977.54 155.90 90.39%

Hình dưới đây minh họa hiệu quả mở rộng quy mô.

Tăng tốc PyTorch bằng DeepSpeed ​​để đào tạo các mô hình ngôn ngữ lớn bằng phiên bản DL1 EC2 dựa trên Intel Habana Gaudi | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.

Đối với BERT 1.5B, chúng tôi đã sửa đổi các siêu đường kính cho mô hình trong kho lưu trữ tham chiếu để đảm bảo sự hội tụ. Kích thước lô hiệu quả trên mỗi máy gia tốc được đặt thành 384 (để sử dụng bộ nhớ tối đa), với các lô vi mô là 16 mỗi bước và 24 bước tích lũy độ dốc. Tỷ lệ học tập là 0.0015 và 0.003 được sử dụng tương ứng cho 8 và 16 nút. Với những cấu hình này, chúng tôi đã đạt được sự hội tụ của quá trình đào tạo trước BERT 1B giai đoạn 1.5 trên 8 phiên bản dl1.24xlarge (64 bộ tăng tốc) trong khoảng 25 giờ và 15 giờ trên 16 phiên bản dl1.24xlarge (128 bộ tăng tốc). Hình dưới đây cho thấy tổn thất trung bình là một hàm của số lượng kỷ nguyên đào tạo, khi chúng tôi tăng quy mô số lượng máy gia tốc.

Tăng tốc PyTorch bằng DeepSpeed ​​để đào tạo các mô hình ngôn ngữ lớn bằng phiên bản DL1 EC2 dựa trên Intel Habana Gaudi | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.

Với cấu hình được mô tả trước đó, chúng tôi đã đạt được hiệu suất mở rộng quy mô mạnh là 85% với 64 máy gia tốc và 83% với 128 máy gia tốc, từ đường cơ sở gồm 8 máy gia tốc trong một phiên bản. Bảng dưới đây tóm tắt các tham số.

Số lượng phiên bản Số máy gia tốc Trình tự mỗi giây Trình tự mỗi giây trên mỗi Máy gia tốc Mở rộng quy mô hiệu quả
1 8 276.66 34.58 100.0%
8 64 1,883.63 29.43 85.1%
16 128 3,659.15 28.59 82.7%

Hình dưới đây minh họa hiệu quả mở rộng quy mô.

Tăng tốc PyTorch bằng DeepSpeed ​​để đào tạo các mô hình ngôn ngữ lớn bằng phiên bản DL1 EC2 dựa trên Intel Habana Gaudi | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.

Kết luận

Trong bài đăng này, chúng tôi đã đánh giá khả năng hỗ trợ DeepSpeed ​​của Habana SynapseAI v1.5/v1.6 và cách hỗ trợ này giúp mở rộng quy mô đào tạo LLM trên máy gia tốc Habana Gaudi. Quá trình đào tạo trước của mô hình BERT 1.5 tỷ tham số mất 16 giờ để hội tụ trên một cụm gồm 128 máy gia tốc Gaudi, với tỷ lệ mạnh 85%. Chúng tôi khuyến khích bạn hãy xem kiến ​​trúc được thể hiện trong hội thảo AWS và xem xét áp dụng nó để đào tạo kiến ​​trúc mô hình PyTorch tùy chỉnh bằng cách sử dụng các phiên bản DL1.


Giới thiệu về tác giả

Tăng tốc PyTorch bằng DeepSpeed ​​để đào tạo các mô hình ngôn ngữ lớn bằng phiên bản DL1 EC2 dựa trên Intel Habana Gaudi | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Mahadevan Balasubramaniam là Kiến trúc sư Giải pháp Chính cho Máy tính Tự động với gần 20 năm kinh nghiệm trong lĩnh vực học sâu, xây dựng và triển khai các hệ thống sinh đôi kỹ thuật số cho các hệ thống công nghiệp trên quy mô lớn. Mahadevan lấy bằng Tiến sĩ về Kỹ thuật Cơ khí tại Viện Công nghệ Massachusetts và có hơn 25 bằng sáng chế và ấn phẩm được công nhận.

Tăng tốc PyTorch bằng DeepSpeed ​​để đào tạo các mô hình ngôn ngữ lớn bằng phiên bản DL1 EC2 dựa trên Intel Habana Gaudi | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.RJ là một kỹ sư trong nhóm Search M5 dẫn đầu nỗ lực xây dựng các hệ thống học sâu quy mô lớn để đào tạo và suy luận. Ngoài giờ làm việc, anh ấy khám phá các món ăn ẩm thực khác nhau và chơi các môn thể thao dùng vợt.

Tăng tốc PyTorch bằng DeepSpeed ​​để đào tạo các mô hình ngôn ngữ lớn bằng phiên bản DL1 EC2 dựa trên Intel Habana Gaudi | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Sundar Ranganathan là Trưởng phòng Phát triển Kinh doanh, ML Framework trong nhóm Amazon EC2. Anh ấy tập trung vào khối lượng công việc ML quy mô lớn trên các dịch vụ AWS như Amazon EKS, Amazon ECS, Elastic Fabric Adapter, AWS Batch và Amazon SageMaker. Kinh nghiệm của anh ấy bao gồm các vai trò lãnh đạo trong quản lý sản phẩm và phát triển sản phẩm tại NetApp, Micron Technology, Qualcomm và Mentor Graphics.

Tăng tốc PyTorch bằng DeepSpeed ​​để đào tạo các mô hình ngôn ngữ lớn bằng phiên bản DL1 EC2 dựa trên Intel Habana Gaudi | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Abhinandan Patni là Kỹ sư phần mềm cao cấp tại Amazon Search. Ông tập trung vào việc xây dựng hệ thống và công cụ để đào tạo học sâu phân tán có thể mở rộng và suy luận theo thời gian thực.

Tăng tốc PyTorch bằng DeepSpeed ​​để đào tạo các mô hình ngôn ngữ lớn bằng phiên bản DL1 EC2 dựa trên Intel Habana Gaudi | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Pierre-Yves Aquilanti là Trưởng bộ phận Giải pháp ML Frameworks tại Amazon Web Services, nơi ông giúp phát triển các giải pháp ML Frameworks dựa trên đám mây tốt nhất trong ngành. Nền tảng của anh ấy là về Điện toán hiệu năng cao và trước khi gia nhập AWS, Pierre-Yves đã làm việc trong ngành Dầu khí. Pierre-Yves gốc Pháp và có bằng Tiến sĩ. trong Khoa học Máy tính của Đại học Lille.

Dấu thời gian:

Thêm từ Học máy AWS