Helpex - Trao đổi & giúp đỡ Đăng nhập

Hướng tới các hệ thống tự thích ứng: Tự động điều chỉnh dựa trên ML trong phần mềm trung gian

Ngô Quang Anh
· 17:00 14/09/2018
2 ngày trước

Giới thiệu

Hệ thống tự thích ứng có khả năng tự cấu hình và định cấu hình lại, đồng thời liên tục tự điều chỉnh và tối ưu hóa. Các hệ thống tự thích ứng đã được nghiên cứu và các giải pháp đã được phát triển trong một số lĩnh vực như robot, máy tính tự trị, hệ thống điều khiển, hệ thống phân tán và máy tính chịu lỗi. Động lực chính cho công việc này là cho phép tự cấu hình thành các sản phẩm WSO2. Sản phẩm của chúng tôi có nhiều thông số cấu hình khác nhau mà chúng tôi có thể điều chỉnh để kiểm soát hành vi thời gian chạy (hiệu suất, độ ổn định, v.v.) của sản phẩm. Ví dụ: bảng sau đây cho thấy (tập hợp con) các thông số cấu hình của bộ xử lý luồng WSO2.

Hướng tới các hệ thống tự thích ứng: Tự động điều chỉnh dựa trên ML trong phần mềm trung gian

Các thông số cấu hình được liệt kê ở trên có ảnh hưởng trực tiếp đến hiệu suất của Bộ xử lý dòng. Mặc dù chúng tôi có các giá trị mặc định cho các thông số cấu hình này, nhưng các giá trị này có thể không đảm bảo hoạt động tối ưu (ví dụ: hiệu suất tốt nhất) của hệ thống (hoặc sản phẩm) trong tất cả các tình huống. Giá trị cấu hình tối ưu sẽ phụ thuộc vào nhiều yếu tố như ca sử dụng, mẫu lưu lượng, mẫu triển khai, phần cứng, v.v. Do đó, để đạt được hoạt động tối ưu, chúng ta có thể cần thực hiện điều chỉnh có chọn lọc. Việc điều chỉnh như vậy có thể đòi hỏi nỗ lực đáng kể, đặc biệt đối với các triển khai lớn bao gồm nhiều sản phẩm. Hơn nữa, việc thực hiện các tối ưu hóa cụ thể như vậy có thể không phải lúc nào cũng đảm bảo hoạt động tối ưu. Nguyên nhân là do các mẫu lưu lượng, trường hợp sử dụng, phần cứng, v.v. có thể thay đổi theo thời gian. Khi điều này xảy ra, hệ thống có thể không còn hoạt động trong điều kiện hoạt động tốt nhất của nó. Tự động điều chỉnh sẽ loại bỏ nhu cầu tìm kiếm các cấu hình tối ưu và cho phép hệ thống thích ứng với các điều kiện thay đổi.

Mục tiêu chính

Mục tiêu chính của chúng tôi là đưa ra các kiến ​​trúc và thuật toán có thể tìm hiểu hành vi của hệ thống trực tuyến (tức là đang hoạt động) và tự điều chỉnh các giá trị tham số để tối ưu hóa các mục tiêu (hoặc tiêu chí) nhất định. Ở cấp độ cao hơn, chúng ta có thể biểu diễn kiến ​​trúc của hệ thống tự thích ứng bằng sơ đồ sau sử dụng lý thuyết điều khiển.

Hướng tới các hệ thống tự thích ứng: Tự động điều chỉnh dựa trên ML trong phần mềm trung gian

Như chúng ta thấy, mô hình này tương tự như vòng điều khiển phản hồi tổng quát trong các hệ thống điều khiển công nghiệp. Vòng phản hồi xem xét đầu ra của hệ thống, cho phép hệ thống điều chỉnh hành vi của mình để đáp ứng mục tiêu mong muốn. Ở đây mục tiêu có thể là một mục tiêu (ví dụ: tối đa hóa thông lượng hoặc giảm thiểu độ trễ) hoặc đa mục tiêu (ví dụ: tối đa hóa thông lượng và giảm thiểu độ trễ). Người ta có thể tự hỏi làm thế nào để có thể tối ưu hóa cả thông lượng và độ trễ (cùng một lúc) vì các hàm mục tiêu của thông lượng và độ trễ (nói chung) mâu thuẫn nhau (tức là khi thông lượng tăng thì độ trễ cũng tăng). Trong những trường hợp như vậy, có thể tìm thấy một tập hợp các giải pháp dưới mức tối ưu (các giải pháp tối ưu Pareto)và đưa ra quyết định dựa trên tập hợp các giải pháp tối ưu này (giá trị tham số). Chúng tôi sẽ thảo luận sâu hơn về vấn đề này trong một blog riêng biệt.

Để thiết kế các hệ thống tự thích ứng, trước tiên chúng ta cần làm cho hệ thống có thể quan sát được. Khi chúng tôi làm cho nó có thể quan sát được, chúng tôi có thể giám sát hệ thống tại thời điểm chạy và thu thập các số liệu đầu ra. Để biết thêm thông tin về cách hoạt động của khả năng quan sát, hãy xem Hướng dẫn về khả năng quan sát của Ballerina . Sau khi có các chỉ số đầu ra, chúng ta có thể cung cấp các giá trị chỉ số này vào bộ điều khiển. Sau đó bộ điều khiển sẽ quyết định các giá trị tham số tối ưu dựa trên các điều kiện của hệ thống. Thiết kế bộ điều khiển là một phần quan trọng của việc thiết kế một hệ thống tự thích ứng. Để thiết kế bộ điều khiển, chúng tôi đang sử dụng các kỹ thuật học máy (đặc biệt là học Bayesianhọc tăng cường ) cũng như các phương pháp dựa trên thống kê.

Kết quả ban đầu

Hãy để chúng tôi khám phá một dự án gần đây mà chúng tôi đã thực hiện để tự động điều chỉnh số lượng công nhân trong mô hình đồng thời đường ống. Trong dự án này, chúng tôi đã phát triển một tập hợp các thuật toán có thể thay đổi số lượng công nhân trong mô hình đồng thời đường ống trực tuyến. Mô hình đồng thời đường ống bao gồm nhiều giai đoạn trong đó mỗi giai đoạn bao gồm một hàng đợi (bộ đệm) và một công nhân. Có một số trường hợp sử dụng chúng ta có thể triển khai bằng cách sử dụng mẫu đồng thời đường ống này. Ví dụ: phân tích tình cảm trong đó một ứng dụng yêu cầu nhiều giai đoạn xử lý trước dữ liệu như phân loại tình cảm và tóm tắt tình cảm. Hơn nữa, kiến ​​trúc đường ống được sử dụng rộng rãi trong lĩnh vực xử lý hình ảnh, kết xuất 3D, phân tích dữ liệu lớn và phân loại tài liệu. Mô hình tự thích ứng mà chúng tôi đã phát triển có khả năng thay đổi số lượng công nhân một cách nhanh chóng, dựa trên đặc điểm khối lượng công việc (tức là tỷ lệ đầu vào, thời gian xử lý của công nhân, v.v.). Các số liệu sau đây cho thấy sự so sánh hiệu suất của các mô hình thích ứng và mô hình tĩnh.

Hướng tới các hệ thống tự thích ứng: Tự động điều chỉnh dựa trên ML trong phần mềm trung gian
Hướng tới các hệ thống tự thích ứng: Tự động điều chỉnh dựa trên ML trong phần mềm trung gian

Từ các số liệu trên, chúng tôi lưu ý rằng khi thời gian trôi qua, lưu lượng và độ trễ suy giảm. Điều này xảy ra do sự gia tăng tỷ lệ đến. Mô hình thích ứng phát hiện sự suy giảm hiệu suất và tự điều chỉnh số lượng công nhân để đạt được hiệu suất tốt hơn. Chúng ta có thể thấy rằng cả biểu đồ độ trễ và thông lượng đều phục hồi với mô hình thích ứng.

Mô hình thích ứng hoạt động tốt hơn (thông lượng cao, độ trễ thấp hơn) mô hình tĩnh. Chúng tôi cũng có một số kết quả thú vị cho mô hình đồng thời nhóm luồng, đây là mô hình đồng thời được sử dụng phổ biến nhất trong các hệ thống dựa trên máy chủ. 

Phần kết luận

Trong bài viết này, chúng tôi đã thảo luận những lý do tại sao chúng ta cần tập trung vào việc thiết kế các hệ thống tự thích ứng. Chúng tôi đã chứng minh cách tự điều chỉnh có thể cải thiện hiệu suất bằng cách sử dụng một trong các mô hình mà chúng tôi đã xây dựng. Mục tiêu cuối cùng của chúng tôi là làm cho tất cả các sản phẩm của chúng tôi tự điều chỉnh. Nhóm nghiên cứu WSO2 thực hiện nghiên cứu liên quan đến hệ thống phân tán, hiệu suất, học máy, chuỗi khối, xử lý ngôn ngữ tự nhiên và xử lý luồng. 

4 hữu ích 0 bình luận 5.5k xem chia sẻ

Có thể bạn quan tâm