Giới thiệu về Machine Learning với Apache Ignite


Hoàng Thanh Việt
2 năm trước
Hữu ích 7 Chia sẻ Viết bình luận 0
Đã xem 2914

Trong một bài viết trước , chúng ta đã thảo luận về Lưới học máy của Apache Ignite . Vào thời điểm đó, một phiên bản beta đã có sẵn. Sau đó, trong phiên bản 2.4, Machine Learning thường có sẵn. Kể từ phiên bản 2.4, nhiều cải tiến và phát triển đã được thêm vào, bao gồm hỗ trợ cho Bộ dữ liệu dựa trên phân vùngthuật toán di truyền . Nhiều ví dụ về Machine Learning được cung cấp với Apache Ignite có thể hoạt động độc lập, khiến việc bắt đầu trở nên rất dễ dàng. Tuy nhiên, sau đó trong loạt bài viết này, chúng tôi sẽ thực hiện một số phân tích trên một số bộ dữ liệu có sẵn miễn phí bằng cách sử dụng một số thuật toán được Ignite hỗ trợ.

Giới thiệu

Trong bài viết đầu tiên này, chúng ta sẽ bắt đầu với một cái nhìn tổng quan và giới thiệu về Machine Learning Grid, được hiển thị bằng đồ họa trong Hình 1.

Hình 1: Lưới học máy.

Khả năng Machine Learning do Apache Ignite cung cấp được thiết kế rất thiết thực và cho phép xây dựng các mô hình dự đoán trực tiếp trong Ignite. Điều này cho phép người dùng đạt được quy mô và hiệu suất mà không cần tốn kém ETL hoặc truyền dữ liệu. Hãy thảo luận chi tiết hơn một chút.

Đầu tiên, trước đây với Ignite, các mô hình Machine Learning sẽ cần được đào tạo và triển khai trên các hệ thống khác nhau. Ví dụ, dữ liệu sẽ cần phải được chuyển ra khỏi Ignite, sau đó việc đào tạo sẽ được thực hiện bằng các công cụ khác và cuối cùng, các mô hình sẽ được triển khai vào các hệ thống sản xuất. Cách tiếp cận trước đây có một số nhược điểm:

  • Có một quy trình ETL tốn kém, đặc biệt đối với các bộ dữ liệu rất lớn. Các bộ dữ liệu có khả năng có kích thước hàng trăm Gigabyte hoặc Terabyte.
  • Sử dụng ETL, chúng tôi đang chụp ảnh dữ liệu. Sau ETL, dữ liệu có thể đã thay đổi trong hệ thống trực tiếp, do đó, rời khỏi hệ thống đào tạo với dữ liệu đào tạo lỗi thời.

Thứ hai, nhiều hệ thống ngày nay có thể cần phải làm việc với số lượng dữ liệu rất lớn thường vượt quá khả năng của một máy chủ. Điện toán phân tán cung cấp một giải pháp, nhưng một số nền tảng không được thiết kế để lưu trữ và thao tác dữ liệu và có thể chỉ phù hợp cho mục đích đào tạo. Vì vậy, các nhà phát triển có thể cần xem xét các giải pháp phức tạp để triển khai trong môi trường sản xuất.

Các khả năng Machine Learning của Ignite sẽ giúp giải quyết tất cả các vấn đề này và hơn thế nữa:

  • Đốt cháy có thể hoạt động trên dữ liệu tại chỗ, tránh ETL tốn kém giữa các hệ thống khác nhau.
  • Ignite có thể cung cấp tính toán phân tán bao gồm cả lưu trữ và thao tác dữ liệu.
  • Các thuật toán Machine Learning được triển khai trong Ignite được tối ưu hóa cho tính toán phân tán và có thể sử dụng xử lý đối chiếu của Ignite để tạo lợi thế lớn.
  • Ignite có thể hoạt động như một bồn rửa để truyền dữ liệu, cho phép áp dụng Machine Learning trong thời gian thực.
  • Machine Learning thường là một quá trình lặp lại và bối cảnh có thể thay đổi trong khi thuật toán đang chạy. Do đó, để tránh mất việc và trì hoãn, Ignite hỗ trợ Bộ dữ liệu dựa trên phân vùng, giúp nó chịu được các lỗi của nút.

Bộ dữ liệu dựa trên phân vùng

Apache Ignite hiện hỗ trợ Bộ dữ liệu dựa trên phân vùng. Đây là một lớp trừu tượng nằm giữa thuật toán Machine Learning và lưu trữ và tính toán. Nó sử dụng một hoạt động giống như MapReduce để tính toán và sao lưu bộ đệm cho khả năng chịu lỗi.

Trong Ignite, thuật toán băm được áp dụng cho phần Khóa của cặp Khóa-Giá trị (KV) để xác định nơi phần Giá trị được lưu trữ trong một cụm. Phần Giá trị thực sự được lưu trữ trong một phân vùng. Các phân vùng là nguyên tử. Trong Hình 2, chúng ta có thể thấy một cụm hai nút, với hai phân vùng (P1 và P2).

Hình 2: Bộ dữ liệu dựa trên phân vùng.

Các thuật toán Machine Learning thường lặp đi lặp lại và yêu cầu bối cảnh và dữ liệu. Trong Hình 2, chúng được hiển thị lần lượt là C và D trong mỗi phân vùng.

Trong trường hợp xảy ra lỗi nút, Ignite có thể khôi phục phân vùng và ngữ cảnh, như trong Hình 3. Ví dụ: nếu chúng ta có một bản sao lưu (hiển thị màu xám) của P1 trên nút 2, chúng ta có thể khôi phục P1 từ nút 2 nếu nút 2 1 thất bại. Dữ liệu có thể được phục hồi từ cụm hoặc thông qua ETL cục bộ (được đánh dấu D *).

Hình 3: Sao lưu P1 trên nút 2.

Thuật toán và khả năng áp dụng

Bây giờ, hãy xem các thuật toán Machine Learning mà Ignite hỗ trợ. Chúng được tóm tắt trong Bảng 1.

Phân loại hồi quy Phân cụm Sơ chế
Sự miêu tả Xác định danh mục mới mà một quan sát mới thuộc về cơ sở tập dữ liệu Mô hình hóa mối quan hệ giữa một biến phụ thuộc vô hướng y và một hoặc nhiều biến giải thích x Nhóm một nhóm các đối tượng theo cách các đối tượng trong cùng một nhóm giống nhau hơn so với các đối tượng trong các nhóm khác Tính năng trích xuất và chuẩn hóa
Khả năng ứng dụng phát hiện thư rác, nhận dạng hình ảnh, điểm tín dụng, xác định bệnh phản ứng thuốc, giá cổ phiếu, doanh thu siêu thị phân khúc khách hàng, kết quả thử nghiệm nhóm, nhóm các mặt hàng mua sắm chuyển đổi dữ liệu đầu vào, như văn bản, để sử dụng với các thuật toán học máy
Thuật toán SVM, hàng xóm gần nhất, phân loại cây quyết định, mạng lưới thần kinh hồi quy tuyến tính, hồi quy cây quyết định, hàng xóm gần nhất, mạng lưới thần kinh phương tiện k Chuẩn hóa tiền xử lý

Bảng 1: Thuật toán học máy.

Thư viện Machine Learning cũng gửi kèm một bộ Thuật toán di truyền, đã được thảo luận trong một bài đăng trên blog khác .

Tóm lược

Bản phát hành mới nhất của Apache Ignite cung cấp một số tính năng và khả năng quan trọng. Bộ dữ liệu dựa trên phân vùng cung cấp khả năng tiếp tục xử lý các thuật toán Machine Learning trong trường hợp xảy ra lỗi nút, bằng cách bảo toàn ngữ cảnh. Các thuật toán Machine Learning hỗ trợ nhiều trường hợp sử dụng. Việc bổ sung các thuật toán di truyền cũng cung cấp các cơ hội mới để làm việc với dữ liệu phức tạp.

Hữu ích 7 Chia sẻ Viết bình luận 0
Đã xem 2914