Databricks ML Training
databricks/databricks-agent-skills
Train ML models on Databricks. An agent skill from databricks/databricks-agent-skills.
Agent skill
by Orchestra-Research in Orchestra-Research/AI-Research-SKILLs
Shows how to log ML runs, configs, metrics and media with SwanLab and view them in cloud, local or self-hosted dashboards.
$ npx skills add Orchestra-Research/AI-Research-SKILLs --skill experiment-tracking-swanlab -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Orchestra-Research/AI-Research-SKILLs experiment-tracking-swanlab --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Orchestra-Research/AI-Research-SKILLs.git skills-src && mkdir -p .claude/skills && cp -r skills-src/13-mlops/swanlab .claude/skills/experiment-tracking-swanlab && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "experiment-tracking-swanlab" agent skill from https://github.com/Orchestra-Research/AI-Research-SKILLs/tree/main/13-mlops/swanlab into .claude/skills/experiment-tracking-swanlab/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "experiment-tracking-swanlab", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Orchestra-Research/AI-Research-SKILLs/tree/main/13-mlops/swanlabType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Orchestra-Research/AI-Research-SKILLs --skill experiment-tracking-swanlab -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Orchestra-Research/AI-Research-SKILLs experiment-tracking-swanlab --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Orchestra-Research/AI-Research-SKILLs.git skills-src && mkdir -p .agents/skills && cp -r skills-src/13-mlops/swanlab .agents/skills/experiment-tracking-swanlab && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "experiment-tracking-swanlab" agent skill from https://github.com/Orchestra-Research/AI-Research-SKILLs/tree/main/13-mlops/swanlab into .agents/skills/experiment-tracking-swanlab/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "experiment-tracking-swanlab", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Orchestra-Research/AI-Research-SKILLs --skill experiment-tracking-swanlab -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Orchestra-Research/AI-Research-SKILLs experiment-tracking-swanlab --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Orchestra-Research/AI-Research-SKILLs.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/13-mlops/swanlab .cursor/skills/experiment-tracking-swanlab && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "experiment-tracking-swanlab" agent skill from https://github.com/Orchestra-Research/AI-Research-SKILLs/tree/main/13-mlops/swanlab into .cursor/skills/experiment-tracking-swanlab/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "experiment-tracking-swanlab", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Orchestra-Research/AI-Research-SKILLs.git --path 13-mlops/swanlab--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Orchestra-Research/AI-Research-SKILLs --skill experiment-tracking-swanlab -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Orchestra-Research/AI-Research-SKILLs experiment-tracking-swanlab --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Orchestra-Research/AI-Research-SKILLs.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/13-mlops/swanlab .gemini/skills/experiment-tracking-swanlab && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "experiment-tracking-swanlab" agent skill from https://github.com/Orchestra-Research/AI-Research-SKILLs/tree/main/13-mlops/swanlab into .gemini/skills/experiment-tracking-swanlab/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "experiment-tracking-swanlab", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Orchestra-Research/AI-Research-SKILLs experiment-tracking-swanlabInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Orchestra-Research/AI-Research-SKILLs --skill experiment-tracking-swanlab -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Orchestra-Research/AI-Research-SKILLs.git skills-src && mkdir -p .github/skills && cp -r skills-src/13-mlops/swanlab .github/skills/experiment-tracking-swanlab && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "experiment-tracking-swanlab" agent skill from https://github.com/Orchestra-Research/AI-Research-SKILLs/tree/main/13-mlops/swanlab into .github/skills/experiment-tracking-swanlab/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "experiment-tracking-swanlab", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Orchestra-Research/AI-Research-SKILLs --skill experiment-tracking-swanlab -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Orchestra-Research/AI-Research-SKILLs experiment-tracking-swanlab --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Orchestra-Research/AI-Research-SKILLs.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/13-mlops/swanlab .opencode/skills/experiment-tracking-swanlab && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "experiment-tracking-swanlab" agent skill from https://github.com/Orchestra-Research/AI-Research-SKILLs/tree/main/13-mlops/swanlab into .opencode/skills/experiment-tracking-swanlab/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "experiment-tracking-swanlab", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
experiment-tracking-swanlabShows how to log ML runs, configs, metrics and media with SwanLab and view them in cloud, local or self-hosted dashboards.
Setup starts with `swanlab` plus `pillow` and `soundfile` for media logging, and the dashboard extra of swanlab, which local mode and `swanlab watch` need. From there the skill walks through `swanlab.init` for projects and experiments, tracking a config such as model name and seed, logging scalars with `swanlab.log`, and logging images, audio, text and custom ECharts charts.
Examples include a PyTorch training loop and integrations with Hugging Face Transformers, PyTorch Lightning and Fastai, and reference files cover integrations and visualization. Local logs can be viewed with `swanlab watch -l ./swanlog`. The skill recommends SwanLab when you want open-source tracking that works locally or self-hosted and does not depend on a managed SaaS.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 773a529. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pipFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
docs.swanlab.cngithub.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
SWANLAB_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
SwanLab Experiment Tracking loads about 2.4k tokens when it runs, and up to ~5.9k if it reads all its reference files. Until then it costs about 52 tokens; SKILL.md has 248 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Orchestra-Research/AI-Research-SKILLs at commit 773a529, republished under its MIT licence (© Orchestra-Research). 248 words, ~2,440 tokens.
.claude/skills/experiment-tracking-swanlab/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Use SwanLab when you need to:
Deployment: Cloud, local, or self-hosted | Media: images, audio, text, GIFs, point clouds, molecules | Integrations: PyTorch, Transformers, PyTorch Lightning, Fastai
# Install SwanLab plus the media dependencies used in this skill
pip install "swanlab>=0.7.11" "pillow>=9.0.0" "soundfile>=0.12.0"
# Add local dashboard support for mode="local" and swanlab watch
pip install "swanlab[dashboard]>=0.7.11"
# Optional framework integrations
pip install transformers pytorch-lightning fastai
# Login for cloud or self-hosted usage
swanlab loginpillow and soundfile are the media dependencies used by the Image and Audio examples in this skill. swanlab[dashboard] adds the local dashboard dependency required by mode="local" and swanlab watch.
import swanlab
run = swanlab.init(
project="my-project",
experiment_name="baseline",
config={
"learning_rate": 1e-3,
"epochs": 10,
"batch_size": 32,
"model": "resnet18",
},
)
for epoch in range(run.config.epochs):
train_loss = train_epoch()
val_loss = validate()
swanlab.log(
{
"train/loss": train_loss,
"val/loss": val_loss,
"epoch": epoch,
}
)
run.finish()import torch
import torch.nn as nn
import torch.optim as optim
import swanlab
run = swanlab.init(
project="pytorch-demo",
experiment_name="mnist-mlp",
config={
"learning_rate": 1e-3,
"batch_size": 64,
"epochs": 10,
"hidden_size": 128,
},
)
model = nn.Sequential(
nn.Flatten(),
nn.Linear(28 * 28, run.config.hidden_size),
nn.ReLU(),
nn.Linear(run.config.hidden_size, 10),
)
optimizer = optim.Adam(model.parameters(), lr=run.config.learning_rate)
criterion = nn.CrossEntropyLoss()
for epoch in range(run.config.epochs):
model.train()
for batch_idx, (data, target) in enumerate(train_loader):
optimizer.zero_grad()
logits = model(data)
loss = criterion(logits, target)
loss.backward()
optimizer.step()
if batch_idx % 100 == 0:
swanlab.log(
{
"train/loss": loss.item(),
"train/epoch": epoch,
"train/batch": batch_idx,
}
)
run.finish()Project: Collection of related experiments
Experiment: Single execution of a training or evaluation workflow
import swanlab
run = swanlab.init(
project="image-classification",
experiment_name="resnet18-seed42",
description="Baseline run on ImageNet subset",
tags=["baseline", "resnet18"],
config={
"model": "resnet18",
"seed": 42,
"batch_size": 64,
"learning_rate": 3e-4,
},
)
print(run.id)
print(run.config.learning_rate)config = {
"model": "resnet18",
"seed": 42,
"batch_size": 64,
"learning_rate": 3e-4,
"epochs": 20,
}
run = swanlab.init(project="my-project", config=config)
learning_rate = run.config.learning_rate
batch_size = run.config.batch_size# Log scalars
swanlab.log({"loss": 0.42, "accuracy": 0.91})
# Log multiple metrics
swanlab.log(
{
"train/loss": train_loss,
"train/accuracy": train_acc,
"val/loss": val_loss,
"val/accuracy": val_acc,
"lr": current_lr,
"epoch": epoch,
}
)
# Log with custom step
swanlab.log({"loss": loss}, step=global_step)import numpy as np
import swanlab
# Image
image = np.random.randint(0, 255, (224, 224, 3), dtype=np.uint8)
swanlab.log({"examples/image": swanlab.Image(image, caption="Augmented sample")})
# Audio
wave = np.sin(np.linspace(0, 8 * np.pi, 16000)).astype("float32")
swanlab.log({"examples/audio": swanlab.Audio(wave, sample_rate=16000)})
# Text
swanlab.log({"examples/text": swanlab.Text("Training notes for this run.")})
# GIF video
swanlab.log({"examples/video": swanlab.Video("predictions.gif", caption="Validation rollout")})
# Point cloud
points = np.random.rand(128, 3).astype("float32")
swanlab.log({"examples/point_cloud": swanlab.Object3D(points, caption="Point cloud sample")})
# Molecule
swanlab.log({"examples/molecule": swanlab.Molecule.from_smiles("CCO", caption="Ethanol")})# Custom chart with swanlab.echarts
line = swanlab.echarts.Line()
line.add_xaxis(["epoch-1", "epoch-2", "epoch-3"])
line.add_yaxis("train/loss", [0.92, 0.61, 0.44])
line.set_global_opts(
title_opts=swanlab.echarts.options.TitleOpts(title="Training Loss")
)
swanlab.log({"charts/loss_curve": line})See references/visualization.md for more chart and media patterns.
import os
import swanlab
# Self-hosted or cloud login
swanlab.login(
api_key=os.environ["SWANLAB_API_KEY"],
host="http://your-server:5092",
)
# Local-only logging
run = swanlab.init(
project="offline-demo",
mode="local",
logdir="./swanlog",
)
swanlab.log({"loss": 0.35, "epoch": 1})
run.finish()# View local logs
swanlab watch -l ./swanlog
# Sync local logs later
swanlab sync ./swanlogfrom transformers import Trainer, TrainingArguments
training_args = TrainingArguments(
output_dir="./results",
per_device_train_batch_size=8,
evaluation_strategy="epoch",
logging_steps=50,
report_to="swanlab",
run_name="bert-finetune",
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_dataset,
eval_dataset=eval_dataset,
)
trainer.train()See references/integrations.md for callback-based setups and additional framework patterns.
import pytorch_lightning as pl
from swanlab.integration.pytorch_lightning import SwanLabLogger
swanlab_logger = SwanLabLogger(
project="lightning-demo",
experiment_name="mnist-classifier",
config={"batch_size": 64, "max_epochs": 10},
)
trainer = pl.Trainer(
logger=swanlab_logger,
max_epochs=10,
accelerator="auto",
)
trainer.fit(model, train_loader, val_loader)from fastai.vision.all import accuracy, resnet34, vision_learner
from swanlab.integration.fastai import SwanLabCallback
learn = vision_learner(dls, resnet34, metrics=accuracy)
learn.fit(
5,
cbs=[
SwanLabCallback(
project="fastai-demo",
experiment_name="pets-classification",
config={"arch": "resnet34", "epochs": 5},
)
],
)See references/integrations.md for fuller framework examples.
# Good: grouped metric namespaces
swanlab.log({
"train/loss": train_loss,
"train/accuracy": train_acc,
"val/loss": val_loss,
"val/accuracy": val_acc,
})
# Avoid mixing flat and grouped names for the same metric familyrun = swanlab.init(
project="image-classification",
experiment_name="resnet18-baseline",
config={
"model": "resnet18",
"learning_rate": 3e-4,
"batch_size": 64,
"seed": 42,
},
)import torch
import swanlab
checkpoint_path = "checkpoints/best.pth"
torch.save(model.state_dict(), checkpoint_path)
swanlab.log(
{
"best/val_accuracy": best_val_accuracy,
"artifacts/checkpoint_path": swanlab.Text(checkpoint_path),
}
)run = swanlab.init(project="offline-demo", mode="local", logdir="./swanlog")
# ... training code ...
run.finish()
# Inspect later with: swanlab watch -l ./swanlog© Orchestra-Research, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in 13-mlops/swanlab of Orchestra-Research/AI-Research-SKILLs.
Open the folder on GitHubat commit 773a529
SwanLab Experiment Tracking next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| SwanLab Experiment Tracking this skillOrchestra-Research/AI-Research-SKILLs | 13k | — | ~2.4k | Automated safety check: Pass | MIT | |
| Databricks ML Trainingdatabricks/databricks-agent-skills | 345 | — | ~4.6k | Automated safety check: Pass | Custom licence | |
| Senior ML Engineerdavila7/claude-code-templates | 33k | 2 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Oci Data Scienceoracle/accelerated-data-science | 125 | — | ~2.1k | Automated safety check: Pass | UPL-1.0 | |
| SHAP Model Explainabilitydavila7/claude-code-templates | 33k | 11 repos | ~4.6k | Automated safety check: Pass | MIT | |
| Editomegaml/omegaml | 108 | — | ~206 | Automated safety check: Pass | Apache-2.0 |
databricks/databricks-agent-skills
Train ML models on Databricks. An agent skill from databricks/databricks-agent-skills.
davila7/claude-code-templates
World-class ML engineering skill for productionizing ML models, MLOps, and building scalable ML systems.
oracle/accelerated-data-science
OCI Data Science service patterns including Jobs, Pipelines, Model Catalog, authentication, and the ADS SDK beyond AQUA.
davila7/claude-code-templates
Explains machine learning predictions with SHAP: picking the right explainer, computing Shapley values and drawing waterfall, beeswarm, bar and force plots.
omegaml/omegaml
how to use the edit command properly
RightNow-AI/openfang
Machine learning engineer expert for PyTorch, scikit-learn, model evaluation, and MLOps
Orchestra-Research/AI-Research-SKILLs
Generates music from text descriptions with MusicGen and sound effects with AudioGen, using Meta's AudioCraft PyTorch library with melody and style conditioning.
Orchestra-Research/AI-Research-SKILLs
Runs lm-evaluation-harness to benchmark language models on academic suites such as MMLU, GSM8K and HumanEval, compare models and track training checkpoints.
Orchestra-Research/AI-Research-SKILLs
Guide to using Meta's Segment Anything Model for zero-shot image segmentation with point, box or mask prompts, or automatic mask generation.
Orchestra-Research/AI-Research-SKILLs
Shows how to store documents and embeddings in Chroma, query them by similarity with metadata filters, and persist them to disk for RAG and semantic search projects.
Orchestra-Research/AI-Research-SKILLs
Explains OpenAI's CLIP model for zero-shot image classification, image-text similarity, semantic image search and content moderation, with install steps and code patterns.
Orchestra-Research/AI-Research-SKILLs
Transcribes audio with OpenAI's Whisper: 99 languages, translation to English, language detection, six model sizes and word-level timestamps, from Python or the CLI.
Categories
Shows how to log ML runs, configs, metrics and media with SwanLab and view them in cloud, local or self-hosted dashboards. Setup starts with `swanlab` plus `pillow` and `soundfile` for media logging, and the dashboard extra of swanlab, which local mode and `swanlab watch` need.log`, and logging images, audio, text and custom ECharts charts.
SwanLab Experiment Tracking fits situations like: tracking training runs and comparing seeds or hyperparameters; keeping experiment logs local or on a self-hosted server; logging images, audio or custom charts next to training metrics.
Run `npx skills add Orchestra-Research/AI-Research-SKILLs --skill experiment-tracking-swanlab -a claude-code`. Or copy the skill folder (13-mlops/swanlab in Orchestra-Research/AI-Research-SKILLs) into .claude/skills/experiment-tracking-swanlab in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Orchestra-Research/AI-Research-SKILLs --skill experiment-tracking-swanlab -a codex`. Or copy the skill folder (13-mlops/swanlab in Orchestra-Research/AI-Research-SKILLs) into .agents/skills/experiment-tracking-swanlab in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Orchestra-Research/AI-Research-SKILLs --skill experiment-tracking-swanlab -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/experiment-tracking-swanlab, .gemini/skills/experiment-tracking-swanlab, .github/skills/experiment-tracking-swanlab and .opencode/skills/experiment-tracking-swanlab in your project.
Going by SKILL.md and its folder, SwanLab Experiment Tracking needs the command-line tools its instructions call (pip) and credentials named SWANLAB_API_KEY. Our summary lists: Python with `swanlab`, `pillow` and `soundfile` installed.
SKILL.md names 2 domains. As links in the text: docs.swanlab.cn and github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
SwanLab Experiment Tracking is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with SwanLab Experiment Tracking: Databricks ML Training (databricks/databricks-agent-skills, 345 stars), Senior ML Engineer (davila7/claude-code-templates, 33k stars), Oci Data Science (oracle/accelerated-data-science, 125 stars) and SHAP Model Explainability (davila7/claude-code-templates, 33k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Orchestra-Research (a GitHub organization) maintains it in Orchestra-Research/AI-Research-SKILLs, which has 13,405 GitHub stars. The repository holds 96 skills in this directory. The repository was last updated on June 16, 2026.
Source: Orchestra-Research/AI-Research-SKILLs on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.