1 puntos por GN⁺ 2025-03-24 | Aún no hay comentarios. | Compartir por WhatsApp
  • Scallop es un lenguaje declarativo para incorporar razonamiento simbólico basado en reglas lógicas en aplicaciones de IA, y se basa en Datalog, un lenguaje de consulta para bases de datos relacionales
  • El solver admite razonamiento discreto, probabilístico y diferenciable, lo que permite elegir el método de razonamiento según las necesidades de la aplicación
  • Mediante bindings de Python, se pueden incluir módulos de razonamiento lógico dentro de un programa, y es posible integrarlos con pipelines de machine learning existentes en PyTorch
  • En tareas de visión y NLP, se combinan componentes neuronales generados por CNN o Transformer con componentes de reglas lógicas
  • Ofrece ejemplos end-to-end que aprenden conjuntamente componentes neuronales y reglas, como razonamiento visual CLEVR, determinación de conectividad en Pathfinder y evaluación de expresiones manuscritas

Componentes clave de Scallop

  • Language

    • Scallop es un lenguaje declarativo para manejar razonamiento simbólico en aplicaciones de IA
    • Se basa en Datalog, un lenguaje de consulta basado en reglas lógicas para bases de datos relacionales
  • Solver

    • Scallop es un solver Datalog extensible
    • Admite modos de razonamiento discreto, razonamiento probabilístico y razonamiento diferenciable
    • Cada modo de razonamiento puede configurarse según distintos requisitos de aplicaciones de IA
  • Framework

    • Proporciona bindings para usar módulos de razonamiento lógico dentro de programas Python
    • Puede integrarse profundamente con pipelines de machine learning existentes en PyTorch

Aplicaciones de ejemplo

  • CLEVR es una tarea de razonamiento visual que responde preguntas como “¿cuántos objetos azules hay?” sobre objetos 3D simples dentro de una imagen
    • Un componente neuronal genera el grafo de escena (scene graph) de la imagen y una consulta programática (programmatic query) que representa la pregunta
    • El componente de razonamiento especifica como reglas lógicas operaciones para seleccionar, comparar y contar objetos según los atributos dados
    • Scallop integra estos componentes en un framework común y permite realizar aprendizaje end-to-end
  • Pathfinder es una tarea de razonamiento de conectividad de largo alcance que determina si dos puntos están conectados por líneas punteadas en una imagen en blanco y negro
    • Puede construirse con una arquitectura neuronal simple que detecta puntos y guiones, y unas pocas líneas de reglas lógicas en Scallop
    • Las reglas presentadas toman dash(x, y) como un camino y conectan recursivamente path(x, z), dash(z, y) para determinar is_connected()
    • Esta configuración logra un rendimiento superior al de los Transformer más recientes
  • La evaluación de expresiones manuscritas es una tarea que reconoce una secuencia de símbolos manuscritos compuesta por dígitos del 0 al 9 y operaciones aritméticas simples, y calcula la expresión
    • El ejemplo toma 1 + 3 / 5 como entrada y calcula el resultado 1.6
    • Con Scallop se puede crear un parser completo de gramática libre de contexto capaz de parsear entradas probabilísticas
    • El parser y el evaluador pueden escribirse en 5 líneas de código Scallop
    • Este programa puede entrenarse de manera end-to-end junto con un modelo neuronal de reconocimiento de símbolos individuales y, tras el entrenamiento, encuentra la expresión más probable y devuelve el resultado de la evaluación

Aún no hay comentarios.

Aún no hay comentarios.