GIST 7

[AGI] ARC Prize 2024 : Technical Report

ARC 문제는 매년 Kaggle에서 대회가 열린다. 거기에는 다양한 팀들이 참여하기에 오늘은 이 리포트를 분석하여 팀들이 어떤 방식으로 ARC 문제를 해결했는지를 알아보고자 한다.Introduction: ARC-AGIFrancois Chollet는 딥러닝의 한계를 2017년에 깨닫고, 2019년 그만의 AGI에 대한 새로운 정의를 제안했다. 그는 AGI를 사전 학습 없이 새로운 기술을 효율적으로 정의하는 시스템이라고 정의했다. 이러한 정의를 통해 Chollet는 Abstraction and Reasoning Corpus(ARC)라는 AI의 지능을 측정할 수 있는 벤치마크를 제안했다. 그림 1을 보면 ARC는 독립적인 문제로 되어 있고, 각 문제는 2개 이상의 예시 쌍과 하나의 테스트 입력이 주어진다. 각..

[AGI] ARC-AGI Without Pretraining(by Isaac Liao)

Before we begin...이번에 정리할 내용은 Isaac Liao의 ARC-AGI 접근법이다. 그는 사전 학습(pretraining) 없이 문제를 해결했으며, 운 좋게도 그의 발표를 직접 들을 기회가 있었다. 다만 발표 내용을 한 번에 이해하긴 어려워서, 복습을 위해 그의 블로그를 참고해보려 한다.https://iliao2345.github.io/blog_posts/arc_agi_without_pretraining/arc_agi_without_pretraining.html ARC-AGI Without PretrainingBy Isaac Liao and Albert Gu In this blog post, we aim to answer a simple yet fundamental question: C..

[AGI] Program Synthesis - 4

프로그램 작성자는 specification과 프로그램을 연결하는 역할이다. 이번에는 어떻게 LLM이 다른 분야에서 보편적인 프로그램 작성자가 되는지를 설명할 것이다.a menagerie of synthesizerssynthesizer는 매우 어려운 일을 수행한다. 그것은 프로그램이 무엇을 해야하는지(semantics)를 입력으로 받아 프로그램이 어떻게 생겨야 하는지(syntax)를 출력으로 만드는 작업이다. 즉, 인터프리터를 거꾸로 실행하는 작업이다.어려운 문제가 주어졌을 때, 모든 문제 도메인마다 도메인 맞춤 synthesizer가 있어야하는 것은 당연하다고 생각이 들 수 있습니다. 실제로 그런 경우가 있는데 아래는 글 작성자의 작업물의 구조들입니다.저것들은 좋아보이지만, 아래와 같은 상당한 수작업 엔..

[AGI] Program Synthesis - 3

2장의 간단한 recap과 함께 시작한다.The problem풀을 안쪽에, 버섯을 바깥쪽에 놓는 사각형을 그리는 것이 문제이다. 이 문제는 입력-출력, spec의 specification으로 표현된다.The ground-truth distributionspec이 주어졌을 때 meaning matrix에서의 행 M[spec, :]를 보자. 모든 사각형(프로그램)에서 이 행은 우리의 spec이 옳은지 틀린지를 나타낸다. 주어진 spec에 대해 program synthesis의 정답 분포(ground-truth distribution)은 아래와 같이 정의한다:올바른 프로그램의 개수(N)을 센 다음, 각 올바른 프로그램에 1/N의 가중치를 부여하는 것이다.$$ P_{ground-truth}(prog\mid sp..

[AGI] Program Synthesis - 2

이번에는 간단한 예시를 들어볼 것이다. program synthesis를 진행하기 위해서는 당연히 풀어야할 문제를 정의해야 한다. Grass turtle and mushrooms너가 거북이를 감싸는 사각형을 6x6 그리드 위에 그리고 싶다고 생각을 해보자. 너는 풀은 사각형 안쪽에, 그리고 버섯은 사각형 바깥쪽에 놓고 싶다.필드가 주어졌을 때, 너는 어떤 방식으로 빠르게 사각형을 그릴 것인가?Modeling programmingprogram synthesis는 프로그래밍과 함께 시작한다. 그리고 프로그래밍은 interpreter와 함께 시작한다.Program프로그램은 하나의 데이터 구조로 볼 수 있다. 여기서 프로그램은 top, down, left, right로 구성된 사각형의 구조이다.# the rec..

[AGI] Program Synthesis - 1

Program Synthesis란, 입력-출력 쌍이 주어졌을 때, 이를 만족하는 프로그램(또는 알고리즘)을 자동으로 생성하는 과정을 의미한다. 수업시간에 Program Synthesis와 관련해서 읽어보면 좋은 블로그를 교수님께서 소개해주셨다. 오늘은 그 블로그의 글들을 하나씩 정리해보고자 한다.Programming컴퓨터 이전, 사람들은 무엇을 하던 스스로 해야했고 이는 굉장히 피곤한 일이다.프로그래밍은 사람이 컴퓨터에게 무언가를 해달라고 요청하는 것이다. 이메일을 만드는 것도, 블로그를 세팅하는 것도 프로그래밍이다. 프로그래밍은 항상 아래의 3가지를 고려해야 한다:프로그래머 : 문제를 프로그램으로 만듬프로그램 : 인터프리터가 이해하는 것인터프리터 : 프로그램을 받아 일을 하는 것프로그래밍을 하는 것은 ..

[AGI] On the Measure of Intelligence

AGI 수업에서 2주차 내용에 관련된 Chollet의 논문이다. 수업을 듣기 전에 미리 읽어보고 내용을 정리해보고자 한다.Context and historyNeed for an actionable definition and measure of intelligenceAI 연구는 인간과 유사한 지능을 가진 기계를 개발하는 것을 목표로 하지만, 현재까지 AI는 특정 작업에 특화된 시스템을 만드는 데에만 성공했다. AI 시스템은 여전히 취약하고, 데이터에 의존하며, 새로운 상황에 대한 적응력이 부족하다. 연구의 진전이 미흡한 이유 중 하나는 명확한 목표와 평가 기준이 부족하기 때문이다. 현재까지 AI 지능에 대한 객관적이고 실행 가능한 정의나 평가 기준이 제대로 확립되지 않았으며, 기존의 튜링 테스트 같은 방법..