Scallop – 一种神经符号编程语言

Scallop – 一种神经符号编程语言

Hacker News 摘要

原标题:Scallop – A Language for Neurosymbolic Programming

Scallop是一种声明式编程语言,专为支持人工智能应用中的丰富符号推理而设计。它基于Datalog,该语言是用于关系数据库的逻辑规则基础查询语言。

Scallop具备可扩展的Datalog求解器,支持离散、概率和可微模式的推理,这些模式可以根据不同AI应用的需求进行配置。

Scallop提供了与Python程序中的逻辑推理模块的绑定,因此可以与现有的PyTorch机器学习管道进行深度集成。

该语言适用于开发涉及符号推理的各种视觉和自然语言处理的应用。推理组件通过逻辑规则进行规定,并与诸如卷积神经网络和变压器等机器学习模型紧密集成。

一个应用示例是CLEVR(组合语言和基础视觉推理),该任务涉及对给定图像中简单三维物体的推理,目的是回答类似“有多少物体是蓝色的?”的问题。使用Scallop时,我们通过神经组件生成图像的符号表示,形式为场景图,及表示问题的程序化查询。同时,推理组件规定各种操作,如选择、比较和计数具有特定属性的物体。

另一个应用示例是Pathfinder(长距离连通推理),其任务是确定两个点是否通过虚线相连。使用Scallop可以通过一句简短的代码来编程实现,并且能超越最先进的变压器。

在评估手写公式方面,输入的手写符号包括数字0至9及简单的算术运算,目标是识别公式并计算表达式的值。例如,输入表达式1 + 3 / 5的结果应该计算为1.6。可以在Scallop中编写一个完整的上下文无关文法解析器来解析概率输入,并且相关的解析器和评估器的实现非常简洁。

Scallop团队来自宾夕法尼亚大学,致力于这一语言的发展和应用。


原文:https://www.scallop-lang.org/

评论:https://news.ycombinator.com/item?id=43443640

Report Page