관심있는 NLP 논문을 읽어보고 간단히 정리했습니다.
혹시 부족하거나 잘못된 내용이 있다면 댓글 부탁드립니다 🙇♂️
[FAIR, Meta, HuggingFace, AutoGPT, GenAI]
- General AI Assistant의 성능을 평가하기 위해 real-word question으로 구성된 벤치마크, GAIA 공개
- 사람은 풀기 쉽지만 인공지능 모델은 풀기 어려운 466개 (그중 166개만 annotation 공개) Q&A pair
- 무려 Yann LeCun이 저자에 포함된 논문
1. Introduction
- LLM은 general tasks를 처리하는 우수한 능력으로 주목을 받았으나 이를 평가하는 시스템은 아직까지 open problem
- 최근의 벤치마크들은 사람이 풀기에도 엄청나게 어려운 tasks를 다루고 있는데, 이는 적절한 평가 방식이 아니라고 주장
- 인공지능 모델의 reasoning, multi-modality handling, tool use proficiency 능력 등을 파악하기 위해서는 사람에게는 쉽지만 인공지능 모델에게는 어려운 문제를 주어야 함
2. Realted Work
- Evaluating Large Language Models
- LLM이 빠른 속도로 발전함에 따라 benchmark도 포화 상태에 이르고 있음
- LLM 평가는 크게 (1) compilations of evaluations (2) human evaluation (3) model based evaluation 으로 구분됨.
- Evaluating General Assistants
- general purpose assistants에 대한 적절한 평가 방식은 아직도 개발되지 않은 상태
- Closed evaluation에서 특정 API를 사용하게 하는 것 등은 real world interaction 방식과는 차이가 있음을 지적
3. Contributions
- Real-word and challenging questions
- Easy interpretability through conceptually simple tasks
- Non-gameability: 단순히 학습 데이터의 패턴을 외워서 task를 풀 수 없도록 설계
- Simplicity of use: zero-shot으로 답변 가능하도록 유도
4. GAIA
사람에 의해 design되고 annotate된 466개의 question으로 구성됨
4.1. A convenient yet challenging benchmark for general AI assistants
GAIA 제작 원칙은 다음과 같다.
- simple해야 한다. 사람에게는 지루하게 느껴질 수도 있지만 그럼에도 다양해야 하며 현실 문제에 뿌리를 두고 있어야 한다. 또한 AI system에게는 challenging한 문제를 만들어야 한다.
- interpretability를 갖추어야 한다. 이는 모델의 reasoning trace를 쉽게 이해/유추할 수 있도록 하기 위함이다.
- memorization에 대해 강건해야 한다. 즉, 단순히 이전 패턴들을 암기하는 방식으로 문제를 구성하면 안된다. 이를테면 다지선다의 문제는 부적합한 것이다.
- 사용하기 쉬워야 한다 (easiness of use). 단 한 개의 정답만이 존재할 수 있는 형식으로 문제를 제작하는데, 이 덕분에 빠르고 정확하게 사실 기반의 평가를 할 수 있다. 이를 위해서는 zero-shot이 활용된다.
4.2. Evaluation
- string (one or a few words), number, comma separated list of string, floats 등의 형식으로 답변하도록 한다.
- 오직 한 개의 answer만 존재 가능하다.
- Quasi (유사) Exact Match로 모델의 답변을 평가한다.
4.3. Composition of GAIA
- Capabilities coverage
- GAIA에 대해 정확히 scoring하기 위해서는 advanced reasoning, multi-modality understanding, coding capabilities and tool use 등에 대한 능력을 확인해야 한다.
- 그러나 해당 benchmark를 풀기 위해 필요한 capabilities의 상세 리스트는 제공하지 않는다.
- Increasing difficulty
- Level 1: tool 사용이 필요하지 않은 question
- Level 2: 5~10개의 tool을 조합해야 하는 question
- Level 3: 거의 완벽한 general assistant로서의 역량을 요하는 question
- Distribution of required capabilities
- physically impaired people을 위한 문제들도 포함시켰음
4.4. Building and extending GAIA
- Crafting questions
- AI assistant의 현실적인 케이스를 반영하기 위한 문제들로 사람이 직접 구성
- Wikipedia, Papers With Code, arXiv 등 source page가 사라질 가능성이 낮은 웹 사이트를 근거로 문제 제작
- Validating questions
- 단 하나의 correct answer가 존재하는지 검증할 필요가 있음
- 한 명이 만든 answer에 대해, 다른 두 명의 annotator가 독립적으로 답변을 만들고 의견 일치도를 확인하는 과정을 거침
- GAIA는 specialized를 위한 것이 아닌 non experts를 위한 것
- Challenges associatd to relying on the web
- Wkiepedia article 등은 업데이트되면서 내용이 바뀔 수 있음. 그래서 버전도 같이 전달해줘야 함
- 특정 웹 사이트들은 시스템적으로 bot이 접근하지 못하도록 막는 경우가 있음
5. LLMs results on GAIA
- Models
- GPT4, GPT4 plugin, AutoGPT with GPT4 as backend, Search engine, Human
- Human은 문제의 난이도에 상관 없이 90%가 넘는 정확도를 보여주고 있음
- 반면 현존하는 최고의 LLM들이라고 할지라도 엄청나게 저조한 성적을 기록함
- 이때 augmenting LLM with tool API가 모델의 퍼포먼스 향상에 긍정적인 영향을 줄 수 있음이 확인됨
- GPT4는 파일이나 multi-modality에 대해서 잘 처리하지 못함
- 그러나 level 1에서 사람의 문제 처리 속도는 상당히 느리고 & LLM의 퍼포먼스가 나쁘지 않다는 점을 보면, 향후 LLM이 search engine을 대체하게 될 수 있음으로 해석도 가능
6. Discussion
- Reproducibility for closed-source assistants
- API는 시간에 따라 변할 가능성이 높다. ChatGPT의 plugin 기능도 처음에 없다가 생겨난 것이고 지속적인 업데이트를 겪고 있다.
- 그럼에도 GAIA는 final answer에 대해서만 평가하기 때문에 강건하다고 볼 수 있음
- Static versus dynamic benchmarks
- 15,000개의 문제로 구성된 MMLU와 비교하면 '양보다는 질'을 선택한 것
- 그럼에도 시간이 지남에 따라 다음 문제들이 발생 가능
- catastrophic contamination of pre-training data: 현재의 벤치마크에는 이러한 문제가 존재한다고 봄
- disappearance from the web of some information required to answer the questions
- Towards unified evaluation of generative models
- 향후에는 LLLM을 태스크마다 external tool과 연결하는 패러다임은 지속되지 않을 것으로 보임
- 이를테면 LLM과 vision-language model의 통합 등을 예측
- Partial versus full automation
7. Insights
양보다는 질에 집중한 벤치마크 데이터셋을 만들어야 현재 LLM의 능력을 제대로 평가할 수 있다는 내용에는 크게 공감이 된다.
논문에 적힌 것처럼 최근에는 다양한 벤치마크도 나오고 그 벤치마크에 대한 모델 성능 경쟁이 치열한데 이에 대한 신뢰도가 높은지는 잘 모르겠다는 생각이 항상 든다.
가장 당황스러운 것은 pre-training data에 대한 contamination이 발생했는지 아닌지 판단하기 어렵다는 것이다.
(학습 데이터의 양이 워낙 방대하고 source도 다양하다보니.. 파악이 사실상 불가능해 보인다..)
그렇다면 해결책은 본 연구처럼 기존에 존재하지 않던 평가 방식, 혹은 데이터를 만드는 것 등 밖에는 없는 것 같다.
그러나 아직 데이터셋을 보지는 못했음에도 불구하고 평가가 잘 될까..하는 의문이 든다.
특히 API를 활용하는 경우 안정성이 워낙 심하게 떨어지기도 하고, 기능이 변경될 수 있다는 것이 가장 큰 문제점으로 알려져 있기 때문이다.
이 벤치마크를 제작할 때만 하더라도 code interpreter를 API로 이용할 수 없었지만 지금은 beta로 풀린 것처럼.. 활용 가능한 기능도 빠르게 발전하고 있다.
변화하는 흐름에 따라 매번 벤치마크를 만들 수는 없는 노릇일테니, 이보다도 (AGI 평가를 위한) 더 선구적인 시도가 있어야하지 않을까 싶은 생각이 들었다.