Cách Amazon Search chạy các dự án machine learning có quy mô lớn và linh hoạt với Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Cách Amazon Search vận hành các dự án máy học quy mô lớn, linh hoạt với Amazon SageMaker

Nếu bạn đã tìm kiếm một mặt hàng để mua trên amazon.com, bạn đã sử dụng dịch vụ Tìm kiếm của Amazon. Tại Amazon Search, chúng tôi chịu trách nhiệm về trải nghiệm tìm kiếm và khám phá cho khách hàng trên toàn thế giới. Về cơ bản, chúng tôi lập chỉ mục danh mục sản phẩm trên toàn thế giới, triển khai nhóm AWS có khả năng mở rộng cao và sử dụng công nghệ máy học nâng cao (ML) để so khớp các sản phẩm phù hợp và thú vị với mọi truy vấn của khách hàng.

Các nhà khoa học của chúng tôi thường xuyên đào tạo hàng nghìn mô hình ML để cải thiện chất lượng kết quả tìm kiếm. Hỗ trợ thử nghiệm quy mô lớn đưa ra những thách thức riêng của nó, đặc biệt là khi nói đến việc nâng cao năng suất của các nhà khoa học đào tạo các mô hình ML này.

Trong bài đăng này, chúng tôi chia sẻ cách chúng tôi xây dựng một hệ thống quản lý xung quanh Amazon SageMaker đào tạo công việc, cho phép các nhà khoa học của chúng tôi bắn và quên hàng nghìn thí nghiệm và được thông báo khi cần thiết. Giờ đây, họ có thể tập trung vào các nhiệm vụ có giá trị cao và giải quyết các lỗi thuật toán, tiết kiệm 60% thời gian.

Các thách thức

Tại Amazon Search, các nhà khoa học của chúng tôi giải quyết các vấn đề truy xuất thông tin bằng cách thử nghiệm và chạy nhiều công việc đào tạo mô hình ML trên SageMaker. Để theo kịp sự đổi mới của nhóm chúng tôi, độ phức tạp và số lượng công việc đào tạo của các mô hình của chúng tôi đã tăng lên theo thời gian. Các công việc đào tạo của SageMaker cho phép chúng tôi giảm thời gian và chi phí để đào tạo và điều chỉnh các mô hình đó trên quy mô lớn mà không cần quản lý cơ sở hạ tầng.

Giống như mọi thứ trong các dự án ML quy mô lớn như vậy, các công việc đào tạo có thể thất bại do nhiều yếu tố khác nhau. Bài đăng này tập trung vào tình trạng thiếu dung lượng và hỏng hóc do lỗi thuật toán.

Chúng tôi đã thiết kế một kiến ​​trúc với hệ thống quản lý công việc để dung nạp và giảm khả năng thất bại của công việc do không có năng lực hoặc lỗi thuật toán. Nó cho phép các nhà khoa học bỏ qua hàng nghìn công việc đào tạo, tự động thử lại chúng khi thất bại tạm thời và nhận thông báo về sự thành công hoặc thất bại nếu cần.

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

Trong sơ đồ giải pháp sau, chúng tôi sử dụng các công việc đào tạo SageMaker làm đơn vị cơ bản của giải pháp của chúng tôi. Đó là, một công việc đại diện cho việc đào tạo đầu cuối của một mô hình ML.

Quy trình làm việc cấp cao của giải pháp này như sau:

  1. Các nhà khoa học gọi một API để gửi một công việc mới cho hệ thống.
  2. Công việc được đăng ký với New trạng thái trong kho siêu dữ liệu.
  3. Bộ lập lịch công việc truy xuất không đồng bộ New các công việc từ kho siêu dữ liệu, phân tích dữ liệu đầu vào của họ và cố gắng khởi chạy các công việc đào tạo SageMaker cho từng công việc. Trạng thái của họ thay đổi thành Launched or Failed tùy theo thành công.
  4. Một màn hình kiểm tra tiến độ công việc định kỳ và báo cáo Completed, Failed, hoặc là InProgress trạng thái trong kho siêu dữ liệu.
  5. Trình thông báo được kích hoạt để báo cáo CompletedFailed việc làm cho các nhà khoa học.

Việc duy trì lịch sử công việc trong kho siêu dữ liệu cũng cho phép nhóm của chúng tôi tiến hành phân tích xu hướng và theo dõi tiến độ dự án.

Giải pháp lập lịch công việc này sử dụng các thành phần không máy chủ được ghép nối lỏng lẻo dựa trên AWS Lambda, Máy phát điện Amazon, Dịch vụ thông báo đơn giản của Amazon (Amazon SNS) và Sự kiện Amazon. Điều này đảm bảo khả năng mở rộng theo chiều ngang, cho phép các nhà khoa học của chúng tôi khởi động hàng nghìn công việc với nỗ lực vận hành tối thiểu. Sơ đồ sau minh họa kiến ​​trúc không máy chủ.

Tổng quan về kiến ​​trúc của giải pháp của chúng tôi

Trong các phần tiếp theo, chúng ta sẽ đi vào chi tiết hơn về từng dịch vụ và các thành phần của nó.

DynamoDB làm kho siêu dữ liệu cho các lần chạy công việc

Tính dễ sử dụng và khả năng mở rộng của DynamoDB khiến nó trở thành một lựa chọn tự nhiên để duy trì siêu dữ liệu công việc trong bảng DynamoDB. Giải pháp này lưu trữ một số thuộc tính của các công việc do các nhà khoa học đệ trình, do đó giúp theo dõi tiến độ và điều phối quy trình làm việc. Các thuộc tính quan trọng nhất như sau:

  • Id công việc - Một ID công việc duy nhất. Điều này có thể được tạo tự động hoặc do nhà khoa học cung cấp.
  • Trạng thái công việc - Tình trạng của công việc.
  • Công việcArgs - Các đối số khác cần thiết để tạo công việc đào tạo, chẳng hạn như đường dẫn đầu vào trong Amazon S3, URI hình ảnh đào tạo, v.v. Để có danh sách đầy đủ các tham số cần thiết để tạo một công việc đào tạo, hãy tham khảo TạoCông việc Đào tạo.

Lambda cho logic cốt lõi

Chúng tôi sử dụng ba dựa trên container Lambda có chức năng sắp xếp quy trình công việc:

  • Gửi công việc - Chức năng này được các nhà khoa học gọi ra khi họ cần khởi động công việc mới. Nó hoạt động như một API cho sự đơn giản. Bạn cũng có thể đặt trước nó với Cổng API Amazon, Nếu cần thiết. Hàm này đăng ký các công việc trong bảng DynamoDB.
  • Khởi chạy việc làm - Chức năng này truy xuất định kỳ New công việc từ bảng DynamoDB và khởi chạy chúng bằng SageMaker TạoCông việc Đào tạo yêu cầu. Nó thử lại các lỗi tạm thời, chẳng hạn như ResourceLimitExceededCapacityError, khả năng phục hồi của thiết bị vào hệ thống. Sau đó, nó cập nhật trạng thái công việc như Launched or Failed tùy theo thành công.
  • Giám sát công việc - Chức năng này theo dõi định kỳ tiến độ công việc bằng cách sử dụng Mô tả Công việc Đào tạo và cập nhật bảng DynamoDB cho phù hợp. Nó thăm dò ý kiến Failed công việc từ siêu dữ liệu và đánh giá xem chúng có nên được gửi lại hay đánh dấu là không thành công. Nó cũng xuất bản tin nhắn thông báo cho các nhà khoa học khi công việc của họ đạt đến trạng thái cuối.

EventBridge để lập lịch

Chúng tôi sử dụng EventBridge để chạy các chức năng Labda Launch Jobs và Monitor Jobs theo lịch trình. Để biết thêm thông tin, hãy tham khảo Hướng dẫn: Lên lịch các chức năng AWS Lambda bằng EventBridge.

Ngoài ra, bạn có thể sử dụng Luồng Amazon DynamoDB cho các trình kích hoạt. Để biết thêm thông tin, hãy xem Luồng DynamoDB và trình kích hoạt AWS Lambda.

Thông báo với Amazon SNS

Các nhà khoa học của chúng tôi là thông báo qua email bằng Amazon SNS khi công việc của họ đạt đến trạng thái cuối (Failed sau số lần thử lại tối đa), Completed, hoặc là Stopped.

Kết luận

Trong bài đăng này, chúng tôi đã chia sẻ cách Amazon Search thêm khả năng phục hồi cho khối lượng công việc đào tạo mô hình ML bằng cách lên lịch cho chúng và thử lại chúng khi thiếu dung lượng hoặc lỗi thuật toán. Chúng tôi đã sử dụng các hàm Lambda cùng với bảng DynamoDB làm kho siêu dữ liệu trung tâm để sắp xếp toàn bộ quy trình làm việc.

Một hệ thống lập lịch trình như vậy cho phép các nhà khoa học gửi công việc của họ và quên chúng đi. Điều này giúp tiết kiệm thời gian và cho phép họ tập trung vào việc viết các mô hình tốt hơn.

Để tiến xa hơn trong quá trình học tập của mình, bạn có thể truy cập SageMaker tuyệt vời và tìm ở một nơi duy nhất, tất cả các tài nguyên có liên quan và cập nhật cần thiết để làm việc với SageMaker.


Về các tác giả

Cách Amazon Search chạy các dự án machine learning có quy mô lớn và linh hoạt với Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Lạc Chiếu Vương là Kỹ sư phần mềm tại Amazon Search. Ông tập trung vào các hệ thống phân tán có thể mở rộng và công cụ tự động hóa trên đám mây để đẩy nhanh tốc độ đổi mới khoa học cho các ứng dụng Máy học.

Cách Amazon Search chạy các dự án machine learning có quy mô lớn và linh hoạt với Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Ishan Bhatt là Kỹ sư phần mềm trong nhóm Amazon Prime Video. Anh ấy chủ yếu làm việc trong không gian MLOps và có kinh nghiệm xây dựng các sản phẩm MLOps trong 4 năm qua bằng cách sử dụng Amazon SageMaker.

Cách Amazon Search chạy các dự án machine learning có quy mô lớn và linh hoạt với Amazon SageMaker PlatoBlockchain Data Intelligence. 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.

Cách Amazon Search chạy các dự án machine learning có quy mô lớn và linh hoạt với Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Eiman Elnahrawy là Kỹ sư phần mềm chính tại Amazon Search, dẫn đầu các nỗ lực về tăng tốc, mở rộng quy mô và tự động hóa Học máy. Chuyên môn của cô trải dài trên nhiều lĩnh vực, bao gồm Học máy, Hệ thống phân tán và Cá nhân hóa.

Cách Amazon Search chạy các dự án machine learning có quy mô lớn và linh hoạt với Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Sofian Hamiti là một Kiến trúc sư Giải pháp chuyên gia về AI / ML tại AWS. Anh ấy giúp khách hàng trong các ngành tăng tốc hành trình AI / ML của họ bằng cách giúp họ xây dựng và vận hành các giải pháp học máy từ đầu đến cuối.

Romi DattaTiến sĩ Romi Datta  là Giám đốc Cấp cao của Quản lý Sản phẩm trong nhóm Amazon SageMaker chịu trách nhiệm đào tạo, xử lý và lưu trữ tính năng. Anh ấy đã làm việc tại AWS hơn 4 năm, giữ một số vai trò lãnh đạo quản lý sản phẩm trong SageMaker, S3 và IoT. Trước AWS, ông đã làm việc trong nhiều vai trò lãnh đạo quản lý sản phẩm, kỹ thuật và vận hành tại IBM, Texas Instruments và Nvidia. Anh ấy có bằng MS và Ph.D. về Kỹ thuật Điện và Máy tính của Đại học Texas tại Austin, và bằng MBA của Trường Kinh doanh Booth thuộc Đại học Chicago.

Cách Amazon Search chạy các dự án machine learning có quy mô lớn và linh hoạt với Amazon SageMaker PlatoBlockchain Data Intelligence. 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.

Dấu thời gian:

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