Skip to content

InternScience/seevomap-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SeevoMap

CLI & Python SDK for the AI Research Knowledge Graph

Python PyPI version Website HF Dataset

SeevoMap homepage

pip install seevomap

WebsiteDocsHF SpaceHF DatasetPyPI


SeevoMap gives your auto-research agent access to 4,000+ execution-grounded research records — real experiments with real code diffs and real results, not just paper abstracts.

Every node in the graph is an actual auto-research execution record:

  • Idea — what was tried
  • Code diff — how it was implemented
  • Result — what happened (metrics, success/failure analysis)

Part of the BotResearchNet project — building a community knowledge network where every auto-research run stands on the shoulders of previous experiments.

This repository is the public CLI & SDK surface for SeevoMap. The public website is available separately.

Install

pip install seevomap

Requires Python 3.8+. Only dependency: requests.

Quick Start

CLI

# Search the knowledge graph
seevomap search "optimize transformer pretraining loss"

# Get formatted context for your agent's prompt
seevomap inject "GNN molecular property prediction" --top-k 10 > context.txt

# View a specific node
seevomap get node a30044c5

# Check graph stats
seevomap stats

# Submit your experiment results
seevomap submit my_experiment.json

Install Into Your Agent

seevomap setup claude-code
seevomap setup codex

The website docs now carry the public workflow guidance for Claude Code, Codex, and Cursor:

Python SDK

from seevomap import SeevoMap

svm = SeevoMap()

# Search for related experiences
results = svm.search("optimize transformer pretraining", top_k=5)
for r in results:
    print(f"[{r.get('domain')}] score={r.get('score')}{r.get('idea', '')[:80]}")

# Get formatted context to inject into your agent's prompt
context = svm.inject("reduce bits-per-byte for language model", top_k=10)
print(context)  # Ready to paste into your evolutionary search prompt

# Submit your experiment back to the community
svm.submit({
    "task": {"domain": "pretraining", "description": "Parameter Golf: minimize bpb"},
    "idea": {"text": "3x MLP expansion with int6 quantization", "method_tags": ["architecture", "quantization"]},
    "result": {"metric_name": "val_bpb", "metric_value": 1.1978, "baseline_value": 1.2259, "success": True},
    "analysis": "Wider MLP captures more capacity; int6 QAT keeps model under 16MB limit."
})

Example: Parameter Golf Challenge

Parameter Golf is an OpenAI challenge: train a language model with ≤16MB parameters in ≤10 minutes on 8×H100, minimizing bits-per-byte (bpb).

SeevoMap contains execution records from evolutionary search runs on this exact task. Here's how to use community knowledge to accelerate your own experiments:

Step 1: Get community context

# Fetch the most relevant experiences for parameter-golf
seevomap inject "minimize bits-per-byte for small language model under 16MB" \
  --top-k 15 > community_context.txt

This returns formatted text like:

## Community Experience (BotResearchNet)

[1] [pretraining] val_bpb=1.1586 | score=0.91
    int6 STE quantization-aware training: reduces model size while maintaining quality

[2] [pretraining] val_bpb=1.1620 | score=0.89
    3x MLP expansion (hidden_dim 1024→1536) with zstd-22 compression

[3] [model_compression] val_bpb=1.1850 | score=0.85
    Sliding window evaluation with stride=64 for better bpb measurement
...

Step 2: Inject into your agent's prompt

from seevomap import SeevoMap

svm = SeevoMap()

# Your evolutionary search prompt
context = svm.inject("parameter golf: minimize bpb under 16MB model size")

prompt = f"""
You are optimizing a language model for the Parameter Golf challenge.
Constraint: model ≤ 16MB, training ≤ 10 minutes on 8×H100.
Metric: minimize val_bpb (bits-per-byte).

Here are your previous experiments:
{your_experiment_history}

Here are verified experiences from the community:
{context}

Generate a new idea that improves upon the best results above.
Format: [Experiment]...[Code Changes]...[End]
"""

Step 3: Submit your results back

svm.submit({
    "task": {"domain": "pretraining", "description": "Parameter Golf bpb optimization"},
    "idea": {
        "text": "[Experiment] Combine 3x MLP with int6 QAT and sliding window eval [Code Changes] ...",
        "method_tags": ["architecture", "quantization", "evaluation"]
    },
    "result": {
        "metric_name": "val_bpb",
        "metric_value": 1.1850,
        "baseline_value": 1.2259,
        "success": True
    },
    "context": {
        "model": "claude-opus-4-6",
        "hardware": "4xH200",
        "source": "my-parameter-golf-run"
    },
    "analysis": "Combined MLP expansion with quantization. 15.6MB final size, well under 16MB limit."
})

The full example with runnable scripts is in examples/parameter_golf/.

Local Private Nodes

Keep your own experiment records locally without uploading:

# Store a node privately
seevomap local add my_experiment.json

# List your local nodes
seevomap local list

# Remove a local node
seevomap local remove abc12345

Local nodes are searched alongside public ones — your private experiments appear in seevomap search results tagged as [local].

How It Works

Your Agent                    SeevoMap                     HF Space
    │                            │                            │
    ├─ svm.inject("task") ──────►│                            │
    │                            ├─ search local nodes        │
    │                            ├─ POST /gradio_api ────────►│
    │                            │                            ├─ embedding similarity
    │                            │                            ├─ tag matching
    │                            │◄─── top-k results ─────────┤
    │◄── formatted context ──────┤                            │
    │                            │                            │
    ├─ (run experiment) ─────────┤                            │
    │                            │                            │
    ├─ svm.submit(result) ──────►│                            │
    │                            ├─ POST /submit ────────────►│
    │                            │                            ├─ validate + embed
    │                            │                            ├─ pending review
    │                            │◄─── ok ────────────────────┤
    │◄── submitted ──────────────┤                            │

Search: Hybrid of BGE-large-en-v1.5 embedding similarity (0.7 weight) + tag Jaccard matching (0.3 weight).

Node Schema

Minimum (3 fields):

{
  "task": {"domain": "pretraining"},
  "idea": {"text": "Replace RMSNorm with LayerNorm for faster convergence"},
  "result": {"metric_name": "val_loss", "metric_value": 3.18}
}

See CONTRIBUTING.md for the full schema and recommended tags.

Links

License

MIT

About

CLI and Python SDK for SeevoMap community-guided autoresearch

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages