1 pontos por GN⁺ 2025-03-24 | Ainda não há comentários. | Compartilhar no WhatsApp
  • Scallop é uma linguagem declarativa para inserir raciocínio simbólico baseado em regras lógicas em aplicações de IA, baseada em Datalog, uma linguagem de consulta para bancos de dados relacionais
  • O solver oferece suporte a inferência discreta, probabilística e diferenciável, permitindo escolher o método de inferência conforme as necessidades da aplicação
  • Com bindings para Python, é possível inserir módulos de inferência lógica dentro de programas e integrá-los a pipelines de machine learning existentes em PyTorch
  • Em tarefas de visão e NLP, a abordagem combina componentes neurais gerados por CNNs ou Transformers com componentes de regras lógicas
  • Fornece exemplos end-to-end que aprendem componentes neurais e regras em conjunto, como raciocínio visual no CLEVR, determinação de conectividade no Pathfinder e avaliação de expressões manuscritas

Componentes principais do Scallop

  • Language

    • Scallop é uma linguagem declarativa para lidar com raciocínio simbólico em aplicações de IA
    • Sua base é Datalog, uma linguagem de consulta baseada em regras lógicas para bancos de dados relacionais
  • Solver

    • Scallop é um solver Datalog extensível
    • Oferece suporte aos modos de inferência discreta, inferência probabilística e inferência diferenciável
    • Cada modo de inferência pode ser configurado conforme diferentes necessidades de aplicações de IA
  • Framework

    • Fornece bindings para usar módulos de inferência lógica dentro de programas Python
    • Pode ser profundamente integrado a pipelines de machine learning existentes em PyTorch

Aplicações de exemplo

  • CLEVR é uma tarefa de raciocínio visual que responde a perguntas como “quantos objetos azuis há?” sobre objetos 3D simples em uma imagem
    • O componente neural gera o grafo de cena (scene graph) da imagem e uma consulta programática (programmatic query) que representa a pergunta
    • O componente de inferência especifica, como regras lógicas, operações para selecionar, comparar e contar objetos de acordo com atributos definidos
    • Scallop integra esses componentes em um framework comum e permite realizar treinamento end-to-end
  • Pathfinder é uma tarefa de raciocínio de conectividade de longa distância que determina se dois pontos em uma imagem em preto e branco com pontos e linhas tracejadas estão conectados por linhas tracejadas
    • Pode ser composto por uma arquitetura neural simples que detecta pontos e traços e por algumas linhas de regras lógicas em Scallop
    • As regras apresentadas tratam dash(x, y) como um caminho e, recursivamente, conectam path(x, z), dash(z, y) para determinar is_connected()
    • Essa configuração alcança desempenho superior ao de Transformers de última geração
  • A avaliação de expressões manuscritas é uma tarefa que reconhece uma sequência de símbolos manuscritos composta por dígitos de 0 a 9 e operações aritméticas simples, e calcula a expressão
    • O exemplo considera 1 + 3 / 5 como entrada e calcula o valor resultante 1.6
    • Com Scallop, é possível criar um parser completo de gramática livre de contexto capaz de analisar entradas probabilísticas
    • O parser e o avaliador podem ser escritos em 5 linhas de código Scallop
    • Esse programa pode ser treinado de forma end-to-end junto com um modelo neural de reconhecimento de símbolos individuais e, após o treinamento, encontra a expressão mais provável e retorna o resultado da avaliação

Ainda não há comentários.

Ainda não há comentários.