返回列表

21st place: a short report

628. ARC Prize 2024 | arc-prize-2024

开始: 2024-06-11 结束: 2024-11-10 数学与计算 AI大模型赛
第 21 名:一份简短的报告

第 21 名:一份简短的报告

作者: Lyrialtus
发布日期: 2024-12-06
竞赛排名: 21

大家好!我想分享我的 28%“解决方案”,尽管没有什么太多可分享的。这是一个非常微小的见解,大约只占了 1% 的努力(其余部分都失败了)。这个想法并不非常原创,只是作为 icecuber 求解器的预处理步骤进行了一些重新着色。在集成模型中,它在 26% 的基线之上增加了 +2%。这是该函数:

def recolor_task(task):
    '''通过像素计数进行重新着色尝试(但这会破坏某些任务)'''
    if len(task['test']) > 1:
        return

    all_a = []
    all_b = []
    for pair in task['train']:
        input_colors, input_counts = np.unique(pair['input'], return_counts=True)
        a = list(zip(input_colors.tolist(), input_counts))
        a = tuple(x[0] for x in sorted(a, key=lambda x: x[1], reverse=True))
        all_a.append(a)
        all_b.append(tuple(np.unique(pair['output']).tolist()))
    uni_a = set(sum(all_a, ()))
    uni_b = set(sum(all_b, ()))

    input_colors, input_counts = np.unique(task['test'][0]['input'], return_counts=True)
    c = list(zip(input_colors.tolist(), input_counts))
    c = [x[0] for x in sorted(c, key=lambda x: x[1], reverse=True)]

    if uni_a == set(c) or len(list(uni_a & uni_b)) == 0:
        return

    for i in range(len(task['train'])):
        raw = all_a[i]
        ti = task['train'][i]['input']
        to = task['train'][i]['output']
        for j in range(len(c)):
            if j == len(raw):
                break
            ti = [[c[j] + 10 if x == raw[j] else x for x in sub] for sub in ti]
            to = [[c[j] + 10 if x == raw[j] else x for x in sub] for sub in to]
        ti = [[x - 10 if x > 9 else x for x in sub] for sub in ti]
        to = [[x - 10 if x > 9 else x for x in sub] for sub in to]
        task['train'][i]['input'] = ti
        task['train'][i]['output'] = to

我没有测试这个特定版本,但它应该可以工作。它可以改进,但在这种情况下,我认为这并不重要,因为分数保持不变甚至下降。也许我没有探索得足够深入。但是,再说一次,这没有什么功劳,它并不能让你更接近通用人工智能(AGI)算法。

所以这个见解是关于观察任务,并且能够几乎立即判断着色是否无关紧要。我想这与 Guillermo Barbadillo 所说的关于表征的内容有关。无关的视角会被迅速丢弃。例如 (1e32b0e9),这是任务看起来的样子:

原始任务图像

这是我在理解解决方案之前,仅仅片刻之后在概念上实际看到的样子:

重新着色后的概念图像

或者是类似的东西,我当然可能是错的,但它 kind of 帮到了我,所以谁知道呢。

我曾试图思考宏大的方案,但我缺乏这方面的技能和创造力。还有动力。有时我能工作,有时不能……无论如何,我最终探索了图方法,但没有成功。我也尝试了神经细胞自动机,但没能超过 1%。

我决定不碰大语言模型(LLMs)。为什么?我知道许多人都会这样做,所以 pursue 同样的事情没有意义。而且我仍然没有在数学层面上理解 Transformer 架构,对我来说超越现有的东西几乎是不可能的。加上,我的算力有限。我也决定不 tinkering icecuber 的求解器。为什么?我的 C++ 技能几乎不存在。我必须先学习这门语言。当然,这种方法也不承诺任何 AGI,所以有什么意义呢。

总的来说,我真的很喜欢整个对 AGI 的探索 quest。也许我天真的迷恋不足以做出有意义的贡献,但我真的很感激这个机会,所以感谢所有让这一切成为可能的人。让我们看看接下来会发生什么。

同比赛其他方案