Vào tháng 2020 năm XNUMX, AWS công bố sự sẵn có chung của Khởi động Amazon SageMaker, một khả năng của Amazon SageMaker giúp bạn nhanh chóng và dễ dàng bắt đầu với học máy (ML). Vào tháng 2022 năm XNUMX, chúng tôi cũng công bố hỗ trợ cho các API trong JumpStart. JumpStart cung cấp khả năng tinh chỉnh bằng một cú nhấp chuột và triển khai nhiều mô hình được đào tạo trước trên các tác vụ ML phổ biến, cũng như lựa chọn các giải pháp đầu cuối giải quyết các vấn đề kinh doanh phổ biến. Các tính năng này loại bỏ những công việc nặng nhọc từ mỗi bước của quy trình ML, giúp việc phát triển các mô hình chất lượng cao trở nên đơn giản hơn và giảm thời gian triển khai.
Trong bài đăng này, chúng tôi trình bày cách chạy điều chỉnh mô hình tự động với JumpStart.
SageMaker điều chỉnh mô hình tự động
Theo truyền thống, các kỹ sư ML thực hiện phương pháp thử và sai để tìm ra bộ siêu tham số phù hợp. Thử nghiệm và lỗi liên quan đến việc chạy nhiều công việc tuần tự hoặc song song trong khi cung cấp các tài nguyên cần thiết để chạy thử nghiệm.
Với SageMaker điều chỉnh mô hình tự động, Các kỹ sư ML và nhà khoa học dữ liệu có thể giảm bớt công việc tốn nhiều thời gian là tối ưu hóa mô hình của họ và để SageMaker chạy thử nghiệm. SageMaker tận dụng tính đàn hồi của nền tảng AWS để chạy đồng thời và hiệu quả nhiều mô phỏng đào tạo trên một tập dữ liệu và tìm các siêu tham số tốt nhất cho một mô hình.
Điều chỉnh mô hình tự động SageMaker tìm ra phiên bản tốt nhất của mô hình bằng cách chạy nhiều công việc đào tạo trên tập dữ liệu của bạn bằng cách sử dụng thuật toán và các dãy siêu tham số mà bạn chỉ định. Sau đó, nó chọn các giá trị siêu tham số dẫn đến mô hình hoạt động tốt nhất, như được đo bằng số liệu mà bạn chọn.
Điều chỉnh mô hình tự động sử dụng một Bayesian (mặc định) hoặc một ngẫu nhiên chiến lược tìm kiếm để tìm các giá trị tốt nhất cho siêu tham số. Tìm kiếm Bayes coi điều chỉnh siêu tham số giống như một hồi quy vấn đề. Khi chọn các siêu tham số tốt nhất cho công việc đào tạo tiếp theo, nó sẽ xem xét mọi thứ mà nó biết về vấn đề cho đến nay và cho phép thuật toán khai thác các kết quả được biết đến tốt nhất.
Trong bài đăng này, chúng tôi sử dụng chiến lược tìm kiếm Bayes mặc định để trình bày các bước liên quan đến việc chạy điều chỉnh mô hình tự động với JumpStart bằng cách sử dụng ánh sángGBM mô hình.
JumpStart hiện hỗ trợ 10 máy tính xách tay mẫu có tính năng điều chỉnh mô hình tự động. Nó cũng hỗ trợ bốn thuật toán phổ biến để lập mô hình dữ liệu dạng bảng. Các nhiệm vụ và liên kết đến sổ tay mẫu của họ được tóm tắt trong bảng sau.
Nhiệm vụ | Người mẫu được đào tạo trước | Hỗ trợ tập dữ liệu tùy chỉnh | Các khung công tác được hỗ trợ | Sổ tay Ví dụ |
Phân loại hình ảnh | Vâng | Vâng | PyTorch, TenorFlow | Giới thiệu về JumpStart - Phân loại hình ảnh |
Phát hiện đối tượng | Vâng | Vâng | PyTorch, TensorFlow, MXNet | Giới thiệu về JumpStart - Phát hiện đối tượng |
Phân đoạn ngữ nghĩa | Vâng | Vâng | MX Net | Giới thiệu về JumpStart - Phân đoạn ngữ nghĩa |
Phân loại văn bản | Vâng | Vâng | TensorFlow | Giới thiệu về JumpStart - Phân loại văn bản |
Phân loại cặp câu | Vâng | Vâng | TensorFlow, ôm mặt | Giới thiệu về JumpStart - Phân loại cặp câu |
Trả lời câu hỏi | Vâng | Vâng | Kim tự tháp | Giới thiệu về JumpStart - Trả lời câu hỏi |
Phân loại theo bảng | Vâng | Vâng | LightGBM, CatBoost, XGBoost, Trình học tuyến tính | Giới thiệu về JumpStart - Phân loại theo bảng - LightGBM, CatBoost Giới thiệu về JumpStart - Phân loại theo bảng - XGBoost, Người học tuyến tính |
Hồi quy dạng bảng | Vâng | Vâng | LightGBM, CatBoost, XGBoost, Trình học tuyến tính | Giới thiệu về JumpStart - Hồi quy bảng - LightGBM, CatBoost Giới thiệu về JumpStart - Hồi quy dạng bảng - XGBoost, Linear Learner |
Tổng quan về giải pháp
Quy trình công việc kỹ thuật này cung cấp tổng quan về các tính năng khác nhau của Amazon Sagemaker và các bước cần thiết để tự động điều chỉnh mô hình JumpStart.
Trong các phần sau, chúng tôi cung cấp hướng dẫn từng bước về cách chạy điều chỉnh mô hình tự động với JumpStart bằng thuật toán LightGBM. Chúng tôi cung cấp một máy tính xách tay cho hướng dẫn này.
Chúng tôi đi qua các bước cấp cao sau:
- Truy xuất vùng chứa hình ảnh và mô hình được đào tạo trước JumpStart.
- Đặt siêu tham số tĩnh.
- Xác định phạm vi siêu tham số có thể điều chỉnh.
- Khởi tạo điều chỉnh mô hình tự động.
- Chạy công việc điều chỉnh.
- Triển khai mô hình tốt nhất tới một điểm cuối.
Truy xuất vùng chứa hình ảnh và mô hình được đào tạo trước JumpStart
Trong phần này, chúng tôi chọn mô hình phân loại LightGBM để tinh chỉnh. Chúng tôi sử dụng kiểu phiên bản ml.m5.xlarge mà trên đó mô hình được chạy. Sau đó, chúng tôi truy xuất vùng chứa Docker đào tạo, nguồn thuật toán đào tạo và mô hình được đào tạo trước. Xem đoạn mã sau:
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 pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(
model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)
Đặt siêu tham số tĩnh
Bây giờ chúng tôi truy xuất các siêu tham số mặc định cho mô hình LightGBM này, như được cấu hình sẵn bởi JumpStart. Chúng tôi cũng ghi đè num_boost_round
siêu tham số với một giá trị tùy chỉnh.
# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(
model_id=train_model_id, model_version=train_model_version
)
# [Optional] Override default hyperparameters with custom values
Xác định phạm vi siêu tham số có thể điều chỉnh
Tiếp theo, chúng tôi xác định các phạm vi siêu tham số là tối ưu hóa bằng cách điều chỉnh mô hình tự động. Chúng tôi xác định tên siêu tham số như mong đợi của mô hình và sau đó là phạm vi giá trị được thử cho siêu tham số này. Điều chỉnh mô hình tự động vẽ các mẫu (bằng max_jobs
tham số) từ không gian của siêu tham số, sử dụng kỹ thuật gọi là tìm kiếm Bayes. Đối với mỗi mẫu siêu tham số được vẽ, bộ chỉnh sẽ tạo một công việc đào tạo để đánh giá mô hình với cấu hình đó. Xem đoạn mã sau:
hyperparameter_ranges = {
"learning_rate": ContinuousParameter(1e-4, 1, scaling_type="Logarithmic"),
"num_boost_round": IntegerParameter(2, 30),
"early_stopping_rounds": IntegerParameter(2, 30),
"num_leaves": IntegerParameter(10, 50),
"feature_fraction": ContinuousParameter(0, 1),
"bagging_fraction": ContinuousParameter(0, 1),
"bagging_freq": IntegerParameter(1, 10),
"max_depth": IntegerParameter(5, 30),
"min_data_in_leaf": IntegerParameter(5, 50),
}
Khởi tạo điều chỉnh mô hình tự động
Chúng tôi bắt đầu bằng cách tạo Người định giá đối tượng với tất cả các nội dung cần thiết xác định công việc đào tạo, chẳng hạn như mô hình đào tạo trước, hình ảnh đào tạo và kịch bản đào tạo. Sau đó, chúng tôi xác định một Siêu tham sốTuner đối tượng tương tác với các API điều chỉnh siêu tham số của SageMaker.
Sản phẩm HyperparameterTuner
chấp nhận dưới dạng các tham số của đối tượng Công cụ ước tính, chỉ số mục tiêu mà dựa trên đó bộ siêu tham số tốt nhất được quyết định, tổng số công việc đào tạo (max_jobs
) để bắt đầu cho công việc điều chỉnh siêu tham số và các công việc đào tạo song song tối đa để chạy (max_parallel_jobs
). Các công việc đào tạo được chạy với thuật toán LightGBM và các giá trị siêu tham số có giá trị tối thiểu mlogloss
số liệu được chọn. Để biết thêm thông tin về cách định cấu hình điều chỉnh mô hình tự động, hãy xem Các phương pháp hay nhất để điều chỉnh siêu tham số.
# Create SageMaker Estimator instance
tabular_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,
) tuner = HyperparameterTuner(
estimator=tabular_estimator,
objective_metric_name="multi_logloss",
hyperparameter_ranges=hyperparameter_ranges,
metric_definitions=[{"Name": "multi_logloss", "Regex": "multi_logloss: ([0-9\.]+)"}],
strategy="Bayesian",
max_jobs=10,
max_parallel_jobs=2,
objective_type="Minimize",
base_tuning_job_name=training_job_name,
)
Trong mã trước, chúng tôi yêu cầu bộ điều chỉnh chạy nhiều nhất 10 thử nghiệm (max_jobs
) và chỉ hai thử nghiệm đồng thời tại một thời điểm (max_parallel_jobs
). Cả hai thông số này đều giúp bạn kiểm soát được chi phí và thời gian đào tạo.
Chạy công việc điều chỉnh
Để khởi chạy công việc điều chỉnh SageMaker, chúng tôi gọi phương thức phù hợp của đối tượng bộ điều chỉnh siêu tham số và chuyển Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) đường dẫn của dữ liệu đào tạo:
tuner.fit({"training": training_dataset_s3_path}, logs=True)
Trong khi điều chỉnh mô hình tự động tìm kiếm các siêu tham số tốt nhất, bạn có thể theo dõi tiến trình của chúng trên bảng điều khiển SageMaker hoặc trên amazoncloudwatch. Khi quá trình đào tạo hoàn tất, các cấu phần tinh chỉnh của mô hình tốt nhất sẽ được tải lên vị trí đầu ra của Amazon S3 được chỉ định trong cấu hình đào tạo.
Triển khai mô hình tốt nhất cho một điểm cuối
Khi công việc điều chỉnh hoàn tất, mô hình tốt nhất đã được chọn và lưu trữ trong Amazon S3. Bây giờ chúng ta có thể triển khai mô hình đó bằng cách gọi phương thức triển khai của HyperparameterTuner
đối tượng và truyền các tham số cần thiết, chẳng hạn như số lượng phiên bản được sử dụng cho điểm cuối đã tạo, loại của chúng, hình ảnh sẽ được triển khai và tập lệnh để chạy:
tuner.deploy(
initial_instance_count=1,
instance_type=inference_instance_type,
entry_point="inference.py",
image_uri=deploy_image_uri,
source_dir=deploy_source_uri,
endpoint_name=endpoint_name,
enable_network_isolation=True
)
Bây giờ chúng ta có thể kiểm tra điểm cuối đã tạo bằng cách đưa ra các yêu cầu suy luận. Bạn có thể làm theo phần còn lại của quy trình trong phần đi kèm máy tính xách tay.
Kết luận
Với việc điều chỉnh mô hình tự động trong SageMaker, bạn có thể tìm thấy phiên bản tốt nhất của mô hình của mình bằng cách chạy các công việc đào tạo trên tập dữ liệu được cung cấp với một trong các thuật toán được hỗ trợ. Điều chỉnh mô hình tự động cho phép bạn giảm thời gian điều chỉnh một mô hình bằng cách tự động tìm kiếm cấu hình siêu tham số tốt nhất trong phạm vi siêu tham số mà bạn chỉ định.
Trong bài đăng này, chúng tôi đã chỉ ra giá trị của việc chạy điều chỉnh mô hình tự động trên mô hình được đào tạo trước JumpStart bằng cách sử dụng các API SageMaker. Chúng tôi đã sử dụng thuật toán LightGBM và xác định tối đa 10 công việc đào tạo. Chúng tôi cũng cung cấp các liên kết đến sổ ghi chép ví dụ giới thiệu các khuôn khổ ML hỗ trợ tối ưu hóa mô hình JumpStart.
Để biết thêm chi tiết về cách tối ưu hóa mô hình JumpStart với điều chỉnh mô hình tự động, hãy tham khảo ví dụ của chúng tôi máy tính xách tay.
Lưu ý
Doug Mbaya là một kiến trúc sư Giải pháp Đối tác Cấp cao tập trung vào dữ liệu và phân tích. Doug hợp tác chặt chẽ với các đối tác AWS, giúp họ tích hợp dữ liệu và giải pháp phân tích trên đám mây.
Kruthi Jayasimha Rao là Kiến trúc sư Giải pháp Đối tác trong nhóm Scale-PSA. Kruthi tiến hành xác thực kỹ thuật cho các Đối tác cho phép họ tiến bộ trong Đường dẫn đối tác.
Giannis Mitropoulos là Kỹ sư phát triển phần mềm cho SageMaker Điều chỉnh mô hình tự động.
Tiến sĩ Ashish Khetan là một nhà khoa học ứng dụng cao cấp với Khởi động Amazon SageMaker và Các thuật toán tích hợp sẵn của 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 và ACL.
- Coinsmart. Sàn giao dịch Bitcoin và tiền điện tử tốt nhất Châu Âu.
- Platoblockchain. Web3 Metaverse Intelligence. Khuếch đại kiến thức. TRUY CẬP MIỄN PHÍ.
- CryptoHawk. Radar Altcoin. Dùng thử miễn phí.
- Nguồn: https://aws.amazon.com/blogs/machine-learning/run-automatic-model-tuning-with-amazon-sagemaker-jumpstart/
- "
- 10
- 100
- 2020
- 2022
- Giới thiệu
- ngang qua
- hoạt động
- Lợi thế
- thuật toán
- thuật toán
- Tất cả
- đàn bà gan dạ
- phân tích
- API
- Tài sản
- Tự động
- sẵn có
- AWS
- BEST
- được xây dựng trong
- kinh doanh
- cuộc gọi
- Chọn
- lựa chọn
- phân loại
- đám mây
- mã
- Chung
- hội nghị
- Cấu hình
- xem xét
- An ủi
- Container
- điều khiển
- tạo
- tạo ra
- tạo ra
- Tạo
- Hiện nay
- khách hàng
- dữ liệu
- quyết định
- chứng minh
- triển khai
- triển khai
- triển khai
- chi tiết
- phát triển
- Phát triển
- khác nhau
- phu bến tàu
- dễ dàng
- hiệu quả
- cho phép
- Điểm cuối
- ky sư
- Kỹ sư
- đánh giá
- tất cả mọi thứ
- ví dụ
- dự kiến
- thử nghiệm
- Khai thác
- Tính năng
- tìm thấy
- phù hợp với
- Tập trung
- theo
- tiếp theo
- xa hơn
- Tổng Quát
- cao
- giúp đỡ
- giúp
- chất lượng cao
- Độ đáng tin của
- Hướng dẫn
- HTTPS
- hình ảnh
- thực hiện
- thông tin
- tích hợp
- tham gia
- IT
- Việc làm
- việc làm
- phóng
- học tập
- nâng
- liên kết
- địa điểm thư viện nào
- máy
- học máy
- Làm
- Tháng Ba
- ML
- kiểu mẫu
- mô hình
- Màn Hình
- chi tiết
- hầu hết
- nhiều
- con số
- tối ưu hóa
- Tối ưu hóa
- tối ưu hóa
- đối tác
- Đối tác
- Đi qua
- nền tảng
- Phổ biến
- Vấn đề
- vấn đề
- quá trình
- cho
- cung cấp
- câu hỏi
- Mau
- giảm
- giảm
- yêu cầu
- cần phải
- Thông tin
- REST của
- Kết quả
- chạy
- chạy
- Nhà khoa học
- các nhà khoa học
- Tìm kiếm
- chọn
- định
- giới th
- Đơn giản
- So
- Phần mềm
- phát triển phần mềm
- giải pháp
- Giải pháp
- động SOLVE
- Không gian
- Bắt đầu
- bắt đầu
- thống kê
- là gắn
- Chiến lược
- hỗ trợ
- Hỗ trợ
- Hỗ trợ
- Mục tiêu
- nhiệm vụ
- nhóm
- Kỹ thuật
- thử nghiệm
- Thông qua
- thời gian
- mất thời gian
- Yêu sách
- Hội thảo
- thử nghiệm
- sử dụng
- giá trị
- nhiều
- trong khi
- ở trong
- công trinh