Motor Ramanujan - Parte 1

Mar 22 2022
Este artigo descreve como na Airtel, a ideia do produto Ramanujan Rule Engine foi concebida e como ela amadureceu com várias ideias de design. Também discutiremos a arquitetura e seus processos completos de produção, incluindo monitoramento de CI/CD e afins.

Este artigo descreve como na Airtel, a ideia do produto Ramanujan Rule Engine foi concebida e como ela amadureceu com várias ideias de design. Também discutiremos a arquitetura e seus processos completos de produção, incluindo monitoramento de CI/CD e afins.

pois iremos discuti-lo de forma detalhada, por isso decidimos colocar este blog em várias partes

1) Requisitos de negócios, principais desafios e lista de abordagens

2) Solução Final e Aprendizados Arquitetônicos

Nesta parte do blog, discutiremos os requisitos de negócios e os principais desafios envolvidos. Além disso, também listaremos as abordagens que tentamos implementar o requisito.

Exigência de negócio:

Na Airtel e organizações semelhantes, à medida que a transformação digital avança, temos muitos sistemas surgindo. Às vezes, há casos de negócios que exigem a tomada de decisões e ações com base nos marcos publicados por esses sistemas. Para costurar isso, o Rule Engine foi conceituado, que pode ingerir dados de vários sistemas (tempo real, tempo quase real, modo de lote) . Quando as regras continuam mudando com frequência, o mecanismo de regras ajuda a manter a velocidade e a agilidade.

Alguns dos requisitos para os quais o mecanismo de regras é usado são os seguintes:

1. Compensação de Incentivo

2. Gamificação

3. SR de vendas

4. Monitor de Pedido Comum

5. Priorização de Leads

6. Despachante

7. Monitor de Risco

8. Próxima melhor ação

Muitos mais no futuro….

Todas as regras de requisitos acima são calculadas em relação aos dados transacionais que estão online e offline. Quando esses dados são gerados em todos os sistemas, a lógica de negócios deve ser aplicada com critérios predefinidos e as regras apropriadas são acionadas. Uma vez que as regras são avaliadas, ações relevantes são tomadas.

Sistemas baseados em regras:

Os sistemas baseados em regras (também conhecidos como sistemas de produção ou sistemas especialistas) são a forma mais simples de inteligência artificial. Um sistema baseado em regras usa regras como a representação do conhecimento para o conhecimento codificado no sistema. As definições de sistemas baseados em regras dependem quase inteiramente de sistemas especialistas, que são sistemas que imitam o raciocínio de especialistas humanos na solução de um problema de conhecimento intensivo. Em vez de representar o conhecimento de forma declarativa e estática como um conjunto de coisas que são verdadeiras, um sistema baseado em regras representa o conhecimento em termos de um conjunto de regras que diz o que fazer ou o que concluir em diferentes situações.

Pesquisa de mercado:

Como parte deste exercício, passamos por uma lista de sistemas como regras de correspondência com grandes conjuntos de dados e com a capacidade de realizar tais operações online e offline.

Encontramos um paper que atende aos critérios do que queríamos e abaixo está a sinopse do que o paper falou.

Correspondência de Produção para Grandes Sistemas de Aprendizagem

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

Resumo:

Os sistemas baseados em regras executam ações com base em regras predefinidas. Esses sistemas são amplamente utilizados em negócios, governo e várias organizações. Os sistemas tradicionais baseados em regras têm um desempenho ruim em aplicativos de big data, como IoT e outros. Para enfrentar esse desafio, exploramos a natureza inerente do problema para criar um sistema de processamento distribuído. Propomos um modelo de mecanismo baseado em regras escalável em tempo real para distribuir logicamente os eventos/fluxos de dados gerados e aplicar inferência em cada fluxo de eventos separado logicamente.

A seguir está uma lista de algoritmos que estão disponíveis para projetar e implementar mecanismos baseados em regras:

1) Algoritmo de Encadeamento Avançado

2) Algoritmo de encadeamento reverso

3) Algoritmo Rete

Algoritmo de Encadeamento Avançado:

O encadeamento direto também é conhecido como método de dedução direta ou raciocínio direto ao usar um mecanismo de inferência. Forward-chaining é uma forma de raciocínio que começa com sentenças atômicas na base de conhecimento e aplica regras de inferência (Modus Ponens) na direção direta para extrair mais dados até que um objetivo seja alcançado.

O algoritmo Forward-chaining começa a partir de fatos conhecidos, aciona todas as regras cujas premissas são satisfeitas e adiciona sua conclusão aos fatos conhecidos. Esse processo se repete até que o problema seja resolvido.

1) É uma abordagem de baixo para cima, pois se move de baixo para cima.

2) É um processo de chegar a uma conclusão baseada em fatos ou dados conhecidos, partindo do estado inicial e alcançando o estado objetivo.

3) A abordagem de encadeamento direto também é chamada de “abordagem orientada por dados” à medida que atingimos a meta usando os dados disponíveis.

4) A abordagem Forward-chaining é comumente usada em sistemas especialistas, como CLIPS, sistemas de regras de negócios e de produção.

Algoritmo de encadeamento para trás:

O encadeamento reverso também é conhecido como dedução reversa ou método de raciocínio reverso ao usar um mecanismo de inferência. Um algoritmo de encadeamento reverso é uma forma de raciocínio, que começa com o objetivo e funciona de trás para frente, encadeando regras para encontrar fatos conhecidos que suportam o objetivo.

1) É conhecido como uma abordagem de cima para baixo.

2) O encadeamento reverso é baseado na regra de inferência do modus ponens.

3) Em Backward-chaining, o objetivo é dividido em sub-objetivos ou sub-objetivos para provar que os fatos são verdadeiros.

4) É chamada de abordagem orientada por objetivos, pois uma lista de objetivos decide quais regras são selecionadas e usadas.

5) O algoritmo de encadeamento reverso é usado na teoria dos jogos, ferramentas automatizadas de prova de teoremas, mecanismos de inferência, assistentes de prova e várias aplicações de IA.

6) O método Backward-chaining usou principalmente uma estratégia de busca em profundidade para prova.

Desafios nas duas abordagens acima:

Desafios do Encadeamento Avançado:

1) O processo de Forward-chaining pode ser demorado.

2) Pode levar muito tempo para eliminar e sincronizar os dados disponíveis.

3) Diferentemente do encadeamento para trás, a explicação de fatos ou observações para esse tipo de encadeamento não é muito clara.

4) O primeiro usa um método orientado a objetivos que chega a conclusões de forma eficiente.

Desafios de encadeamento para trás:

1) O processo de raciocínio só pode começar se o ponto final for conhecido.

2) Não deduz múltiplas soluções ou respostas.

3) Ele deriva apenas os dados necessários, o que o torna menos flexível do que o Forward-chaining.

Abordagem do algoritmo Rete:

O algoritmo Rete é um algoritmo de correspondência de padrões para implementação de sistemas baseados em regras. O algoritmo foi desenvolvido para aplicar eficientemente muitas regras ou padrões a muitos objetos, ou fatos, em uma base de conhecimento. Ele é usado para determinar quais regras do sistema devem ser acionadas com base em seu armazenamento de dados, seus fatos. O algoritmo de Rete foi projetado por Charles L. Forgy da Carnegie Mellon University, publicado pela primeira vez em um artigo de trabalho em 1974, e posteriormente elaborado em sua tese de doutorado de 1979 e um artigo intitulado “ Production Matching for Large Learning systems” .

A figura abaixo dá uma ideia de Rete como uma caixa preta com entradas e saídas

Exemplo

Recursos do Algoritmo Rete

1) Usa a abordagem de economia de estado para salvar o processo de correspondência.

2) Compartilhamento de nós entre produções e condições semelhantes

Sistemas de mecanismo de regras existentes disponíveis no mercado

Motor de baba:

· Originalmente desenvolvido em 2005

· Licença Apache, escrita em Java

· Tem vários projetos:

· Drools Workbench: Web UI para autoria

· Drools Expert: mecanismo de regras de negócios

· Drools Fusion: Processamento de Eventos Complexos

· jBPM: Integrar Regras em fluxos de trabalho

Fornece regras guiadas, sintaxe DRL de regra técnica e suporte para Domain Specific Language (DSL)

Usa um mecanismo de inferência de encadeamento para frente e para trás que aproveita o algoritmo PHRAK

Suporta implantações em processo e autônomas

Exemplo de regra escrita no Drool

Como podemos ver, as regras de escrita não são tão amigáveis. Como o sistema usa as duas abordagens acima, decidimos usar a abordagem Rete para enfrentar o desafio. Continua na parte 2.

Na próxima parte do blog, mostraremos os aspectos técnicos da solução e algumas considerações arquitetônicas.