Những phát triển gần đây trong học máy (ML) đã dẫn đến các mô hình ngày càng lớn, một số trong đó yêu cầu hàng trăm tỷ tham số. Mặc dù chúng mạnh hơn nhưng việc đào tạo và suy luận trên các mô hình đó đòi hỏi nguồn lực tính toán đáng kể. Mặc dù có sẵn các thư viện đào tạo phân tán nâng cao, nhưng các công việc đào tạo và suy luận thường cần hàng trăm bộ tăng tốc (GPU hoặc chip ML được xây dựng có mục đích như Đào tạo AWS và Suy luận AWS), và do đó có hàng chục hoặc hàng trăm trường hợp.
Trong các môi trường phân tán như vậy, khả năng quan sát của cả phiên bản và chip ML trở thành chìa khóa để tinh chỉnh hiệu suất mô hình và tối ưu hóa chi phí. Số liệu cho phép các nhóm hiểu hành vi khối lượng công việc và tối ưu hóa việc phân bổ và sử dụng tài nguyên, chẩn đoán các điểm bất thường và tăng hiệu quả cơ sở hạ tầng tổng thể. Đối với các nhà khoa học dữ liệu, việc sử dụng và bão hòa chip ML cũng có liên quan đến việc lập kế hoạch công suất.
Bài đăng này hướng dẫn bạn qua Mẫu khả năng quan sát nguồn mở cho AWS Inferentia, hướng dẫn bạn cách giám sát hiệu suất của chip ML, được sử dụng trong Dịch vụ Kubernetes đàn hồi của Amazon Cụm (Amazon EKS), với các nút mặt phẳng dữ liệu dựa trên Đám mây điện toán đàn hồi Amazon (Amazon EC2) loại phiên bản thông tin1 và thông tin2.
Mẫu này là một phần của Trình tăng tốc khả năng quan sát CDK của AWS, một tập hợp các mô-đun có ý kiến giúp bạn thiết lập khả năng quan sát cho các cụm Amazon EKS. Bộ tăng tốc khả năng quan sát CDK của AWS được tổ chức theo các mẫu, là các đơn vị có thể tái sử dụng để triển khai nhiều tài nguyên. Bộ khả năng quan sát mã nguồn mở của các công cụ mẫu có khả năng quan sát được với Grafana do Amazon quản lý bảng điều khiển, một Bản phân phối AWS dành cho OpenTelemetry người thu thập để thu thập số liệu và Dịch vụ được quản lý của Amazon dành cho Prometheus để lưu trữ chúng.
Tổng quan về giải pháp
Sơ đồ sau minh họa kiến trúc giải pháp.
Giải pháp này triển khai cụm Amazon EKS với nhóm nút bao gồm các phiên bản Inf1.
Loại AMI của nhóm nút là AL2_x86_64_GPU
, sử dụng Amazon Linux AMI tăng tốc được tối ưu hóa của Amazon EKS. Ngoài cấu hình AMI được tối ưu hóa cho Amazon EKS tiêu chuẩn, AMI được tăng tốc bao gồm Thời gian chạy NeuronX.
Để truy cập các chip ML từ Kubernetes, mẫu sẽ triển khai Tế bào thần kinh AWS plugin thiết bị.
Các số liệu được tiếp xúc với Amazon Managed Service dành cho Prometheus bởi neuron-monitor
DaemonSet, triển khai một vùng chứa tối thiểu, với Công cụ nơ-ron Cài đặt. Cụ thể, neuron-monitor
DaemonSet chạy neuron-monitor
lệnh được dẫn vào neuron-monitor-prometheus.py
tập lệnh đồng hành (cả hai lệnh đều là một phần của vùng chứa):
Lệnh sử dụng các thành phần sau:
neuron-monitor
thu thập số liệu và số liệu thống kê từ các ứng dụng Neuron đang chạy trên hệ thống và truyền dữ liệu đã thu thập đến thiết bị xuất chuẩn Định dạng JSONneuron-monitor-prometheus.py
ánh xạ và hiển thị dữ liệu đo từ xa từ định dạng JSON sang định dạng tương thích với Prometheus
Dữ liệu được hiển thị trong Amazon Managed Grafana bằng bảng điều khiển tương ứng.
Phần còn lại của quá trình thiết lập để thu thập và trực quan hóa các số liệu với Amazon Managed Service cho Prometheus và Amazon Managed Grafana tương tự như phần được sử dụng trong các mẫu dựa trên nguồn mở khác, được bao gồm trong AWS Observability Accelerator for CDK
Kho lưu trữ GitHub.
Điều kiện tiên quyết
Bạn cần những điều sau đây để hoàn thành các bước trong bài viết này:
Thiết lập môi trường
Hoàn thành các bước sau để thiết lập môi trường của bạn:
- Mở một cửa sổ terminal và chạy các lệnh sau:
- Truy xuất ID không gian làm việc của bất kỳ không gian làm việc Amazon Managed Grafana hiện có nào:
Sau đây là đầu ra mẫu của chúng tôi:
- Gán các giá trị của
id
vàendpoint
đến các biến môi trường sau:
COA_AMG_ENDPOINT_URL
cần bao gồm https://
.
- Tạo khóa API Grafana từ không gian làm việc Grafana được quản lý bởi Amazon:
- Thiết lập một bí mật trong Người quản lý hệ thống AWS:
Bí mật sẽ được tiện ích bổ sung Bí mật bên ngoài truy cập và được cung cấp dưới dạng bí mật Kubernetes gốc trong cụm EKS.
Khởi động lại môi trường AWS CDK
Bước đầu tiên trong quá trình triển khai AWS CDK là khởi động môi trường. Bạn sử dụng cdk bootstrap
lệnh trong AWS CDK CLI để chuẩn bị môi trường (sự kết hợp giữa tài khoản AWS và Khu vực AWS) với các tài nguyên mà AWS CDK yêu cầu để thực hiện triển khai vào môi trường đó. Việc khởi động AWS CDK là cần thiết cho từng tổ hợp tài khoản và Khu vực, vì vậy nếu bạn đã khởi động AWS CDK trong một Khu vực thì bạn không cần phải lặp lại quy trình khởi động.
Triển khai giải pháp
Hoàn thành các bước sau để triển khai giải pháp:
- Sao chép cdk-aws-khả năng quan sát-tăng tốc kho lưu trữ và cài đặt các gói phụ thuộc. Kho lưu trữ này chứa mã AWS CDK v2 được viết bằng TypeScript.
Cài đặt thực tế cho các tệp JSON của bảng thông tin Grafana dự kiến sẽ được chỉ định trong ngữ cảnh AWS CDK. Bạn cần cập nhật context
trong cdk.json
tập tin, nằm trong thư mục hiện tại. Vị trí của bảng điều khiển được chỉ định bởi fluxRepository.values.GRAFANA_NEURON_DASH_URL
tham số và neuronNodeGroup
được sử dụng để đặt loại phiên bản, số lượng và Cửa hàng đàn hồi Amazon (Amazon EBS) kích thước được sử dụng cho các nút.
- Nhập đoạn mã sau vào
cdk.json
, thay thếcontext
:
Bạn có thể thay thế loại phiên bản Inf1 bằng Inf2 và thay đổi kích thước nếu cần. Để kiểm tra tính khả dụng trong Khu vực bạn đã chọn, hãy chạy lệnh sau (sửa đổi Values
như bạn thấy phù hợp):
- Cài đặt các phụ thuộc của dự án:
- Chạy các lệnh sau để triển khai mẫu khả năng quan sát nguồn mở:
Xác thực giải pháp
Hoàn thành các bước sau để xác thực giải pháp:
- Chạy
update-kubeconfig
yêu cầu. Bạn sẽ có thể nhận được lệnh từ thông báo đầu ra của lệnh trước đó:
- Xác minh tài nguyên bạn đã tạo:
Ảnh chụp màn hình sau đây hiển thị đầu ra mẫu của chúng tôi.
- Hãy đảm bảo rằng
neuron-device-plugin-daemonset
DaemonSet đang chạy:
Sau đây là sản lượng dự kiến của chúng tôi:
- Xác nhận rằng
neuron-monitor
DaemonSet đang chạy:
Sau đây là sản lượng dự kiến của chúng tôi:
- Để xác minh rằng các thiết bị và lõi Neuron có thể nhìn thấy được, hãy chạy lệnh
neuron-ls
vàneuron-top
các lệnh từ, ví dụ: nhóm giám sát nơ-ron của bạn (bạn có thể lấy tên của nhóm từ đầu ra củakubectl get pods -A
):
Ảnh chụp màn hình sau đây hiển thị kết quả mong đợi của chúng tôi.
Ảnh chụp màn hình sau đây hiển thị kết quả mong đợi của chúng tôi.
Trực quan hóa dữ liệu bằng bảng điều khiển Grafana Neuron
Đăng nhập vào không gian làm việc Amazon Managed Grafana của bạn và điều hướng đến Biểu đồ bảng điều khiển. Bạn sẽ thấy một bảng điều khiển có tên Tế bào thần kinh / Màn hình.
Để xem một số số liệu thú vị trên bảng điều khiển Grafana, chúng tôi áp dụng bảng kê khai sau:
Đây là khối lượng công việc mẫu biên dịch Mô hình ResNet50 của torchvision và chạy suy luận lặp đi lặp lại trong một vòng lặp để tạo ra dữ liệu đo từ xa.
Để xác minh nhóm đã được triển khai thành công, hãy chạy đoạn mã sau:
Bạn sẽ thấy một nhóm có tên pytorch-inference-resnet50
.
Sau vài phút, nhìn vào Tế bào thần kinh / Màn hình trang tổng quan, bạn sẽ thấy các số liệu được thu thập tương tự như ảnh chụp màn hình sau.
Grafana Operator và Flux luôn phối hợp với nhau để đồng bộ hóa bảng thông tin của bạn với Git. Nếu bạn vô tình xóa trang tổng quan của mình, chúng sẽ tự động được cấp lại.
Làm sạch
Bạn có thể xóa toàn bộ ngăn xếp CDK AWS bằng lệnh sau:
Kết luận
Trong bài đăng này, chúng tôi đã hướng dẫn bạn cách giới thiệu khả năng quan sát, bằng công cụ nguồn mở, vào cụm EKS có mặt phẳng dữ liệu chạy các phiên bản EC2 Inf1. Chúng tôi bắt đầu bằng cách chọn AMI tăng tốc được tối ưu hóa cho Amazon EKS cho các nút mặt phẳng dữ liệu, bao gồm thời gian chạy bộ chứa Neuron, cung cấp quyền truy cập vào các thiết bị AWS Inferentia và Trainium Neuron. Sau đó, để hiển thị các lõi và thiết bị Neuron cho Kubernetes, chúng tôi đã triển khai plugin thiết bị Neuron. Việc thu thập và ánh xạ thực tế dữ liệu đo từ xa sang định dạng tương thích với Prometheus đã đạt được thông qua neuron-monitor
và neuron-monitor-prometheus.py
. Số liệu được lấy từ Amazon Managed Service dành cho Prometheus và được hiển thị trên bảng điều khiển Neuron của Amazon Managed Grafana.
Chúng tôi khuyên bạn nên khám phá các mẫu có thể quan sát bổ sung trong Trình tăng tốc khả năng quan sát của AWS dành cho CDK Kho lưu trữ GitHub. Để tìm hiểu thêm về Neuron, hãy tham khảo Tài liệu AWS Neuron.
Lưu ý
Riccardo Freschi là Kiến trúc sư giải pháp cấp cao tại AWS, tập trung vào hiện đại hóa ứng dụng. Anh hợp tác chặt chẽ với các đối tác và khách hàng để giúp họ chuyển đổi bối cảnh CNTT trong hành trình sử dụng Đám mây AWS bằng cách tái cấu trúc các ứng dụng hiện có và xây dựng các ứng dụng mới.
- Phân phối nội dung và PR được hỗ trợ bởi SEO. Được khuếch đại ngay hôm nay.
- PlatoData.Network Vertical Generative Ai. Trao quyền cho chính mình. Truy cập Tại đây.
- PlatoAiStream. Thông minh Web3. Kiến thức khuếch đại. Truy cập Tại đây.
- Trung tâmESG. Than đá, công nghệ sạch, Năng lượng, Môi trường Hệ mặt trời, Quản lý chất thải. Truy cập Tại đây.
- PlatoSức khỏe. Tình báo thử nghiệm lâm sàng và công nghệ sinh học. Truy cập Tại đây.
- nguồn: https://aws.amazon.com/blogs/machine-learning/open-source-observability-for-aws-inferentia-nodes-within-amazon-eks-clusters/