Trong bài đăng này, chúng tôi chứng minh Kubeflow trên AWS (một bản phân phối AWS dành riêng cho Kubeflow) và giá trị mà nó thêm vào so với Kubeflow mã nguồn mở thông qua việc tích hợp các dịch vụ AWS dành cho doanh nghiệp, có nguồn gốc từ đám mây, được tối ưu hóa cao.
Kubeflow là nền tảng máy học (ML) mã nguồn mở dành riêng cho việc triển khai quy trình công việc ML trên Kubernetes đơn giản, di động và có thể mở rộng. Kubeflow cung cấp nhiều thành phần, bao gồm bảng điều khiển trung tâm, sổ ghi chép Jupyter cho nhiều người dùng, Đường ống Kubeflow, KFServing và Katib, cũng như các nhà khai thác đào tạo phân tán cho TensorFlow, PyTorch, MXNet và XGBoost, để xây dựng quy trình làm việc ML đơn giản, có thể mở rộng và di động .
AWS gần đây đã ra mắt Kubeflow v1.4 như một phần của bản phân phối Kubeflow của riêng mình (được gọi là Kubeflow trên AWS), hợp lý hóa các nhiệm vụ khoa học dữ liệu và giúp xây dựng các hệ thống ML có độ tin cậy cao, an toàn, di động và có thể mở rộng với chi phí hoạt động giảm thiểu thông qua tích hợp với các dịch vụ được AWS quản lý . Bạn có thể sử dụng bản phân phối Kubeflow này để xây dựng hệ thống ML dựa trên Dịch vụ Kubernetes đàn hồi của Amazon (Amazon EKS) để xây dựng, đào tạo, điều chỉnh và triển khai các mô hình ML cho nhiều trường hợp sử dụng khác nhau, bao gồm thị giác máy tính, xử lý ngôn ngữ tự nhiên, dịch giọng nói và mô hình tài chính.
Những thách thức với Kubeflow mã nguồn mở
Khi bạn sử dụng dự án Kubeflow mã nguồn mở, nó triển khai tất cả các thành phần mặt phẳng điều khiển và mặt phẳng dữ liệu Kubeflow trên các nút công nhân Kubernetes. Các dịch vụ thành phần Kubeflow được triển khai như một phần của mặt phẳng điều khiển Kubeflow và tất cả các triển khai tài nguyên liên quan đến Jupyter, đào tạo mô hình, điều chỉnh và lưu trữ đều được triển khai trên mặt phẳng dữ liệu Kubeflow. Mặt phẳng điều khiển Kubeflow và mặt phẳng dữ liệu có thể chạy trên các nút công nhân Kubernetes giống nhau hoặc khác nhau. Bài đăng này tập trung vào các thành phần mặt phẳng điều khiển Kubeflow, như được minh họa trong sơ đồ sau.
Mô hình triển khai này có thể không cung cấp trải nghiệm sẵn sàng cho doanh nghiệp do các lý do sau:
- Tất cả các thành phần cơ sở hạ tầng nâng hạng nặng của máy bay điều khiển Kubeflow, bao gồm cơ sở dữ liệu, lưu trữ và xác thực, đều được triển khai trong chính nút công nhân cụm Kubernetes. Điều này khiến việc triển khai một kiến trúc thiết kế mặt phẳng điều khiển Kubeflow có tính khả dụng cao với trạng thái liên tục trong trường hợp hỏng nút công nhân là một thách thức.
- Các tạo tác được tạo từ mặt phẳng điều khiển Kubeflow (chẳng hạn như phiên bản MySQL, nhật ký nhóm hoặc lưu trữ MinIO) phát triển theo thời gian và cần khối lượng lưu trữ có thể thay đổi kích thước với khả năng giám sát liên tục để đáp ứng nhu cầu lưu trữ ngày càng tăng. Vì mặt phẳng điều khiển Kubeflow chia sẻ tài nguyên với khối lượng công việc của mặt phẳng dữ liệu Kubeflow (ví dụ: đối với các công việc đào tạo, đường ống và triển khai), việc định cỡ phù hợp và mở rộng khối lượng lưu trữ và cụm Kubernetes có thể trở nên khó khăn và dẫn đến tăng chi phí hoạt động.
- Kubernetes hạn chế kích thước tệp nhật ký, với hầu hết các bản cài đặt đều giữ giới hạn gần đây nhất là 10 MB. Theo mặc định, các nhật ký nhóm sẽ không thể truy cập được sau khi chúng đạt đến giới hạn trên. Các bản ghi cũng có thể không truy cập được nếu các nhóm bị loại bỏ, gặp sự cố, bị xóa hoặc được lên lịch trên một nút khác, điều này có thể ảnh hưởng đến tính khả dụng và khả năng giám sát của nhật ký ứng dụng của bạn.
Kubeflow trên AWS
Kubeflow trên AWS cung cấp một đường dẫn rõ ràng để sử dụng Kubeflow, với các dịch vụ AWS sau:
- Cân bằng tải ứng dụng để quản lý lưu lượng bên ngoài an toàn qua HTTPS
- amazoncloudwatch để quản lý nhật ký liên tục
- AWS nhận thức để xác thực người dùng với Bảo mật lớp truyền tải (TLS)
- AWS Deep Learning Container cho hình ảnh máy chủ máy tính xách tay Jupyter được tối ưu hóa cao
- Hệ thống tệp đàn hồi Amazon (Amazon EFS) hoặc Amazon FSx cho ánh cho một giải pháp lưu trữ tệp đơn giản, có thể mở rộng và không máy chủ để tăng hiệu suất đào tạo
- Amazon EKS cho các cụm Kubernetes được quản lý
- Dịch vụ cơ sở dữ liệu quan hệ của Amazon (Amazon RDS) cho các đường ống có khả năng mở rộng cao và một kho siêu dữ liệu
- Quản lý bí mật AWS để bảo vệ các bí mật cần thiết để truy cập các ứng dụng của bạn
- Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) cho một kho lưu trữ đồ tạo tác đường ống dễ sử dụng
Các tích hợp dịch vụ AWS này với Kubeflow (như thể hiện trong sơ đồ sau) cho phép chúng tôi tách các phần quan trọng của mặt phẳng điều khiển Kubeflow khỏi Kubernetes, cung cấp một thiết kế an toàn, có thể mở rộng, khả năng phục hồi và tối ưu hóa chi phí.
Hãy thảo luận về lợi ích của từng tích hợp dịch vụ và các giải pháp của chúng về bảo mật, chạy đường ống ML và lưu trữ.
Xác thực an toàn người dùng Kubeflow bằng Amazon Cognito
Bảo mật đám mây tại AWS là ưu tiên cao nhất và chúng tôi đang đầu tư vào việc tích hợp chặt chẽ bảo mật Kubeflow trực tiếp vào các dịch vụ bảo mật chịu trách nhiệm chung của AWS, chẳng hạn như sau:
- Bộ cân bằng tải ứng dụng (ALB) để quản lý lưu lượng bên ngoài
- Trình quản lý chứng chỉ AWS (ACM) để hỗ trợ TLS
- Vai trò IAM cho tài khoản dịch vụ (IRSA) để kiểm soát truy cập chi tiết ở cấp Kubernetes Pod
- Dịch vụ quản lý khóa AWS (AWS KMS) để quản lý khóa mã hóa dữ liệu
- Lá chắn AWS để bảo vệ DDoS
Trong phần này, chúng tôi tập trung vào tích hợp máy bay điều khiển AWS Kubeflow với Amazon Cognito. Amazon Cognito loại bỏ nhu cầu quản lý và duy trì giải pháp Dex (OpenID Connect (OIDC) mã nguồn mở) gốc Dex được hỗ trợ bởi LDAP cục bộ để xác thực người dùng và giúp quản lý bí mật dễ dàng hơn.
Bạn cũng có thể sử dụng Amazon Cognito để thêm kiểm soát đăng ký, đăng nhập và truy cập của người dùng vào giao diện người dùng Kubeflow của mình một cách nhanh chóng và dễ dàng. Amazon Cognito mở rộng quy mô đến hàng triệu người dùng và hỗ trợ đăng nhập bằng các nhà cung cấp danh tính xã hội (IdP), chẳng hạn như Facebook, Google và Amazon và IdP doanh nghiệp thông qua SAML 2.0. Điều này làm giảm sự phức tạp trong thiết lập Kubeflow của bạn, làm cho nó trở nên gọn gàng về mặt hoạt động và dễ vận hành hơn để đạt được sự cô lập với nhiều người dùng.
Hãy xem quy trình xác thực nhiều người dùng với tích hợp Amazon Cognito, ALB và ACM với Kubeflow trên AWS. Có một số thành phần chính là một phần của tích hợp này. Amazon Cognito được định cấu hình làm IdP với lệnh gọi lại xác thực được định cấu hình để định tuyến yêu cầu đến Kubeflow sau khi xác thực người dùng. Là một phần của thiết lập Kubeflow, tài nguyên xâm nhập Kubernetes được tạo để quản lý lưu lượng bên ngoài đến dịch vụ Istio Gateway. Bộ điều khiển xâm nhập AWS ALB cung cấp bộ cân bằng tải cho quá trình xâm nhập đó. Chúng tôi sử dụng Amazon Route 53 để định cấu hình DNS công khai cho miền đã đăng ký và tạo chứng chỉ bằng ACM để kích hoạt xác thực TLS tại bộ cân bằng tải.
Sơ đồ sau đây cho thấy quy trình công việc điển hình của người dùng khi đăng nhập vào Amazon Cognito và được chuyển hướng đến Kubeflow trong không gian tên tương ứng của họ.
Dòng công việc bao gồm các bước sau:
- Người dùng gửi yêu cầu HTTPS đến bảng điều khiển trung tâm Kubeflow được lưu trữ phía sau bộ cân bằng tải. Lộ trình 53 giải quyết FQDN thành bản ghi bí danh ALB.
- Nếu cookie không xuất hiện, trình cân bằng tải sẽ chuyển hướng người dùng đến điểm cuối ủy quyền Amazon Cognito để Amazon Cognito có thể xác thực người dùng.
- Sau khi người dùng được xác thực, Amazon Cognito sẽ gửi người dùng trở lại trình cân bằng tải cùng với mã cấp ủy quyền.
- Trình cân bằng tải trình bày mã cấp quyền cho điểm cuối mã thông báo Amazon Cognito.
- Khi nhận được mã cấp quyền hợp lệ, Amazon Cognito cung cấp mã thông báo ID và mã thông báo truy cập để cân bằng tải.
- Sau khi bộ cân bằng tải của bạn xác thực thành công người dùng, nó sẽ gửi mã truy cập đến điểm cuối thông tin người dùng Amazon Cognito và nhận các yêu cầu của người dùng. Trình cân bằng tải ký và thêm xác nhận quyền sở hữu của người dùng vào tiêu đề HTTP
x-amzn-oidc-*
ở định dạng yêu cầu mã thông báo web JSON (JWT). - Yêu cầu từ bộ cân bằng tải được gửi đến pod của Istio Ingress Gateway.
- Sử dụng bộ lọc sứ giả, Istio Gateway giải mã
x-amzn-oidc-data
giá trị, truy xuất trường email và thêm tiêu đề HTTP tùy chỉnhkubeflow-userid
, được sử dụng bởi lớp ủy quyền Kubeflow. - Các chính sách kiểm soát truy cập dựa trên tài nguyên Istio được áp dụng cho yêu cầu đến để xác thực quyền truy cập vào Bảng điều khiển Kubeflow. Nếu một trong hai thứ đó không thể truy cập được đối với người dùng, phản hồi lỗi sẽ được gửi lại. Nếu yêu cầu được xác thực, nó sẽ được chuyển tiếp đến dịch vụ Kubeflow thích hợp và cung cấp quyền truy cập vào Trang tổng quan Kubeflow
Duy trì siêu dữ liệu thành phần Kubeflow và lưu trữ cấu phần với Amazon RDS và Amazon S3
Kubeflow trên AWS cung cấp tích hợp với Dịch vụ cơ sở dữ liệu quan hệ của Amazon (Amazon RDS) trong Kubeflow Pipelines và AutoML (Thư ký) để lưu trữ siêu dữ liệu liên tục và Amazon S3 trong Đường ống Kubeflow để lưu trữ phần mềm liên tục. Chúng ta hãy tiếp tục thảo luận chi tiết hơn về Đường ống Kubeflow.
Kubeflow Pipelines là một nền tảng để xây dựng và triển khai các quy trình ML di động, có thể mở rộng. Các quy trình công việc này có thể giúp tự động hóa các đường ống ML phức tạp bằng cách sử dụng các thành phần Kubeflow tích hợp sẵn và tùy chỉnh. Kubeflow Pipelines bao gồm Python SDK, một trình biên dịch DSL để chuyển đổi mã Python thành một cấu hình tĩnh, một dịch vụ Pipelines chạy các đường ống từ cấu hình tĩnh và một bộ điều khiển để chạy các vùng chứa bên trong Kubernetes Pods cần thiết để hoàn thành đường ống.
Siêu dữ liệu Kubeflow Pipelines cho các thử nghiệm và chạy đường ống được lưu trữ trong MySQL và các phần mềm tạo tác bao gồm các gói và chỉ số đường ống được lưu trữ trong MinIO.
Như được hiển thị trong sơ đồ sau, Kubeflow trên AWS cho phép bạn lưu trữ các thành phần sau với các dịch vụ được AWS quản lý:
- Siêu dữ liệu đường ống trong Amazon RDS - Amazon RDS cung cấp kiến trúc triển khai Multi-AZ có thể mở rộng, khả dụng cao và đáng tin cậy với cơ chế chuyển đổi dự phòng tự động tích hợp sẵn và dung lượng có thể thay đổi kích thước cho cơ sở dữ liệu quan hệ tiêu chuẩn ngành như MySQL. Nó quản lý các tác vụ quản trị cơ sở dữ liệu chung mà không cần cung cấp cơ sở hạ tầng hoặc duy trì phần mềm.
- Tạo tác đường ống trong Amazon S3 - Amazon S3 cung cấp khả năng mở rộng, khả năng cung cấp dữ liệu, bảo mật và hiệu suất hàng đầu trong ngành và có thể được sử dụng để đáp ứng yêu cầu tuân thủ.
Những tích hợp này giúp giảm tải việc quản lý và duy trì siêu dữ liệu và lưu trữ cấu phần từ Kubeflow tự quản lý sang các dịch vụ được AWS quản lý, dễ dàng hơn trong việc thiết lập, vận hành và mở rộng quy mô.
Hỗ trợ hệ thống tệp phân tán với Amazon EFS và Amazon FSx
Kubeflow được xây dựng dựa trên Kubernetes, cung cấp cơ sở hạ tầng để xử lý dữ liệu phân tán, quy mô lớn, bao gồm đào tạo và điều chỉnh các mô hình lớn với mạng lưới sâu rộng với hàng triệu hoặc thậm chí hàng tỷ tham số. Để hỗ trợ các hệ thống ML xử lý dữ liệu phân tán như vậy, Kubeflow trên AWS cung cấp tích hợp với các dịch vụ lưu trữ sau:
- Amazon EFS - Hệ thống tệp phân tán, gốc đám mây, hiệu suất cao, mà bạn có thể quản lý thông qua Trình điều khiển Amazon EFS CSI. Amazon EFS cung cấp
ReadWriteMany
chế độ truy cập và bây giờ bạn có thể sử dụng nó để gắn kết thành các nhóm (Jupyter, đào tạo mô hình, điều chỉnh mô hình) chạy trong mặt phẳng dữ liệu Kubeflow để cung cấp không gian làm việc liên tục, có thể mở rộng và có thể chia sẻ, không gian làm việc tự động phát triển và thu nhỏ khi bạn thêm và xóa tệp bằng không cần quản lý. - Amazon FSx cho ánh - Hệ thống tệp được tối ưu hóa cho khối lượng công việc máy tính chuyên sâu, chẳng hạn như máy tính hiệu suất cao và ML, mà bạn có thể quản lý thông qua Trình điều khiển Amazon FSx CSI. FSx cho Luster cung cấp
ReadWriteMany
chế độ truy cập cũng như bạn có thể sử dụng nó để lưu vào bộ đệm dữ liệu đào tạo với kết nối trực tiếp với Amazon S3 làm kho dự phòng, bạn có thể sử dụng để hỗ trợ máy chủ sổ ghi chép Jupyter hoặc đào tạo phân tán chạy trong mặt phẳng dữ liệu Kubeflow. Với cấu hình này, bạn không cần phải chuyển dữ liệu vào hệ thống tệp trước khi sử dụng ổ đĩa. FSx cho Luster cung cấp độ trễ nhất định dưới giây chạy và đồng thời cao, đồng thời có thể mở rộng đến TB / s thông lượng và hàng triệu IOPS.
Các tùy chọn triển khai Kubeflow
AWS cung cấp các tùy chọn triển khai Kubeflow khác nhau:
- Triển khai với Amazon Cognito
- Triển khai với Amazon RDS và Amazon S3
- Triển khai với Amazon Cognito, Amazon RDS và Amazon S3
- Triển khai vani
Để biết chi tiết về tích hợp dịch vụ và các tiện ích bổ sung có sẵn cho từng tùy chọn này, hãy tham khảo Tùy chọn triển khai. Bạn có thể tùy chọn phù hợp nhất với trường hợp sử dụng của mình.
Trong phần sau, chúng tôi hướng dẫn các bước cài đặt bản phân phối AWS Kubeflow v1.4 trên Amazon EKS. Sau đó, chúng tôi sử dụng ví dụ đường ống XGBoost hiện có trên bảng điều khiển giao diện người dùng trung tâm Kubeflow để chứng minh việc tích hợp và sử dụng AWS Kubeflow với Amazon Cognito, Amazon RDS và Amazon S3, với Trình quản lý bí mật làm tiện ích bổ sung.
Điều kiện tiên quyết
Đối với hướng dẫn này, bạn nên có các điều kiện tiên quyết sau:
- An Tài khoản AWS.
- Một cụm Amazon EKS hiện có. Nó phải là Kubernetes phiên bản 1.19 trở lên. Để tạo cụm tự động bằng cách sử dụng eksctl, Xem Tạo một Cụm Amazon EKS và sử dụng tùy chọn eksctl.
Cài đặt các công cụ sau trên máy khách được sử dụng để truy cập cụm Kubernetes của bạn. Bạn có thể dùng Đám mây AWS9, một môi trường phát triển tích hợp dựa trên đám mây (IDE) để thiết lập cụm Kubernetes.
- Giao diện dòng lệnh AWS (AWS CLI) - Một công cụ dòng lệnh để tương tác với các dịch vụ AWS. Để biết hướng dẫn cài đặt, hãy tham khảo Cài đặt, cập nhật và gỡ cài đặt AWS CLI.
- eksctl > 0.56 - Một công cụ dòng lệnh để làm việc với các cụm Amazon EKS tự động hóa nhiều tác vụ riêng lẻ.
- kubectl - Một công cụ dòng lệnh để làm việc với các cụm Kubernetes.
- git - Một phần mềm kiểm soát phiên bản phân tán.
- Trăn 3.8+ - Môi trường lập trình Python.
- đánh rớt - Trình quản lý gói cho Python.
- kustomize phiên bản 3.2.0 - Một công cụ dòng lệnh để tùy chỉnh các đối tượng Kubernetes thông qua một tệp kustomization.
Cài đặt Kubeflow trên AWS
Định cấu hình kubectl để bạn có thể kết nối với một cụm Amazon EKS:
Các bộ điều khiển khác nhau trong việc sử dụng triển khai Kubeflow Vai trò IAM cho tài khoản dịch vụ (IRSA). Nhà cung cấp OIDC phải tồn tại cho cụm của bạn để sử dụng IRSA. Tạo nhà cung cấp OIDC và liên kết nó với cụm Amazon EKS của bạn bằng cách chạy lệnh sau, nếu cụm của bạn chưa có:
Sao chép repo tệp kê khai AWS và Kubeflow tệp kê khai repo và kiểm tra các nhánh phát hành tương ứng:
Để biết thêm thông tin về các phiên bản này, hãy tham khảo Bản phát hành và Phiên bản.
Thiết lập Amazon RDS, Amazon S3 và Trình quản lý bí mật
Bạn tạo tài nguyên Amazon RDS và Amazon S3 trước khi triển khai tệp kê khai Kubeflow. Chúng tôi sử dụng các tập lệnh Python tự động đảm nhận việc tạo nhóm S3, cơ sở dữ liệu RDS và các bí mật bắt buộc trong Trình quản lý bí mật. Nó cũng chỉnh sửa các tệp cấu hình cần thiết cho đường ống Kubeflow và AutoML để được định cấu hình đúng cho cơ sở dữ liệu RDS và nhóm S3 trong quá trình cài đặt Kubeflow.
Tạo người dùng IAM với quyền cho phép GetBucketLocation
và quyền truy cập đọc và ghi vào các đối tượng trong thùng S3 nơi bạn muốn lưu trữ các tạo tác Kubeflow. Sử dụng AWS_ACCESS_KEY_ID
và AWS_SECRET_ACCESS_KEY
của người dùng IAM trong mã sau:
Thiết lập Amazon Cognito làm nhà cung cấp xác thực
Trong phần này, chúng tôi tạo một miền tùy chỉnh trong Tuyến đường 53 và ALB để định tuyến lưu lượng truy cập bên ngoài đến Cổng Kubeflow Istio. Chúng tôi sử dụng ACM để tạo chứng chỉ cho phép xác thực TLS tại ALB và Amazon Cognito nhằm duy trì nhóm người dùng và quản lý xác thực người dùng.
Thay thế các giá trị sau trong
- tuyến53.rootDomain.name - Miền đã đăng ký. Giả sử miền này là
example.com
. - Route53.rootDomain.hostedZoneId - Nếu miền của bạn được quản lý trong Route53, hãy nhập ID vùng được lưu trữ được tìm thấy trong chi tiết vùng được lưu trữ. Bỏ qua bước này nếu miền của bạn do nhà cung cấp miền khác quản lý.
- tuyến53.subDomain.name - Tên miền phụ mà bạn muốn lưu trữ Kubeflow (ví dụ:
platform.example.com
). Để biết thêm thông tin về tên miền phụ, hãy tham khảo Triển khai Kubeflow với AWS Cognito dưới dạng IdP. - cụm.name - Tên cụm và nơi Kubeflow được triển khai.
- cụm.khu vực - Khu vực cụm nơi Kubeflow được triển khai (ví dụ:
us-west-2
). - cognitoUserpool.name - Tên của nhóm người dùng Amazon Cognito (ví dụ:
kubeflow-users
).
Tệp cấu hình trông giống như mã sau:
Chạy tập lệnh để tạo tài nguyên:
Tập lệnh cập nhật config.yaml
tệp có tên tài nguyên, ID và ARN mà nó đã tạo. Nó trông giống như đoạn mã sau:
Xây dựng bản kê khai và triển khai Kubeflow
Triển khai Kubeflow bằng lệnh sau:
Cập nhật miền bằng địa chỉ ALB
Việc triển khai tạo ra một bộ cân bằng tải ứng dụng AWS được quản lý bằng cách nhập vào. Chúng tôi cập nhật các mục nhập DNS cho miền phụ trong Lộ trình 53 bằng DNS của bộ cân bằng tải. Chạy lệnh sau để kiểm tra xem bộ cân bằng tải có được cấp phép hay không (quá trình này mất khoảng 3-5 phút):
Nếu ADDRESS
trường trống sau vài phút, hãy kiểm tra nhật ký của alb-ingress-controller
. Để được hướng dẫn, hãy tham khảo ALB không cung cấp.
Khi bộ cân bằng tải được cấp phép, hãy sao chép tên DNS của bộ cân bằng tải và thay thế địa chỉ cho kubeflow.alb.dns
in ${kubeflow_manifest_dir}/tests/e2e/utils/cognito_bootstrap/config.yaml
. Phần Kubeflow của tệp cấu hình trông giống như mã sau:
Chạy tập lệnh sau để cập nhật các mục nhập DNS cho miền phụ trong Lộ trình 53 với DNS của bộ cân bằng tải được cấp phép:
Xử lý sự cố
Nếu bạn gặp bất kỳ sự cố nào trong quá trình cài đặt, hãy tham khảo hướng dẫn khắc phục sự cố hoặc bắt đầu lại bằng cách làm theo phần "Dọn dẹp" trong blog này.
Hướng dẫn trường hợp sử dụng
Bây giờ chúng tôi đã hoàn tất cài đặt các thành phần Kubeflow cần thiết, hãy xem chúng hoạt động bằng cách sử dụng một trong các ví dụ hiện có do Kubeflow Pipelines cung cấp trên bảng điều khiển.
Truy cập Trang tổng quan Kubeflow bằng Amazon Cognito
Để bắt đầu, hãy truy cập vào Trang tổng quan Kubeflow. Vì chúng tôi đã sử dụng Amazon Cognito làm IdP, hãy sử dụng thông tin được cung cấp trong tệp README chính thức. Đầu tiên, chúng tôi tạo một số người dùng trên bảng điều khiển Amazon Cognito. Đây là những người dùng sẽ đăng nhập vào bảng điều khiển trung tâm. Kế tiếp, tạo một hồ sơ cho người dùng bạn đã tạo. Sau đó, bạn sẽ có thể truy cập trang tổng quan thông qua trang đăng nhập tại https://kubeflow.platform.example.com.
Ảnh chụp màn hình sau đây cho thấy Trang tổng quan Kubeflow của chúng tôi.
Chạy đường ống
Trên Bảng điều khiển Kubeflow, chọn Đường ống trong tên điều hướng. Bạn sẽ thấy bốn ví dụ do Kubeflow Pipelines cung cấp mà bạn có thể chạy trực tiếp để khám phá các tính năng khác nhau của Pipelines.
Đối với bài đăng này, chúng tôi sử dụng mẫu XGBoost được gọi là [Demo] XGBoost - Đào tạo mô hình lặp lại. Bạn có thể tìm thấy mã nguồn trên GitHub. Đây là một đường dẫn đơn giản sử dụng XGBoost/Train
và XGBoost/Predict
Các thành phần của đường dẫn Kubeflow để đào tạo lặp đi lặp lại một mô hình cho đến khi các chỉ số được coi là tốt dựa trên các chỉ số được chỉ định.
Để chạy đường dẫn, hãy hoàn thành các bước sau:
- Chọn đường dẫn và chọn Tạo thử nghiệm.
- Theo Chi tiết thử nghiệm, nhập tên (cho bài đăng này,
demo-blog
) và mô tả tùy chọn. - Chọn Sau.
- Theo Chạy chi tiết¸ chọn đường ống và phiên bản đường ống của bạn.
- Trong Chạy tên, nhập tên.
- Trong Thử nghiệm, chọn thử nghiệm bạn đã tạo.
- Trong Chạy kiểu, lựa chọn Một lần.
- Chọn Bắt đầu.
Sau khi đường ống bắt đầu chạy, bạn sẽ thấy các thành phần hoàn thành (trong vòng vài giây). Ở giai đoạn này, bạn có thể chọn bất kỳ thành phần nào đã hoàn thành để xem thêm chi tiết.
Truy cập các tạo tác trong Amazon S3
Trong khi triển khai Kubeflow, chúng tôi đã chỉ định Kubeflow Pipelines nên sử dụng Amazon S3 để lưu trữ các hiện vật của nó. Điều này bao gồm tất cả các tạo tác đầu ra của đường ống, các lần chạy được lưu trong bộ nhớ cache và đồ thị đường ống — tất cả chúng sau đó có thể được sử dụng để trực quan hóa phong phú và đánh giá hiệu suất.
Khi quá trình chạy đường ống hoàn tất, bạn sẽ có thể xem các thành phần trong nhóm S3 mà bạn đã tạo trong quá trình cài đặt. Để xác nhận điều này, hãy chọn bất kỳ thành phần đã hoàn thành nào của đường dẫn và kiểm tra Đầu ra đầu vào phần mặc định Đồ thị chuyển hướng. Các URL cấu phần phải trỏ đến nhóm S3 mà bạn đã chỉ định trong quá trình triển khai.
Để xác nhận rằng các tài nguyên đã được thêm vào Amazon S3, chúng tôi cũng có thể kiểm tra nhóm S3 trong tài khoản AWS của mình thông qua bảng điều khiển Amazon S3.
Ảnh chụp màn hình sau đây cho thấy các tệp của chúng tôi.
Xác minh siêu dữ liệu ML trong Amazon RDS
Chúng tôi cũng đã tích hợp Kubeflow Pipelines với Amazon RDS trong quá trình triển khai, có nghĩa là mọi siêu dữ liệu về đường ống đều phải được lưu trữ trong Amazon RDS. Điều này bao gồm bất kỳ thông tin thời gian chạy nào như trạng thái của nhiệm vụ, tính khả dụng của phần mềm, thuộc tính tùy chỉnh được liên kết với quá trình chạy hoặc phần tạo tác, v.v.
Để xác minh tích hợp Amazon RDS, hãy làm theo các bước được cung cấp trong tệp README chính thức. Cụ thể, hãy hoàn thành các bước sau:
- Lấy tên người dùng và mật khẩu Amazon RDS từ bí mật đã được tạo trong quá trình cài đặt:
- Sử dụng các thông tin đăng nhập này để kết nối với Amazon RDS từ bên trong cụm:
- Khi lời nhắc MySQL mở ra, chúng tôi có thể xác minh
mlpipelines
cơ sở dữ liệu như sau: - Bây giờ chúng ta có thể đọc nội dung của các bảng cụ thể, để đảm bảo rằng chúng ta có thể xem thông tin siêu dữ liệu về các thử nghiệm đã chạy các đường ống:
Làm sạch
Để gỡ cài đặt Kubeflow và xóa tài nguyên AWS bạn đã tạo, hãy hoàn thành các bước sau:
- Xóa bộ cân bằng tải được quản lý bằng cách chạy vào và chạy lệnh sau:
- Xóa phần còn lại của các thành phần Kubeflow:
- Xóa các tài nguyên AWS được tạo bởi các tập lệnh:
- Tài nguyên được tạo để tích hợp Amazon RDS và Amazon S3. Đảm bảo rằng bạn có tệp cấu hình được tạo bởi tập lệnh trong
${kubeflow_manifest_dir}/tests/e2e/utils/rds-s3/metadata.yaml
: - Tài nguyên được tạo để tích hợp Amazon Cognito. Đảm bảo rằng bạn có tệp cấu hình được tạo bởi tập lệnh trong
${kubeflow_manifest_dir}/tests/e2e/utils/cognito_bootstrap/config.yaml
:
- Tài nguyên được tạo để tích hợp Amazon RDS và Amazon S3. Đảm bảo rằng bạn có tệp cấu hình được tạo bởi tập lệnh trong
- Nếu bạn đã tạo một cụm Amazon EKS dành riêng cho Kubeflow bằng eksctl, bạn có thể xóa nó bằng lệnh sau:
Tổng kết
Trong bài đăng này, chúng tôi đã làm nổi bật giá trị mà Kubeflow trên AWS cung cấp thông qua tích hợp dịch vụ gốc do AWS quản lý cho khối lượng công việc AI và ML an toàn, có thể mở rộng và sẵn sàng cho doanh nghiệp. Bạn có thể chọn từ một số tùy chọn triển khai để cài đặt Kubeflow trên AWS với các tích hợp dịch vụ khác nhau. Trường hợp sử dụng trong bài đăng này cho thấy sự tích hợp Kubeflow với Amazon Cognito, Secrets Manager, Amazon RDS và Amazon S3. Để bắt đầu với Kubeflow trên AWS, hãy tham khảo các tùy chọn triển khai tích hợp AWS có sẵn trong Kubeflow trên AWS.
Bắt đầu với v1.3, bạn có thể làm theo Kho AWS Labs để theo dõi tất cả các đóng góp AWS cho Kubeflow. Bạn cũng có thể tìm thấy chúng tôi trên Kênh Slack Kubeflow #AWS; phản hồi của bạn ở đó sẽ giúp chúng tôi ưu tiên các tính năng tiếp theo để đóng góp cho dự án Kubeflow.
Về các tác giả
Kanwaljit Khurmi là Kiến trúc sư Giải pháp Chuyên gia về AI / ML tại Amazon Web Services. Anh ấy làm việc với sản phẩm, kỹ thuật và khách hàng của AWS để cung cấp hướng dẫn và hỗ trợ kỹ thuật giúp họ nâng cao giá trị của các giải pháp ML kết hợp khi sử dụng AWS. Kanwaljit chuyên trợ giúp khách hàng với các ứng dụng học máy và công cụ chứa.
Meghna Baijal là Kỹ sư phần mềm với AWS AI giúp người dùng dễ dàng đưa khối lượng công việc Máy học của họ lên AWS bằng cách xây dựng các sản phẩm và nền tảng ML như Deep Learning Containers, Deep Learning AMIs, AWS Controllers cho Kubernetes (ACK) và Kubeflow trên AWS . Ngoài giờ làm việc, cô thích đọc sách, đi du lịch và vẽ tranh.
Suraj Kota là một Kỹ sư phần mềm chuyên về cơ sở hạ tầng Máy học. Anh ấy xây dựng các công cụ để dễ dàng bắt đầu và mở rộng quy mô khối lượng công việc học máy trên AWS. Anh ấy đã làm việc trên AWS Deep Learning Containers, Deep Learning AMI, SageMaker Operator cho Kubernetes và các tích hợp mã nguồn mở khác như Kubeflow.
- 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/build-and-deploy-a-scalable-machine-learning-system-on-kubernetes-with-kubeflow-on-aws/
- "
- 10
- 100
- 420
- 7
- Giới thiệu
- truy cập
- Tài khoản
- Hoạt động
- Add-on
- địa chỉ
- quản trị viên
- quản lý
- Chi nhánh
- AI
- Tất cả
- Đã
- đàn bà gan dạ
- Amazon Web Services
- Một
- Các Ứng Dụng
- các ứng dụng
- thích hợp
- kiến trúc
- xung quanh
- Liên kết
- chứng thực
- chứng thực
- Xác thực
- ủy quyền
- tự động hóa
- Tự động
- tự động hóa
- sẵn có
- có sẵn
- AWS
- trở nên
- Lợi ích
- BEST
- tỷ
- Blog
- biên giới
- xây dựng
- Xây dựng
- xây dựng
- được xây dựng trong
- khả năng
- Sức chứa
- mà
- trường hợp
- CD
- Giấy chứng nhận
- Giấy chứng nhận
- thách thức
- Kiểm tra
- Chọn
- tuyên bố
- tốt nghiệp lớp XNUMX
- mã
- Chung
- hoàn thành
- phức tạp
- thành phần
- máy tính
- máy tính
- Cấu hình
- Kết nối
- Kết nối
- An ủi
- Container
- chứa
- nội dung
- tiếp tục
- Góp phần
- điều khiển
- điều khiển
- quyền tác giả
- có thể
- tạo
- tạo ra
- tạo ra
- Tạo
- tạo
- Credentials
- quan trọng
- khách hàng
- khách hàng
- bảng điều khiển
- dữ liệu
- xử lý dữ liệu
- khoa học dữ liệu
- Cơ sở dữ liệu
- DDoS
- dành riêng
- Nhu cầu
- chứng minh
- chứng minh
- triển khai
- triển khai
- triển khai
- triển khai
- triển khai
- triển khai
- Thiết kế
- chi tiết
- chi tiết
- Phát triển
- Dex
- khác nhau
- trực tiếp
- trực tiếp
- thảo luận
- phân phối
- phân phối
- dns
- Không
- miền
- dễ dàng
- dễ sử dụng
- bỏ lỡ
- cho phép
- mã hóa
- Điểm cuối
- ky sư
- Kỹ Sư
- đăng ký hạng mục thi
- Doanh nghiệp
- Môi trường
- đánh giá
- Sự kiện
- ví dụ
- hiện tại
- kinh nghiệm
- thử nghiệm
- khám phá
- Không
- Tính năng
- thông tin phản hồi
- tài chính
- Tên
- phù hợp với
- dòng chảy
- Tập trung
- tập trung
- theo
- tiếp theo
- định dạng
- tìm thấy
- tươi
- nhận được
- đi
- GitHub
- tốt
- Phát triển
- Phát triển
- giúp đỡ
- giúp đỡ
- giúp
- tại đây
- Cao
- cao hơn
- Nhấn mạnh
- cao
- lưu trữ
- HTTPS
- Hỗn hợp
- Bản sắc
- Va chạm
- thực hiện
- nâng cao
- Inc.
- bao gồm
- Bao gồm
- tăng
- hệ thống riêng biệt,
- đầu ngành
- Thông tin
- thông tin
- Cơ sở hạ tầng
- cài đặt, dựng lên
- tích hợp
- hội nhập
- tích hợp
- đầu tư
- cô lập
- các vấn đề
- IT
- chính nó
- việc làm
- giữ
- Key
- Phòng thí nghiệm
- Ngôn ngữ
- lớn
- phát động
- học tập
- nâng
- Dòng
- tải
- địa phương
- máy
- học máy
- duy trì
- LÀM CHO
- Làm
- quản lý
- quản lý
- quản lý
- giám đốc
- Metrics
- hàng triệu
- ML
- kiểu mẫu
- mô hình
- giám sát
- chi tiết
- hầu hết
- tên
- Tự nhiên
- THÔNG TIN
- net
- mạng
- các nút
- máy tính xách tay
- con số
- Cung cấp
- mở
- mã nguồn mở
- mở ra
- khai thác
- tối ưu hóa
- Tùy chọn
- Các lựa chọn
- Nền tảng khác
- riêng
- Mật khẩu
- hiệu suất
- nền tảng
- Nền tảng
- Điểm
- Chính sách
- hồ bơi
- trình bày
- ưu tiên
- xử lý
- Sản phẩm
- Sản phẩm
- Lập trình
- dự án
- bảo vệ
- cho
- cung cấp
- cung cấp
- công khai
- Mau
- đạt
- Reading
- lý do
- ghi
- đăng ký
- phát hành
- yêu cầu
- cần phải
- Yêu cầu
- tài nguyên
- Thông tin
- phản ứng
- REST của
- Route
- chạy
- chạy
- khả năng mở rộng
- khả năng mở rộng
- Quy mô
- mở rộng quy mô
- Khoa học
- sdk
- SEC
- giây
- an toàn
- an ninh
- Không có máy chủ
- dịch vụ
- DỊCH VỤ
- định
- thiết lập
- cổ phiếu
- Dấu hiệu
- Đơn giản
- Kích thước máy
- lún xuống
- ngủ
- So
- Mạng xã hội
- Phần mềm
- Kỹ sư phần mềm
- rắn
- giải pháp
- Giải pháp
- một số
- một cái gì đó
- mã nguồn
- chuyên gia
- chuyên nghành
- chuyên
- đặc biệt
- Traineeship
- Bắt đầu
- bắt đầu
- bắt đầu
- Tiểu bang
- Trạng thái
- là gắn
- hàng
- Thành công
- hỗ trợ
- Hỗ trợ
- hệ thống
- hệ thống
- nhiệm vụ
- Kỹ thuật
- Nguồn
- Thông qua
- thời gian
- mã thông báo
- công cụ
- công cụ
- hàng đầu
- theo dõi
- giao thông
- Hội thảo
- chuyển
- Dịch
- vận chuyển
- Đi du lịch
- ui
- Cập nhật
- Cập nhật
- us
- sử dụng
- Người sử dụng
- xác nhận
- giá trị
- nhiều
- khác nhau
- xác minh
- tầm nhìn
- khối lượng
- web
- các dịch vụ web
- CHÚNG TÔI LÀ
- ở trong
- không có
- Công việc
- làm việc
- đang làm việc
- công trinh