Triển khai BLOOM-176B và OPT-30B trên Amazon SageMaker với suy luận mô hình lớn Deep Learning Container và DeepSpeed ​​PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Triển khai BLOOM-176B và OPT-30B trên Amazon SageMaker với khả năng suy luận mô hình lớn Deep Learning Containers và DeepSpeed

Vài năm gần đây đã chứng kiến ​​​​sự phát triển nhanh chóng trong lĩnh vực học sâu. Mặc dù phần cứng đã được cải thiện, chẳng hạn như với thế hệ máy tăng tốc mới nhất của NVIDIA và Amazon, những người thực hành học máy (ML) nâng cao vẫn thường xuyên gặp phải các vấn đề khi triển khai mô hình học sâu lớn của họ cho các ứng dụng như xử lý ngôn ngữ tự nhiên (NLP).

Trong một bài viết trước đó, chúng tôi đã thảo luận khả năng và cài đặt có thể định cấu hình in Triển khai mô hình Amazon SageMaker có thể làm cho việc suy luận với những mô hình lớn này trở nên dễ dàng hơn. Hôm nay, chúng tôi công bố một sản phẩm mới Amazon SageMaker Deep Learning Container (DLC) mà bạn có thể sử dụng để bắt đầu suy luận mô hình lớn chỉ trong vài phút. Cái này DLC đóng gói một số thư viện nguồn mở phổ biến nhất để suy luận song song mô hình, chẳng hạn như DeepSpeed ​​và Ôm mặt tăng tốc.

Trong bài đăng này, chúng tôi sử dụng DLC ​​suy luận mô hình lớn SageMaker mới để triển khai hai trong số các mô hình NLP lớn phổ biến nhất: BigScience's BLOOM-176B và của Meta LỰA CHỌN-30B từ kho lưu trữ Ôm Mặt. Cụ thể, chúng tôi sử dụng các kỹ thuật phân phát và song song tensor của Thư viện Deep Java (DJL) từ DeepSpeed ​​để đạt được độ trễ 0.1 giây cho mỗi mã thông báo trong trường hợp sử dụng tạo văn bản.

Bạn có thể tìm thấy sổ ghi chép mẫu hoàn chỉnh của chúng tôi trong Kho GitHub.

Kỹ thuật suy luận mô hình lớn

Các mô hình ngôn ngữ gần đây đã bùng nổ cả về quy mô lẫn mức độ phổ biến. Với khả năng truy cập dễ dàng từ các vườn thú mô hình như Ôm mặt cũng như độ chính xác và hiệu suất được cải thiện trong các nhiệm vụ NLP như phân loại và tạo văn bản, những người thực hành đang ngày càng tiếp cận những mô hình lớn này. Tuy nhiên, các mô hình lớn thường quá lớn để có thể nhét vừa bộ nhớ của một máy gia tốc. Ví dụ, mẫu BLOOM-176B có ​​thể yêu cầu hơn 350 gigabyte bộ nhớ tăng tốc, vượt xa khả năng của các bộ tăng tốc phần cứng hiện nay. Điều này đòi hỏi phải sử dụng các kỹ thuật song song mô hình từ các thư viện như DeepSpeed ​​và Hugging Face Accelerate để phân phối mô hình trên nhiều máy gia tốc để suy luận. Trong bài đăng này, chúng tôi sử dụng Vùng chứa suy luận mô hình lớn của SageMaker để tạo và so sánh hiệu suất độ trễ và thông lượng bằng cách sử dụng hai thư viện nguồn mở này.

DeepSpeed ​​và Accelerate sử dụng các kỹ thuật khác nhau để tối ưu hóa các mô hình ngôn ngữ lớn cho hoạt động suy luận. Sự khác biệt chính là DeepSpeed sử dụng hạt nhân được tối ưu hóa. Những hạt nhân này có thể cải thiện đáng kể độ trễ suy luận bằng cách giảm tắc nghẽn trong biểu đồ tính toán của mô hình. Hạt nhân được tối ưu hóa có thể khó phát triển và thường dành riêng cho một kiến ​​trúc mô hình cụ thể; DeepSpeed ​​hỗ trợ các mô hình lớn phổ biến như OPT và BLOOM với các hạt nhân được tối ưu hóa này. Ngược lại, thư viện Tăng tốc của Ôm Mặt không bao gồm các hạt nhân được tối ưu hóa tại thời điểm viết bài. Như chúng tôi đã thảo luận trong phần kết quả, sự khác biệt này là nguyên nhân dẫn đến phần lớn lợi thế về hiệu suất mà DeepSpeed ​​có được so với Tăng tốc.

Điểm khác biệt thứ hai giữa DeepSpeed ​​và Accelerate là kiểu song song của mô hình. Accelerate sử dụng tính năng song song của đường ống để phân vùng mô hình giữa các lớp ẩn của mô hình, trong khi DeepSpeed ​​sử dụng tính song song tensor để phân vùng chính các lớp đó. Song song đường ống là một cách tiếp cận linh hoạt hỗ trợ nhiều loại mô hình hơn và có thể cải thiện thông lượng khi sử dụng kích thước lô lớn hơn. Tính song song của tensor yêu cầu nhiều giao tiếp hơn giữa các GPU vì các lớp mô hình có thể được trải rộng trên nhiều thiết bị nhưng có thể cải thiện độ trễ suy luận bằng cách tương tác đồng thời với nhiều GPU. Bạn có thể tìm hiểu thêm về các kỹ thuật song song trong Giới thiệu về mô hình song songMô hình song song.

Tổng quan về giải pháp

Để lưu trữ hiệu quả các mô hình ngôn ngữ lớn, chúng tôi cần các tính năng và hỗ trợ trong các lĩnh vực chính sau:

  • Giải pháp xây dựng và thử nghiệm – Do tính chất lặp đi lặp lại của quá trình phát triển ML, chúng tôi cần khả năng xây dựng, lặp lại nhanh chóng và kiểm tra xem điểm cuối suy luận sẽ hoạt động như thế nào khi các mô hình này được lưu trữ, bao gồm cả khả năng lỗi nhanh. Thông thường, các mô hình này chỉ có thể được lưu trữ trên các phiên bản lớn hơn như p4dn hoặc g5 và với kích thước của mô hình, có thể mất một chút thời gian để tạo một phiên bản suy luận và chạy bất kỳ lần lặp thử nghiệm nào. Thử nghiệm cục bộ thường có những hạn chế vì bạn cần một phiên bản có kích thước tương tự để thử nghiệm và không dễ dàng có được những mô hình này.
  • Triển khai và chạy trên quy mô lớn – Các tệp mô hình cần phải được tải vào các phiên bản suy luận, điều này đặt ra một thách thức đối với kích thước. Tar/Un-Tar làm ví dụ cho Bloom-176B mất khoảng 1 giờ để tạo và một giờ nữa để tải. Chúng tôi cần một cơ chế thay thế để cho phép truy cập dễ dàng vào các tệp mô hình.
  • Đang tải mô hình dưới dạng singleton – Đối với quy trình nhiều công nhân, chúng tôi cần đảm bảo mô hình chỉ được tải một lần để không gặp phải tình trạng chạy đua và tiêu tốn thêm các tài nguyên không cần thiết. Trong bài đăng này, chúng tôi chỉ ra cách tải trực tiếp từ Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3). Tuy nhiên, điều này chỉ hoạt động nếu chúng ta sử dụng cài đặt mặc định của DJL. Hơn nữa, bất kỳ việc mở rộng quy mô nào của các điểm cuối cần phải có khả năng thực hiện trong vài phút, điều này đòi hỏi phải xem xét lại cách các mô hình có thể được tải và phân phối.
  • Khung bảo vệ – Các mô hình này thường cần phải có, thường là bằng cơ chế song song tensor hoặc bằng phân mảnh đường ống như các kỹ thuật phân mảnh điển hình và chúng tôi có các khái niệm nâng cao như phân mảnh ZeRO được xây dựng dựa trên phân mảnh tenor. Để biết thêm thông tin về kỹ thuật sharding, hãy tham khảo Mô hình song song. Để đạt được điều này, chúng ta có thể có nhiều cách kết hợp và sử dụng các khung khác nhau từ NIVIDIA, DeepSpeed ​​và các khung khác. Điều này cần có khả năng kiểm tra BYOC hoặc sử dụng các bộ chứa 1P và lặp lại các giải pháp cũng như chạy kiểm tra điểm chuẩn. Bạn cũng có thể muốn thử nghiệm các tùy chọn lưu trữ khác nhau như không đồng bộ, không có máy chủ và các tùy chọn khác.
  • Lựa chọn phần cứng – Lựa chọn phần cứng của bạn được xác định bởi tất cả các điểm đã nói ở trên và các mẫu lưu lượng truy cập khác, nhu cầu của trường hợp sử dụng và kích thước mô hình.

Trong bài đăng này, chúng tôi sử dụng các kỹ thuật song song tensor và hạt nhân được tối ưu hóa của DeepSpeed ​​để lưu trữ BLOOM-176B và OPT-30B trên SageMaker. Chúng tôi cũng so sánh kết quả từ Accelerate để chứng minh lợi ích về hiệu suất của các hạt nhân được tối ưu hóa và tính song song tensor. Để biết thêm thông tin về DeepSpeed ​​và Accelerate, hãy tham khảo Suy luận DeepSpeed: Kích hoạt khả năng suy luận hiệu quả của các mô hình máy biến áp ở quy mô chưa từng cóSuy luận BLOOM cực kỳ nhanh với DeepSpeed ​​và Accelerate.

Chúng tôi sử dụng DJLServing làm giải pháp cung cấp mô hình trong ví dụ này. DJLServing là một giải pháp phục vụ mô hình phổ quát hiệu suất cao được cung cấp bởi Thư viện Deep Java (DJL), ngôn ngữ lập trình bất khả tri. Để tìm hiểu thêm về DJL và DJLServing, hãy tham khảo Triển khai các mô hình lớn trên Amazon SageMaker bằng cách sử dụng suy luận song song của mô hình DJLServing và DeepSpeed.

Cần lưu ý rằng các hạt nhân được tối ưu hóa có thể dẫn đến những thay đổi về độ chính xác và biểu đồ tính toán được sửa đổi, về mặt lý thuyết có thể dẫn đến hành vi của mô hình bị thay đổi. Mặc dù điều này đôi khi có thể thay đổi kết quả suy luận, nhưng chúng tôi không mong đợi những khác biệt này sẽ tác động đáng kể đến các thước đo đánh giá cơ bản của một mô hình. Tuy nhiên, những người thực hành nên xác nhận kết quả đầu ra của mô hình như mong đợi khi sử dụng các hạt nhân này.

Các bước sau đây minh họa cách triển khai mô hình BLOOM-176B trong SageMaker bằng cách sử dụng DJLServing và vùng chứa suy luận mô hình lớn SageMaker. Ví dụ đầy đủ cũng có sẵn trong Kho GitHub.

Sử dụng hình ảnh DLC DJLServing SageMaker

Sử dụng mã sau đây để sử dụng hình ảnh DLC DJLServing SageMaker sau khi thay thế vùng bằng vùng cụ thể mà bạn đang chạy sổ ghi chép trong đó:

763104351884.dkr.ecr..amazonaws.com/djl-inference:0.19.0-deepspeed0.7.3-cu113
# example uri might be like 763104351884.dkr.ecr.us-east-1.amazonaws.com/djl-inference:0.19.0-deepspeed0.7.3-cu113

Tạo tập tin mô hình của chúng tôi

Đầu tiên, chúng tôi tạo một tệp có tên serving.properties chỉ chứa một dòng mã. Điều này yêu cầu máy chủ mô hình DJL sử dụng công cụ DeepSpeed. Tệp này chứa mã sau:

engine=DeepSpeed

serving.properties là một tệp được xác định bởi DJLServing, được sử dụng để định cấu hình cấu hình cho mỗi mô hình.

Tiếp theo, chúng tôi tạo model.py tệp xác định mã cần thiết để tải và sau đó phục vụ mô hình. Trong mã của chúng tôi, chúng tôi đọc trong TENSOR_PARALLEL_DEGREE biến môi trường (giá trị mặc định là 1). Điều này đặt số lượng thiết bị mà các mô-đun song song tensor được phân phối. Lưu ý rằng DeepSpeed ​​cung cấp một số định nghĩa phân vùng tích hợp, bao gồm một định nghĩa cho mô hình BLOOM. Chúng tôi sử dụng nó bằng cách chỉ định replace_methodrelpace_with_kernel_inject. Nếu bạn có mô hình tùy chỉnh và cần DeepSpeed ​​để phân vùng hiệu quả, bạn cần thay đổi relpace_with_kernel_inject đến false và thêm injection_policy để làm cho phân vùng thời gian chạy hoạt động. Để biết thêm thông tin, hãy tham khảo Khởi tạo cho suy luận. Trong ví dụ của chúng tôi, chúng tôi đã sử dụng mô hình BLOOM được phân vùng trước trên DeepSpeed.

Thứ hai, trong model.py tệp, chúng tôi cũng tải mô hình từ Amazon S3 sau khi điểm cuối được tạo ra. Mô hình được tải vào /tmp khoảng trống trên vùng chứa vì SageMaker ánh xạ /tmp đến Cửa hàng đàn hồi Amazon Ổ đĩa (Amazon EBS) được gắn khi chúng tôi chỉ định tham số tạo điểm cuối VolumeSizeInGB. Đối với các phiên bản như p4dn được tạo sẵn với phiên bản ổ đĩa, chúng tôi có thể tiếp tục tận dụng /tmp trên thùng chứa. Xem đoạn mã sau:

from djl_python import Input, Output
import os
import deepspeed
import torch
import torch.distributed as dist
import sys
import subprocess
import time
from glob import glob
from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer
from transformers.models.opt.modeling_opt import OPTDecoderLayer

predictor = None

def check_config():
    local_rank = os.getenv('LOCAL_RANK')
    
    if not local_rank:
        return False
    return True
    
def get_model():

    if not check_config():
        raise Exception("DJL:DeepSpeed configurations are not default. This code does not support non default configurations") 
    
    tensor_parallel = int(os.getenv('TENSOR_PARALLEL_DEGREE', '1'))
    local_rank = int(os.getenv('LOCAL_RANK', '0'))
    model_dir = "/tmp/model"
    bucket = os.environ.get("MODEL_S3_BUCKET")
    key_prefix = os.environ.get("MODEL_S3_PREFIX")
    print(f"rank: {local_rank}")
    if local_rank == 0:
        if f"{model_dir}/DONE" not in glob(f"{model_dir}/*"):
            print("Starting Model downloading files")
            try:
                proc_run = subprocess.run(
                    ["aws", "s3", "cp", "--recursive", f"s3://{bucket}/{key_prefix}", model_dir]
                )
                print("Model downloading finished")
                # write file when download complete. Could use dist.barrier() but this makes it easier to check if model is downloaded in case of retry
                with open(f"{model_dir}/DONE", "w") as f:
                    f.write("download_complete")
                    
                proc_run.check_returncode() # to throw the error in case there was one
                
            except subprocess.CalledProcessError as e:
                print ( "Model download failed: Error:nreturn code: ", e.returncode, "nOutput: ", e.stderr )
                raise # FAIL FAST  
                               
    dist.barrier()
                
    
    tokenizer = AutoTokenizer.from_pretrained(model_dir)
    
    # has to be FP16 as Int8 model loading not yet supported
    with deepspeed.OnDevice(dtype=torch.float16, device="meta"):
        model = AutoModelForCausalLM.from_config(
            AutoConfig.from_pretrained(model_dir), torch_dtype=torch.bfloat16
        )
    model = model.eval()
    
    model = deepspeed.init_inference(
        model,
        mp_size=tensor_parallel,
        dtype=torch.int8,
        base_dir = model_dir,
        checkpoint=os.path.join(model_dir, "ds_inference_config.json"),
        replace_method='auto',
        replace_with_kernel_inject=True
    )

    model = model.module
    dist.barrier()
    return model, tokenizer

DJLServing quản lý cài đặt thời gian chạy trên bất kỳ gói pip nào được xác định trong requirement.txt. Tập tin này sẽ có:

awscli
boto3

Chúng tôi đã tạo một thư mục có tên codemodel.py, serving.propertiesrequirements.txt các tập tin đã được tạo trong thư mục này. Để xem các tập tin, bạn có thể chạy đoạn mã sau từ thiết bị đầu cuối:

mkdir -p code
cat code/model.py 
cat code/serving.properties 
cat code/requirements.txt 

Hình dưới đây cho thấy cấu trúc của model.tar.gz.

Cuối cùng, chúng tôi tạo tệp mô hình và tải nó lên Amazon S3:

tar cvfz model.tar.gz code
s3_code_artifact = sess.upload_data("model.tar.gz", bucket, s3_code_prefix)

Tải xuống và lưu trữ mô hình từ Ôm mặt (Tùy chọn)

Chúng tôi đã cung cấp các bước trong phần này trong trường hợp bạn muốn tải mô hình xuống Amazon S3 và sử dụng nó từ đó. Các bước được cung cấp trong tệp Jupyter trên GitHub. Ảnh chụp màn hình sau đây hiển thị ảnh chụp nhanh các bước.

Triển khai BLOOM-176B và OPT-30B trên Amazon SageMaker với suy luận mô hình lớn Deep Learning Container và DeepSpeed ​​PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Tạo mô hình SageMaker

Bây giờ chúng tôi tạo ra một Mô hình SageMaker. Chúng tôi sử dụng Đăng ký container đàn hồi Amazon (Amazon ECR) hình ảnh được cung cấp bởi và tạo tác mô hình từ bước trước để tạo mô hình SageMaker. Trong thiết lập mô hình, chúng tôi định cấu hình TENSOR_PARALLEL_DEGREE=8, có nghĩa là mô hình được phân vùng dọc theo 8 GPU. Xem đoạn mã sau:

PrimaryContainer={
        "Image": inference_image_uri,
        "ModelDataUrl": s3_code_artifact,
        "Environment": {
            "MODEL_S3_BUCKET": bucket,
            "MODEL_S3_PREFIX": s3_model_prefix,
            "TENSOR_PARALLEL_DEGREE": "8",
},

Sau khi chạy ô trước đó trong tệp Jupyter, bạn sẽ thấy kết quả tương tự như sau:

{
    "ModelArn": "arn:aws:sagemaker:us-east-1::model/bloom-djl-ds-"
}

Tạo điểm cuối SageMaker

Bạn có thể sử dụng bất kỳ phiên bản nào có nhiều GPU để thử nghiệm. Trong bản demo này, chúng tôi sử dụng phiên bản p4d.24xlarge. Trong đoạn mã sau, hãy lưu ý cách chúng tôi đặt ModelDataDownloadTimeoutInSeconds, ContainerStartupHealthCheckTimeoutInSecondsVolumeSizeInGB các thông số để phù hợp với kích thước mô hình lớn. Các VolumeSizeInGB tham số này có thể áp dụng cho các phiên bản GPU hỗ trợ phần đính kèm âm lượng EBS.

endpoint_config_response = sm_client.create_endpoint_config(
    EndpointConfigName=endpoint_config_name,
    ProductionVariants=[
        {
            "VariantName": "variant1",
            "ModelName": model_name,
            "InstanceType": "ml.p4d.24xlarge",
            "InitialInstanceCount": 1,
            #"VolumeSizeInGB" : 200,
            "ModelDataDownloadTimeoutInSeconds": 2400,
            "ContainerStartupHealthCheckTimeoutInSeconds": 2400,
        },
    ],
)'

Cuối cùng, chúng tôi tạo một điểm cuối SageMaker:

create_endpoint_response = sm_client.create_endpoint(
    EndpointName=f"{endpoint_name}", EndpointConfigName=endpoint_config_name
)

Bạn thấy nó được in ra trong đoạn mã sau:

{
    "EndpointArn": "arn:aws:sagemaker:us-east-1::endpoint/bloom-djl-ds-"
}

Bắt đầu điểm cuối có thể mất một lúc. Bạn có thể thử thêm vài lần nếu gặp phải InsufficientInstanceCapacity hoặc bạn có thể yêu cầu AWS tăng giới hạn trong tài khoản của mình.

Điều chỉnh hiệu suất

Nếu bạn có ý định sử dụng bài đăng này và sổ ghi chép đi kèm với một kiểu máy khác, bạn có thể muốn khám phá một số thông số có thể điều chỉnh mà SageMaker, DeepSpeed ​​và DJL cung cấp. Thử nghiệm lặp đi lặp lại với các thông số này có thể có tác động quan trọng đến độ trễ, thông lượng và chi phí của mô hình lớn được lưu trữ của bạn. Để tìm hiểu thêm về các thông số điều chỉnh như số lượng công nhân, mức độ song song của tensor, kích thước hàng đợi công việc và các thông số khác, hãy tham khảo Cấu hình phục vụ DJLTriển khai các mô hình lớn trên Amazon SageMaker bằng cách sử dụng suy luận song song của mô hình DJLServing và DeepSpeed.

Kết quả

Trong bài đăng này, chúng tôi đã sử dụng DeepSpeed ​​để lưu trữ BLOOM-176B và OPT-30B trên các phiên bản SageMaker ML. Bảng sau đây tóm tắt kết quả hoạt động của chúng tôi, bao gồm cả so sánh với Tăng tốc của Ôm mặt. Độ trễ phản ánh số mili giây cần thiết để tạo chuỗi 256 mã thông báo bốn lần (batch_size=4) từ mô hình. Thông lượng phản ánh số lượng mã thông báo được tạo ra mỗi giây cho mỗi thử nghiệm. Để tăng tốc ôm mặt, chúng tôi đã sử dụng tải mặc định của thư viện với ánh xạ bộ nhớ GPU. Đối với DeepSpeed, chúng tôi đã sử dụng cơ chế tải điểm kiểm tra nhanh hơn.

Mô hình Thư viện Độ chính xác của mô hình Kích thước lô Mức độ song song Sơ thẩm Thời gian tải
(S)
Độ trễ (Đầu ra mã thông báo 4 x 256) .
. . . . . . . P50
(Cô)
P90
(Cô)
P99
(Cô)
Thông lượng
(mã thông báo/giây)
BLOOM-176B Tốc độ sâu INT8 4 8 p4d.24xlarge 74.9 27,564 27,580 32,179 37.1
BLOOM-176B Tăng tốc INT8 4 8 p4d.24xlarge 669.4 92,694 92,735 103,292 11.0
LỰA CHỌN-30B Tốc độ sâu FP16 4 4 g5.24xlarge 239.4 11,299 11,302 11,576 90.6
LỰA CHỌN-30B Tăng tốc FP16 4 4 g5.24xlarge 533.8 63,734 63,737 67,605 16.1

Từ góc độ độ trễ, DeepSpeed ​​nhanh hơn khoảng 3.4 lần đối với BLOOM-176B và nhanh hơn 5.6 lần đối với OPT-30B so với Accelerate. Các hạt nhân được tối ưu hóa của DeepSpeed ​​là nguyên nhân gây ra phần lớn sự khác biệt về độ trễ này. Với những kết quả này, chúng tôi khuyên bạn nên sử dụng DeepSpeed ​​thay vì Accelerate nếu mô hình bạn chọn được hỗ trợ.

Cũng cần lưu ý rằng thời gian tải mô hình với DeepSpeed ​​ngắn hơn nhiều, khiến nó trở thành một lựa chọn tốt hơn nếu bạn dự đoán cần nhanh chóng mở rộng quy mô số lượng điểm cuối của mình. Kỹ thuật song song đường ống linh hoạt hơn của Accelerate có thể là lựa chọn tốt hơn nếu bạn có các mô hình hoặc độ chính xác của mô hình không được DeepSpeed ​​hỗ trợ.

Những kết quả này cũng chứng minh sự khác biệt về độ trễ và thông lượng của các kích thước mô hình khác nhau. Trong các thử nghiệm của chúng tôi, OPT-30B tạo ra số lượng mã thông báo trên mỗi đơn vị thời gian gấp 2.4 lần so với BLOOM-176B trên một loại phiên bản rẻ hơn ba lần. Trên cơ sở giá mỗi đơn vị thông lượng, OPT-30B trên phiên bản g5.24xl tốt hơn 8.9 lần so với BLOOM-176B trên phiên bản p4d.24xl. Nếu bạn có các giới hạn nghiêm ngặt về độ trễ, thông lượng hoặc chi phí, hãy cân nhắc sử dụng mô hình nhỏ nhất có thể mà vẫn đáp ứng được các yêu cầu về chức năng.

Làm sạch

Là một phần của các phương pháp hay nhất, bạn nên xóa các phiên bản không hoạt động. Đoạn mã dưới đây chỉ cho bạn cách xóa các phiên bản.

# - Delete the end point
sm_client.delete_endpoint(EndpointName=endpoint_name)

# - In case the end point failed we still want to delete the model
sm_client.delete_endpoint_config(EndpointConfigName=endpoint_config_name)
sm_client.delete_model(ModelName=model_name)

Tùy chọn xóa điểm kiểm tra mô hình khỏi S3 của bạn

!aws s3 rm --recursive s3:///{s3_model_prefix}

Kết luận

Trong bài đăng này, chúng tôi đã trình bày cách sử dụng bộ chứa suy luận mô hình lớn của SageMaker để lưu trữ hai mô hình ngôn ngữ lớn, BLOOM-176B và OPT-30B. Chúng tôi đã sử dụng các kỹ thuật song song mô hình của DeepSpeed ​​với nhiều GPU trên một phiên bản SageMaker ML duy nhất.

Để biết thêm chi tiết về Amazon SageMaker và khả năng suy luận mô hình lớn của nó, hãy tham khảo Amazon SageMaker hiện hỗ trợ triển khai các mô hình lớn thông qua kích thước ổ đĩa có thể định cấu hình và hạn ngạch hết thời gian chờSuy luận thời gian thực.


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

Triển khai BLOOM-176B và OPT-30B trên Amazon SageMaker với suy luận mô hình lớn Deep Learning Container và DeepSpeed ​​PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Simon Zamarin là một Kiến trúc sư giải pháp AI / ML có trọng tâm chính là giúp khách hàng khai thác giá trị từ tài sản dữ liệu của họ. Khi rảnh rỗi, Simon thích dành thời gian cho gia đình, đọc sách khoa học viễn tưởng và thực hiện nhiều dự án nhà tự làm khác nhau.

Triển khai BLOOM-176B và OPT-30B trên Amazon SageMaker với suy luận mô hình lớn Deep Learning Container và DeepSpeed ​​PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái. Rupinder Grewal là Kiến trúc sư Giải pháp Chuyên gia Sr Ai / ML của AWS. Anh ấy hiện đang tập trung vào việc phục vụ người mẫu và MLOps trên SageMaker. Trước khi đảm nhiệm vai trò này, anh ấy đã từng làm việc với tư cách là Kỹ sư máy học xây dựng và lưu trữ các mô hình. Ngoài giờ làm việc, anh ấy thích chơi tennis và đạp xe trên những con đường mòn trên núi.

Triển khai BLOOM-176B và OPT-30B trên Amazon SageMaker với suy luận mô hình lớn Deep Learning Container và DeepSpeed ​​PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Frank Lưu là Kỹ sư phần mềm cho AWS Deep Learning. Ông tập trung vào việc xây dựng các công cụ học tập sâu sáng tạo cho các kỹ sư phần mềm và nhà khoa học. Trong thời gian rảnh rỗi, anh ấy thích đi bộ đường dài với bạn bè và gia đình.

Triển khai BLOOM-176B và OPT-30B trên Amazon SageMaker với suy luận mô hình lớn Deep Learning Container và DeepSpeed ​​PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Alan Tấn là Giám đốc Sản phẩm Cấp cao với nỗ lực hàng đầu của SageMaker về suy luận mô hình lớn. Anh ấy đam mê áp dụng Học máy vào lĩnh vực Phân tích. Ngoài công việc, anh ấy thích hoạt động ngoài trời.

Triển khai BLOOM-176B và OPT-30B trên Amazon SageMaker với suy luận mô hình lớn Deep Learning Container và DeepSpeed ​​PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Dhawal Patel là một Kiến trúc sư chính về Học máy tại AWS. Ông đã làm việc với các tổ chức khác nhau, từ các doanh nghiệp lớn đến các công ty khởi nghiệp quy mô trung bình về các vấn đề liên quan đến máy tính phân tán và Trí tuệ nhân tạo. Ông tập trung vào Học sâu bao gồm các lĩnh vực NLP và Thị giác máy tính. Anh ấy giúp khách hàng đạt được khả năng suy luận mô hình hiệu suất cao trên SageMaker.

Triển khai BLOOM-176B và OPT-30B trên Amazon SageMaker với suy luận mô hình lớn Deep Learning Container và DeepSpeed ​​PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Thanh Lan là Kỹ sư phát triển phần mềm trong AWS. Anh ấy đã làm việc trên một số sản phẩm đầy thử thách ở Amazon, bao gồm các giải pháp suy luận ML hiệu suất cao và hệ thống ghi nhật ký hiệu suất cao. Nhóm của Qing đã khởi chạy thành công mô hình Tỷ tham số đầu tiên trong Quảng cáo Amazon với độ trễ yêu cầu rất thấp. Qing có kiến ​​thức chuyên sâu về tối ưu hóa cơ sở hạ tầng và tăng tốc Deep Learning.

Triển khai BLOOM-176B và OPT-30B trên Amazon SageMaker với suy luận mô hình lớn Deep Learning Container và DeepSpeed ​​PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Thanh Vĩ là Chuyên gia Máy học tại Amazon Web Services. Ông nhận bằng Tiến sĩ. trong Nghiên cứu Hoạt động sau khi ông phá vỡ tài khoản tài trợ nghiên cứu của cố vấn và không thực hiện được giải Nobel mà ông đã hứa. Hiện anh đang giúp khách hàng trong ngành dịch vụ tài chính và bảo hiểm xây dựng các giải pháp máy học trên AWS. Khi rảnh rỗi, anh ấy thích đọc sách và dạy học.

Triển khai BLOOM-176B và OPT-30B trên Amazon SageMaker với suy luận mô hình lớn Deep Learning Container và DeepSpeed ​​PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Robert Van Dusen là Giám đốc Sản phẩm Cấp cao của Amazon SageMaker. Ông dẫn đầu việc tối ưu hóa mô hình học sâu cho các ứng dụng như suy luận mô hình lớn.

Triển khai BLOOM-176B và OPT-30B trên Amazon SageMaker với suy luận mô hình lớn Deep Learning Container và DeepSpeed ​​PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Siddharth Venkatesan là Kỹ sư phần mềm trong AWS Deep Learning. Hiện tại anh đang tập trung xây dựng các giải pháp cho suy luận mô hình lớn. Trước AWS, anh đã làm việc trong tổ chức tạp hóa Amazon để xây dựng các tính năng thanh toán mới cho khách hàng trên toàn thế giới. Ngoài công việc, anh ấy thích trượt tuyết, hoạt động ngoài trời và xem thể thao.

Dấu thời gian:

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