Jupyter Agents: 데이터 분석 노트북과 추론을 위한 LLM 훈련
요약
Jupyter Agent는 코드 실행 능력을 활용하여 데이터 분석 및 데이터 과학 워크플로우를 Jupyter Notebook 환경 내에서 자연스럽게 구현할 수 있도록 설계된 에이전트입니다. 이 프로젝트는 Qwen-3 Coder와 같은 강력한 코딩 모델을 기반으로 하며, 특히 작은 모델의 성능 개선에 초점을 맞추고 있습니다. 연구진은 DABStep과 같은 현실적인 데이터 과학 벤치마크를 사용하여 모델을 평가하고, 스캐폴딩(Scaffolding) 구조를 단순화하며, 최종 답변 도구를 추가하는 등의 방식으로 미세 조정을 진행하여 에이전트의 정확도를 크게 향상시켰습니다.
핵심 포인트
- Jupyter Agent는 데이터 과학 워크플로우에 최적화되어 코드 실행과 추론을 Jupyter Notebook 환경 내에서 통합적으로 제공합니다.
- DABStep 벤치마크는 LLM이 현실적인 데이터 질문에 답하는 능력을 평가하는 강력한 도구로 사용됩니다.
- 모델 성능 개선의 핵심은 고품질의 훈련 데이터를 생성하고, 작은 모델을 미세 조정하며, 에이전트의 행동을 유도하는 스캐폴딩(Scaffolding) 구조를 최적화하는 것입니다.
- 기존 복잡한 프레임워크(예: Smolagents) 대신, 코드 실행과 최종 답변 도구만 포함하도록 스캐폴딩을 단순화하여 성능 향상(44.4% → 59.7%)을 달성했습니다.
Jupyter Agent는 모델에게 최고의 도구인 코드 실행을 제공합니다.
다단계 코드 실행과 추론을 자연스럽게 Jupyter Notebook 안에 표시할 수 있습니다. 이는 코드와 마크다운 셀로 구성된 환경입니다. 따라서 우리는 데이터 분석 및 데이터 과학 작업을 해결하기 위해 직접 Jupyter 노트북 내부에서 코드를 실행하고 이 환경을 사용할 수 있는 에이전트로 Jupyter Agent 를 구축했습니다. Cursor 와 비슷하지만, 데이터 과학 워크플로우 내에서 네이티브하게 작동합니다.
우리는 Qwen-3 Coder를 사용하여 이 비전을 데모로 구축했습니다. 현재 가장 강력한 코딩 모델 중 하나입니다. 이는 jupyter-agent (v1) 에 대한 후속 작업입니다.
대규모 모델은 이제 유용한 행동을 보이기 시작했지만, 핵심 질문은 어떻게 지속적으로 개선할 수 있는지에 있습니다. 이를 위해 우리는 에이전트 데이터 과학 작업을 수행하는 데 어려움을 겪고 있는 작은 모델을 강화하는 데 집중합니다.
이 프로젝트의 목표는 먼저 고품질의 훈련 데이터를 생성하고, 기존 작은 모델을 미세 조정하며, 관련 벤치마크에서 모델 성능이 개선되는지 평가하는 파이프라인을 구축하는 것입니다.
우선 데이터 과학 작업을 수행하기 위해 모델을 평가하는 강력한 벤치마크를 선택하는 단계부터 시작해 보겠습니다.
더 나은 데이터 과학 에이전트 발전에 대한 진전을 이해하려면 이러한 능력을 측정할 벤치마크가 필요합니다.去年, Adyen 와 함께 DABStep benchmark를 소개했습니다: 현실적인 작업을 수행하는 데이터 과학 에이전트를 평가하는 방법입니다. 설정은 간단합니다: LLM 에게 데이터셋을 제공하고 비자명한 데이터 질문에 답하게 하십시오.
예시 작업:
| 질문 | 답변 |
|---|---|
| 2023 년에 가장 높은 평균 사기율을 가진 카드 스키마는 무엇입니까? | SwiftCharge |
| 2023 년, Crossfit Hanna 상인을 대상으로 다른 Authorization Characteristics Indicator 로 전환을 유도할 경우, 가장 비용 효율적인 옵션은 무엇입니까? | E:346.49 |
이 벤치마크는 현재 LLM 들에게는 여전히 도전적입니다 — 예를 들어, 최고의 오프더박스 모델은 Claude 4 Sonnet 으로, 어려운 작업에서 20% 이하의 정확도를 달성합니다.
여기서 라이브 리더보드를 확인해 보실 수 있습니다.
좋은 벤치마크를 찾았으니 이제 이를 극복해 볼 수 있습니다! 우리는 미세 조정을 위한 데이터셋을 구축하기 위해 노력했습니다. 작은 데이터 에이전트 모델이 DABStep 에서 잘 수행할 수 있도록 하십시오.
우리의 첫 번째 선택지는 Qwen3-4B-Thinking-2507입니다: 매우 작으며 (빠르게 반복하고, 실행하기 쉬움), 에이전트 시나리오에서 작동하기에 충분히 강력합니다.
베이스라인 결과:
쉬운 작업: 44.4% 어려운 작업: 2.1%*
좋지 않지만, 개선 여지가 많기 때문에 유망한 시작점입니다! 어떻게 개선할 수 있는지 확인해 보겠습니다!
에이전트의 핵심 측면은 모델의 행동을 유도하기 위해 구축된 스캐폴딩으로, 순수 채팅 모델과 구별됩니다. 예를 들어, DABStep 의 평가 스크립트는 smolagents 를 사용하여 코드를 실행합니다. Smolagents 는 미리 정의된 행동, 프롬프트 구조 및 예상 형식을 제공합니다.
우리는 또한 Qwen-Agent 코드베이스를 연구했습니다. 작성자는 모델을 위해 스캐폴딩을 맞춤화했습니다. 이는 의미가 있습니다: Claude Code 는 Claude Sonnet 과 함께 놀랍게 잘 작동합니다. 그들의 스캐폴딩이 정렬되어 있기 때문입니다.
따라서 우리는 스캐폴딩을 재구성했습니다:
- 코드 ~200 줄로 축소했습니다.
- 외부 의존성 없음.
- tiny-agents 의 영감에서.
👉 확인해 보십시오: utils.py.
결과: 정확도가 **44.4% → 59.7% (쉬운 분리)**로 점프했습니다. 🚀
우리의 루프:
- 두 개의 도구를 가진 while loop:
코드 실행코드를 실행하고 최종 답변최종 답변을 반환합니다. - 우리는 Qwen-Agent 와 달리 명시적으로 최종 답변도구를 추가했습니다 — 이는 테스트에서 성능을 개선했습니다.
- smolagents 에 비해, 많은 프롬프트와 도구를 제거하여 스캐폴딩을 단순화했습니다. Smolagents 는 ReACT 프레임워크를 사용하여 모델에 많은 가정을 하드코딩합니다.
단순화된 스캐폴딩이就位한 후, 우리는 데이터 과학 에이전트 작업을 위해 Qwen3-4B 를 미세 조정하는 데 집중했습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Hugging Face Blog의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기