Przejdź do treści
Biblioteka skilli
AI i agenci · Automatyzacja

orbit

/orbit

Uruchamia eksperymenty (trening, ewaluacja, sweepy, zadania GPU) w izolowanych kontenerach Docker przez Orbit oraz odczytuje ich logi, metryki i wyniki, także przy porównywaniu przebiegów.

Repozytorium
orbit ↗
Licencja
MIT
Ostatnia zmiana repozytorium
21.10.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 21.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Uruchamia eksperymenty (trening, ewaluacja, sweepy, zadania GPU) w izolowanych kontenerach Docker przez Orbit oraz odczytuje ich logi, metryki i wyniki, także przy porównywaniu przebiegów.

Oryginalny opis (EN)

Run experiments (training, evaluation, sweeps, any GPU job) in isolated Docker containers with Orbit, and read back their logs, metrics and outputs. Use whenever you would otherwise run a long or GPU job directly on the host, launch several seeds or hyperparameter settings, or need to check, compare or explain earlier experiment runs.

Jak działa

  1. CLI availability
  2. 1. Estimate resources before submitting
  3. 2. Submit
  4. 3. Inside the container
  5. 4. Follow, wait and inspect
  6. 5. Run an agent inside a container
  7. 6. Benchmarks
  8. 7. Record conclusions
  9. Rules
Sekcje z nagłówków SKILL.md, w oryginale · 156 linii, 1 520 słów
Podgląd SKILL.md
---
name: orbit
description: Run experiments (training, evaluation, sweeps, any GPU job) in isolated Docker containers with Orbit, and read back their logs, metrics and outputs. Use whenever you would otherwise run a long or GPU job directly on the host, launch several seeds or hyperparameter settings, or need to check, compare or explain earlier experiment runs.
---

# Orbit: run and record experiments

Orbit runs your command in a Docker container on a snapshot of the current git repository, under a
GPU/CPU/memory lease, and keeps logs, metrics, outputs, the code diff and a link to this session.
You keep planning, editing and analysing; Orbit only executes and records. The human reviews the
runs in the Web UI (`orbit web`).

Use `orbit` instead of running experiments directly on the host, `nohup`, `tmux` or `docker run`.
Short checks (imports, a unit test, `--help`) can still run on the host.

## CLI availability

Use `orbit` when it is on PATH. Otherwise replace `orbit` in the commands below with
`npx -y @zjunlp/orbit` (requires Node.js 24.18+ in the 24.x line). No clone, build or global install
is needed. Run `doctor` before the first experiment and address any failed prerequisites.

## 1. Estimate resources before submitting

Pick the smallest request that fits; runs that cannot get resources **wait in the queue**, they do not fail.

| Flag | How to estimate |
| --- | --- |
| `--gpus N` | 0 for CPU-only work. 1 unless the code actually uses multiple GPUs (DDP, `device_map`, tensor parallel). |
| `--gpu-mem GB` | Minimum memory per GPU. Rough guide: fp16/bf16 inference ≈ 2 × params(B) GB + activations; full fine-tuning with Adam ≈ 16–20 × params(B) GB unless sharded/LoRA. |
| `--cpus N` | Data loader workers + 1–2. Default 4. |
| `--mem GB` | Host RAM: dataset held in memory + model loading peak (≈ weights size) + headroom. Default 16. |
| `--timeout MIN` | Set one for anything that could hang. |

Run `orbit resources` first to see free GPUs, their memory, active leases and the queue, on this
machine and on any worker nodes. State the estimate and its reasoning briefly to the user.
Every finished run records its measured peak memory, CPU and GPU memory (`usage` in `orbit show`):
size the next run of the same job from it instead of guessing again. A run killed for memory says
`out of memory` — raise `--mem` rather than changing the code.

With worker nodes (`orbit node ls`), Orbit places each run on any node that fits: do not pick a node
yourself unless the user asks (`--node <name>`). Runs that mount a host path (`-m`) stay on this
machine; use `-d <dataset>` for data that should be usable on every node. Logs, metrics and
`orbit show` work the same for remote runs; `orbit show` names the node.

## 2. Submit

```bash
# one run; the repository at the current directory is snapshotted into /workspace
orbit run --image pytorch/pytorch:2.5.1-cuda12.4-cudnn9-runtime --gpus 1 --mem 32 \
  -n baseline -- python train.py --lr 3e-4

# a sweep: one run per combination; {key} is substituted in the command
orbit sweep --image python:3.12-slim --gpus 1 -g lr-sweep \
  -p lr=1e-4,3e-4 -p seed=1,2,3 -- python train.py --lr {lr} --seed {seed}
```

- Put all options **before** `--`; everything after `--` is the command inside the container.
- Add `--json` (before `--`) to get machine-readable output with run ids.
- `--dockerfile path/Dockerfile` builds a project image instead of `--image` (cached by content).
- Uncommitted changes and untracked files are included in the snapshot, so you do not need to commit first. Large data and weights are not copied: prefer a registered dataset, `-d <name>` (mounted read-only at `/data/<name>`; see `orbit data ls`), or mount a host path with `-m /host/path:/data` (read-only; add `:rw` only if needed).
- `-e KEY=VALUE` for non-secret environment variables, `--pass-env VAR` for secrets; `--no-network` for offline runs; `-t key=value` for tags.
- Every `run`/`sweep` is checked first (data, output disk, image, where it would start); warnings and
  failures are printed. `--check` only prints the checks. For a long or expensive run, add
  `--smoke '<short command>'` (e.g. `--smoke 'python train.py --steps 20'`): it runs first with the
  same settings, and the real run is submitted only if it succeeds.
- Use `-g <group>` for runs that belong together (sweeps, ablations) so they can be compared.
- Name every run and job for the human who reviews them: `-n` short and specific (`baseline`,
  `lr 3e-4 warmup`, `noskills xhigh random8`), groups as the question they answer (`lr-sweep`). No
  timestamps, ids or full paths in names: Orbit shows times and ids itself. Without `-n`, Orbit derives
  a name from the command (`train.py lr=3e-4`), which says what ran but not why.

## 3. Inside the container

| Path / variable | Use |
| --- | --- |
| `/workspace` | Code snapshot (writable copy; the host repo is not affected). Working directory. |
| `$ORBIT_METRICS` | Append one JSON object per line, e.g. `{"step": 100, "train/loss": 0.31, "eval/acc": 0.82}`. Use `step`; group keys with `/`. These become the curves in the Web UI. |
| `$ORBIT_OUTPUT` | Write results, predictions, plots and small checkpoints here. Kept after the run. |
| `$ORBIT_RUN_ID` | The run id. |

Print progress to stdout/stderr with `flush=True`; logs are kept in full, including for failed runs.
When the code you are writing has no metrics logging, add a few lines that write to `$ORBIT_METRICS`
if the variable is set.

## 4. Follow, wait and inspect

```bash
orbit ps                    # active runs (queued with the reason, running)
orbit ps -a -g lr-sweep     # everything in a group
orbit ps -f rcb             # everything in folder rcb (and its subfolders)
orbit mv <id...> rcb/noskills   # file runs or bench jobs in a folder (files stay where they are)
orbit wait <id>... | -g lr-sweep   # blocks; exit code 1 if any run did not succeed
orbit logs <id> --tail 4000 # end of the log; -f to follow
orbit show <id>             # state, exit code, resources and measured usage, code snapshot, metrics
orbit cancel <id>...
```

Prefer `orbit wait` over polling. For long runs, you can continue other work and check back.
When a run fails, read `orbit logs <id> --tail 8000` before changing anything; the evidence is kept.

## 5. Run an agent inside a container

When the experiment itself needs Codex or Claude Code (agent benchmarks, agent-driven data work), use a
profile the human has set up; never pass keys yourself.

```bash
orbit auth list                              # names, agent, kind; secrets are never shown
orbit auth test <profile>                    # small real run: checks that the agent answers
orbit run --image python:3.12-slim --auth <profile> -n agent-try -- \
  codex exec --skip-git-repo-check --dangerously-bypass-approvals-and-sandbox "task…"
orbit run --image python:3.12-slim --auth <profile> -- claude -p --dangerously-skip-permissions "task…"
```

The host's CLI is mounted read-only and put on `PATH`; the container is the sandbox. If no profile
fits, ask the human to add one (`orbit auth add`). Completion and failure notifications are sent to
the targets in `orbit notify list`; a group sends one summary when its last run ends.

## 6. Benchmarks

To evaluate a method on a registered benchmark, use `orbit bench`, not hand-written loops of runs:

```bash
orbit bench ls && orbit bench tasks <benchmark>          # unsupported tasks show the reason
orbit bench run <benchmark> -t <task> -m oracle -m empty -m mine=codex,auth=<profile>,model=<m> -n try
orbit bench show <job>                                   # per-method means, matrix, issues
orbit bench compare <job> <job>...                       # all-valid and paired means
orbit bench usage <job>...                               # measured peaks per task, suggestions
orbit bench rescore <job> [-t <task>] [-m <method>]      # verify + score again, no Agent rerun
```

Each trial is a solve run plus a separate verify run. Only `valid` trials count; read the issues of
`invalid` ones (environment or scorer failures, unusable model) instead of treating them as zeros.
Run `oracle` and `empty` first on a new benchmark or task set: oracle should score full, empty zero.
After a scorer or grader fix, `orbit bench rescore` re-verifies the saved solve outputs; the earlier
scores stay in each trial's history, the summary uses the latest.

To add a benchmark Orbit does not know (write an adapter, a resources file) or to size its tasks
from measured runs (`orbit bench usage`), use the `orbit-bench` skill.

## 7. Record conclusions

After analysing a run or a group, attach a short note so the human sees it next to the results:

```bash
orbit note <id> "lr=3e-4 converges ~2x faster than 1e-4; seed std 0.01. Next: try warmup."
```

Tell the user the run ids and `orbit web <id>` for review.

Deleting runs (`orbit rm <id>... | -g <group>`) or a bench job (`orbit bench rm-job <job>`) removes
their logs, outputs and sessions for good. Do it only when the user asks for those runs to be
deleted; the command asks the user to type the id or group, and `--yes` skips that only when the
user has explicitly confirmed this deletion.

## Rules

- Do not start experiment containers with `docker` directly, and do not stop containers or processes that Orbit or other users own; use `orbit cancel`.
- Do not request all GPUs "just in case". Do not work around the queue.
- Never put secrets in commands, tags or notes; pass them by name with `--pass-env VAR` (read from the daemon environment, never stored); `-e` values are stored with the run.

Wersje

RepozytoriumWynikLicencja
Ta strona · zjunlp/orbit100MIT
constellation-works/orbit90MIT

Migawka bazy z 28.10.2026 · wersja paczki 72e4190a7ae3 (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100run-experiment
    Wdraża i uruchamia eksperymenty ML na lokalnych lub zdalnych serwerach GPU i startuje zadania treningowe.
  • 100orbit-bench
    Integruje benchmark z Orbit i dobiera zasoby zadań: pisze adapter dla nieznanego benchmarku, tworzy resources.json (GPU, pamięć, CPU, timeout) i waliduje go pod orbit bench.
  • 100orbit-orchestrate
    Przygotowuje i nadzoruje backlog Orbit: deduplikuje zadania, przydziela ekipy, uruchamia gotowe prace, diagnozuje zawieszone przebiegi jrun i kieruje wyniki sweepów CI/QA do zadań naprawczych.
  • 100run-experiment
    Uruchamia eksperymenty ML na serwerze lokalnym, zdalnym, Vast.ai lub Modal, wdraża kod i startuje zadania treningowe.
  • 100docker
    Uruchamia kod badawczy w izolowanych kontenerach Docker do bezpiecznej replikacji, eksperymentów i benchmarków.
  • 100run-experiment
    Wdraża i uruchamia eksperymenty uczenia maszynowego na lokalnych lub zdalnych serwerach GPU, w tym start treningu.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.