Trong những năm gần đây, chúng ta đã chứng kiến ​​sự trỗi dậy của Học máy và AI, với thị trường toàn cầu tăng từ 1,58 tỷ USD vào năm 2017 lên hơn 7 tỷ USD vào năm 2020.

Public cloud phù hợp tự nhiên cho ML/AI và có nhiều lý do chính đáng để chuyển một số hoặc tất cả các dự án máy học của bạn lên đám mây. Mô hình trả tiền cho mỗi lần sử dụng khá lý tưởng cho khối lượng công việc học máy, ví dụ: điều chỉnh hyperparameters hoặc đào tạo một mô hình lớn kiểu BERT. Bạn cũng có thể tận dụng tốc độ và sức mạnh của GPU để huấn luyện mô hình mà không cần phải đầu tư lớn vào phần cứng trong một thời gian ngắn.

Mặc dù đám mây đã cung cấp tính linh hoạt cao và làm cho các dự án lớn khả thi về mặt tài chính, nhưng nó vẫn có thể khá tốn kém. Mua Reserved instances và các gói tiết kiệm có thể không phải là cách để áp dụng cho các dự án ngắn hạn. Mặt khác, Phiên bản Spot, cung cấp chiết khấu lên tới 90% so với giá On-demand, có thể là lý tưởng, đặc biệt là khi bạn không muốn lo lắng về mặt xấu của Phiên bản Spot, chúng có thể bị thu hồi bất chợt. 

Trong bài đăng trên blog này, chúng tôi sẽ chỉ cho bạn chính xác cách bạn có thể tận hưởng mức giá thấp nhất, tính toán trên đám mây với tính khả dụng cao cho tất cả các dự án ML của bạn. 

P3.2xlarge so với G3.4xlarge cho Tập dữ liệu CIFAR của bạn

Vì lợi ích của phần trình bày này, chúng tôi sẽ khám phá một trường hợp sử dụng tương đối đơn giản và sau đó so sánh số tiền chúng tôi có thể tiết kiệm bằng cách tận dụng Phiên bản Spot so với mô hình đặt giá On-demand.

Chúng tôi sẽ đào tạo một mô hình hiện đại trên tập dữ liệu CIFAR , sử dụng các hyperparameters khác nhau, ví dụ: batch size và learning rate . Chúng tôi sẽ lặp lại quy trình tương tự cho hai phiên bản EC2 tối ưu tính toán và tối ưu GPU của AWS cho mô hình của chúng tôi. Chúng tôi sẽ so sánh chi phí của chúng trong hai mô hình AWS EC2 định giá, On-demand và Spot. 

Cụ thể hơn, chúng tôi đã chọn một phiên bản p3.2xlarge bao gồm một GPU Nvidia Tesla V100 và loại phiên bản khác, một g3.4xlarge khiêm tốn hơn, mang lại cho chúng tôi GPU Nvidia Tesla M60 . Đối với mỗi trường hợp, chúng tôi đã đào tạo mô hình của mình 4 lần với các hyperparameters khác nhau. Cuối cùng, chúng tôi đã đào tạo mô hình của mình qua tập dữ liệu CIFAR 8 lần, thay đổi 3 thứ: batch size, learning rate và các loại phiên bản.

Lưu ý: chúng tôi đã đào tạo mô hình của mình trong 200 epochs, mặc dù trong nhiều trường hợp, mô hình của chúng tôi hội tụ sớm hơn thời gian đó. 

Hội tụ mô hình học máy

Chạy các dự án ML với chi phí hợp lý trên đám mây

Đối với trường hợp sử dụng ML của chúng tôi, chúng tôi đã sử dụng Phiên bản được quản lý Spotinst để chạy trên Phiên bản Spot trong khi vẫn có khả năng chống lại sự gián đoạn phiên bản đột ngột. Hãy xem xét điều này giúp chúng ta tiết kiệm được bao nhiêu.

Chúng tôi có thể lấy thời gian chạy của mỗi buổi đào tạo với các siêu thông số tương ứng và xem chúng tôi tốn bao nhiêu chi phí để đào tạo mô hình của mình.

Trong kịch bản tương đối đơn giản của chúng tôi, chúng tôi có thể thấy rằng các quy trình như vậy tốn thời gian và do mô hình định giá đám mây công khai, cũng tốn kém. Nhưng đừng lo, như đã đề cập ở trên, việc tận dụng dung lượng dư thừa của public cloud như Phiên bản Spot của EC2 thực sự đã tiết kiệm cho chúng tôi rất nhiều tiền.

Sử dụng API Spotinst, chúng tôi có thể lấy số liệu thống kê về số tiền chúng tôi đã trả để chạy Phiên bản EC2 của mình, như bạn có thể thấy trong ảnh chụp màn hình bên dưới của Bảng điều khiển Spotinst, chúng tôi đã có thể tiết kiệm một số tiền đáng kể bằng cách sử dụng Phiên bản Spot thay vì chi phí theo yêu cầu tiềm năng. 

Chi phí EC2 cho Giao ngay so với Theo yêu cầu

Chúng tôi có thể tính được chi phí thực tế cho mỗi lần chúng tôi đào tạo mô hình của mình bằng cách ghi lại thời gian chạy đào tạo từ đầu đến cuối và nhân thời gian chạy đã nói với số tiền tương ứng với các loại phiên bản đã chọn cụ thể của chúng tôi, chi phí mỗi giờ. 

Với điều này, chúng tôi sẽ chứng minh sự khác biệt về giá giữa tất cả các loại phiên bản cho cùng một mô hình đào tạo, chỉ điều chỉnh batch size và learning rate:

Bắt đầu với batch size là 128, chúng tôi hiển thị hai biểu đồ với các learning rate khác nhau:

Batch size 128, Learning rate 0,01

Chi phí đào tạo về học máy

Batch size 128, Learning rate 0,1

chi phí ml trên đám mây

Chúng tôi đã quan sát thấy sự khác biệt lớn giữa các Mô hình giá, vì Mô hình giá On-demand đắt hơn đáng kể. Quan trọng hơn, chúng ta cũng thấy rằng phiên bản g3 tiết kiệm chi phí hơn so với phiên bản p3 .

Tiếp theo, chúng tôi thay đổi kích thước lô thành 256:

Batch size 256, Learning rate 0,01

Batch size 256, Learning rate 0,1

Sau khi chúng tôi điều chỉnh Batch size từ 128 xuống 256, chúng tôi thấy rằng độ chính xác giảm xuống (với cả hai loại phiên bản), nhưng quá trình huấn luyện của chúng tôi đã kết thúc nhanh hơn với p3. 

Vì việc huấn luyện mô hình nhanh hơn đáng kể với p3, nó cũng giảm chi phí đến mức hầu như không có bất kỳ sự khác biệt nào về chi phí giữa hai loại phiên bản.  Do đó, đối với kích thước lô lớn hơn, chúng tôi đề xuất phiên bản p3 vì nó nhanh hơn nhiều và chênh lệch giá so với g3 là không đáng kể. 

Đây là bảng tóm tắt tất cả các kết quả:

Kết quả đào tạo về học máy trên đám mây

Đề xuất Máy học trong Đám mây

Để tóm tắt lại những điểm mấu chốt, trong nhiều trường hợp, public cloud là sự phù hợp tự nhiên cho các trường hợp sử dụng máy học, bằng cách cung cấp sự đa dạng và linh hoạt. Về việc chọn mô hình định giá AWS phù hợp, bạn có thể tin cậy chạy trên Phiên bản Spot để tiết kiệm chi phí ~ 70% so với đặt giá Theo yêu cầu.

Ngoài các mô hình định giá EC2, việc lựa chọn phiên bản cụ thể cũng rất quan trọng với hai điều cần xem xét:

  • Tổng thời gian dự kiến ​​sử dụng phần cứng đám mây 
  • Giá phần cứng cho mỗi lần sử dụng

Trong thử nghiệm của chúng tôi, điều này diễn ra như sau:

  • Đối với các lô nhỏ hơn, sử dụng loại phiên bản g3.4xlarge (Nvidia Tesla M60) sẽ hiệu quả hơn về chi phí. 
  • Nhưng đối với kích thước lô lớn hơn, mức giá mà chúng tôi trả cho p3.2xlarge (Nvidia Tesla V100) là xứng đáng, vì thời gian đào tạo nhanh hơn gần như bù đắp hoàn toàn chi phí cao hơn. 

Để bắt đầu với dự án máy học của bạn trên Phiên bản Spot với tính khả dụng cao, chẳng hạn như chúng tôi đã sử dụng ở trên, hãy xem bài đăng trên blog trước của chúng tôi hướng dẫn chi tiết từng bước về cách thực hiện. 

Tất nhiên, nếu bạn có bất kỳ câu hỏi nào về việc chạy chương trình đào tạo ML của mình trên Spot Instance, chúng tôi rất mong nhận được phản hồi từ bạn.