Open-source DeepResearch – Freeing our search agents
요약
본 기사는 OpenAI가 공개한 'DeepResearch' 시스템을 분석하고, 이를 오픈소스로 재현하려는 목표를 제시합니다. DeepResearch는 LLM과 에이전트 프레임워크를 결합하여 웹 검색 및 다단계 추론 능력을 극대화하며, 특히 GAIA와 같은 복잡한 벤치마크에서 단일 LLM보다 월등히 높은 성능을 보여줍니다. 필자들은 이 강력한 시스템의 핵심인 '에이전트 프레임워크'를 오픈소스로 공개하여 연구 커뮤니티가 이를 재현하고 발전시킬 수 있도록 하는 것을 목표로 합니다.
핵심 포인트
- DeepResearch는 LLM을 웹 검색 및 도구 사용과 결합한 에이전트 시스템으로, 복잡한 다단계 추론(예: GAIA)에서 단일 LLM 대비 압도적인 성능 향상을 보여줍니다.
- GAIA 벤치마크를 통해 OpenAI가 DeepResearch로 67%의 높은 정답률을 달성했음을 강조하며, 이는 에이전트 시스템의 중요성을 입증합니다.
- 에이전트 프레임워크는 LLM에게 웹 검색과 같은 외부 도구를 사용하도록 안내하고 작업을 단계별로 조직하는 핵심 역할을 수행합니다.
- 코드 기반의 동작 표현 방식은 JSON보다 간결하며, 복잡한 시퀀스 처리와 비용 효율성 측면에서 에이전트 시스템을 개선할 수 있는 잠재력을 가집니다.
어제, OpenAI 는 웹을 탐색하여 내용을 요약하고 그 요약에 기반하여 질문에 답하는 시스템을 출시했습니다. 이 시스템은 첫 시도 때 우리의 마음을 놀라게 했습니다.
블로그 포스트의 주요 결과 중 하나는 General AI Assistants benchmark (GAIA) 의 성능에 대한 강력한 개선입니다. 우리는 최근 GAIA 를 플레이해 왔으며, OpenAI 는 1-shot 에서 평균적으로 약 67% 의 정답률을 달성하고, 특히 여러 단계의 추론과 도구 사용이 포함된 난이도가 높은 "level 3" 질문에서는 47.6% 의 정답률을 달성했습니다 (GAIA 의 프레젠테이션은 아래에 있습니다).
DeepResearch 는 LLM(OpenAI 가 제공하는 현재 LLM 목록에서 선택할 수 있음: 4o, o1, o3 등) 과 내부 "agentic framework" 로 구성됩니다. 이 agentic framework 는 웹 검색과 같은 도구를 사용하도록 LLM 을 안내하고 작업을 단계별로 조직합니다.
강력한 LLM 은 이제 오픈소스 (예: 최근 DeepSeek R1 모델) 에서 무료로 제공되지만, OpenAI 는 Deep Research 를 뒷받침하는 agentic framework 에 대해 많이 공개하지 않았습니다…
따라서 우리는 그들의 결과를 재현하고 필요한 프레임워크를 함께 오픈소스로 만드는 24 시간 미션을 시작하기로 결정했습니다!
시계는 돌고 있습니다,让我们走吧! ⏱️
거의 모든 사람들은 채팅봇을 플레이함으로써 LLM 의 강력한 힘을 이미 경험해 왔습니다. 그러나 아직 많은 사람들이 인식하지 못하는 것은 이러한 LLM 을 agentic 시스템에 통합하면 실제 슈퍼파워를 부여할 수 있다는 것입니다!
여기서는 몇 개의 프론티어 LLM 의 성능을 비교한 최근 예시입니다 (이 경우 간단한 smolagents 라이브러리). agentic framework 를 사용하면 성능이 최대 60 점까지 향상됩니다!
사실, OpenAI 는 Deep Research 가 지식 집약적인 "Humanity's Last Exam" 벤치마크에서 독립형 LLM 보다 훨씬 더 잘 수행되었음을 강조했습니다.
따라서 우리가 현재 최상위 LLM 을 agentic framework 에 통합하여 open-DeepResearch를 만드는 경우 어떤 일이 일어나는지 궁금합니다?
단기 참고: 우리는 동일한 GAIA 도전과제를 벤치마크할 것입니다. 하지만 이 작업은 진행 중임을 기억해 주세요. DeepResearch 는 거대한 업적이며, 오픈소스 재현에는 시간이 걸립니다. 특히 완전한 평등은 OpenAI Operator 가 제공하는 웹 사용 및 상호작용 개선이 필요하며, 즉 우리가 첫 단계에서 탐구하는 현재 텍스트 만 웹 상호작용을 넘어선 것입니다.
먼저 도전을 이해해 보겠습니다: GAIA.
GAIA 는 에이전트 (agent) 에 대한 가장 포괄적인 벤치마크 중 하나입니다. 그 질문은 매우 어렵고 LLM 기반 시스템의 많은 도전과제를 맞습니다. 여기 어려운 예가 있습니다:
2008 년 그림 "Embroidery from Uzbekistan" 에서 표시된 과일 중 1949 년 10 월 breakfast menu 의 일부로 제공되었던 과일은 무엇입니까? 영화 "The Last Voyage" 의 플로팅 프로프 (floating prop) 로 사용된 오션 라이너의 breakfast menu 입니다. 그림에서 배열에 따라 시계 방향으로 시작하여 12 시 위치부터 순서대로 각 과일의 복수형을 사용하여 쉼표로 구분된 목록으로 제공하세요.
이 질문은 여러 도전과제를 포함합니다:
-
제한된 형식으로 답변,
-
멀티모달 능력 사용 (이미지에서 과일을 추출),
-
여러 정보 수집, 일부는 다른 것에 의존:
-
그림에서 과일 식별
-
"The Last Voyage" 의 플로팅 프로프로 사용된 오션 라이너 찾기
-
위의 오션 라이너의 1949 년 10 월 breakfast menu 찾기
-
문제 해결 경로를 올바른 순서로 연결합니다.
이를 해결하기 위해서는 고수준 계획 능력과 엄격한 실행이 모두 필요하며, 이는 LLM 을 단독으로 사용할 때 어려운 두 가지 영역입니다.
따라서 이는 에이전트 시스템에 대한 훌륭한 테스트 세트입니다!
GAIA 의 공중 리더보드에서 GPT-4 는 에이전트 설정 없이도 검증 데이터셋에서 7% 를 넘지 못했습니다. 반면, Deep Research 를 사용하여 OpenAI 는 검증 데이터셋에서 67.36% 점수를 달성하여 10 배 이상 더 높은 점수를 기록했습니다! (하지만 실제 프라이빗 테스트 세트에서의 성과는 아직 알 수 없습니다.)
오픈 소스 도구로 더 나은 결과를 얻을 수 있는지 확인해 보겠습니다!
전통적인 AI 에이전트 시스템에 대한 첫 번째 개선점은 "코드 에이전트" 를 사용하는 것입니다. Wang et al. (2024) 에 따르면, 에이전트가 동작을 코드로 표현하도록 하는 것은 여러 가지 장점이 있지만, 특히 코드는 복잡한 동작의 시퀀스를 표현하는 데专门为 설계되었습니다.
Wang et al. 이 제시한 예시를 고려해 보겠습니다:
이는 코드 사용을 위한 몇 가지 장점을 강조합니다:
- 코드 동작은 JSON 보다 훨씬 더 간결합니다.- 4 개의 병렬 스트림이 5 개의 연속된 동작을 실행해야 하는 경우? JSON 은 각 단계마다 별도의 JSON blob 를 생성해야 하므로 20 개가 필요합니다. 반면 코드는 단 한 단계로 충분합니다.
- 논문은 평균적으로 코드 동작이 JSON 보다 30% 적은 단계가 필요하다고 보여주며, 이는 토큰 생성에도 동일한 감소량을 의미합니다. LLM 호출이 에이전트 시스템의 차원링 비용인 경우가 많으므로, 이는 에이전트 시스템 실행 비용을 약 30% 절감할 수 있음을 의미합니다.
- 코드는 일반적인 라이브러리에서 도구를 재사용할 수 있게 합니다.
- 벤치마크에서의 더 나은 성능은 두 가지 이유로 인해 달성됩니다:
- 동작을 표현하는 더 직관적인 방법
- 훈련 과정에서 LLM 이 코드에 광범위하게 노출됨
위의 장점은 agent_reasoning_benchmark 에서의 실험으로 확인되었습니다.
smolagents 를 구축함으로써 우리는 또한 주목할 만한 추가적인 장점을 언급할 수 있습니다. 이는 상태 처리를 더 잘 수행하는 것이며, 특히 멀티모달 작업에 매우 유용합니다. 나중에 사용할 이미지를 저장하거나 오디오/다른 데이터를 저장해야 하는 경우? 문제는 없습니다. 단순히 상태를 변수로 할당하면 필요시 4 단계 후에도 재사용할 수 있습니다. JSON 은 LLM 이 사전 키에서 이름을 지정하도록 하고, 나중에 다시 사용할 수 있음을 믿어야 합니다.
이제 에이전트에 올바른 도구 세트 제공이 필요합니다.
1. 웹 브라우저. 완전한 성능을 달성하기 위해서는 Operator 와 같은 완전히 갖춘 웹 브라우저 상호작용이 필요하지만, 우리는 현재 첫 번째 프로토타입을 위해 매우 간단한 텍스트 기반 웹 브라우저를 사용했습니다. 코드는 여기에서 찾을 수 있습니다
2. 단순 텍스트 검사기를 사용하여 텍스트 파일 형식을 여러 개 읽을 수 있도록 합니다. 여기에서 찾아보십시오.
이 도구는 Microsoft Research 의 훌륭한 Magentic-One 에이전트에서 가져온 것입니다. 우리는 복잡성을 최소화하면서 최대한 높은 성능을 달성하는 것이 목표였으므로 거의 변경하지 않았습니다. 그들은 큰 고마움!
다음은 우리가 실제로 이러한 도구들의 성능을 개선할 것이라고 생각되는 개선 로드맵입니다 (PR 을 열고 기여해 주십시오!):
- 읽을 수 있는 파일 형식의 수를 확장합니다.
- 파일을 더 세분화하여 처리합니다.
- 웹 브라우저를 여기에서 시작하는 시각 기반 브라우저로 대체합니다.
우리의 24 시간 이상의 재현 스프린트 동안, 우리는 GAIA 에서 에이전트의 성능이 꾸준히 개선되고 있음을 이미 확인했습니다.
Magentic-One 의 경우 오픈 프레임워크를 통해 이전 SoTA 를 빠르게 넘어갔으며, 현재 검증 데이터셋에서 55.15% 의 성능을 기록했습니다.
이러한 성능 향상은 주로 에이전트가 코드로 행동을 작성할 수 있게 함에 기인합니다. 실제로 표준 에이전트 (JSON 으로 행동 작성) 로 전환하면 동일한 설정의 성능은 즉시 33% 평균으로 하락합니다.
여러분도 직접 시도해볼 수 있도록 라이브 데모를 준비했습니다!
하지만 이는 시작일 뿐이며, 개선할 점이 많습니다. 오픈 도구를 더 잘 만들 수 있으며, smolagents 프레임워크도 튜닝이 가능하고, 에이전트를 지원하기 위해 더 좋은 오픈 모델의 성능을 탐구하는 것을 원합니다.
우리는 이 여정에 함께 참여해달라고 커뮤니티를 환영합니다. 이를 통해 오픈 연구의 힘을 활용하여 훌륭한 오픈소스 에이전틱 프레임워크를 구축할 수 있습니다! 이는 누구나 선호하는 모델을 사용하여 완전히 로컬이고 커스터마이징된 방식으로 가정에서 DeepResearch 같은 에이전트를 실행할 수 있게 할 것입니다!
우리가 GAIA 에 집중하며 이 작업을 수행하고 있을 때, 커뮤니티에서 특히 다음 사람들이 만든 다른 훌륭한 오픈 구현이 등장했습니다.
- dzhng,
- assafelovic,
- nickscamara,
- jina-ai 와
- mshumer.
각 구현은 데이터 인덱싱, 웹 탐색 및 LLM 쿼리에는 서로 다른 라이브러리를 사용합니다. 이 프로젝트에서는 OpenAI 가 제시한 벤치마크 (pass@1 평균 점수) 를 재현하고, 오픈 LLM (예: DeepSeek R1) 을 사용하여 벤치마크와 결과를 문서화하며, 전통적인 도구 호출과 코드 네이티브 에이전트를 비교할 것입니다.
OpenAI 의 Deep Research 는 Operator 와 함께 도입한 훌륭한 웹 브라우저로 인해 향상되었을 가능성이 큽니다.
따라서 우리는 다음으로 이를 해결합니다! 더 일반적인 문제: 우리는 GUI 에이전트를 구축할 것입니다. 즉, "화면을 보고 마우스 및 키보드와 직접 상호작용할 수 있는 에이전트"입니다. 이 프로젝트에 흥미를 느끼시며, 오픈소스를 통해 모든 사람이 이러한 멋진 기능을 이용할 수 있도록 도와달라고 원하시면 기여해주시기를 바랍니다!
우리는 더 많은 작업을 수행하기 위해 풀 타임 엔지니어를 채용하고 있습니다. 관심 있으시면 지원해 주세요 🙂
- Open Deep Research 를 시작하려면 여기 예제를 확인하세요.
- smolagents 저장소를 확인하세요.
- smolagents 문서, 소개 블로그 포스트에 대해 더 읽어보세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Hugging Face Blog의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기