Chọn nguồn dữ liệu tốt nhất cho công việc đào tạo PlatoBlockchain Data Intelligence của bạn về Amazon SageMaker. Tìm kiếm dọc. Ái.

Chọn nguồn dữ liệu tốt nhất cho công việc đào tạo Amazon SageMaker của bạn

Amazon SageMaker là một dịch vụ được quản lý giúp dễ dàng xây dựng, đào tạo và triển khai các mô hình học máy (ML). Các nhà khoa học dữ liệu sử dụng các công việc đào tạo của SageMaker để dễ dàng đào tạo các mô hình ML; bạn không phải lo lắng về việc quản lý tài nguyên máy tính và bạn chỉ phải trả cho thời gian đào tạo thực tế. Nhập dữ liệu là một phần không thể thiếu của bất kỳ quy trình đào tạo nào và các công việc đào tạo của SageMaker hỗ trợ nhiều chế độ lưu trữ và nhập dữ liệu khác nhau để phù hợp với nhiều khối lượng công việc đào tạo.

Bài đăng này giúp bạn chọn nguồn dữ liệu tốt nhất cho trường hợp sử dụng đào tạo SageMaker ML của bạn. Chúng tôi giới thiệu các tùy chọn nguồn dữ liệu mà các công việc đào tạo của SageMaker hỗ trợ nguyên bản. Đối với mỗi nguồn dữ liệu và chế độ đầu vào, chúng tôi phác thảo tính dễ sử dụng, đặc điểm hiệu suất, chi phí và hạn chế của nó. Để giúp bạn bắt đầu nhanh chóng, chúng tôi cung cấp sơ đồ với quy trình quyết định mẫu mà bạn có thể theo dõi dựa trên các đặc điểm khối lượng công việc chính của mình. Cuối cùng, chúng tôi thực hiện một số điểm chuẩn cho các kịch bản đào tạo thực tế để chứng minh những ý nghĩa thực tế đối với chi phí đào tạo tổng thể và hiệu suất.

Nguồn dữ liệu Native SageMaker và chế độ đầu vào

Đọc dữ liệu đào tạo một cách dễ dàng và linh hoạt theo cách hiệu quả là mối quan tâm thường xuyên thường xuyên đối với đào tạo ML. SageMaker đơn giản hóa việc nhập dữ liệu với lựa chọn các cơ chế nhập dữ liệu hiệu quả, thông lượng cao được gọi là nguồn dữ liệu và các chế độ nhập tương ứng của chúng. Điều này cho phép bạn tách mã đào tạo khỏi nguồn dữ liệu thực tế, tự động gắn kết hệ thống tệp, đọc với hiệu suất cao, dễ dàng bật tính năng phân sắc dữ liệu giữa GPU và các phiên bản để cho phép dữ liệu song song và tự động trộn dữ liệu vào đầu mỗi kỷ nguyên.

Cơ chế nhập đào tạo SageMaker tích hợp nguyên bản với ba dịch vụ lưu trữ được quản lý AWS:

  • Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) là một dịch vụ lưu trữ đối tượng cung cấp khả năng mở rộng, tính khả dụng của dữ liệu, bảo mật và hiệu suất hàng đầu trong ngành.
  • Amazon FSx cho ánh là một bộ nhớ dùng chung được quản lý hoàn toàn với khả năng mở rộng và hiệu suất của hệ thống tệp Luster phổ biến. Nó thường được liên kết với một nhóm S3 hiện có.
  • Hệ thống tệp đàn hồi Amazon (Amazon EFS) là một hệ thống tệp chia sẻ có mục đích chung, có thể mở rộng và có tính khả dụng cao với nhiều mức giá. Amazon EFS không có máy chủ và tự động phát triển và thu nhỏ khi bạn thêm và xóa tệp.

Đào tạo SageMaker cho phép tập lệnh đào tạo của bạn truy cập các tập dữ liệu được lưu trữ trên Amazon S3, FSx for Luster hoặc Amazon EFS, như thể nó có sẵn trên hệ thống tệp cục bộ (thông qua giao diện hệ thống tệp tuân thủ POSIX).

Với Amazon S3 làm nguồn dữ liệu, bạn có thể chọn giữa chế độ Tệp, chế độ FastFile và chế độ Pipe:

  • Chế độ tập tin - SageMaker sao chép tập dữ liệu từ Amazon S3 sang bộ lưu trữ phiên bản ML, là tập tin đính kèm Cửa hàng đàn hồi Amazon (Amazon EBS) hoặc ổ SSD NVMe, trước khi tập lệnh đào tạo của bạn bắt đầu.
  • Chế độ FastFile - SageMaker hiển thị tập dữ liệu nằm trong Amazon S3 dưới dạng hệ thống tệp POSIX trên phiên bản đào tạo. Các tệp tập dữ liệu được truyền trực tuyến từ Amazon S3 theo yêu cầu khi tập lệnh đào tạo của bạn đọc chúng.
  • Chế độ ống - SageMaker truyền một tập dữ liệu nằm trong Amazon S3 tới phiên bản đào tạo ML dưới dạng một đường ống Unix, truyền trực tuyến từ Amazon S3 theo yêu cầu khi tập lệnh đào tạo của bạn đọc dữ liệu từ đường ống.

Với FSx cho Luster hoặc Amazon EFS làm nguồn dữ liệu, SageMaker gắn kết hệ thống tệp trước khi tập lệnh đào tạo của bạn bắt đầu.

Các kênh đầu vào đào tạo

Khi khởi chạy một công việc đào tạo SageMaker, bạn có thể chỉ định tối đa 20 đào tạo các kênh đầu vào. Bạn có thể coi các kênh như một đơn vị trừu tượng để cho công việc đào tạo biết cách thức và vị trí lấy dữ liệu được cung cấp cho mã thuật toán để đọc từ đường dẫn hệ thống tệp (ví dụ: /opt/ml/input/data/input-channel-name) trên phiên bản ML. Các kênh đào tạo đã chọn được ghi lại như một phần của siêu dữ liệu công việc đào tạo để cho phép theo dõi dòng dõi mô hình đầy đủ cho các trường hợp sử dụng như khả năng tái tạo của công việc đào tạo hoặc mục đích quản trị mô hình.

Để sử dụng Amazon S3 làm nguồn dữ liệu, bạn xác định Đầu vào đào tạo để chỉ định những điều sau:

  • Chế độ đầu vào của bạn (Chế độ tệp, FastFile hoặc Pipe)
  • phân phátxáo trộn cấu hình
  • An S3DataType là một trong ba phương pháp để chỉ định các đối tượng trong Amazon S3 tạo nên tập dữ liệu của bạn:

Ngoài ra, đối với FSx cho Luster hoặc Amazon EFS, bạn xác định một Hệ thống tập tinĐầu vào.

Sơ đồ sau đây cho thấy năm công việc đào tạo, mỗi công việc được định cấu hình với sự kết hợp nguồn dữ liệu và chế độ đầu vào khác nhau:

Chọn nguồn dữ liệu tốt nhất cho công việc đào tạo PlatoBlockchain Data Intelligence của bạn về Amazon SageMaker. Tìm kiếm dọc. Ái.

Nguồn dữ liệu và chế độ đầu vào

Các phần tiếp theo cung cấp thông tin chi tiết về sự khác biệt giữa Amazon S3 (Chế độ tệp, chế độ FastFile và chế độ Ống), FSx cho Luster và cơ chế nhập của Amazon EFS dưới dạng SageMaker.

Chế độ tệp Amazon S3

Chế độ tệp là chế độ nhập mặc định (nếu bạn không chỉ định rõ ràng) và nó dễ sử dụng hơn. Khi bạn sử dụng tùy chọn đầu vào này, SageMaker tải tập dữ liệu từ Amazon S3 xuống bộ lưu trữ phiên bản đào tạo ML (Amazon EBS hoặc NVMe cục bộ tùy thuộc vào loại phiên bản) thay mặt bạn trước khi khởi chạy đào tạo mô hình, để tập lệnh đào tạo có thể đọc tập dữ liệu từ hệ thống tệp cục bộ. Trong trường hợp này, phiên bản phải có đủ không gian lưu trữ để phù hợp với toàn bộ tập dữ liệu.

Bạn định cấu hình tập dữ liệu cho chế độ Tệp bằng cách cung cấp tiền tố S3, tệp kê khai hoặc tệp kê khai tăng cường.

Bạn nên sử dụng tiền tố S3 khi tất cả các tệp tập dữ liệu của bạn được đặt trong một tiền tố S3 chung (các thư mục con vẫn ổn).

Tệp kê khai liệt kê các tệp bao gồm tập dữ liệu của bạn. Bạn thường sử dụng tệp kê khai khi công việc tiền xử lý dữ liệu phát ra tệp kê khai hoặc khi tệp bộ dữ liệu của bạn được trải rộng trên nhiều tiền tố S3. Tệp kê khai tăng cường là tệp dòng JSON, trong đó mỗi dòng chứa danh sách các thuộc tính, chẳng hạn như tham chiếu đến tệp trong Amazon S3, cùng với các thuộc tính bổ sung, chủ yếu là nhãn. Các trường hợp sử dụng của nó tương tự như trường hợp của một tệp kê khai.

Chế độ tệp tương thích với Chế độ cục bộ SageMaker (khởi động vùng chứa đào tạo SageMaker một cách tương tác trong vài giây). Đối với đào tạo phân tán, bạn có thể chia nhỏ tập dữ liệu qua nhiều trường hợp với ShardedByS3Key tùy chọn.

Tốc độ tải xuống ở chế độ tệp phụ thuộc vào kích thước tập dữ liệu, kích thước tệp trung bình và số lượng tệp. Ví dụ: tập dữ liệu càng lớn (hoặc càng có nhiều tệp), thì giai đoạn tải xuống càng lâu, trong đó tài nguyên máy tính của phiên bản vẫn không hoạt động. Khi đào tạo với Phiên bản Spot, tập dữ liệu được tải xuống mỗi khi công việc tiếp tục sau khi Spot bị gián đoạn. Thông thường, quá trình tải xuống dữ liệu diễn ra ở khoảng 200 MB / s đối với các tệp lớn (ví dụ: 5 phút / 50 GB). Chi phí khởi động này có được chấp nhận hay không chủ yếu phụ thuộc vào thời lượng tổng thể của công việc đào tạo của bạn, bởi vì giai đoạn đào tạo dài hơn có nghĩa là giai đoạn tải xuống tương ứng nhỏ hơn.

Chế độ FastFile của Amazon S3

Chế độ FastFile hiển thị các đối tượng S3 thông qua giao diện hệ thống tệp tuân thủ POSIX, như thể các tệp có sẵn trên đĩa cục bộ của phiên bản đào tạo của bạn và truyền nội dung của chúng theo yêu cầu khi dữ liệu được sử dụng bởi tập lệnh đào tạo. Điều này có nghĩa là tập dữ liệu của bạn không còn cần phải vừa với không gian lưu trữ phiên bản đào tạo nữa và bạn không cần đợi tập dữ liệu được tải xuống phiên bản đào tạo trước khi quá trình đào tạo có thể bắt đầu.

Để tạo điều kiện thuận lợi cho việc này, SageMaker liệt kê tất cả siêu dữ liệu đối tượng được lưu trữ dưới tiền tố S3 được chỉ định trước khi tập lệnh huấn luyện của bạn chạy. Siêu dữ liệu này được sử dụng để tạo chế độ chỉ đọc FUSE (hệ thống tệp trong không gian người dùng) có sẵn cho tập lệnh đào tạo của bạn thông qua /opt/ml/data/training-channel-name. Các đối tượng trong danh sách S3 chạy nhanh tới 5,500 đối tượng mỗi giây bất kể kích thước của chúng. Điều này nhanh hơn nhiều so với tải xuống tệp trước, như trường hợp của chế độ Tệp. Trong khi tập lệnh đào tạo của bạn đang chạy, nó có thể liệt kê hoặc đọc các tệp như thể chúng có sẵn cục bộ. Mỗi thao tác đọc được ủy quyền cho dịch vụ FUSE, dịch vụ này ủy quyền GET yêu cầu tới Amazon S3 để cung cấp nội dung tệp thực tế cho người gọi. Giống như một hệ thống tệp cục bộ, FastFile xử lý các tệp dưới dạng byte, do đó, nó không phù hợp với các định dạng tệp. Chế độ FastFile có thể đạt thông lượng hơn một GB / s khi đọc các tệp lớn liên tiếp bằng cách sử dụng nhiều công nhân. Bạn có thể sử dụng FastFile để đọc các tệp nhỏ hoặc truy xuất các dải byte ngẫu nhiên, nhưng bạn nên mong đợi thông lượng thấp hơn cho các mẫu truy cập như vậy. Bạn có thể tối ưu hóa kiểu truy cập đọc của mình bằng cách tuần tự hóa nhiều tệp nhỏ vào các vùng chứa tệp lớn hơn và đọc chúng một cách tuần tự.

FastFile hiện chỉ hỗ trợ tiền tố S3 (không hỗ trợ tệp kê khai và tệp kê khai tăng cường) và chế độ FastFile tương thích với chế độ cục bộ SageMaker.

Chế độ ống Amazon S3

Chế độ ống là một chế độ phát trực tuyến khác được thay thế phần lớn bằng chế độ FastFile mới hơn và dễ sử dụng hơn.

Với chế độ Pipe, dữ liệu được tìm nạp trước từ Amazon S3 với thông lượng và đồng thời cao, đồng thời được truyền trực tuyến vào các đường ống Unix có tên FIFO. Mỗi đường ống chỉ có thể được đọc bởi một quá trình duy nhất. Tiện ích mở rộng dành riêng cho SageMaker cho TensorFlow một cách thuận tiện tích hợp chế độ Pipe vào trình tải dữ liệu TensorFlow gốc cho định dạng tệp văn bản trực tuyến, TFRecords hoặc RecordIO. Chế độ ống cũng hỗ trợ phân bổ và xáo trộn dữ liệu được quản lý.

FSx cho Lustre

FSx cho Luster có thể mở rộng đến hàng trăm GB / s thông lượng và hàng triệu IOPS với khả năng truy xuất tệp có độ trễ thấp.

Khi bắt đầu công việc đào tạo, SageMaker gắn hệ thống tệp FSx for Luster vào hệ thống tệp phiên bản đào tạo, sau đó bắt đầu tập lệnh đào tạo của bạn. Bản thân việc gắn kết là một hoạt động tương đối nhanh mà không phụ thuộc vào kích thước của tập dữ liệu được lưu trữ trong FSx cho Luster.

Trong nhiều trường hợp, bạn tạo hệ thống tệp FSx cho Luster và liên kết nó với một thùng và tiền tố S3. Khi được liên kết với một thùng S3 làm nguồn, các tệp được tải chậm vào hệ thống tệp khi tập lệnh đào tạo của bạn đọc chúng. Điều này có nghĩa là ngay sau kỷ nguyên đầu tiên của lần chạy đào tạo đầu tiên của bạn, toàn bộ tập dữ liệu được sao chép từ Amazon S3 sang FSx để lưu trữ Luster (giả sử một kỷ nguyên được định nghĩa là một lần quét toàn bộ, hãy nghĩ đến các ví dụ đào tạo và FSx được phân bổ cho Lưu trữ ánh sáng đủ lớn). Điều này cho phép truy cập tệp có độ trễ thấp cho bất kỳ kỷ nguyên tiếp theo và công việc đào tạo nào với cùng một tập dữ liệu.

Quý vị cũng có thể tải trước tệp vào hệ thống tệp trước khi bắt đầu công việc đào tạo, điều này giúp giảm bớt tình trạng khởi động nguội do tải chậm. Cũng có thể chạy song song nhiều công việc đào tạo được cung cấp bởi cùng một hệ thống tệp FSx for Luster. Để truy cập FSx cho Luster, công việc đào tạo của bạn phải kết nối với VPC (xem Cài đặt VPCConfig), yêu cầu thiết lập và tham gia DevOps. Để tránh chi phí truyền dữ liệu, hệ thống tệp sử dụng một Vùng sẵn sàng duy nhất và bạn cần chỉ định ID Vùng sẵn sàng này khi chạy công việc đào tạo. Vì bạn đang sử dụng Amazon S3 làm nơi lưu trữ dữ liệu dài hạn của mình, chúng tôi khuyên bạn nên triển khai FSx cho Luster với bộ nhớ Scratch 2, như một lựa chọn lưu trữ ngắn hạn, hiệu quả về chi phí cho thông lượng cao, cung cấp đường cơ sở 200 MB / s và một loạt lên đến 1300 MB / s trên mỗi TB dung lượng lưu trữ được cung cấp.

Với hệ thống tệp FSx cho Luster của bạn liên tục chạy, bạn có thể bắt đầu các công việc đào tạo mới mà không cần đợi hệ thống tệp được tạo và không phải lo lắng về việc khởi động nguội trong thời gian đầu tiên (vì tệp vẫn có thể được lưu vào bộ nhớ cache trong hệ thống tệp FSx cho Luster). Nhược điểm trong trường hợp này là chi phí bổ sung liên quan đến việc giữ cho hệ thống tệp hoạt động. Ngoài ra, bạn có thể tạo và xóa hệ thống tệp trước và sau mỗi công việc đào tạo (có thể với tự động hóa theo tập lệnh để trợ giúp), nhưng phải mất thời gian để khởi tạo hệ thống tệp FSx cho Luster, tỷ lệ này tỷ lệ với số tệp mà nó chứa (đối với ví dụ: mất khoảng một giờ để lập chỉ mục khoảng 2 triệu đối tượng từ Amazon S3).

Amazon EFS

Chúng tôi khuyên bạn nên sử dụng Amazon EFS nếu dữ liệu đào tạo của bạn đã nằm trong Amazon EFS do các trường hợp sử dụng bên cạnh đào tạo ML. Để sử dụng Amazon EFS làm nguồn dữ liệu, dữ liệu phải nằm trong Amazon EFS trước khi đào tạo. SageMaker gắn hệ thống tệp Amazon EFS được chỉ định vào phiên bản đào tạo, sau đó bắt đầu tập lệnh đào tạo của bạn. Khi định cấu hình hệ thống tệp Amazon EFS, bạn cần chọn giữa chế độ hiệu suất Mục đích chung mặc định, được tối ưu hóa cho độ trễ (tốt cho các tệp nhỏ) và chế độ hiệu suất I / O tối đa, có thể mở rộng đến mức cao hơn của thông lượng tổng hợp và hoạt động mỗi giây (tốt hơn cho các công việc đào tạo với nhiều nhân viên I / O). Để tìm hiểu thêm, hãy tham khảo Sử dụng chế độ hiệu suất phù hợp.

Ngoài ra, bạn có thể chọn giữa hai tùy chọn thông lượng được đo lường: thông lượng bùng nổ và thông lượng được cung cấp. Thông lượng bùng nổ cho hệ thống tệp 1 TB cung cấp đường cơ sở 150 MB / s, trong khi có thể tăng tốc lên 300 MB / s trong khoảng thời gian 12 giờ một ngày. Nếu bạn cần thông lượng cơ bản cao hơn hoặc nhận thấy mình hết các khoản tín dụng liên tục quá nhiều lần, bạn có thể tăng kích thước của hệ thống tệp hoặc chuyển sang thông lượng được cung cấp. Với thông lượng được cung cấp, bạn phải trả cho thông lượng đường cơ sở mong muốn lên đến tối đa là 3072 MB / s đọc.

Công việc đào tạo của bạn phải kết nối với VPC (xem Cài đặt VPCConfig) để truy cập Amazon EFS.

Chọn nguồn dữ liệu tốt nhất

Nguồn dữ liệu tốt nhất cho công việc đào tạo của bạn phụ thuộc vào các đặc điểm khối lượng công việc như kích thước tập dữ liệu, định dạng tệp, kích thước tệp trung bình, thời lượng đào tạo, mẫu đọc trình tải dữ liệu tuần tự hoặc ngẫu nhiên và tốc độ mô hình của bạn có thể tiêu thụ dữ liệu đào tạo.

Lưu đồ sau cung cấp một số nguyên tắc để giúp bạn bắt đầu:
Chọn nguồn dữ liệu tốt nhất cho công việc đào tạo PlatoBlockchain Data Intelligence của bạn về Amazon SageMaker. Tìm kiếm dọc. Ái.

Khi nào sử dụng Amazon EFS

Nếu tập dữ liệu của bạn chủ yếu được lưu trữ trên Amazon EFS, bạn có thể có ứng dụng tiền xử lý hoặc chú thích sử dụng Amazon EFS để lưu trữ. Bạn có thể dễ dàng chạy công việc đào tạo được định cấu hình với kênh dữ liệu trỏ đến hệ thống tệp Amazon EFS (để biết thêm thông tin, hãy tham khảo Tăng tốc đào tạo trên Amazon SageMaker bằng Amazon FSx cho các hệ thống tệp Luster và Amazon EFS). Nếu hiệu suất không hoàn toàn tốt như bạn mong đợi, hãy kiểm tra các tùy chọn tối ưu hóa của bạn với Hướng dẫn về hiệu suất Amazon EFShoặc xem xét các chế độ nhập liệu khác.

Sử dụng chế độ Tệp cho các tập dữ liệu nhỏ

Nếu tập dữ liệu được lưu trữ trên Amazon S3 và dung lượng tổng thể của nó tương đối nhỏ (ví dụ: dưới 50–100 GB), hãy thử sử dụng Chế độ tệp. Chi phí tải xuống tập dữ liệu 50 GB có thể thay đổi dựa trên tổng số tệp (ví dụ: khoảng 5 phút nếu được chia thành các phân đoạn 100 MB). Chi phí khởi động này có được chấp nhận hay không chủ yếu phụ thuộc vào thời lượng tổng thể của công việc đào tạo của bạn, bởi vì giai đoạn đào tạo dài hơn có nghĩa là giai đoạn tải xuống tương ứng nhỏ hơn.

Nối tiếp nhiều tệp nhỏ lại với nhau

Nếu kích thước tập dữ liệu của bạn nhỏ (dưới 50–100 GB) nhưng được tạo thành từ nhiều tệp nhỏ (dưới 50 MB), chi phí tải xuống ở chế độ Tệp sẽ tăng lên, vì mỗi tệp cần được tải xuống riêng lẻ từ Amazon S3 đến khối lượng cá thể đào tạo. Để giảm thiểu chi phí này và để tăng tốc độ truyền dữ liệu nói chung, hãy cân nhắc sắp xếp tuần tự các nhóm tệp nhỏ hơn thành ít vùng chứa tệp lớn hơn (chẳng hạn như 150 MB cho mỗi tệp) bằng cách sử dụng các định dạng tệp như Bản ghi TF cho TensorFlow, WebBộ dữ liệu cho PyTorch, hoặc Bản ghiIO cho MXNet. Các định dạng này yêu cầu trình tải dữ liệu của bạn lặp lại các ví dụ một cách tuần tự. Bạn vẫn có thể xáo trộn dữ liệu của mình bằng cách sắp xếp lại ngẫu nhiên danh sách các tệp TFRecord sau mỗi kỷ nguyên và bằng cách lấy mẫu ngẫu nhiên dữ liệu từ bộ đệm xáo trộn cục bộ (xem phần sau Ví dụ về TensorFlow).

Khi nào sử dụng chế độ FastFile

Đối với các bộ dữ liệu lớn hơn với các tệp lớn hơn (hơn 50 MB), tùy chọn đầu tiên là thử chế độ FastFile, chế độ này dễ sử dụng hơn FSx cho Luster vì nó không yêu cầu tạo hệ thống tệp hoặc kết nối với VPC. Chế độ FastFile lý tưởng cho các vùng chứa tệp lớn (hơn 150 MB) và cũng có thể hoạt động tốt với các tệp lớn hơn 50 MB. Vì chế độ FastFile cung cấp giao diện POSIX, nó hỗ trợ đọc ngẫu nhiên (đọc các dải byte không tuần tự). Tuy nhiên, đây không phải là trường hợp sử dụng lý tưởng và thông lượng của bạn có thể sẽ thấp hơn so với các lần đọc tuần tự. Tuy nhiên, nếu bạn có một mô hình ML tương đối lớn và chuyên sâu về tính toán, chế độ FastFile vẫn có thể bão hòa băng thông hiệu quả của đường dẫn đào tạo và không dẫn đến tắc nghẽn I / O. Bạn sẽ cần phải thử nghiệm và xem. May mắn thay, việc chuyển từ chế độ Tệp sang FastFile (và quay lại) cũng dễ dàng như thêm (hoặc xóa) input_mode='FastFile' trong khi xác định kênh đầu vào của bạn bằng SageMaker Python SDK:

sagemaker.inputs.TrainingInput(S3_INPUT_FOLDER, input_mode='FastFile') 

Không có mã hoặc cấu hình nào khác cần thay đổi.

Khi nào sử dụng FSx cho Luster

Nếu tập dữ liệu của bạn quá lớn đối với Chế độ tệp hoặc có nhiều tệp nhỏ (mà bạn không thể tuần tự hóa dễ dàng) hoặc bạn có kiểu truy cập đọc ngẫu nhiên, thì FSx cho Luster là một lựa chọn tốt để xem xét. Hệ thống tệp của nó có dung lượng lên đến hàng trăm GB / s và hàng triệu IOPS, lý tưởng khi bạn có nhiều tệp nhỏ. Tuy nhiên, như đã thảo luận trước đó, hãy lưu ý đến các vấn đề khởi động nguội do tải chậm và chi phí thiết lập và khởi tạo hệ thống tệp FSx cho Luster.

Cân nhắc chi phí

Đối với phần lớn các công việc đào tạo ML, đặc biệt là các công việc sử dụng GPU hoặc chip ML có mục đích, phần lớn chi phí để đào tạo là số giây có thể lập hóa đơn của phiên bản đào tạo ML. GB bộ nhớ mỗi tháng, yêu cầu API và thông lượng được cấp phép là các chi phí bổ sung được liên kết trực tiếp với nguồn dữ liệu bạn sử dụng.

Bộ nhớ GB mỗi tháng

Bộ nhớ GB mỗi tháng có thể rất quan trọng đối với các bộ dữ liệu lớn hơn, chẳng hạn như video, dữ liệu cảm biến LiDAR và nhật ký đặt giá thầu theo thời gian thực của AdTech. Ví dụ: lưu trữ 1 TB trong Bậc truy cập thường xuyên phân loại thông minh của Amazon S3 chi phí $ 23 mỗi tháng. Việc thêm hệ thống tệp FSx cho Luster trên Amazon S3 dẫn đến chi phí bổ sung. Ví dụ: việc tạo hệ thống tệp 1.2 TB của loại Scratch 2 được hỗ trợ bởi SSD với tính năng nén dữ liệu bị vô hiệu hóa sẽ tốn thêm 168 đô la mỗi tháng (140 đô la / TB / tháng).

Với Amazon S3 và Amazon EFS, bạn chỉ trả tiền cho những gì bạn sử dụng, nghĩa là bạn bị tính phí theo kích thước tập dữ liệu thực tế. Với FSx cho Luster, bạn bị tính phí theo kích thước hệ thống tệp được cung cấp (tối thiểu 1.2 TB). Khi chạy phiên bản ML với khối lượng EBS, Amazon EBS được tính phí độc lập với phiên bản ML. Đây thường là một chi phí thấp hơn nhiều so với chi phí chạy phiên bản. Ví dụ: chạy một phiên bản ml.p3.2xlarge với khối lượng 100 GB EBS trong 1 giờ có giá 3.825 đô la cho ví dụ này và 0.02 đô la cho khối lượng EBS.

Yêu cầu API và chi phí thông lượng được cấp phép

Trong khi công việc đào tạo của bạn đang xử lý thông qua tập dữ liệu, nó sẽ liệt kê và tìm nạp các tệp bằng cách gửi các yêu cầu API Amazon S3. Ví dụ: mỗi triệu yêu cầu GET có giá $ 0.4 (với lớp Intelligent-Tiering). Bạn sẽ không phải trả phí truyền dữ liệu cho băng thông trong và ngoài Amazon S3, vì quá trình đào tạo diễn ra trong một Vùng khả dụng duy nhất.

Khi sử dụng FSx cho Luster được liên kết với nhóm S3, bạn phải chịu chi phí yêu cầu API Amazon S3 để đọc dữ liệu chưa được lưu trong bộ nhớ cache trong hệ thống tệp, vì FSx For Luster ủy quyền yêu cầu tới Amazon S3 (và lưu kết quả vào bộ nhớ cache ). Không có chi phí yêu cầu trực tiếp cho FSx cho chính Luster. Khi bạn sử dụng hệ thống tệp FSx cho Luster, hãy tránh chi phí cho việc truyền dữ liệu Vùng khả dụng chéo bằng cách chạy công việc đào tạo của bạn được kết nối với cùng Vùng sẵn sàng mà bạn đã cung cấp cho hệ thống tệp. Amazon EFS với thông lượng được cung cấp sẽ thêm một khoản chi phí để đảm bảo hơn GB mỗi tháng.

Nghiên cứu điển hình về hiệu suất

Để chứng minh các cân nhắc về hiệu suất đào tạo đã đề cập trước đó, chúng tôi đã thực hiện một loạt các điểm chuẩn cho một trường hợp sử dụng thực tế trong miền thị giác máy tính. Điểm chuẩn (và những điểm cần rút ra) từ phần này có thể không áp dụng được cho tất cả các trường hợp và bị ảnh hưởng bởi các yếu tố định trước khác nhau mà chúng tôi đã sử dụng, chẳng hạn như DNN. Chúng tôi đã chạy thử nghiệm cho 12 tổ hợp sau:

  • Các chế độ đầu vào - FSx cho chế độ Lustre, File mode, FastFile
  • Kích thước tập dữ liệu - Tập dữ liệu nhỏ hơn (1 GB), tập dữ liệu lớn hơn (54 GB)
  • Kích thước tập tin - Tệp nhỏ hơn (JPG, khoảng 39 KB), tệp lớn hơn (TFRecord, khoảng 110 MB)

Đối với nghiên cứu điển hình này, chúng tôi đã chọn các chế độ nhập được sử dụng rộng rãi nhất và do đó đã bỏ qua Amazon EFS và chế độ Pipe.

Các điểm chuẩn của nghiên cứu điển hình được thiết kế dưới dạng các công việc đào tạo từ đầu đến cuối của SageMaker TensorFlow trên một phiên bản GPU đơn ml.p3.2xlarge. Chúng tôi đã chọn ResNet-50 nổi tiếng làm mô hình xương sống cho nhiệm vụ phân loại và Caltech-256 làm tập dữ liệu đào tạo nhỏ hơn (chúng tôi đã sao chép 50 lần để tạo phiên bản tập dữ liệu lớn hơn của nó). Chúng tôi đã thực hiện khóa đào tạo trong một kỷ nguyên, được định nghĩa là một lần quét toàn bộ suy nghĩ về các ví dụ đào tạo.

Các biểu đồ sau đây hiển thị tổng thời gian có thể lập hóa đơn của các công việc đào tạo SageMaker cho mỗi tình huống điểm chuẩn. Bản thân tổng thời gian công việc bao gồm tải xuống, đào tạo và các giai đoạn khác (chẳng hạn như khởi động vùng chứa và tải các tạo tác mô hình được đào tạo lên Amazon S3). Thời gian lập hóa đơn ngắn hơn chuyển thành công việc đào tạo nhanh hơn và rẻ hơn.

Chọn nguồn dữ liệu tốt nhất cho công việc đào tạo PlatoBlockchain Data Intelligence của bạn về Amazon SageMaker. Tìm kiếm dọc. Ái.

Đầu tiên chúng ta hãy thảo luận Kịch bản A và Kịch bản C, điều này thể hiện một cách thuận tiện sự khác biệt về hiệu suất giữa các chế độ đầu vào khi tập dữ liệu bao gồm nhiều tệp nhỏ.

Kịch bản A (tệp nhỏ hơn, bộ dữ liệu nhỏ hơn) tiết lộ rằng công việc đào tạo với hệ thống tệp FSx cho Luster có thời gian lập hóa đơn nhỏ nhất. Nó có giai đoạn tải xuống ngắn nhất và giai đoạn đào tạo của nó cũng nhanh như chế độ Tệp, nhưng nhanh hơn FastFile. FSx cho Luster là người chiến thắng trong thử nghiệm kỷ nguyên duy nhất này. Đã nói rằng, hãy xem xét một khối lượng công việc tương tự nhưng có nhiều kỷ nguyên — chi phí tương đối của chế độ Tệp do giai đoạn tải xuống sẽ giảm khi nhiều kỷ nguyên được thêm vào. Trong trường hợp này, chúng tôi thích chế độ Tệp hơn vì nó dễ sử dụng. Ngoài ra, bạn có thể thấy rằng sử dụng Chế độ tệp và trả thêm 100 giây có thể lập hóa đơn là lựa chọn tốt hơn so với việc trả tiền và cung cấp hệ thống tệp FSx cho Luster.

Tình huống C (các tệp nhỏ hơn, tập dữ liệu lớn hơn) cho thấy FSx for Luster là chế độ nhanh nhất, chỉ với tổng thời gian lập hóa đơn là 5,000 giây. Nó cũng có giai đoạn tải xuống ngắn nhất, vì việc gắn hệ thống tệp FSx cho Luster không phụ thuộc vào số lượng tệp trong hệ thống tệp (trong trường hợp này là 1.5 triệu tệp). Chi phí tải xuống của FastFile cũng nhỏ; nó chỉ tìm nạp siêu dữ liệu của các tệp nằm dưới tiền tố nhóm S3 được chỉ định, trong khi nội dung của tệp được đọc trong giai đoạn đào tạo. Chế độ tệp là chế độ chậm nhất, dành 10,000 giây để tải xuống toàn bộ tập dữ liệu trước khi bắt đầu đào tạo. Khi chúng ta xem xét giai đoạn đào tạo, FSx cho chế độ Luster và File thể hiện hiệu suất xuất sắc tương tự. Đối với chế độ FastFile, khi truyền trực tiếp các tệp nhỏ hơn từ Amazon S3, chi phí để gửi một yêu cầu GET mới cho mỗi tệp sẽ trở nên đáng kể so với tổng thời lượng truyền tệp (mặc dù sử dụng bộ tải dữ liệu song song cao với bộ đệm tìm nạp trước). Điều này dẫn đến thông lượng tổng thể thấp hơn cho chế độ FastFile, tạo ra nút thắt cổ chai I / O cho công việc đào tạo. FSx cho Luster rõ ràng là người chiến thắng trong kịch bản này.

Kịch bản B và D hiển thị sự khác biệt về hiệu suất giữa các chế độ đầu vào khi tập dữ liệu bao gồm ít tệp lớn hơn. Việc đọc tuần tự bằng cách sử dụng các tệp lớn hơn thường mang lại hiệu suất I / O tốt hơn vì nó cho phép đệm hiệu quả và giảm số lượng hoạt động I / O.

Kịch bản B (tệp lớn hơn, tập dữ liệu nhỏ hơn) hiển thị thời gian giai đoạn đào tạo tương tự cho tất cả các chế độ (chứng minh rằng đào tạo không bị ràng buộc I / O). Trong trường hợp này, chúng tôi thích chế độ FastFile hơn chế độ Tệp do giai đoạn tải xuống ngắn hơn và thích chế độ FastFile hơn FSx cho Luster do tính năng trước đây dễ sử dụng.

Kịch bản D (các tệp lớn hơn, tập dữ liệu lớn hơn) hiển thị tổng số lần lập hóa đơn tương đối giống nhau cho cả ba chế độ. Giai đoạn tải xuống của chế độ Tệp lâu hơn so với giai đoạn của FSx đối với Luster và FastFile. Chế độ tệp tải xuống toàn bộ tập dữ liệu (54 GB) từ Amazon S3 xuống phiên bản đào tạo trước khi bắt đầu giai đoạn đào tạo. Cả ba chế độ đều dành thời gian tương tự nhau trong giai đoạn đào tạo, vì tất cả các chế độ đều có thể tìm nạp dữ liệu đủ nhanh và bị ràng buộc bởi GPU. Nếu chúng tôi sử dụng các phiên bản ML với tài nguyên CPU hoặc GPU bổ sung, chẳng hạn như ml.p4d.24xlarge, thông lượng I / O dữ liệu cần thiết để bão hòa tài nguyên máy tính sẽ tăng lên. Trong những trường hợp này, chúng ta có thể mong đợi FastFile và FSx cho Luster mở rộng thành công thông lượng của chúng (tuy nhiên, thông lượng FSx cho Luster phụ thuộc vào kích thước hệ thống tệp được cung cấp). Khả năng mở rộng thông lượng của chế độ Tệp phụ thuộc vào thông lượng của ổ đĩa được đính kèm với phiên bản. Ví dụ: các bản sao được Amazon EBS hỗ trợ (như ml.p3.2xlarge, ml.p3.8xlarge và ml.p3.16xlarge) bị giới hạn ở thông lượng tối đa là 250MB / s, trong khi các bản sao được NVMe hỗ trợ cục bộ (như ml. g5. * hoặc ml.p4d.24xlarge) có thể đáp ứng thông lượng lớn hơn nhiều.

Tóm lại, chúng tôi tin rằng FastFile là người chiến thắng trong trường hợp này vì nó nhanh hơn chế độ Tệp và nhanh như FSx cho Luster, nhưng dễ sử dụng hơn, chi phí thấp hơn và có thể dễ dàng mở rộng thông lượng khi cần.

Ngoài ra, nếu chúng ta có tập dữ liệu lớn hơn nhiều (dung lượng vài TB), thì Chế độ tệp sẽ dành nhiều giờ để tải xuống tập dữ liệu trước khi quá trình đào tạo có thể bắt đầu, trong khi FastFile có thể bắt đầu đào tạo nhanh hơn đáng kể.

Mang theo quá trình nhập dữ liệu của riêng bạn

Nguồn dữ liệu gốc của SageMaker phù hợp với hầu hết nhưng không phải tất cả các kịch bản đào tạo ML có thể có. Các tình huống khi bạn có thể cần tìm các tùy chọn nhập dữ liệu khác có thể bao gồm việc đọc dữ liệu trực tiếp từ sản phẩm lưu trữ của bên thứ ba (giả sử không thể xuất dễ dàng và kịp thời sang Amazon S3) hoặc có yêu cầu cao về cùng một khóa đào tạo script để chạy không thay đổi trên cả SageMaker và Đám mây điện toán đàn hồi Amazon (Amazon EC2) hoặc Dịch vụ Kubernetes đàn hồi của Amazon (Amazon EKS). Bạn có thể giải quyết những trường hợp này bằng cách triển khai cơ chế nhập dữ liệu của mình vào tập lệnh đào tạo. Cơ chế này chịu trách nhiệm đọc bộ dữ liệu từ các nguồn dữ liệu bên ngoài vào phiên bản huấn luyện. Ví dụ, TFRecordDataset của TensorFlow's tf.data thư viện có thể đọc trực tiếp từ bộ lưu trữ Amazon S3.

Nếu cơ chế nhập dữ liệu của bạn cần gọi bất kỳ dịch vụ AWS nào, chẳng hạn như Dịch vụ cơ sở dữ liệu quan hệ của Amazon (Amazon RDS), hãy đảm bảo rằng Quản lý truy cập và nhận dạng AWS (IAM) vai trò của công việc đào tạo của bạn bao gồm các chính sách IAM có liên quan. Nếu nguồn dữ liệu nằm trong Đám mây riêng ảo Amazon (Amazon VPC), bạn cần chạy công việc đào tạo của mình được kết nối với cùng một VPC.

Khi bạn đang tự quản lý việc nhập tập dữ liệu, tính năng theo dõi dòng dõi SageMaker không thể tự động ghi lại các tập dữ liệu được sử dụng trong quá trình đào tạo. Do đó, hãy xem xét các cơ chế thay thế, như thẻ công việc đào tạo hoặc siêu tham số, để nắm bắt siêu dữ liệu có liên quan của bạn.

Kết luận

Việc chọn nguồn dữ liệu đào tạo SageMaker phù hợp có thể có ảnh hưởng sâu sắc đến tốc độ, tính dễ sử dụng và chi phí đào tạo các mô hình ML. Sử dụng lưu đồ được cung cấp để bắt đầu nhanh chóng, quan sát kết quả và thử nghiệm với cấu hình bổ sung nếu cần. Hãy ghi nhớ những ưu, nhược điểm và hạn chế của từng nguồn dữ liệu cũng như mức độ phù hợp của chúng với các yêu cầu riêng của công việc đào tạo của bạn. Liên hệ với người liên hệ AWS để biết thêm thông tin và trợ giúp.


Về các tác giả

Chọn nguồn dữ liệu tốt nhất cho công việc đào tạo PlatoBlockchain Data Intelligence của bạn về Amazon SageMaker. Tìm kiếm dọc. Ái.Gili Nachum là một Kiến trúc sư giải pháp chuyên gia AI / ML cấp cao, người làm việc như một phần của nhóm Học máy Amazon của EMEA. Gili đam mê những thách thức của việc đào tạo mô hình học sâu và cách học máy đang thay đổi thế giới như chúng ta đã biết. Khi rảnh rỗi, Gili thích chơi bóng bàn.

Chọn nguồn dữ liệu tốt nhất cho công việc đào tạo PlatoBlockchain Data Intelligence của bạn về Amazon SageMaker. Tìm kiếm dọc. Ái.Tiến sĩ Alexander Arzhanov là một Kiến trúc sư Giải pháp Chuyên gia về AI / ML có trụ sở tại Frankfurt, Đức. Anh ấy giúp khách hàng AWS thiết kế và triển khai các giải pháp ML của họ trên toàn khu vực EMEA. Trước khi gia nhập AWS, Alexander đã nghiên cứu về nguồn gốc của các nguyên tố nặng trong vũ trụ của chúng ta và bắt đầu đam mê ML sau khi sử dụng nó trong các tính toán khoa học quy mô lớn của mình.

Dấu thời gian:

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