Xây dựng quy trình MLOps từ đầu đến cuối để kiểm tra chất lượng hình ảnh ở rìa – Phần 1 | Dịch vụ web của Amazon

Xây dựng quy trình MLOps từ đầu đến cuối để kiểm tra chất lượng hình ảnh ở rìa – Phần 1 | Dịch vụ web của Amazon

Việc triển khai thành công mô hình học máy (ML) trong môi trường sản xuất phụ thuộc rất nhiều vào quy trình ML từ đầu đến cuối. Mặc dù việc phát triển một hệ thống như vậy có thể là một thách thức nhưng nó càng trở nên phức tạp hơn khi giải quyết một vấn đề trường hợp sử dụng Edge ML. Học máy ở biên là một khái niệm mang lại khả năng chạy các mô hình ML cục bộ cho các thiết bị biên. Để triển khai, giám sát và duy trì các mô hình này ở biên, cần có một đường dẫn MLOps mạnh mẽ. Đường dẫn MLOps cho phép tự động hóa toàn bộ vòng đời ML từ ghi nhãn dữ liệu đến đào tạo và triển khai mô hình.

Việc triển khai quy trình MLOps ở biên sẽ gây ra sự phức tạp bổ sung khiến cho quá trình tự động hóa, tích hợp và bảo trì trở nên khó khăn hơn do chi phí hoạt động liên quan tăng lên. Tuy nhiên, việc sử dụng các dịch vụ có mục đích như Amazon SageMakerCỏ xanh AWS IoT cho phép bạn giảm đáng kể nỗ lực này. Trong loạt bài này, chúng tôi sẽ hướng dẫn bạn quy trình kiến ​​trúc và xây dựng quy trình MLOps đầu cuối tích hợp cho trường hợp sử dụng thị giác máy tính ở biên bằng cách sử dụng SageMaker, AWS IoT Greengrass và Bộ công cụ phát triển đám mây AWS (AWS CDK).

Bài đăng này tập trung vào việc thiết kế kiến ​​trúc đường ống MLOps tổng thể; Phần 2Phần 3 của loạt bài này tập trung vào việc thực hiện các thành phần riêng lẻ. Chúng tôi đã cung cấp cách triển khai mẫu trong tài liệu đi kèm Kho GitHub để bạn thử sức mình. Nếu bạn mới bắt đầu với MLOps ở biên trên AWS, hãy tham khảo MLOps vượt trội với Amazon SageMaker Edge Manager và AWS IoT Greengrass để có cái nhìn tổng quan và kiến ​​trúc tham khảo.

Ca sử dụng: Kiểm tra chất lượng thẻ kim loại

Là một kỹ sư ML, điều quan trọng là phải hiểu trường hợp kinh doanh mà bạn đang thực hiện. Vì vậy, trước khi đi sâu vào kiến ​​trúc đường dẫn MLOps, hãy xem trường hợp sử dụng mẫu cho bài đăng này. Hãy tưởng tượng một dây chuyền sản xuất của một nhà sản xuất khắc thẻ kim loại để tạo thẻ hành lý theo yêu cầu. Quá trình đảm bảo chất lượng rất tốn kém vì các thẻ kim loại thô cần được kiểm tra thủ công để phát hiện các khuyết tật như vết trầy xước. Để làm cho quy trình này hiệu quả hơn, chúng tôi sử dụng ML để phát hiện sớm các thẻ bị lỗi trong quy trình. Điều này giúp tránh những sai sót tốn kém ở các giai đoạn sau của quá trình sản xuất. Mô hình phải xác định các khiếm khuyết có thể xảy ra như vết trầy xước trong thời gian gần như thực và đánh dấu chúng. Trong môi trường sản xuất, bạn thường phải đối mặt với tình trạng không có kết nối hoặc băng thông bị hạn chế và độ trễ tăng lên. Do đó, chúng tôi muốn triển khai giải pháp ML tiên tiến để kiểm tra chất lượng hình ảnh có thể chạy suy luận cục bộ tại xưởng sản xuất và giảm các yêu cầu liên quan đến kết nối. Để giữ cho ví dụ của chúng tôi đơn giản, chúng tôi huấn luyện một mô hình đánh dấu các vết xước được phát hiện bằng các hộp giới hạn. Hình ảnh sau đây là ví dụ về thẻ từ tập dữ liệu của chúng tôi có ba vết xước được đánh dấu.

Thẻ kim loại có vết trầy xước

Xác định kiến ​​trúc đường ống

Hiện tại, chúng tôi đã hiểu rõ hơn về trường hợp sử dụng của mình và vấn đề ML cụ thể mà chúng tôi muốn giải quyết, xoay quanh việc phát hiện đối tượng ở rìa. Bây giờ là lúc phác thảo kiến ​​trúc cho quy trình MLOps của chúng tôi. Ở giai đoạn này, chúng tôi chưa xem xét các công nghệ hoặc dịch vụ cụ thể mà thay vào đó là các thành phần cấp cao trong quy trình của chúng tôi. Để nhanh chóng đào tạo lại và triển khai, chúng tôi cần tự động hóa toàn bộ quy trình từ đầu đến cuối: từ ghi nhãn dữ liệu, đào tạo, suy luận. Tuy nhiên, có một số thách thức khiến việc thiết lập quy trình cho trường hợp biên trở nên đặc biệt khó khăn:

  • Xây dựng các phần khác nhau của quá trình này đòi hỏi các bộ kỹ năng khác nhau. Ví dụ: đào tạo và ghi nhãn dữ liệu tập trung mạnh vào khoa học dữ liệu, việc triển khai biên cần có chuyên gia về Internet of Things (IoT) và việc tự động hóa toàn bộ quy trình thường được thực hiện bởi người có bộ kỹ năng DevOps.
  • Tùy thuộc vào tổ chức của bạn, toàn bộ quá trình này thậm chí có thể được nhiều nhóm triển khai. Đối với trường hợp sử dụng của chúng tôi, chúng tôi đang làm việc với giả định rằng các nhóm riêng biệt chịu trách nhiệm gắn nhãn, đào tạo và triển khai.
  • Nhiều vai trò và bộ kỹ năng hơn có nghĩa là các yêu cầu khác nhau khi nói đến công cụ và quy trình. Ví dụ: các nhà khoa học dữ liệu có thể muốn theo dõi và làm việc với môi trường máy tính xách tay quen thuộc của họ. Các kỹ sư MLOps muốn làm việc bằng cách sử dụng cơ sở hạ tầng dưới dạng công cụ mã (IaC) và có thể quen thuộc hơn với Bảng điều khiển quản lý AWS.

Điều này có ý nghĩa gì đối với kiến ​​trúc đường ống của chúng tôi?

Đầu tiên, điều quan trọng là phải xác định rõ ràng các thành phần chính của hệ thống đầu cuối cho phép các nhóm khác nhau làm việc độc lập. Thứ hai, phải xác định rõ các giao diện được xác định rõ ràng giữa các nhóm để nâng cao hiệu quả cộng tác. Các giao diện này giúp giảm thiểu sự gián đoạn giữa các nhóm, cho phép họ sửa đổi các quy trình nội bộ của mình khi cần miễn là họ tuân thủ các giao diện đã xác định. Sơ đồ sau đây minh họa điều này có thể trông như thế nào đối với quy trình thị giác máy tính của chúng tôi.

Viết nguệch ngoạc trong quy trình MLOps

Hãy xem xét chi tiết kiến ​​trúc tổng thể của đường dẫn MLOps:

  1. Quá trình này bắt đầu bằng việc thu thập các hình ảnh thô của thẻ kim loại, được chụp bằng thiết bị camera biên trong môi trường sản xuất để tạo thành tập dữ liệu huấn luyện ban đầu.
  2. Bước tiếp theo liên quan đến việc dán nhãn cho những hình ảnh này và đánh dấu các lỗi bằng cách sử dụng các hộp giới hạn. Điều cần thiết là phải phiên bản tập dữ liệu được gắn nhãn, đảm bảo khả năng truy xuất nguồn gốc và trách nhiệm giải trình đối với dữ liệu đào tạo được sử dụng.
  3. Sau khi có tập dữ liệu được gắn nhãn, chúng tôi có thể tiến hành đào tạo, tinh chỉnh, đánh giá và tạo phiên bản cho mô hình của mình.
  4. Khi hài lòng với hiệu suất mô hình của mình, chúng tôi có thể triển khai mô hình đó trên một thiết bị biên và chạy các suy luận trực tiếp ở biên.
  5. Trong khi mô hình hoạt động trong quá trình sản xuất, thiết bị camera biên tạo ra dữ liệu hình ảnh có giá trị chứa các khiếm khuyết và trường hợp biên chưa từng thấy trước đó. Chúng tôi có thể sử dụng dữ liệu này để nâng cao hơn nữa hiệu suất của mô hình. Để thực hiện điều này, chúng tôi lưu hình ảnh mà mô hình dự đoán với độ tin cậy thấp hoặc đưa ra dự đoán sai. Những hình ảnh này sau đó được thêm lại vào tập dữ liệu thô của chúng tôi, bắt đầu lại toàn bộ quá trình.

Điều quan trọng cần lưu ý là dữ liệu hình ảnh thô, tập dữ liệu được gắn nhãn và mô hình được đào tạo đóng vai trò là các giao diện được xác định rõ ràng giữa các quy trình riêng biệt. Các kỹ sư và nhà khoa học dữ liệu của MLOps có thể linh hoạt lựa chọn các công nghệ trong quy trình của họ miễn là họ tạo ra các tạo phẩm này một cách nhất quán. Điều quan trọng nhất là chúng tôi đã thiết lập được một vòng phản hồi khép kín. Những dự đoán bị lỗi hoặc có độ tin cậy thấp được đưa ra trong quá trình sản xuất có thể được sử dụng để thường xuyên bổ sung tập dữ liệu của chúng tôi cũng như tự động đào tạo lại và nâng cao mô hình.

Kiến trúc mục tiêu

Bây giờ kiến ​​trúc cấp cao đã được thiết lập, đã đến lúc đi sâu hơn một cấp và xem cách chúng ta có thể xây dựng kiến ​​trúc này bằng các dịch vụ AWS. Lưu ý rằng kiến ​​trúc hiển thị trong bài đăng này giả định rằng bạn muốn có toàn quyền kiểm soát toàn bộ quy trình khoa học dữ liệu. Tuy nhiên, nếu bạn mới bắt đầu kiểm tra chất lượng ở biên, chúng tôi khuyên bạn nên Amazon Lookout cho Tầm nhìn. Nó cung cấp một cách để đào tạo mô hình kiểm tra chất lượng của riêng bạn mà không cần phải xây dựng, duy trì hoặc hiểu mã ML. Để biết thêm thông tin, hãy tham khảo Amazon Lookout for Vision hiện hỗ trợ kiểm tra trực quan các lỗi sản phẩm ở rìa.

Tuy nhiên, nếu bạn muốn có toàn quyền kiểm soát, sơ đồ sau đây sẽ cho thấy một kiến ​​trúc trông như thế nào.

Kiến trúc đường ống MLOps

Tương tự như trước đây, hãy xem từng bước quy trình làm việc và xác định dịch vụ AWS nào phù hợp với yêu cầu của chúng tôi:

  1. Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) được sử dụng để lưu trữ dữ liệu hình ảnh thô vì nó cung cấp cho chúng tôi giải pháp lưu trữ với chi phí thấp.
  2. Quy trình ghi nhãn được sắp xếp bằng cách sử dụng Chức năng bước AWS, một công cụ quy trình làm việc không có máy chủ giúp dễ dàng sắp xếp các bước của quy trình ghi nhãn. Là một phần của quy trình làm việc này, chúng tôi sử dụng Sự thật về mặt đất của Amazon SageMaker để tự động hóa hoàn toàn việc ghi nhãn bằng cách sử dụng các công việc ghi nhãn và lực lượng lao động do con người quản lý. AWS Lambda được sử dụng để chuẩn bị dữ liệu, bắt đầu công việc ghi nhãn và lưu trữ nhãn trong Cửa hàng tính năng Amazon SageMaker.
  3. Cửa hàng tính năng SageMaker lưu trữ nhãn. Nó cho phép chúng tôi quản lý và chia sẻ tập trung các tính năng của mình, đồng thời cung cấp cho chúng tôi khả năng lập phiên bản dữ liệu tích hợp, giúp hệ thống của chúng tôi mạnh mẽ hơn.
  4. Chúng tôi điều phối quá trình xây dựng mô hình và đào tạo bằng cách sử dụng Đường ống Amazon SageMaker. Nó tích hợp với các tính năng khác của SageMaker được yêu cầu thông qua các bước tích hợp sẵn. Công việc đào tạo SageMaker được sử dụng để tự động hóa việc đào tạo mô hình và SageMaker Xử lý công việc được sử dụng để chuẩn bị dữ liệu và đánh giá hiệu suất của mô hình. Trong ví dụ này, chúng tôi đang sử dụng Siêu phân tích YOLOv8 Kiến trúc mô hình và gói Python để huấn luyện và xuất mô hình phát hiện đối tượng sang ONNX Định dạng mô hình ML cho tính di động.
  5. Nếu hiệu suất có thể chấp nhận được, mô hình đã đào tạo sẽ được đăng ký vào Cơ quan đăng ký mô hình Amazon SageMaker kèm theo số phiên bản gia tăng. Nó hoạt động như giao diện của chúng tôi giữa các bước đào tạo mô hình và triển khai biên. Chúng tôi cũng quản lý trạng thái phê duyệt của các mô hình tại đây. Tương tự như các dịch vụ khác được sử dụng, nó được quản lý hoàn toàn nên chúng tôi không phải lo việc vận hành cơ sở hạ tầng của riêng mình.
  6. Quy trình triển khai biên được tự động hóa bằng Step Functions, tương tự như quy trình ghi nhãn. Chúng ta có thể sử dụng tích hợp API của Step Functions để dễ dàng gọi các API dịch vụ AWS cần thiết khác nhau như AWS IoT Greengrass để tạo các thành phần mô hình mới và sau đó triển khai các thành phần đó tới thiết bị biên.
  7. AWS IoT Greengrass được sử dụng làm môi trường thời gian chạy của thiết bị biên. Nó quản lý vòng đời triển khai cho mô hình và các thành phần suy luận của chúng tôi ở biên. Nó cho phép chúng tôi dễ dàng triển khai các phiên bản mới của mô hình và các thành phần suy luận bằng cách sử dụng các lệnh gọi API đơn giản. Ngoài ra, các mô hình ML ở biên thường không chạy riêng lẻ; chúng ta có thể sử dụng nhiều cách khác nhau AWScộng đồng cung cấp các thành phần của AWS IoT Greengrass để kết nối với các dịch vụ khác.

Kiến trúc được phác thảo giống với kiến ​​trúc cấp cao của chúng tôi được trình bày trước đó. Amazon S3, SageMaker Feature Store và SageMaker Model Register đóng vai trò là giao diện giữa các quy trình khác nhau. Để giảm thiểu nỗ lực chạy và vận hành giải pháp, chúng tôi sử dụng các dịch vụ được quản lý và không có máy chủ bất cứ khi nào có thể.

Sáp nhập vào hệ thống CI/CD mạnh mẽ

Các bước ghi nhãn dữ liệu, đào tạo mô hình và triển khai biên là cốt lõi của giải pháp của chúng tôi. Do đó, bất kỳ thay đổi nào liên quan đến mã hoặc dữ liệu cơ bản trong bất kỳ phần nào trong số đó sẽ kích hoạt một lần chạy mới của toàn bộ quy trình điều phối. Để đạt được điều này, chúng tôi cần tích hợp quy trình này vào hệ thống CI/CD cho phép chúng tôi tự động triển khai các thay đổi về mã và cơ sở hạ tầng từ kho lưu trữ mã đã được phiên bản vào sản xuất. Tương tự như kiến ​​trúc trước đó, quyền tự chủ của nhóm là một khía cạnh quan trọng ở đây. Sơ đồ sau đây cho thấy điều này sẽ trông như thế nào khi sử dụng dịch vụ AWS.

Đường ống CI / CD

Hãy cùng tìm hiểu kiến ​​trúc CI/CD:

  1. Cam kết mã AWS hoạt động như kho lưu trữ Git của chúng tôi. Để đơn giản, trong mẫu được cung cấp, chúng tôi đã tách các phần riêng biệt (gắn nhãn, đào tạo mô hình, triển khai biên) thông qua các thư mục con trong một kho lưu trữ git duy nhất. Trong tình huống thực tế, mỗi nhóm có thể sử dụng các kho lưu trữ khác nhau cho từng bộ phận.
  2. Việc triển khai cơ sở hạ tầng được tự động hóa bằng AWS CDK và mỗi bộ phận (gắn nhãn, đào tạo và biên) đều có ứng dụng AWS CDK riêng để cho phép triển khai độc lập.
  3. Tính năng đường dẫn AWS CDK sử dụng Đường ống dẫn mã AWS để tự động hóa cơ sở hạ tầng và triển khai mã.
  4. AWS CDK triển khai hai quy trình mã cho mỗi bước: quy trình nội dung và quy trình công việc. Chúng tôi đã tách quy trình công việc khỏi việc triển khai nội dung để cho phép chúng tôi bắt đầu quy trình công việc riêng biệt trong trường hợp không có thay đổi nội dung nào (ví dụ: khi có hình ảnh mới để đào tạo).
    • Quy trình mã nội dung triển khai tất cả cơ sở hạ tầng cần thiết để quy trình làm việc chạy thành công, chẳng hạn như Quản lý truy cập và nhận dạng AWS (IAM), hàm Lambda và hình ảnh vùng chứa được sử dụng trong quá trình đào tạo.
    • Quy trình mã quy trình công việc chạy quy trình ghi nhãn, đào tạo hoặc triển khai biên thực tế.
  5. Quy trình nội dung được tự động kích hoạt theo cam kết cũng như khi quy trình công việc trước đó hoàn tất.
  6. Toàn bộ quá trình được kích hoạt theo lịch trình bằng cách sử dụng một Sự kiện Amazon quy định về đào tạo lại thường xuyên.

Với việc tích hợp CI/CD, toàn bộ chuỗi từ đầu đến cuối hiện đã hoàn toàn tự động. Quy trình được kích hoạt bất cứ khi nào mã thay đổi trong kho git của chúng tôi cũng như theo lịch trình để phù hợp với những thay đổi dữ liệu.

Suy nghĩ trước

Kiến trúc giải pháp được mô tả đại diện cho các thành phần cơ bản để xây dựng đường dẫn MLOps từ đầu đến cuối ở biên. Tuy nhiên, tùy thuộc vào yêu cầu của bạn, bạn có thể nghĩ đến việc thêm chức năng bổ sung. Sau đây là một số ví dụ:

Kết luận

Trong bài đăng này, chúng tôi đã phác thảo kiến ​​trúc xây dựng quy trình MLOps từ đầu đến cuối nhằm kiểm tra chất lượng hình ảnh ở biên bằng cách sử dụng dịch vụ AWS. Kiến trúc này hợp lý hóa toàn bộ quy trình, bao gồm ghi nhãn dữ liệu, phát triển mô hình và triển khai biên, cho phép chúng tôi đào tạo và triển khai các phiên bản mới của mô hình một cách nhanh chóng và đáng tin cậy. Với các dịch vụ không có máy chủ và được quản lý, chúng tôi có thể hướng sự tập trung của mình vào việc mang lại giá trị kinh doanh thay vì quản lý cơ sở hạ tầng.

In Phần 2 Trong loạt bài này, chúng ta sẽ nghiên cứu sâu hơn một cấp độ và xem xét việc triển khai kiến ​​trúc này một cách chi tiết hơn, cụ thể là ghi nhãn và xây dựng mô hình. Nếu bạn muốn chuyển thẳng sang mã, bạn có thể xem phần đính kèm Repo GitHub.


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

Michael RothMichael Roth là Kiến trúc sư giải pháp cấp cao tại AWS, hỗ trợ các khách hàng Sản xuất tại Đức giải quyết các thách thức kinh doanh của họ thông qua công nghệ AWS. Ngoài công việc và gia đình, anh ấy còn quan tâm đến xe thể thao và thích cà phê Ý.

Jörg WöhrleJörg Wöhrle là Kiến trúc sư giải pháp tại AWS, làm việc với các khách hàng sản xuất ở Đức. Với niềm đam mê tự động hóa, Joerg đã từng làm việc với tư cách là nhà phát triển phần mềm, kỹ sư DevOps và Kỹ sư về độ tin cậy của trang web trong thời gian trước AWS. Ngoài đám mây, anh ấy là một người chạy bộ đầy tham vọng và tận hưởng khoảng thời gian vui vẻ bên gia đình. Vì vậy, nếu bạn có một thử thách DevOps hoặc muốn chạy bộ: hãy cho anh ấy biết.

Johannes LangerJohannes Langer là Kiến trúc sư giải pháp cấp cao tại AWS, làm việc với các khách hàng doanh nghiệp ở Đức. Johannes đam mê áp dụng học máy để giải quyết các vấn đề kinh doanh thực tế. Trong cuộc sống cá nhân của mình, Johannes thích thực hiện các dự án cải tạo nhà cửa và dành thời gian ở ngoài trời cùng gia đình.

Dấu thời gian:

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