Các thuật toán Amazon SageMaker tích hợp mới để lập mô hình dữ liệu dạng bảng: LightGBM, CatBoost, AutoGluon-Tabular và TabTransformer

Nút nguồn: 1541386

Amazon SageMaker cung cấp một bộ thuật toán tích hợp, người mẫu được đào tạo trướccác mẫu giải pháp được xây dựng trước để giúp các nhà khoa học dữ liệu và các nhà thực hành học máy (ML) bắt đầu đào tạo và triển khai các mô hình ML một cách nhanh chóng. Bạn có thể sử dụng các thuật toán và mô hình này cho cả việc học có giám sát và không giám sát. Họ có thể xử lý nhiều loại dữ liệu đầu vào khác nhau, bao gồm dạng bảng, hình ảnh và văn bản.

Bắt đầu từ hôm nay, SageMaker cung cấp bốn thuật toán lập mô hình dữ liệu dạng bảng mới: LightGBM, CatBoost, AutoGluon-Tabular và TabTransformer. Bạn có thể sử dụng các thuật toán hiện đại, phổ biến này cho cả nhiệm vụ phân loại và hồi quy dạng bảng. Chúng có sẵn thông qua thuật toán tích hợp trên bảng điều khiển SageMaker cũng như thông qua Khởi động Amazon SageMaker Giao diện người dùng bên trong Xưởng sản xuất Amazon SageMaker.

Sau đây là danh sách bốn thuật toán tích hợp mới, với các liên kết đến tài liệu, sổ ghi chép ví dụ và nguồn của chúng.

Tài liệu Sổ tay Ví dụ nguồn
Thuật toán LightGBM Hồi quy, phân loại ánh sángGBM
Thuật toán CatBoost Hồi quy, phân loại CátBoost
Thuật toán AutoGluon-Tabular Hồi quy, phân loại AutoGluon-Bảng
Thuật toán TabTransformer Hồi quy, phân loại TabBiến Áp

Trong các phần tiếp theo, chúng tôi cung cấp mô tả kỹ thuật ngắn gọn của từng thuật toán và ví dụ về cách đào tạo mô hình thông qua SageMaker SDK hoặc SageMaker Jumpstart.

ánh sángGBM

ánh sángGBM là một triển khai mã nguồn mở phổ biến và hiệu quả của thuật toán Cây quyết định tăng cường Gradient (GBDT). GBDT là một thuật toán học tập có giám sát cố gắng dự đoán chính xác một biến mục tiêu bằng cách kết hợp một tập hợp các ước tính từ một tập hợp các mô hình đơn giản hơn và yếu hơn. LightGBM sử dụng các kỹ thuật bổ sung để cải thiện đáng kể hiệu quả và khả năng mở rộng của GBDT thông thường.

CátBoost

CátBoost là một triển khai mã nguồn mở phổ biến và hiệu suất cao của thuật toán GBDT. Hai tiến bộ thuật toán quan trọng được giới thiệu trong CatBoost: triển khai tăng cường theo thứ tự, một giải pháp thay thế theo hướng hoán vị cho thuật toán cổ điển và một thuật toán cải tiến để xử lý các tính năng phân loại. Cả hai kỹ thuật đều được tạo ra để chống lại sự thay đổi dự đoán do một loại rò rỉ mục tiêu đặc biệt gây ra trong tất cả các triển khai hiện có của thuật toán tăng cường độ dốc.

AutoGluon-Bảng

AutoGluon-Bảng là một dự án AutoML mã nguồn mở do Amazon phát triển và duy trì, thực hiện xử lý dữ liệu nâng cao, học sâu và tập hợp ngăn xếp nhiều lớp. Nó tự động nhận dạng kiểu dữ liệu trong mỗi cột để xử lý trước dữ liệu mạnh mẽ, bao gồm xử lý đặc biệt các trường văn bản. AutoGluon phù hợp với nhiều mô hình khác nhau, từ các cây được tăng cường sẵn có đến các mô hình mạng nơ-ron tùy chỉnh. Các mô hình này được tập hợp theo một cách mới lạ: các mô hình được xếp chồng lên nhau thành nhiều lớp và được đào tạo theo cách thức từng lớp để đảm bảo dữ liệu thô có thể được chuyển thành các dự đoán chất lượng cao trong một thời hạn nhất định. Việc lắp quá mức được giảm thiểu trong suốt quá trình này bằng cách chia nhỏ dữ liệu theo nhiều cách khác nhau với việc theo dõi cẩn thận các ví dụ nằm ngoài màn hình. AutoGluon được tối ưu hóa cho hiệu suất và việc sử dụng nó đã đạt được một số vị trí top 3 và top 10 trong các cuộc thi khoa học dữ liệu.

TabBiến Áp

TabBiến Áp là một kiến ​​trúc mô hình hóa dữ liệu dạng bảng sâu mới cho việc học có giám sát. TabTransformer được xây dựng dựa trên Transformers dựa trên khả năng tự chú ý. Các lớp Transformer chuyển đổi các nhúng của các tính năng phân loại thành các nhúng theo ngữ cảnh mạnh mẽ để đạt được độ chính xác dự đoán cao hơn. Hơn nữa, các phép nhúng theo ngữ cảnh học được từ TabTransformer rất mạnh mẽ chống lại cả các tính năng dữ liệu bị thiếu và nhiễu, đồng thời cung cấp khả năng diễn giải tốt hơn. Mô hình này là sản phẩm của gần đây Khoa học Amazon nghiên cứu (giấy và chính thức blog đăng bài tại đây) và đã được chấp nhận rộng rãi bởi cộng đồng ML, với nhiều cách triển khai của bên thứ ba (Máy ảnhAutoGluon,) và các tính năng truyền thông xã hội như tweet của quý vịhướng tới khoa học, vừa, và Kaggle.

Lợi ích của các thuật toán tích hợp SageMaker

Khi chọn một thuật toán cho loại vấn đề và dữ liệu cụ thể của bạn, sử dụng thuật toán tích hợp sẵn SageMaker là tùy chọn dễ dàng nhất, bởi vì làm như vậy đi kèm với những lợi ích chính sau:

  • Các thuật toán tích hợp không yêu cầu mã hóa để bắt đầu chạy thử nghiệm. Đầu vào duy nhất bạn cần cung cấp là dữ liệu, siêu tham số và tài nguyên máy tính. Điều này cho phép bạn chạy thử nghiệm nhanh hơn, với ít chi phí hơn cho việc theo dõi kết quả và thay đổi mã.
  • Các thuật toán tích hợp đi kèm với tính năng song song trên nhiều phiên bản máy tính và hỗ trợ GPU ngay lập tức cho tất cả các thuật toán áp dụng (một số thuật toán có thể không được đưa vào do những hạn chế cố hữu). Nếu bạn có nhiều dữ liệu để đào tạo mô hình của mình, hầu hết các thuật toán tích hợp có thể dễ dàng mở rộng quy mô để đáp ứng nhu cầu. Ngay cả khi bạn đã có một mô hình được đào tạo trước, vẫn có thể dễ dàng hơn khi sử dụng hệ quả của nó trong SageMaker và nhập các siêu tham số mà bạn đã biết thay vì chuyển nó qua và tự viết một kịch bản đào tạo.
  • Bạn là chủ sở hữu của các tạo tác mô hình kết quả. Bạn có thể lấy mô hình đó và triển khai trên SageMaker cho một số mẫu suy luận khác nhau (xem tất cả các loại triển khai có sẵn) và quản lý và mở rộng điểm cuối dễ dàng hoặc bạn có thể triển khai nó ở bất kỳ nơi nào khác bạn cần.

Bây giờ chúng ta hãy xem cách đào tạo một trong những thuật toán tích hợp này.

Đào tạo thuật toán tích hợp bằng SageMaker SDK

Để đào tạo một mô hình đã chọn, chúng ta cần lấy URI của mô hình đó, cũng như URI của tập lệnh đào tạo và hình ảnh vùng chứa được sử dụng để đào tạo. Rất may, ba đầu vào này chỉ phụ thuộc vào tên kiểu máy, phiên bản (để biết danh sách các kiểu máy có sẵn, hãy xem Bảng mẫu có sẵn của JumpStart), và loại phiên bản bạn muốn đào tạo. Điều này được thể hiện trong đoạn mã sau:

from sagemaker import image_uris, model_uris, script_uris train_model_id, train_model_version, train_scope = "lightgbm-classification-model", "*", "training"
training_instance_type = "ml.m5.xlarge" # Retrieve the docker image
train_image_uri = image_uris.retrieve( region=None, framework=None, model_id=train_model_id, model_version=train_model_version, image_scope=train_scope, instance_type=training_instance_type
)
# Retrieve the training script
train_source_uri = script_uris.retrieve( model_id=train_model_id, model_version=train_model_version, script_scope=train_scope
)
# Retrieve the model artifact; in the tabular case, the model is not pre-trained train_model_uri = model_uris.retrieve( model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)

Sản phẩm train_model_id thay đổi lightgbm-regression-model nếu chúng tôi đang giải quyết vấn đề hồi quy. ID cho tất cả các mô hình khác được giới thiệu trong bài đăng này được liệt kê trong bảng sau.

Mô hình Loại vấn đề ID mô hình
ánh sángGBM phân loại lightgbm-classification-model
. Hồi quy lightgbm-regression-model
CátBoost phân loại catboost-classification-model
. Hồi quy catboost-regression-model
AutoGluon-Bảng phân loại autogluon-classification-ensemble
. Hồi quy autogluon-regression-ensemble
TabBiến Áp phân loại pytorch-tabtransformerclassification-model
. Hồi quy pytorch-tabtransformerregression-model

Sau đó, chúng tôi xác định đầu vào của chúng tôi ở đâu Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3). Chúng tôi đang sử dụng tập dữ liệu mẫu công khai cho ví dụ này. Chúng tôi cũng xác định nơi chúng tôi muốn đầu ra của mình đi đến và truy xuất danh sách mặc định của các siêu tham số cần thiết để đào tạo mô hình đã chọn. Bạn có thể thay đổi giá trị của chúng theo ý thích của bạn.

import sagemaker
from sagemaker import hyperparameters sess = sagemaker.Session()
region = sess.boto_session.region_name # URI of sample training dataset
training_dataset_s3_path = f"s3:///jumpstart-cache-prod-{region}/training-datasets/tabular_multiclass/" # URI for output artifacts output_bucket = sess.default_bucket()
s3_output_location = f"s3://{output_bucket}/jumpstart-example-tabular-training/output" # Retrieve the default hyper-parameters for training
hyperparameters = hyperparameters.retrieve_default( model_id=train_model_id, model_version=train_model_version
) # [Optional] Override default hyperparameters with custom values
hyperparameters[ "num_boost_round"
] = "500" # The same hyperparameter is named as "iterations" for CatBoost

Cuối cùng, chúng tôi khởi tạo một SageMaker Estimator với tất cả các đầu vào đã truy xuất và khởi chạy công việc đào tạo với .fit, chuyển nó qua URI tập dữ liệu đào tạo của chúng tôi. Các entry_point tập lệnh được cung cấp được đặt tên transfer_learning.py (tương tự đối với các tác vụ và thuật toán khác) và kênh dữ liệu đầu vào được chuyển đến .fit phải được đặt tên training.

from sagemaker.estimator import Estimator
from sagemaker.utils import name_from_base # Unique training job name
training_job_name = name_from_base(f"built-in-example-{model_id}") # Create SageMaker Estimator instance
tc_estimator = Estimator( role=aws_role, image_uri=train_image_uri, source_dir=train_source_uri, model_uri=train_model_uri, entry_point="transfer_learning.py", instance_count=1, instance_type=training_instance_type, max_run=360000, hyperparameters=hyperparameters, output_path=s3_output_location,
) # Launch a SageMaker Training job by passing s3 path of the training data
tc_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Lưu ý rằng bạn có thể đào tạo các thuật toán tích hợp với SageMaker điều chỉnh mô hình tự động để chọn các siêu tham số tối ưu và cải thiện hơn nữa hiệu suất của mô hình.

Đào tạo thuật toán tích hợp bằng SageMaker JumpStart

Bạn cũng có thể đào tạo bất kỳ thuật toán tích hợp nào này bằng một vài cú nhấp chuột qua giao diện người dùng SageMaker JumpStart. JumpStart là một tính năng của SageMaker cho phép bạn đào tạo và triển khai các thuật toán tích hợp sẵn và các mô hình được đào tạo trước từ các khuôn khổ ML và trung tâm mô hình khác nhau thông qua giao diện đồ họa. Nó cũng cho phép bạn triển khai các giải pháp ML chính thức kết hợp các mô hình ML và các dịch vụ AWS khác nhau để giải quyết một trường hợp sử dụng được nhắm mục tiêu.

Để biết thêm thông tin, tham khảo Chạy phân loại văn bản với Amazon SageMaker JumpStart bằng cách sử dụng TensorFlow Hub và các mô hình Khuôn mặt ôm.

Kết luận

Trong bài đăng này, chúng tôi đã thông báo về việc ra mắt bốn thuật toán tích hợp mới mạnh mẽ cho ML trên tập dữ liệu dạng bảng hiện đã có trên SageMaker. Chúng tôi đã cung cấp mô tả kỹ thuật về các thuật toán này cũng như công việc đào tạo mẫu cho LightGBM bằng cách sử dụng SageMaker SDK.

Mang theo tập dữ liệu của riêng bạn và thử các thuật toán mới này trên SageMaker, đồng thời xem các sổ ghi chép mẫu để sử dụng các thuật toán tích hợp sẵn có trên GitHub.


Về các tác giả

Tiến sĩ Xin Huang là Nhà khoa học ứng dụng cho các thuật toán tích hợp sẵn của Amazon SageMaker JumpStart và Amazon SageMaker. Ông tập trung vào việc phát triển các thuật toán học máy có thể mở rộng. Mối quan tâm nghiên cứu của anh ấy là trong lĩnh vực xử lý ngôn ngữ tự nhiên, học sâu có thể giải thích được trên dữ liệu dạng bảng và phân tích mạnh mẽ phân nhóm không-thời gian phi tham số. Ông đã xuất bản nhiều bài báo trong các hội nghị ACL, ICDM, KDD và Hiệp hội Thống kê Hoàng gia: Tạp chí Series A.

Tiến sĩ Ashish Khetan là Nhà khoa học ứng dụng cao cấp với các thuật toán tích hợp sẵn của Amazon SageMaker JumpStart và Amazon SageMaker và giúp phát triển các thuật toán học máy. Ông là một nhà nghiên cứu tích cực về học máy và suy luận thống kê và đã xuất bản nhiều bài báo trong các hội nghị NeurIPS, ICML, ICLR, JMLR, ACL và EMNLP.

João Moura là Kiến trúc sư Giải pháp Chuyên gia về AI / ML tại Amazon Web Services. Ông chủ yếu tập trung vào các trường hợp sử dụng NLP và giúp khách hàng tối ưu hóa việc đào tạo và triển khai mô hình Deep Learning. Ông cũng là người tích cực đề xuất các giải pháp ML mã thấp và phần cứng chuyên dụng ML.

Dấu thời gian:

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