본문으로 건너뛰기
cccskills
무료GitHub에 공개

babysit-zephyr

Launch and continuously monitor a specified Zephyr pipeline on Iris when asked. It checks coordinator and worker health, tracks stage progress, identifies stalled or repeated failures, and requires explicit approval before stopping or restarting jobs.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

Launch or continuously monitor a specified Zephyr pipeline on Iris only when asked to babysit it; restart only after explicit approval.

설치 방법 보기

이럴 때 유용합니다

  • Launch a specified Zephyr pipeline and check startup
  • Monitor stage progress and worker health over time
  • Investigate stalled stages or repeated worker failures
  • Restart a failed job after explicit approval

포함된 파일(1)

  • SKILL.md4.3 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Babysit a Zephyr job

Zephyr Job Structure

A job has a one-task *-coord coordinator and a *-workers pool. Sequential pipelines produce different p<N> child names; retries produce different hashes with the same p0. Child names follow <hash>-p<pipeline>-a<attempt>-{coord,workers}. Old coordinators may linger.

Iris Config

Resolve the requested cluster to its file under lib/iris/config/; substitute that file for <CONFIG> below. See lib/zephyr/OPS.md for the dashboard and coordinator query reference.

Starting a Job

Get the run command from the user:

uv run iris --config <CONFIG> job run --region <REGION> --no-wait -- python <SCRIPT>

The entrypoint container defaults to 1GB memory. For long-running pipelines that accumulate state (GCS clients, logging), increase with --memory:

uv run iris --config <CONFIG> job run --region <REGION> --memory 5GB --no-wait -- python <SCRIPT>

The command prints a job ID on success. Note it for monitoring.

Stopping a Job

Always ask the user before stopping. Stopping kills all child jobs (coordinators, workers).

uv run iris --config <CONFIG> job cancel <JOB_ID>

Monitoring

Health Checks

Check child job states via the Iris CLI (returns per-task state and resourceUsage):

# diskMb is updated every ~60s. On K8s it is always 0 (workdir lives inside the pod).
uv run iris --config <CONFIG> rpc controller list-tasks --job-id <JOB_ID>

A healthy zephyr job has:

  • Coordinator: RUNNING, 1 task running
  • Workers: RUNNING, tasks ramping up toward target count

Stage Progress

The coordinator logs stage, completed, in-flight, queued, and worker counts:

uv run iris --config <CONFIG> rpc controller get-task-logs \
  --id <COORD_JOB_ID> --max-total-lines 5000 --attempt-id -1 --tail

Large pools can flood the log with pull_task, Started operation, report_result, registered, and tasks completed; filter those entries.

Coordinator Thread Dump

When logs are flooded, a thread dump tells you if the coordinator is alive and working:

uv run iris --config <CONFIG> rpc controller profile-task \
  --json '{"target":"<COORD_JOB_ID>/0","durationSeconds":1,"profileType":{"threads":{}}}'

Key patterns:

  • actor-method_0 in _wait_for_stage → pipeline active, waiting for current stage to complete
  • _coordinator_loop thread present → heartbeat/dispatch loop running
  • All threads in _worker (thread pool idle) → pipeline exited, coordinator is a zombie

Monitoring Lifecycle

After submitting, monitor in escalating stages:

  1. Smoke check (first 2-5 minutes): Confirm coordinator and workers child jobs appear and reach RUNNING. Check coordinator logs for early errors. Failure here is likely a code bug, config issue, or bundle fetch timeout.

  2. Steady-state monitoring: Check stage progress via coordinator logs. Confirm (a) shards complete within the current stage, and (b) stages advance. Calibrate check-in interval so you see at least one stage transition between checks — every few minutes for many short stages, every 15-30 minutes for few long stages.

  3. Failure detection: If workers get KILLED or the coordinator goes zombie, the StepRunner may retry automatically (new child jobs with a different hash). Check the latest attempt. Stale coordinators from previous attempts may accumulate (#3705). If retries keep failing, escalate to debug.

"Terminated by user" is misleading: This does not necessarily mean a human killed the job. The system uses this message for various internal termination reasons. Always check the actual logs at each level (parent job, coordinator, workers) to find the real cause.

Restarting After Failure

  1. Ask the user if it's okay to stop and restart.
  2. Stop the job.
  3. Get the run command (or reuse the previous one).
  4. Submit and resume monitoring.

When to Escalate

Escalate to debug when:

  • A stage is stuck (no shard progress for an extended period)
  • Stragglers are holding up a stage (few in-flight, 0 queued, most workers idle)
  • Workers are failing repeatedly with the same error
  • Controller issues (e.g., RPCs timing out)

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Compare Zephyr changes using the same prepared dataset and matching execution settings. Analyze Finelog metrics for each processing stage to distinguish CPU efficiency, elapsed time, and peak memory changes, then report improvements, regressions, or tradeoffs.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Compare Zephyr performance before and after a PR
  • Assess speed gains against additional CPU usage
  • Check peak memory and out-of-memory regressions
marin-community/marin4천2026년 10월 22일 업데이트

Register Hugging Face datasets for Marin by inspecting their structure without downloading the full dataset. Identify text fields, configurations, and data splits, then add a dataset module and validate the mapping with a sample.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Registering a Hugging Face dataset for Marin
  • Inspecting text fields without a full dataset download
  • Checking configurations and data splits
marin-community/marin4천2026년 10월 22일 업데이트

add-grant

무료

Turn a specified GCP access request into a reviewable Pulumi change and pull request. Select the narrowest suitable role and encrypt personal email identities, covering resource permissions and Cloud Run viewer access through IAP, an access gateway.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Prepare a request for GCS bucket read access
  • Add a viewer to a Cloud Run service protected by IAP
  • Prepare service account impersonation permissions
marin-community/marin4천2026년 10월 22일 업데이트

Add or update Pallas/Mosaic kernels, specialized computation routines for JAX. The skill covers reference implementations, output and gradient checks, public wrappers, fallback behavior, performance benchmarks, and hardware-specific tuning when requested.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Adding a Pallas kernel for a JAX computation
  • Checking outputs and gradients against a reference
  • Maintaining backend selection and fallback behavior
marin-community/marin4천2026년 10월 22일 업데이트

Preserve old experiment scripts with a dated Git tag, a named snapshot of the code, and add comments linking related GitHub issues to the archived files and cleanup pull request.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Preserving a snapshot of old experiment scripts
  • Linking experiment issues to archived files
  • Updating archive notices after a tag changes
marin-community/marin4천2026년 10월 22일 업데이트

Try model or training changes in a copied Grug or Grugformer experiment, document the differences, and bring successful changes back into the base template while removing superseded experiment code and checking behavior.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Try changes to attention or masking
  • Experiment with optimizers or training loops
  • Bring successful changes into the base template
marin-community/marin4천2026년 10월 22일 업데이트

marin-community의 스킬 모두 보기

이 스킬의 문제 신고