Ramanujan Engine - Phần 1

Mar 22 2022
Bài viết này mô tả tại Airtel, ý tưởng sản phẩm Ramanujan Rule Engine được hình thành như thế nào và nó đã trưởng thành như thế nào với nhiều ý tưởng thiết kế khác nhau. Chúng tôi cũng sẽ thảo luận về kiến ​​trúc và các quy trình Sản xuất hoàn chỉnh của nó bao gồm Giám sát CI / CD và tương tự như vậy.

Bài viết này mô tả tại Airtel, ý tưởng sản phẩm Ramanujan Rule Engine được hình thành như thế nào và nó đã trưởng thành như thế nào với nhiều ý tưởng thiết kế khác nhau. Chúng tôi cũng sẽ thảo luận về kiến ​​trúc và các quy trình Sản xuất hoàn chỉnh của nó bao gồm Giám sát CI / CD và tương tự như vậy.

vì chúng ta sẽ thảo luận về nó một cách chi tiết, vì vậy chúng tôi đã quyết định đưa blog này thành nhiều phần

1) Yêu cầu kinh doanh, thách thức chính và danh sách các phương pháp tiếp cận

2) Giải pháp cuối cùng và Học hỏi kiến ​​trúc

Trong phần này của blog, chúng ta sẽ thảo luận về yêu cầu kinh doanh và những thách thức chính liên quan. Ngoài ra, chúng tôi cũng sẽ liệt kê các cách tiếp cận mà chúng tôi đã cố gắng thực hiện yêu cầu.

Yêu cầu kinh doanh:

Tại Airtel và các tổ chức tương tự, khi quá trình chuyển đổi kỹ thuật số đang tiến triển, chúng tôi có rất nhiều hệ thống sắp ra đời. Đôi khi, có những trường hợp kinh doanh yêu cầu đưa ra quyết định và hành động dựa trên các mốc quan trọng được công bố bởi các hệ thống này. Để kết nối điều này, Rule Engine đã được lên ý tưởng có thể nhập dữ liệu từ nhiều hệ thống (Thời gian thực, Gần thời gian thực, Chế độ hàng loạt) . Khi các quy tắc tiếp tục thay đổi thường xuyên Động cơ quy tắc giúp duy trì tốc độ và sự nhanh nhẹn.

Một số yêu cầu đối với công cụ quy tắc được sử dụng như sau:

1. Tiền thưởng khuyến khích

2. Gamification

3. Bán hàng SR

4. Giám sát đơn hàng chung

5. Ưu tiên khách hàng tiềm năng

6. Điều độ viên

7. Giám sát rủi ro

8. Hành động tốt nhất tiếp theo

Nhiều hơn nữa trong tương lai….

Tất cả các quy tắc yêu cầu trên được tính toán dựa trên dữ liệu giao dịch trực tuyến cũng như ngoại tuyến. Khi dữ liệu đó được tạo ra trên toàn hệ thống, logic nghiệp vụ sẽ được áp dụng với các tiêu chí được xác định trước và các quy tắc thích hợp được kích hoạt. Sau khi các quy tắc được đánh giá, các hành động có liên quan sẽ được thực hiện.

Hệ thống dựa trên quy tắc:

Hệ thống dựa trên quy tắc (còn được gọi là hệ thống sản xuất hoặc hệ thống chuyên gia) là dạng trí tuệ nhân tạo đơn giản nhất. Hệ thống dựa trên quy tắc sử dụng các quy tắc làm đại diện tri thức cho tri thức được mã hóa vào hệ thống. Định nghĩa của các hệ thống dựa trên quy tắc phụ thuộc gần như hoàn toàn vào các hệ thống chuyên gia, là những hệ thống bắt chước lý luận của các chuyên gia con người trong việc giải quyết một vấn đề cần nhiều kiến ​​thức. Thay vì biểu thị kiến ​​thức theo cách khai báo, tĩnh như một tập hợp những điều đúng, một hệ thống dựa trên quy tắc biểu thị kiến ​​thức dưới dạng một tập hợp các quy tắc cho biết phải làm gì hoặc phải kết luận gì trong các tình huống khác nhau.

Nghiên cứu thị trường:

Là một phần của bài tập này, chúng tôi đã xem qua danh sách các hệ thống như quy tắc đối sánh với bộ dữ liệu khổng lồ và với khả năng thực hiện các hoạt động đó trực tuyến cũng như ngoại tuyến.

Chúng tôi đã tìm thấy một bài báo phù hợp với tiêu chí của những gì chúng tôi muốn và dưới đây là tóm tắt nội dung bài báo nói về.

Kết hợp sản xuất cho các hệ thống học tập lớn

http://reports-archive.adm.cs.cmu.edu/anon/1995/CMU-CS-95-113.pdf

Trừu tượng:

Hệ thống dựa trên quy tắc thực hiện các hành động dựa trên các quy tắc được xác định trước. Các hệ thống này được sử dụng rộng rãi trong doanh nghiệp, chính phủ và các tổ chức khác nhau. Các hệ thống dựa trên quy tắc truyền thống hoạt động kém hơn trong các ứng dụng dữ liệu lớn như IoT và các hệ thống khác. Để đáp ứng thách thức này, chúng tôi khai thác bản chất vốn có của vấn đề để đưa ra một hệ thống xử lý phân tán. Chúng tôi đề xuất mô hình công cụ dựa trên quy tắc thời gian thực có thể mở rộng để phân phối hợp lý các sự kiện / luồng dữ liệu được tạo và áp dụng suy luận trên mỗi luồng sự kiện được phân tách một cách hợp lý.

Sau đây là danh sách các thuật toán có sẵn để thiết kế và triển khai các công cụ dựa trên Quy tắc:

1) Thuật toán Forward-Chaining

2) Thuật toán Backward-Chaining

3) Thuật toán Rete

Thuật toán chuỗi chuyển tiếp:

Chuỗi chuyển tiếp còn được gọi là phương pháp suy luận kỳ hạn hoặc suy luận kỳ hạn khi sử dụng công cụ suy luận. Chuỗi chuyển tiếp là một hình thức lập luận bắt đầu bằng các câu nguyên tử trong cơ sở kiến ​​thức và áp dụng các quy tắc suy luận (Modus Ponens) theo hướng chuyển tiếp để trích xuất thêm dữ liệu cho đến khi đạt được mục tiêu.

Thuật toán chuỗi chuyển tiếp bắt đầu từ các sự kiện đã biết, kích hoạt tất cả các quy tắc có các tiền đề được thỏa mãn và thêm kết luận của chúng vào các sự kiện đã biết. Quá trình này lặp lại cho đến khi vấn đề được giải quyết.

1) Đây là một cách tiếp cận từ dưới lên, vì nó di chuyển từ dưới lên trên.

2) Đây là một quá trình đưa ra kết luận dựa trên các sự kiện hoặc dữ liệu đã biết, bằng cách bắt đầu từ trạng thái ban đầu và đạt đến trạng thái mục tiêu.

3) Phương pháp tiếp cận chuỗi chuyển tiếp còn được gọi là “phương pháp tiếp cận theo hướng dữ liệu” khi chúng tôi đạt được mục tiêu bằng cách sử dụng dữ liệu có sẵn.

4) Cách tiếp cận chuỗi chuyển tiếp thường được sử dụng trong các hệ thống chuyên gia, chẳng hạn như CLIPS, hệ thống quy tắc kinh doanh và sản xuất.

Thuật toán chuỗi ngược:

Backward-chaining còn được gọi là phương pháp suy luận lùi hoặc suy luận lùi khi sử dụng công cụ suy luận. Thuật toán chuỗi ngược là một dạng lập luận, bắt đầu với mục tiêu và hoạt động ngược lại, xâu chuỗi các quy tắc để tìm ra các sự kiện đã biết hỗ trợ mục tiêu.

1) Nó được gọi là cách tiếp cận từ trên xuống.

2) Chuỗi ngược dựa trên quy tắc suy luận modus ponens.

3) Trong Chuỗi ngược, mục tiêu được chia thành mục tiêu phụ hoặc mục tiêu phụ để chứng minh sự thật là đúng.

4) Nó được gọi là phương pháp tiếp cận hướng đến mục tiêu, vì danh sách các mục tiêu quyết định các quy tắc nào được lựa chọn và sử dụng.

5) Thuật toán chuỗi ngược được sử dụng trong lý thuyết trò chơi, các công cụ chứng minh định lý tự động, công cụ suy luận, trợ lý chứng minh và các ứng dụng AI khác nhau.

6) Phương pháp Backward-chaining chủ yếu sử dụng chiến lược tìm kiếm theo chiều sâu để có bằng chứng.

Những thách thức đối với hai cách tiếp cận trên:

Những thách thức về Forward-Chaining:

1) Quá trình Chuỗi chuyển tiếp có thể tốn nhiều thời gian.

2) Có thể mất rất nhiều thời gian để loại bỏ và đồng bộ hóa dữ liệu có sẵn.

3) Không giống như Backward-chaining, việc giải thích các sự kiện hoặc quan sát cho loại chuỗi này không rõ ràng lắm.

4) Phương pháp trước đây sử dụng phương pháp hướng tới mục tiêu để đưa ra kết luận một cách hiệu quả.

Thách thức Backward-Chaining:

1) Quá trình suy luận chỉ có thể bắt đầu nếu biết điểm cuối.

2) Nó không suy ra nhiều giải pháp hoặc câu trả lời.

3) Nó chỉ lấy dữ liệu cần thiết, điều này làm cho nó kém linh hoạt hơn so với Forward-chaining.

Phương pháp tiếp cận Thuật toán Rete:

Thuật toán Rete là một thuật toán so khớp mẫu để triển khai các hệ thống dựa trên quy tắc. Thuật toán được phát triển để áp dụng hiệu quả nhiều quy tắc hoặc mẫu cho nhiều đối tượng hoặc dữ kiện trong cơ sở tri thức. Nó được sử dụng để xác định quy tắc nào của hệ thống sẽ kích hoạt dựa trên kho dữ liệu của nó, dữ kiện của nó. Thuật toán Rete được thiết kế bởi Charles L. Forgy của Đại học Carnegie Mellon, được xuất bản lần đầu tiên trong một bài báo làm việc vào năm 1974, và sau đó được hoàn thiện trong luận án Tiến sĩ năm 1979 của ông và một bài báo có tiêu đề “ Kết hợp sản xuất cho các hệ thống học tập lớn” .

Hình dưới đây cho ta một ý tưởng về Rete như một hộp đen với các đầu vào và đầu ra

Ví dụ

Các tính năng của Rete Algorithm

1) Sử dụng phương pháp tiết kiệm trạng thái để lưu quá trình đối sánh.

2) Chia sẻ các nút giữa các sản phẩm và các điều kiện tương tự

Hệ thống Rule Engine hiện có trên thị trường

Công cụ Drool:

· Được phát triển ban đầu vào năm 2005

· Giấy phép Apache, được viết bằng Java

· Có nhiều dự án:

· Drools Workbench: Giao diện người dùng Web cho Tác giả

· Chuyên gia về Drools: Công cụ Quy tắc Kinh doanh

· Drools Fusion: Xử lý sự kiện phức tạp

· JBPM: Tích hợp các quy tắc vào quy trình làm việc

Cung cấp các quy tắc có hướng dẫn, cú pháp DRL quy tắc kỹ thuật và hỗ trợ cho Ngôn ngữ dành riêng cho miền (DSL)

Sử dụng công cụ suy luận chuỗi tiến và lùi sử dụng thuật toán PHREAK

Hỗ trợ triển khai trong quá trình và triển khai độc lập

Ví dụ về quy tắc được viết trên Drool

Như chúng ta có thể thấy các quy tắc viết không thân thiện với người dùng. Vì hệ thống sử dụng hai cách tiếp cận trên, chúng tôi đã quyết định sử dụng cách tiếp cận Rete để giải quyết thách thức. Để được tiếp tục ở phần 2.

Trong phần tiếp theo của blog, chúng tôi sẽ trình bày các tính năng kỹ thuật của giải pháp và một số cân nhắc về kiến ​​trúc.

© Copyright 2021 - 2023 | vngogo.com | All Rights Reserved