Praxist: 기존 프로젝트를 넘겨받아 방법과 구조까지 바꾸며 개선하는 자율 연구 시스템

Praxist 소개

측정 가능한 지표를 가진 연구 프로젝트를 붙들고 몇 주씩 반복해 본 사람이라면 익숙한 상황이 있습니다. 베이스라인은 이미 돌아가고 평가 스크립트도 있는데, 다음에 무엇을 시도해야 점수가 오르는지는 아무도 모르는 상태입니다. 그래서 하이퍼파라미터를 바꿔 보고, 손실 함수를 갈아 보고, 구조를 조금 손봅니다. 그렇게 쌓인 실험 로그는 무엇을 언제 돌렸는지는 남기지만, 어떤 설계 요소가 개선을 만들었는지, 그 개선이 검증을 통과했는지는 남기지 않습니다. 그래서 캠페인이 길어질수록 같은 교훈을 다시 배우는 일이 반복됩니다.

Praxist는 이 반복 루프 자체를 넘겨받는 자율 연구 시스템입니다. 병렬로 도는 여러 연구 피어가 각자 후보 해법을 만들고, 과제가 소유한 평가자가 그 결과를 구조화된 증거로 바꾸며, 기획 패널이 그 증거를 모아 다음 세대의 연구 의제를 세웁니다. 이 주기를 탐색이 수렴하거나 예산이 소진될 때까지 반복합니다. 개발사인 Sapient Intelligence는 이 구조를 "연구를 이어지는 하나의 과정으로 다루며, 끊어진 프롬프트의 나열로 다루지 않는다" 는 문장으로 정리하고 있습니다.

Praxist는 Python 3.11 이상에서 동작하며, Codex 또는 Claude Code를 조작 인터페이스로 삼는 것을 권장합니다. 다만 Praxist는 이들을 대체하는 도구가 아닙니다. Codex는 여전히 프로젝트를 이해하고 사용자와 대화하며 개발 도구를 쓰는 대화형 에이전트로 남고, Praxist가 그 위에 지속되는 연구 루프와 병렬 피어, 증거 프로토콜, 일정 관리, 수명주기 제어를 얹는 구조입니다. 두 인터페이스 없이 명령줄만으로 운용하는 경로도 열려 있습니다.

Praxist가 AutoML과 다르다고 말하는 지점

자동화된 반복 실험이라는 설명만 들으면 AutoML이 먼저 떠오릅니다. Praxist는 그 비교를 스스로 문서에 적어 두었고, 아래 표는 프로젝트가 밝힌 구분을 정리한 것입니다:

항목 AutoML Praxist
바꾸는 대상 미리 정의된 탐색 공간 안의 파라미터 방법, 아키텍처, 전략 자체
다음 시도를 정하는 근거 탐색 알고리즘의 내부 상태 평가에서 나온 증거와 기획 패널의 종합
국소 최적 탈출 장치 탐색 공간 설계에 의존 Deep Innovation GateQuality-Diversity 할당
남는 산출물 최적 파라미터 조합 최종 결과물과 그에 이르는 증거 계보

증거를 남기는 자율 연구 시스템이라는 방향은 Praxist만의 것은 아닙니다. Google이 공개한 ScientistOne (:pytorch::kr: ScientistOne: Chain-of-Evidence로 모든 주장을 증거에 잇는 자율 연구 시스템에 대한 Google의 연구)도 모든 주장을 증거에 잇는 구조를 제안했습니다. Praxist가 다른 점은 그 증거를 세대를 넘어 계승하는 대상으로 다룬다는 것입니다. 검증된 메커니즘, 아직 해소되지 않은 주장, 쓸 만한 제약이 다음 세대의 출발 상태로 넘어갑니다.

Praxist의 세대 기반 연구 루프

Praxist가 한 세대에서 하는 일은 크게 세 덩어리로 나뉩니다. 아래 그림은 저장소가 공개한 전체 구조도입니다:

왼쪽 위의 국소 실험 구간에서는 k개의 병렬 세션이 서로 직접 메시지를 주고받지 않은 채 각자 후보를 만듭니다. 그 결과물은 과제가 소유한 평가자를 거쳐 재현 가능한 단위로 바뀌고, 평가 결과는 긍정, 부정, 진단, 불확실 네 가지로 분류된 발견(Findings)이 됩니다. 오른쪽 아래의 전역 종합 구간에서는 책임 연구자(PI, Principal Investigator) 겸 의장 역할이 그 발견을 해석하고 우선순위를 매겨 자원을 배분하며, 프론티어의 계승 상태를 갱신하고 다음 의제를 계속, 검증, 중단, 탐색 중에서 정합니다. 이 전체가 하나의 유향 비순환 그래프로 기록되어, 결과마다 그것을 만든 근거를 되짚을 수 있습니다.

Praxist가 제공하는 기능은 다음과 같습니다:

  • 병렬 연구 피어: 경쟁하는 가설과 구현을 동시에 탐색합니다.
  • 세대 간 종합: 쓸 만한 증거와 전략을 이후 세대로 넘깁니다.
  • 지속되는 증거 레인: 후보를 인큐베이터, 프론티어, Gems 상태로 보존합니다.
  • 다중 지표 평가: 과제가 정의한 증거를 순위화하며 파레토 최적 절충도 함께 다룹니다.
  • 중앙 자원 스케줄링: 관측된 자원 압력에 맞춰 실험 승인을 조절합니다.
  • 재개, 재현, 모니터링: 오래 도는 연구를 들여다보고 복구할 수 있게 유지합니다.

여기서 중요한 경계가 하나 있습니다. Praxist는 과제에 특화된 과학적 가정을 담지 않습니다. 연구 목표, 실행 코드, 평가자, 지표, 베이스라인, 프롬프트, 도메인 제약은 전부 과제 프로젝트가 소유하고, Praxist는 연구 오케스트레이션과 수명주기, 증거 프로토콜, 재현, 스케줄링, 확장 인터페이스만 가져갑니다. 무엇을 시험해야 하고 무엇이 유효한 증거인지는 끝까지 과제 쪽이 단일 진실 공급원(Single Source of Truth)으로 남습니다.

Praxist 저자들이 논문에서 보고한 MLE-bench 결과

Sapient Intelligence 연구진은 논문에서 표준화된 75개 과제의 MLE-bench(Machine Learning Engineering benchmark) 스위트로 측정한 결과를 공개했습니다. 최종 공식 채점 기준으로 Praxist가 메달 60개(80.0%)를 얻었고 그중 49개가 금메달이며, 비교 대상인 Claude Opus 4.8 기반 Claude Code 베이스라인은 메달 55개(73.3%)에 금메달 34개였습니다. 기록된 모델 지출은 각각 미화 3,054달러와 38,370달러로, 논문은 이를 약 12분의 1 수준이라고 적고 있습니다. 이 수치는 개발사가 자체적으로 측정해 공개한 값이므로, 도입을 검토한다면 자신의 과제에서 다시 재어 보는 편이 안전합니다.

논문은 벤치마크 외에 정량 트레이딩, LiDAR 관성 시각 동시적 위치추정 및 지도작성(SLAM), 토카막 자기장 제어, 로켓 착륙 네 건의 사례 연구도 함께 싣고 있습니다. 각 사례에서 해당 과제의 기존 베이스라인 대비 정확도, 생존율, 자원 비용 중 하나가 개선되었고 그 발견 경로가 기록으로 남았다는 것이 저자들의 보고입니다.

저장소는 성과를 보증하지 않는다는 점도 함께 밝히고 있습니다. 목표에 도달하지 못한 실행에서도 부정 결과 증거 묶음과 감사 보고서, 연구를 중단할지 방향을 틀지에 대한 권고가 남습니다. 결과의 신뢰성을 위해서는 사전 등록, 동일 평가자를 통한 일관된 측정, 종단 간 출처 추적 세 가지 장치를 두고 있습니다.

Praxist는 누구에게 맞는가

Praxist가 값어치를 내는 조건을 프로젝트가 직접 세 가지로 정리해 두었습니다. 목표가 측정 가능해야 하고, 프로젝트가 Praxist 없이도 이미 돌아가야 하며, 앞으로 나아갈 최선의 경로가 아직 알려지지 않은 상태여야 합니다. 전제가 빠지면 Praxist는 멈춰 서서 무엇이 필요한지 알려 주며, 지정되지 않은 데이터셋을 조용히 내려받거나 시뮬레이터를 지어내거나 베이스라인 성능을 날조하지 않습니다.

이미 사람이 손으로 반복 실험을 돌리고 있고 평가 경로가 자동화되어 있는 연구팀에게 Praxist가 가장 잘 맞습니다. 반대로 베이스라인도 평가자도 아직 없는 초기 탐색 단계이거나, 지표로 우열을 가릴 수 없는 작업을 하고 있다면 Praxist는 아직 적절한 선택지가 아닙니다. 도입 전에 확인할 항목이 하나 더 있습니다. 릴리즈마다 지속적으로 검증되는 환경은 CPython 3.11과 3.12의 리눅스이고, macOS와 그 밖의 CPython 3.11 이상 환경은 호환 목표로 분류되어 있어 praxist doctor를 먼저 돌려 보라고 안내합니다.

Praxist 설치와 실행

런타임 연동과 최초 설정을 한 번에 끝내는 설치 명령은 다음과 같습니다. 저장소 이름은 대문자 PRAXIST이지만 패키지와 명령어 이름은 소문자 praxist이므로, 아래 명령에서는 소문자 표기를 그대로 씁니다:

python3 -m pip install --index-url https://pypi.org/simple "praxist[agents,codex]" && praxist setup --interactive --install-skills codex

설치 마법사는 Fair Source 라이선스와 사용자 약관, 개인정보, 런타임 프로필, 마스킹된 자격증명, Codex 스킬, 쓰기 가능한 예제, 준비 상태 점검을 다룹니다. 연구 프로젝트를 고르거나 실행을 시작하는 단계는 여기에 포함되지 않습니다. 이미 실행 가능한 연구 프로젝트의 루트에서 Codex를 열고 $praxist-takeover를 호출하면, 그 스킬이 준비 상태를 검사하고 과제 하네스를 만들거나 고친 뒤 평가자와 증거 계약을 검증하고 필요한 게이트를 통과한 다음 실행을 띄웁니다.

실행 중인 연구를 다루는 명령은 다음과 같습니다:

praxist status --json
praxist --monitor --latest
praxist stop <run_id>
praxist resume <run_dir>

여기서 Ctrl-C는 모니터만 닫으며 연구 실행 자체를 멈추지 않습니다. 처음 감을 잡을 때는 예제를 설치해 보는 편이 빠릅니다. praxist examples list로 목록을 보고 praxist examples install rocket_booster_recovery로 받으면 됩니다. 같은 연구 문제를 Python과 JAX로 구현한 것과 네이티브 Rust로 구현한 두 가지 예제가 함께 제공되어, 과제 하네스를 언어별로 어떻게 세우는지 비교해 볼 수 있습니다.

저장소의 skills/ 디렉토리에는 위에서 쓴 praxist-takeover를 포함해 스킬 열 가지가 들어 있습니다. 온보딩, 과제 초기화, 실행 제어, 진단, 문헌 조사, 런타임 설치, 터미널 지표 그래프가 각각 별도 스킬로 나뉘어 있어, 실행을 띄우지 않고 하네스만 점검하거나 진단 보고서만 받아 보는 식으로 나눠 쓸 수 있습니다.

Praxist의 라이선스

Praxist는 Fair Source License Agreement 1.0으로 공개되어 있습니다. 소스 코드 전체가 공개되어 열람과 내려받기, 수정이 가능한 소스 공개(source-available) 라이선스이며, 라이선스 조건 아래에서 내부 업무 목적으로 사용하고 조직 안에 배포할 수 있습니다. 다만 OSI(Open Source Initiative) 정의의 오픈소스 라이선스는 아니므로 도입 전에 조문을 직접 확인해야 합니다.

관계사를 포함한 연간 총매출이 미화 100만 달러 미만인 조직은 상업적으로 무상 사용할 수 있고, 그 기준에 도달하면 라이선서인 Sapient Intelligence Pte Ltd에 연락해 별도의 상용 라이선스를 협의해야 합니다. 고등교육기관과 공공 연구기관, 비영리 학술 연구 조직의 교육 및 학술 연구에는 이 매출 기준이 적용되지 않습니다.

생성 결과물에 대한 조건도 따로 있으므로, 결과를 외부에 공개할 계획이라면 미리 확인해야 합니다. 내부 사용에는 출처 표기 의무가 없지만, 결과물을 외부에 공개하거나 제3자가 이용할 수 있게 하는 경우에는 "Praxist by Sapient Intelligence" 라는 제품명 표기를 유지해야 합니다.

:books: Praxist 공식 문서 사이트

:scroll: Praxist 논문, From Experimental Artifacts to Solution Lineages

:github: Praxist 프로젝트 GitHub 저장소

더 읽어보기




이 글은 GPT 모델로 정리한 초안을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 댓글로 알려주시기를 부탁드립니다. :hugs:

이 도구를 직접 설치해 사용해보셨다면, :pytorch:파이토치 한국 사용자 모임:south_korea: 회원들을 위해 경험이나 팁을 댓글로 남겨주세요! :folded_hands: