Giảm chi phí và thời gian phát triển với chế độ cục bộ PlatoBlockchain Data Intelligence của Amazon SageMaker Pipelines. Tìm kiếm dọc. Ái.

Giảm chi phí và thời gian phát triển với chế độ cục bộ của Amazon SageMaker Pipelines

Việc tạo các quy trình máy học (ML) mạnh mẽ và có thể tái sử dụng có thể là một quá trình phức tạp và tốn thời gian. Các nhà phát triển thường kiểm tra các tập lệnh xử lý và đào tạo của họ tại địa phương, nhưng bản thân các quy trình thường được kiểm tra trên đám mây. Việc tạo và chạy toàn bộ quy trình trong quá trình thử nghiệm sẽ làm tăng thêm chi phí và chi phí không mong muốn cho vòng đời phát triển. Trong bài đăng này, chúng tôi trình bày chi tiết cách bạn có thể sử dụng Chế độ cục bộ của Quy trình Amazon SageMaker chạy các quy trình ML cục bộ để giảm cả thời gian chạy và phát triển quy trình đồng thời giảm chi phí. Sau khi quy trình đã được kiểm tra toàn bộ cục bộ, bạn có thể dễ dàng chạy lại quy trình đó với Amazon SageMaker tài nguyên được quản lý chỉ với một vài dòng thay đổi mã.

Tổng quan về vòng đời ML

Một trong những động lực chính cho những cải tiến và ứng dụng mới trong ML là tính sẵn có và lượng dữ liệu cùng với các tùy chọn tính toán rẻ hơn. Trong một số lĩnh vực, ML đã được chứng minh là có khả năng giải quyết các vấn đề mà trước đây không thể giải quyết được bằng kỹ thuật phân tích và dữ liệu lớn cổ điển, đồng thời nhu cầu về khoa học dữ liệu và những người thực hành ML đang tăng lên đều đặn. Từ mức độ rất cao, vòng đời ML bao gồm nhiều phần khác nhau, nhưng việc xây dựng mô hình ML thường bao gồm các bước chung sau:

  1. Làm sạch và chuẩn bị dữ liệu (kỹ thuật tính năng)
  2. Huấn luyện và điều chỉnh mô hình
  3. Đánh giá mô hình
  4. Triển khai mô hình (hoặc chuyển đổi hàng loạt)

Trong bước chuẩn bị dữ liệu, dữ liệu được tải, sắp xếp và chuyển đổi thành loại đầu vào hoặc tính năng mà mô hình ML mong đợi. Viết các tập lệnh để chuyển đổi dữ liệu thường là một quá trình lặp đi lặp lại, trong đó các vòng phản hồi nhanh rất quan trọng để tăng tốc độ phát triển. Thông thường, không cần thiết phải sử dụng tập dữ liệu đầy đủ khi kiểm tra các tập lệnh kỹ thuật tính năng, đó là lý do tại sao bạn có thể sử dụng tính năng chế độ cục bộ của quá trình xử lý SageMaker. Điều này cho phép bạn chạy cục bộ và cập nhật mã lặp đi lặp lại, sử dụng tập dữ liệu nhỏ hơn. Khi mã cuối cùng đã sẵn sàng, mã sẽ được gửi đến công việc xử lý từ xa, công việc này sử dụng tập dữ liệu hoàn chỉnh và chạy trên các phiên bản do SageMaker quản lý.

Quá trình phát triển tương tự như bước chuẩn bị dữ liệu cho cả bước huấn luyện mô hình và đánh giá mô hình. Các nhà khoa học dữ liệu sử dụng tính năng chế độ cục bộ của chương trình đào tạo SageMaker để lặp lại nhanh chóng với các tập dữ liệu nhỏ hơn cục bộ trước khi sử dụng tất cả dữ liệu trong cụm phiên bản được tối ưu hóa ML được SageMaker quản lý. Điều này giúp tăng tốc quá trình phát triển và loại bỏ chi phí chạy phiên bản ML do SageMaker quản lý trong khi thử nghiệm.

Khi mức độ trưởng thành ML của tổ chức tăng lên, bạn có thể sử dụng Đường ống Amazon SageMaker để tạo các quy trình ML kết hợp các bước này lại với nhau, tạo ra các quy trình công việc ML phức tạp hơn để xử lý, đào tạo và đánh giá các mô hình ML. SageMaker Pipelines là dịch vụ được quản lý hoàn toàn để tự động hóa các bước khác nhau của quy trình ML, bao gồm tải dữ liệu, chuyển đổi dữ liệu, đào tạo và điều chỉnh mô hình cũng như triển khai mô hình. Cho đến gần đây, bạn có thể phát triển và thử nghiệm các tập lệnh của mình cục bộ nhưng phải thử nghiệm quy trình ML trên đám mây. Điều này làm cho việc lặp lại quy trình và hình thức của đường ống ML trở thành một quá trình chậm và tốn kém. Giờ đây, với tính năng chế độ cục bộ bổ sung của SageMaker Pipelines, bạn có thể lặp lại và kiểm tra quy trình ML của mình tương tự như cách bạn kiểm tra và lặp lại trên các tập lệnh xử lý và đào tạo của mình. Bạn có thể chạy và kiểm tra quy trình trên máy cục bộ của mình bằng cách sử dụng một tập hợp con dữ liệu nhỏ để xác thực cú pháp và chức năng của quy trình.

Đường ống SageMaker

SageMaker Pipelines cung cấp một cách hoàn toàn tự động để chạy các quy trình công việc ML đơn giản hoặc phức tạp. Với SageMaker Pipelines, bạn có thể tạo quy trình công việc ML bằng SDK Python dễ sử dụng, sau đó trực quan hóa và quản lý quy trình công việc của mình bằng cách sử dụng Xưởng sản xuất Amazon SageMaker. Nhóm khoa học dữ liệu của bạn có thể hoạt động hiệu quả hơn và mở rộng quy mô nhanh hơn bằng cách lưu trữ và sử dụng lại các bước quy trình làm việc mà bạn tạo trong SageMaker Pipelines. Bạn cũng có thể sử dụng các mẫu dựng sẵn để tự động hóa việc tạo cơ sở hạ tầng và kho lưu trữ để xây dựng, kiểm tra, đăng ký và triển khai các mô hình trong môi trường ML của mình. Các mẫu này tự động có sẵn cho tổ chức của bạn và được cung cấp bằng cách sử dụng Danh mục dịch vụ AWS sản phẩm.

SageMaker Pipelines mang đến các phương pháp tích hợp liên tục và triển khai liên tục (CI/CD) cho ML, chẳng hạn như duy trì tính tương đương giữa môi trường phát triển và sản xuất, kiểm soát phiên bản, thử nghiệm theo yêu cầu và tự động hóa từ đầu đến cuối, giúp bạn mở rộng quy mô ML trong toàn bộ quy trình của mình. tổ chức. Những người thực hành DevOps biết rằng một số lợi ích chính của việc sử dụng kỹ thuật CI/CD bao gồm tăng năng suất thông qua các thành phần có thể tái sử dụng và tăng chất lượng thông qua thử nghiệm tự động, dẫn đến ROI nhanh hơn cho các mục tiêu kinh doanh của bạn. Những lợi ích này hiện có sẵn cho những người thực hành MLOps bằng cách sử dụng SageMaker Pipelines để tự động hóa quá trình đào tạo, thử nghiệm và triển khai các mô hình ML. Với chế độ cục bộ, giờ đây bạn có thể lặp lại nhanh hơn nhiều trong khi phát triển các tập lệnh để sử dụng trong quy trình. Lưu ý rằng không thể xem hoặc chạy các phiên bản đường dẫn cục bộ trong Studio IDE; tuy nhiên, các tùy chọn xem bổ sung cho đường ống địa phương sẽ sớm có sẵn.

SDK SageMaker cung cấp mục đích chung cấu hình chế độ cục bộ cho phép các nhà phát triển chạy và kiểm tra các bộ xử lý và bộ ước tính được hỗ trợ trong môi trường cục bộ của họ. Bạn có thể sử dụng chương trình đào tạo ở chế độ cục bộ với nhiều hình ảnh khung được AWS hỗ trợ (TensorFlow, MXNet, Chainer, PyTorch và Scikit-Learn) cũng như các hình ảnh do bạn tự cung cấp.

SageMaker Pipelines xây dựng Đồ thị không theo chu kỳ có hướng (DAG) gồm các bước quy trình công việc được sắp xếp, hỗ trợ nhiều hoạt động nằm trong vòng đời ML. Ở chế độ cục bộ, các bước sau được hỗ trợ:

  • Các bước xử lý công việc – Trải nghiệm được đơn giản hóa, được quản lý trên SageMaker để chạy các khối lượng công việc xử lý dữ liệu, chẳng hạn như kỹ thuật tính năng, xác thực dữ liệu, đánh giá mô hình và diễn giải mô hình
  • Các bước công việc đào tạo – Một quy trình lặp đi lặp lại dạy mô hình đưa ra dự đoán bằng cách trình bày các ví dụ từ tập dữ liệu huấn luyện
  • Công việc điều chỉnh siêu tham số – Một cách tự động để đánh giá và chọn các siêu tham số tạo ra mô hình chính xác nhất
  • Các bước chạy có điều kiện – Một bước cung cấp các nhánh có điều kiện trong một đường ống
  • Bước mô hình – Sử dụng đối số CreateModel, bước này có thể tạo mô hình để sử dụng trong các bước chuyển đổi hoặc triển khai sau này làm điểm cuối
  • Chuyển đổi các bước công việc – Công việc chuyển đổi hàng loạt tạo ra dự đoán từ các tập dữ liệu lớn và chạy suy luận khi không cần điểm cuối liên tục
  • bước thất bại – Một bước dừng quá trình chạy quy trình và đánh dấu quá trình chạy là không thành công

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

Giải pháp của chúng tôi trình bày các bước thiết yếu để tạo và chạy Đường ống SageMaker ở chế độ cục bộ, nghĩa là sử dụng tài nguyên CPU, RAM và ổ đĩa cục bộ để tải và chạy các bước của quy trình công việc. Môi trường cục bộ của bạn có thể chạy trên máy tính xách tay, sử dụng các IDE phổ biến như VSCode hoặc PyCharm hoặc có thể được SageMaker lưu trữ bằng cách sử dụng các phiên bản máy tính xách tay cổ điển.

Chế độ cục bộ cho phép các nhà khoa học dữ liệu kết hợp các bước lại với nhau, có thể bao gồm các công việc xử lý, đào tạo và đánh giá cũng như chạy toàn bộ quy trình làm việc cục bộ. Khi hoàn tất kiểm tra cục bộ, bạn có thể chạy lại quy trình trong môi trường do SageMaker quản lý bằng cách thay thế LocalPipelineSession đối tượng với PipelineSession, điều này mang lại tính nhất quán cho vòng đời ML.

Đối với mẫu sổ ghi chép này, chúng tôi sử dụng tập dữ liệu tiêu chuẩn có sẵn công khai, Bộ dữ liệu bào ngư học máy UCI. Mục tiêu là huấn luyện mô hình ML để xác định tuổi của ốc bào ngư từ các phép đo vật lý của nó. Về cốt lõi, đây là một vấn đề hồi quy.

Tất cả mã cần thiết để chạy mẫu sổ ghi chép này đều có sẵn trên GitHub trong amazon-sagemaker-ví dụ kho. Trong mẫu sổ ghi chép này, mỗi bước quy trình quy trình được tạo độc lập rồi kết nối với nhau để tạo quy trình. Chúng ta tạo các bước sau:

  • Bước xử lý (kỹ thuật tính năng)
  • Bước đào tạo (đào tạo mô hình)
  • Bước xử lý (đánh giá mô hình)
  • Bước điều kiện (độ chính xác của mô hình)
  • Tạo bước mô hình (model)
  • Bước chuyển đổi (chuyển đổi hàng loạt)
  • Đăng ký bước mô hình (gói mô hình)
  • Bước thất bại (chạy thất bại)

Sơ đồ sau đây minh họa đường dẫn của chúng tôi.

Giảm chi phí và thời gian phát triển với chế độ cục bộ PlatoBlockchain Data Intelligence của Amazon SageMaker Pipelines. Tìm kiếm dọc. Ái.

Điều kiện tiên quyết

Để theo dõi bài đăng này, bạn cần những điều sau:

Sau khi có những điều kiện tiên quyết này, bạn có thể chạy sổ ghi chép mẫu như được mô tả trong các phần sau.

Xây dựng đường ống của bạn

Trong mẫu sổ ghi chép này, chúng tôi sử dụng Chế độ tập lệnh SageMaker đối với hầu hết các quy trình ML, điều đó có nghĩa là chúng tôi cung cấp mã Python (tập lệnh) thực tế để thực hiện hoạt động và chuyển tham chiếu đến mã này. Chế độ tập lệnh mang lại sự linh hoạt cao độ để kiểm soát hành vi trong quá trình xử lý SageMaker bằng cách cho phép bạn tùy chỉnh mã của mình trong khi vẫn tận dụng các vùng chứa dựng sẵn của SageMaker như XGBoost hoặc Scikit-Learn. Mã tùy chỉnh được ghi vào tệp tập lệnh Python bằng cách sử dụng các ô bắt đầu bằng lệnh ma thuật %%writefile, như sau:

%%writefile code/evaluation.py

Trình kích hoạt chính của chế độ cục bộ là LocalPipelineSession đối tượng, được khởi tạo từ SDK Python. Các đoạn mã sau đây minh họa cách tạo quy trình SageMaker ở chế độ cục bộ. Mặc dù bạn có thể đặt cấu hình đường dẫn dữ liệu cục bộ cho nhiều bước quy trình cục bộ nhưng Amazon S3 là vị trí mặc định để lưu trữ dữ liệu đầu ra bằng quá trình chuyển đổi. Cái mới LocalPipelineSession đối tượng được chuyển tới SDK Python trong nhiều lệnh gọi API quy trình làm việc của SageMaker được mô tả trong bài đăng này. Chú ý rằng bạn có thể sử dụng local_pipeline_session biến để truy xuất các tham chiếu đến nhóm mặc định S3 và tên Khu vực hiện tại.

from sagemaker.workflow.pipeline_context import LocalPipelineSession

# Create a `LocalPipelineSession` object so that each 
# pipeline step will run locally
# To run this pipeline in the cloud, you must change 
# the `LocalPipelineSession()` to `PipelineSession()`
local_pipeline_session = LocalPipelineSession()
region = local_pipeline_session.boto_region_name

default_bucket = local_pipeline_session.default_bucket()
prefix = "sagemaker-pipelines-local-mode-example"

Trước khi tạo các bước quy trình riêng lẻ, chúng tôi đặt một số tham số được sử dụng bởi quy trình. Một số tham số này là chuỗi ký tự, trong khi những tham số khác được tạo dưới dạng kiểu liệt kê đặc biệt do SDK cung cấp. Kiểu liệt kê đảm bảo rằng các cài đặt hợp lệ được cung cấp cho đường dẫn, chẳng hạn như cài đặt này, được chuyển tới ConditionLessThanOrEqualTo bước xuống tiếp:

mse_threshold = ParameterFloat(name="MseThreshold", default_value=7.0)

Để tạo một bước xử lý dữ liệu được sử dụng ở đây để thực hiện kỹ thuật tính năng, chúng tôi sử dụng SKLearnProcessor để tải và chuyển đổi tập dữ liệu. Chúng tôi vượt qua local_pipeline_session biến cho hàm tạo của lớp, hướng dẫn bước quy trình công việc chạy ở chế độ cục bộ:

from sagemaker.sklearn.processing import SKLearnProcessor

framework_version = "1.0-1"

sklearn_processor = SKLearnProcessor(
    framework_version=framework_version,
    instance_type=instance_type,
    instance_count=processing_instance_count,
    base_job_name="sklearn-abalone-process",
    role=role,
    sagemaker_session=local_pipeline_session,
)

Tiếp theo, chúng tôi tạo bước quy trình thực tế đầu tiên của mình, một ProcessingStep đối tượng, như được nhập từ SageMaker SDK. Các đối số của bộ xử lý được trả về từ một cuộc gọi đến SKLearnProcessor phương thức run(). Bước quy trình làm việc này được kết hợp với các bước khác ở cuối sổ ghi chép để cho biết thứ tự hoạt động trong quy trình.

from sagemaker.processing import ProcessingInput, ProcessingOutput
from sagemaker.workflow.steps import ProcessingStep

processor_args = sklearn_processor.run(
    inputs=[
        ProcessingInput(source=input_data, destination="/opt/ml/processing/input"),
    ],
    outputs=[
        ProcessingOutput(output_name="train", source="/opt/ml/processing/train"),
        ProcessingOutput(output_name="validation", source="/opt/ml/processing/validation"),
        ProcessingOutput(output_name="test", source="/opt/ml/processing/test"),
    ],
    code="code/preprocessing.py",
)

step_process = ProcessingStep(name="AbaloneProcess", step_args=processor_args)

Tiếp theo, chúng tôi cung cấp mã để thiết lập bước đào tạo bằng cách trước tiên khởi tạo công cụ ước tính tiêu chuẩn bằng SDK SageMaker. Chúng tôi vượt qua giống nhau local_pipeline_session biến cho công cụ ước tính, có tên là xgb_train, là sagemaker_session lý lẽ. Vì muốn huấn luyện mô hình XGBoost nên chúng tôi phải tạo URI hình ảnh hợp lệ bằng cách chỉ định các tham số sau, bao gồm khung và một số tham số phiên bản:

from sagemaker.estimator import Estimator
from sagemaker.inputs import TrainingInput

model_path = f"s3://{default_bucket}/{prefix}/model"
image_uri = sagemaker.image_uris.retrieve(
    framework="xgboost",
    region=region,
    version="1.5-1",
    py_version="py3",
    instance_type=instance_type,
)

xgb_train = Estimator(
    image_uri=image_uri,
    entry_point="code/abalone.py",
    instance_type=instance_type,
    instance_count=training_instance_count,
    output_path=model_path,
    role=role,
    sagemaker_session=local_pipeline_session,
)

Chúng ta có thể tùy ý gọi các phương pháp ước tính bổ sung, ví dụ set_hyperparameters(), để cung cấp cài đặt siêu tham số cho công việc đào tạo. Bây giờ chúng ta đã định cấu hình công cụ ước tính, chúng ta đã sẵn sàng tạo bước đào tạo thực tế. Một lần nữa, chúng tôi nhập TrainingStep lớp từ thư viện SageMaker SDK:

from sagemaker.workflow.steps import TrainingStep

step_train = TrainingStep(name="AbaloneTrain", step_args=train_args)

Tiếp theo, chúng ta xây dựng một bước xử lý khác để thực hiện đánh giá mô hình. Điều này được thực hiện bằng cách tạo ra một ScriptProcessor ví dụ và chuyển local_pipeline_session đối tượng làm tham số:

from sagemaker.processing import ScriptProcessor

script_eval = ScriptProcessor(
    image_uri=image_uri,
    command=["python3"],
    instance_type=instance_type,
    instance_count=processing_instance_count,
    base_job_name="script-abalone-eval",
    role=role,
    sagemaker_session=local_pipeline_session,
)

Để cho phép triển khai mô hình đã được đào tạo, tới một Điểm cuối thời gian thực của SageMaker hoặc chuyển đổi hàng loạt, chúng ta cần tạo một Model đối tượng bằng cách chuyển các tạo phẩm mô hình, URI hình ảnh phù hợp và tùy chọn mã suy luận tùy chỉnh của chúng tôi. Sau đó chúng tôi vượt qua điều này Model phản đối một ModelStep, được thêm vào đường ống cục bộ. Xem đoạn mã sau:

from sagemaker.model import Model

model = Model(
    image_uri=image_uri,
    model_data=step_train.properties.ModelArtifacts.S3ModelArtifacts,
    source_dir="code",
    entry_point="inference.py",
    role=role,
    sagemaker_session=local_pipeline_session,
)

from sagemaker.workflow.model_step import ModelStep

step_create_model = ModelStep(name="AbaloneCreateModel", 
    step_args=model.create(instance_type=instance_type)
)

Tiếp theo, chúng tôi tạo một bước chuyển đổi hàng loạt trong đó chúng tôi gửi một tập hợp các vectơ đặc trưng và thực hiện suy luận. Đầu tiên chúng ta cần tạo một Transformer phản đối và vượt qua local_pipeline_session tham số cho nó. Sau đó chúng tôi tạo ra một TransformStep, chuyển các đối số được yêu cầu và thêm phần này vào định nghĩa đường ống:

from sagemaker.transformer import Transformer

transformer = Transformer(
    model_name=step_create_model.properties.ModelName,
    instance_type=instance_type,
    instance_count=transform_instance_count,
    output_path=f"s3://{default_bucket}/{prefix}/transform",
    sagemaker_session=local_pipeline_session,
)

from sagemaker.workflow.steps import TransformStep

transform_args = transformer.transform(transform_data, content_type="text/csv")

step_transform = TransformStep(name="AbaloneTransform", step_args=transform_args)

Cuối cùng, chúng tôi muốn thêm điều kiện nhánh vào quy trình làm việc để chỉ chạy chuyển đổi hàng loạt nếu kết quả đánh giá mô hình đáp ứng tiêu chí của chúng tôi. Chúng ta có thể chỉ ra điều kiện này bằng cách thêm một ConditionStep với một loại điều kiện cụ thể, như ConditionLessThanOrEqualTo. Sau đó, chúng tôi liệt kê các bước cho hai nhánh, về cơ bản xác định các nhánh if/else hoặc true/false của quy trình. if_steps được cung cấp trong ConditionStep (bước_tạo_model, bước_biến đổi) được chạy bất cứ khi nào điều kiện được đánh giá là True.

from sagemaker.workflow.conditions import ConditionLessThanOrEqualTo
from sagemaker.workflow.condition_step import ConditionStep
from sagemaker.workflow.functions import JsonGet

cond_lte = ConditionLessThanOrEqualTo(
    left=JsonGet(
        step_name=step_eval.name,
        property_file=evaluation_report,
        json_path="regression_metrics.mse.value",),
    right=mse_threshold,
)

step_cond = ConditionStep(
    name="AbaloneMSECond",
    conditions=[cond_lte],
    if_steps=[step_create_model, step_transform],
    else_steps=[step_fail],
)

Sơ đồ sau đây minh họa nhánh có điều kiện này và các bước if/else liên quan. Chỉ có một nhánh được chạy, dựa trên kết quả của bước đánh giá mô hình so với bước điều kiện.

Giảm chi phí và thời gian phát triển với chế độ cục bộ PlatoBlockchain Data Intelligence của Amazon SageMaker Pipelines. Tìm kiếm dọc. Ái.

Bây giờ chúng ta đã xác định được tất cả các bước và các phiên bản lớp cơ bản đã được tạo, chúng ta có thể kết hợp chúng thành một quy trình. Chúng tôi cung cấp một số tham số và xác định thứ tự hoạt động bằng cách liệt kê các bước theo thứ tự mong muốn. Lưu ý rằng TransformStep không được hiển thị ở đây vì đó là mục tiêu của bước có điều kiện và được cung cấp dưới dạng đối số bước cho ConditionalStep sớm hơn.

from sagemaker.workflow.pipeline import Pipeline

pipeline_name = f"LocalModelPipeline"
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[
        input_data,
        mse_threshold,
    ],
    steps=[step_process, step_train, step_eval, step_cond],
    sagemaker_session=local_pipeline_session,
)

Để chạy quy trình, bạn phải gọi hai phương thức: pipeline.upsert(), tải đường dẫn lên dịch vụ cơ bản và pipeline.start(), bắt đầu chạy đường ống. Bạn có thể sử dụng nhiều phương pháp khác để thẩm vấn trạng thái chạy, liệt kê các bước quy trình, v.v. Vì chúng tôi đã sử dụng phiên quy trình chế độ cục bộ nên tất cả các bước này đều được chạy cục bộ trên bộ xử lý của bạn. Đầu ra ô bên dưới phương thức bắt đầu hiển thị đầu ra từ đường ống:

pipeline.upsert(role_arn=role)
execution = pipeline.start()

Bạn sẽ thấy một thông báo ở cuối ô đầu ra tương tự như sau:

Pipeline execution d8c3e172-089e-4e7a-ad6d-6d76caf987b7 SUCCEEDED

Hoàn nguyên về tài nguyên được quản lý

Sau khi xác nhận rằng quy trình chạy không có lỗi và chúng tôi hài lòng với quy trình cũng như hình thức của quy trình, chúng tôi có thể tạo lại quy trình nhưng với tài nguyên do SageMaker quản lý và chạy lại quy trình đó. Sự thay đổi duy nhất cần thiết là sử dụng PipelineSession đối tượng thay vì LocalPipelineSession:

từ sagemaker.workflow.pipeline_context nhập LocalPipelineSession
from sagemaker.workflow.pipeline_context import PipelineSession

local_pipeline_session=LocalPipelineSession()
pipeline_session = PipelineSession()

Điều này thông báo cho dịch vụ chạy từng bước tham chiếu đối tượng phiên này trên các tài nguyên do SageMaker quản lý. Với sự thay đổi nhỏ, chúng tôi chỉ minh họa những thay đổi mã bắt buộc trong ô mã sau đây, nhưng thay đổi tương tự sẽ cần được triển khai trên mỗi ô bằng cách sử dụng local_pipeline_session sự vật. Tuy nhiên, những thay đổi này giống hệt nhau trên tất cả các ô vì chúng tôi chỉ thay thế local_pipeline_session đối tượng với pipeline_session vật.

from sagemaker.sklearn.processing import SKLearnProcessor

framework_version = "1.0-1"

sklearn_processor = SKLearnProcessor(
    framework_version=framework_version,
    instance_type=instance_type,
    instance_count=processing_instance_count,
    base_job_name="sklearn-abalone-process",
    role=role,
    sagemaker_session=pipeline_session,  # non-local session
)

Sau khi đối tượng phiên cục bộ được thay thế ở mọi nơi, chúng tôi tạo lại quy trình và chạy nó bằng tài nguyên do SageMaker quản lý:

from sagemaker.workflow.pipeline import Pipeline

pipeline_name = f"LocalModelPipeline"
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[
        input_data,
        mse_threshold,
    ],
    steps=[step_process, step_train, step_eval, step_cond],
    sagemaker_session=pipeline_session, # non-local session
)

pipeline.upsert(role_arn=role)
execution = pipeline.start()

Làm sạch

Nếu muốn giữ cho môi trường Studio gọn gàng, bạn có thể sử dụng các phương pháp sau để xóa quy trình SageMaker và mô hình. Mã đầy đủ có thể được tìm thấy trong mẫu máy tính xách tay.

# delete models 
sm_client = boto3.client("sagemaker")
model_prefix="AbaloneCreateModel"
delete_models(sm_client, model_prefix)

# delete managed pipeline
pipeline_to_delete = 'SM-Managed-Pipeline'
delete_sagemaker_pipeline(sm_client, pipeline_to_delete)

Kết luận

Cho đến gần đây, bạn có thể sử dụng tính năng chế độ cục bộ của Xử lý SageMaker và Đào tạo SageMaker để lặp lại các tập lệnh xử lý và đào tạo cục bộ trước khi chạy chúng trên tất cả dữ liệu bằng tài nguyên do SageMaker quản lý. Với tính năng chế độ cục bộ mới của SageMaker Pipelines, những người thực hành ML giờ đây có thể áp dụng phương pháp tương tự khi lặp lại trên các quy trình ML của mình, kết hợp các quy trình công việc ML khác nhau lại với nhau. Khi quy trình đã sẵn sàng để sản xuất, việc chạy quy trình đó bằng tài nguyên do SageMaker quản lý chỉ cần một vài dòng thay đổi mã. Điều này giúp giảm thời gian chạy quy trình trong quá trình phát triển, dẫn đến phát triển quy trình nhanh hơn với chu kỳ phát triển nhanh hơn, đồng thời giảm chi phí tài nguyên do SageMaker quản lý.

Để tìm hiểu thêm, hãy truy cập Đường ống Amazon SageMaker or Sử dụng quy trình SageMaker để thực hiện công việc của bạn tại địa phương.


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

Giảm chi phí và thời gian phát triển với chế độ cục bộ PlatoBlockchain Data Intelligence của Amazon SageMaker Pipelines. Tìm kiếm dọc. Ái.Paul Hargis đã tập trung nỗ lực vào lĩnh vực học máy tại một số công ty, bao gồm AWS, Amazon và Hortonworks. Anh ấy thích xây dựng các giải pháp công nghệ và dạy mọi người cách tận dụng tối đa chúng. Trước khi đảm nhận vai trò tại AWS, ông là kiến ​​trúc sư trưởng về Xuất khẩu và Mở rộng Amazon, giúp amazon.com cải thiện trải nghiệm cho người mua sắm quốc tế. Paul thích giúp khách hàng mở rộng các sáng kiến ​​học máy của họ để giải quyết các vấn đề trong thế giới thực.

Giảm chi phí và thời gian phát triển với chế độ cục bộ PlatoBlockchain Data Intelligence của Amazon SageMaker Pipelines. Tìm kiếm dọc. Ái.Cây cọ Niklas là Kiến trúc sư Giải pháp tại AWS ở Stockholm, Thụy Điển, nơi anh ấy giúp khách hàng trên khắp các nước Bắc Âu thành công trên đám mây. Anh ấy đặc biệt đam mê công nghệ không máy chủ cùng với IoT và máy học. Ngoài công việc, Niklas là một vận động viên trượt tuyết băng đồng và trượt tuyết cũng như một người thợ nấu trứng.

Giảm chi phí và thời gian phát triển với chế độ cục bộ PlatoBlockchain Data Intelligence của Amazon SageMaker Pipelines. Tìm kiếm dọc. Ái.Kirit Thadaka là một Kiến trúc sư giải pháp ML làm việc trong nhóm SageMaker Service SA. Trước khi gia nhập AWS, Kirit đã làm việc trong các công ty khởi nghiệp AI giai đoạn đầu, sau đó là một thời gian tư vấn trong nhiều vai trò khác nhau trong nghiên cứu AI, MLOps và lãnh đạo kỹ thuật.

Dấu thời gian:

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