Ouroboros: 계보 로그로 방법론을 다시 작성하는 AI 연구 루프
hackernews
|
|
📦 오픈소스
#ai 딜
#ai 연구
#anthropic
#claude
#gpt-5
#openai
#ouroboros
#로컬 ai
#애플 실리콘
#오픈소스 ai
원문 출처: hackernews · Genesis Park에서 요약 및 분석
요약
Ouroboros는 스스로의 연구 방법론을 재작성하고 계보를 기록하는 순환형 자기 개선 시스템으로, 단순한 하이퍼파라미터 튜너가 아닌 가설 추적 및 변이 감지 기능을 포함합니다. Apple 실리콘, NVIDIA 하드웨어, 클라우드 등 다양한 환경을 지원하며 OpenAI나 Anthropic API를 연동해 자율적으로 가설을 생성하거나 로컬에서도 실행 가능합니다. `genome.md`를 세대별로 진화시키며 실험 결과를 기록하고, 메트릭 정의가 고정된 상태에서 연구 프로세스 자체를 최적화하는 것이 특징입니다.
본문
| Platform | Backend | Experiments/hr* | Free? | Setup | |---|---|---|---|---| | Apple M1 8GB | apple_mlx or apple_mps | ~5-7 | yes | python setup.py | | Apple M1/M2 16GB+ | apple_mlx | ~8-10 | yes | python setup.py | | Apple M2/M3/M4 32GB+ | apple_mlx | ~12-15 | yes | python setup.py | | Windows RTX 3060 12GB+ | nvidia_windows | ~8-11 | yes | python setup.py | | Windows RTX 4090 | nvidia_windows | ~16-22 | yes | python setup.py | | Linux NVIDIA H100 | nvidia_linux | ~10-14 | no | python setup.py | | Google Colab (T4) | cloud | ~7-9 | free | see cloud setup | | Kaggle (P100) | cloud | ~8-11 | free | see cloud setup | | CPU only (any) | cpu | ~1 | yes | python setup.py | *Observed throughput depends on experiment budget, tokenizer cache state, and model constants. No configuration required. Run python setup.py and the runtime detects your hardware profile automatically. Ouroboros is a recursive self-improving research system. It runs fixed-budget experiments on a language-model training loop, logs predictions versus outcomes, and rewrites its own research strategy (genome.md ) across generations. This repository is the full outer-loop engine for methodology evolution: hypothesis tracking, dead-end memory, anomaly discovery, cumulative knowledge graph updates, divergence scoring, and lineage archival. This is not a static hyperparameter tuner. The core artifact is the evolving research methodology and its lineage history, not a single best model checkpoint. The inner-loop concept (edit training configuration, run, measure, keep/revert) is inherited in spirit from karpathy/autoresearch. Ouroboros extends beyond that with: - generation-level methodology rewrites ( genome.md evolution) - hypothesis calibration tracking (predicted delta vs actual delta) - dead-end registry and anomaly escalation - divergence detection (legibility/coherence/ambition) - optional population tournaments across competing lineages ouroboros/ setup.py ouroboros.py llm_agent.py train.py train_impl.py prepare.py genome.md hypothesis.py divergence.py lineage_viewer.py backends/ prepare/ lineage/ population/ dead_ends.json knowledge_graph.json meta_log.jsonl Ouroboros supports two providers for autonomous hypothesis generation and genome rewriting: - Anthropic Messages API - OpenAI Responses API When no provider is configured, the system runs fully local using deterministic rule-based logic. cp .env.example .env Fill at least one key: OUROBOROS_LLM_PROVIDER=auto ANTHROPIC_API_KEY=... # or OPENAI_API_KEY=... Optional judge routing for divergence scoring: OUROBOROS_DIVERGENCE_PROVIDER=auto OUROBOROS_DIVERGENCE_MODEL= Provider selection: auto : prefers Anthropic when both keys are present, then OpenAI.anthropic : Anthropic only.openai : OpenAI only.none : fully local mode. Model deprecation guardrails: llm_agent.py blocks known retired/deprecated model IDs at startup.- Current defaults are claude-sonnet-4-6 andgpt-5.4 . - If you override model IDs, use currently supported model names from provider docs. # one-time setup python setup.py # single-lineage run python ouroboros.py --lineages 1 --generations 3 --experiments-per-gen 5 # population mode python ouroboros.py --lineages 3 --generations 9 --experiments-per-gen 5 --simulate # inspect evolution narrative python lineage_viewer.py Equivalent uv flow: uv sync uv run prepare.py uv run ouroboros.py --lineages 1 --generations 3 --experiments-per-gen 5 uv run lineage_viewer.py lineage_viewer.py renders generation-by-generation methodology evolution into a readable narrative using: - generation stats - divergence scores - generation summaries - recent genome history snapshots Each generation writes: lineage/gen_N/genome.md lineage/gen_N/genome_diff.patch lineage/gen_N/stats.json lineage/gen_N/anomalies.json lineage/gen_N/divergence.json lineage/gen_N/generation_summary.md lineage/gen_N/experiments/exp_XXX/{hypothesis.json,train_diff.patch,result.json,reflection.json} Global state: knowledge_graph.json dead_ends.json meta_log.jsonl - Metric definition and identity headers are locked by orchestrator validation. - Genome rewrites are rejected if they remove required sections or include metric-gaming instructions. - Provider failures degrade safely to local logic unless --llm-strict is enabled. python scripts/static_launch_audit.py python scripts/verify_platforms.py --fast ./scripts/release_check.sh Release checks force local mode (OUROBOROS_LLM_PROVIDER=none , OUROBOROS_DIVERGENCE_PROVIDER=none ) so CI and verification do not require API keys. This repo implements L5: the system improves how it researches while keeping metric and identity constraints fixed. L6 would be a system that changes what counts as improvement. That is intentionally not implemented here. Apache-2.0. See LICENSE and NOTICE .
Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.
공유