The Abstraction and Reasoning Corpus (ARC) is a set of procedural tasks that tests an agent's ability to flexibly solve novel problems. While most ARC tasks are easy for humans, they are challenging for state-of-the-art AI. What makes building intelligent systems that can generalize to novel situations such as ARC difficult? We posit that the answer might be found by studying the difference of \emph{language}: While humans readily generate and interpret instructions in a general language, computer systems are shackled to a narrow domain-specific language that they can precisely execute. We present LARC, the \textit{Language-complete ARC}: a collection of natural language descriptions by a group of human participants who instruct each other on how to solve ARC tasks using language alone, which contains successful instructions for 88\% of the ARC tasks. We analyze the collected instructions as `natural programs', finding that while they resemble computer programs, they are distinct in two ways: First, they contain a wide range of primitives; Second, they frequently leverage communicative strategies beyond directly executable codes. We demonstrate that these two distinctions prevent current program synthesis techniques from leveraging LARC to its full potential, and give concrete suggestions on how to build the next-generation program synthesizers.
翻译:抽象和理性公司( ARC) 是一套程序任务, 测试代理人灵活解决新问题的能力。 虽然大多数 ARC 任务对于人类来说是容易的, 但对于最先进的AI 来说是挑战的。 是什么使得建立智能系统能够概括一些新情况, 比如 ARC 困难? 我们假设, 答案可以通过研究 emph{ 语言的区别来找到 : 虽然人类很容易用一般语言生成和解释指令, 计算机系统被束缚在他们可以精确执行的狭窄的域别语言上。 我们提出LAR, 多数 ARC 任务对于人类来说是容易的, 但是对于最先进的AI 任务来说是挑战的。 是什么使建立智能系统, 智能系统能够通过研究 \ emph{ 语言的区别来找到答案 。 我们把收集到的指令作为“ 自然程序” 来分析, 发现虽然它们与计算机程序相似, 它们有两种不同的方式: 首先, 它们包含广泛的原始语言; 第二, 它们经常利用通信战略, 超越直接执行的可操作的 ARC : 我们通过两个程序来利用新的程序, 如何利用当前的合成技术 。 我们将这些程序进行两种区分。