배경 및 목적
트위터에서 흥미로운 트윗을 하나 보았습니다. 요컨데 o1은 시스템 1.5 사고를 하는 논리 머신인데, 얘를 잘 가이드 해 주면 진정한 논리적 사고인 시스템 2 사고를 할 수 있게 해 줄 수 있다고 합니다.
https://x.com/omarsar0/status/1845869689911820334
그러면 어떻게 시스템 2 사고를 할 수 있게 만들지 알아 보았습니다.
참고 자료
원문:
https://www.qodo.ai/blog/system-2-thinking-alphacodium-outperforms-direct-prompting-of-openai-o1/
너는 MIT 리뷰의 베테랑 편집자야.
아래 블로그 포스트는 OpenAI o1이 시스템2 사고를 할 수 있지만, 사용자가 가이드 해 줘야 한다는 내용인거 같아.
핵심이 되는 어떻게 가이드 해야 하는지에 대해 정리해 주고, 전체 블로그 내용도 요약해줘.일단 이렇게 OpenAI o1으로 요약을 받아 보는 것으로 시작했습니다.
핵심 요약:
OpenAI의 o1 모델이 시스템2 사고를 할 수 있도록 가이드하려면, AlphaCodium과 같은 구조화된 프레임워크를 활용하여 모델의 추론 과정을 향상시켜야 합니다. 이를 위해 다음과 같은 방법을 사용합니다:
다단계 반복 프로세스 적용: 코드 생성, 실행, 테스트, 오류 수정을 반복하여 솔루션의 정확성과 신뢰성을 높입니다.
추가 데이터 생성: 문제에 대한 반성(reflection)과 테스트에 대한 추론(reasoning)을 포함한 추가 데이터를 생성하여 모델이 문제를 더 깊이 이해하고 접근 방식을 개선하도록 돕습니다.
AI 기반 테스트 케이스 강화: 기존의 공개 테스트 케이스를 보완하고, AI가 생성한 추가 테스트를 도입하여 솔루션의 견고성을 검증합니다.
전체 블로그 요약:
블로그는 OpenAI의 새로운 o1 모델이 시스템2 사고—즉, 더 깊고 이성적인 추론 능력—를 갖출 수 있지만, 이를 위해서는 사용자나 특정 프레임워크의 가이드가 필요하다는 내용을 다룹니다.
AlphaCodium 소개:
AlphaCodium은 Qodo의 연구팀이 개발한 오픈소스 도구로, LLM을 활용한 코드 생성에 혁신적인 접근 방식을 제공합니다.
다단계 반복 프로세스를 통해 코드 생성, 실행, 테스트, 오류 수정을 반복하며 솔루션의 품질을 향상시킵니다.
추가 데이터와 테스트 케이스를 생성하여 모델의 문제 이해도와 추론 능력을 강화합니다.
시스템 사고에 대한 이해:
시스템1 사고: 빠르고 직관적인 반응으로, 현재 대부분의 LLM이 이 방식으로 작동합니다.
시스템2 사고: 신중하고 깊은 논리적 추론이 필요한 문제 해결 방식입니다.
시스템1.5 사고: 시스템1과 시스템2의 중간 단계로, 일부 추론 능력을 보이지만 완전한 시스템2 사고를 하기에는 부족합니다.
o1 모델의 평가와 한계:
o1 모델은 시스템1.5 수준으로 평가되며, 깊은 추론을 위해서는 외부의 가이드가 필요합니다.
Terence Tao의 평가에 따르면, o1은 유능한 대학원생 수준의 능력을 보이지만, 핵심 개념을 스스로 생성하지는 못합니다.
o1 모델은 복잡한 문제에서 오류나 비논리적인 결과를 나타낼 수 있습니다.
AlphaCodium과 o1의 결합 실험:
실험 결과: AlphaCodium을 o1 모델과 결합하여 Codeforces 벤치마크에서 테스트한 결과, 정확도가 크게 향상되었습니다.
의미: AlphaCodium은 o1의 성능을 향상시키고, 모델이 더 전략적이고 신중한 문제 해결을 할 수 있도록 돕습니다.
성능 향상 요인: AlphaCodium의 구조화된 프로세스와 추가 데이터 생성이 모델의 추론 능력을 강화합니다.
결론 및 향후 방향:
시사점: 올바른 프레임워크와 도구를 사용하면, 기본 모델인 o1도 시스템2 사고에 가까워질 수 있습니다.
향후 과제: 완전한 시스템2 수준에 도달하려면 추가 연구와 개발이 필요합니다.
Qodo의 목표: 코드의 무결성에 초점을 맞추어, 테스트와 리뷰 과정을 통합한 시스템2 사고를 위한 개발을 진행하고 있습니다.
커뮤니티 참여: AlphaCodium은 오픈소스이며, GitHub에서 접근 가능하며, 더 많은 연구자와 개발자의 참여를 기대합니다.
결국 핵심은 OpenAI o1이 진정한 시스템2 사고를 할 수 있게 도와주는 프레임워크 + 데이터를 쓰는 것이라 합니다.
활용 툴
OpenAI o1
실행 과정
AlphaCodium의 Flow
AlphaCodium의 흐름을 구별짓는 두 가지 핵심 요소가 있습니다. 첫째, 이 시스템은 문제 성찰과 테스트 추론과 같은 추가 데이터를 생성하여 반복적인 과정을 돕습니다. 이는 모델이 복잡한 문제를 해결하는 접근 방식을 더 잘 이해하고 개선하는 데 도움을 줍니다. 둘째, AlphaCodium은 AI가 생성한 테스트로 기존의 공개 테스트 케이스를 보강하여, 솔루션의 견고성을 검증하기 위한 추가적인 검증 단계를 도입합니다. 이러한 구조화된 프로세스를 통해 AlphaCodium은 코드 자체뿐만 아니라 고품질의 신뢰할 수 있는 출력을 보장하는 데 필요한 추론과 테스팅에 초점을 맞춥니다.
와 코딩 실력이 엄청나게 올라갑니다. 오픈AI 자료에 따르면, o1-preview + AlphaCodium flow engineering이면 o1의 코딩 실력보다 나아 진다는 군요!
사용자당 광고 수익을 보여주는 막대 차트
이전에 GPT-4의 코딩 실력도 14%에서 44%로 올렸다고 하더군요.
결과 및 인사이트
o1-preview는 아직 시스템 1.5 사고를 하는 수준인 것 같습니다. 마치 우리가 머리로 생각하는 것과 비슷한 거 같아요. 논리적이라고 생각하나, 많은 부분에 있어서는 논리적 비약을 우리 스스로 알아 차리지 못하죠.
하지만, 이걸 도와주는 프레임워크가 있으면 (아마도 산업 도메인 별로 다를 것 같습니다) 이런 프레임워크의 도움으로 o1-preview 혹은 o1을 내 분야에 맞게 더 성능을 높여 쓸 수 있을 것 같습니다.