Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 0品質スコア 50/100

weights-and-biases

W&Bを使ってMLの実験を自動ロギングで追跡し、トレーニングをリアルタイムで可視化。ハイパーパラメータのスイープ最適化やモデルレジストリの管理まで、チームで連携できるMLOpsプラットフォームです。

description の原文を見る

Track ML experiments with automatic logging, visualize training in real-time, optimize hyperparameters with sweeps, and manage model registry with W&B - collaborative MLOps platform

SKILL.md 本文

Weights & Biases: ML実験追跡 & MLOps

このスキルの使用時期

Weights & Biases (W&B) は以下の場合に使用します:

  • MLの実験を追跡 する自動メトリックログで
  • トレーニングを可視化 リアルタイムダッシュボードで
  • 実験を比較 ハイパーパラメータと設定値で
  • ハイパーパラメータを最適化 自動スイープで
  • モデルレジストリを管理 バージョン管理と系統図で
  • ML プロジェクトで協力 チームワークスペースで
  • アーティファクトを追跡 (データセット、モデル、コード) 系統図で

ユーザー: 200,000+ ML 実践者 | GitHub Stars: 10.5k+ | 統合: 100+

インストール

# W&B をインストール
pip install wandb

# ログイン (API キーを作成)
wandb login

# または API キーをプログラムで設定
export WANDB_API_KEY=your_api_key_here

クイックスタート

基本的な実験追跡

import wandb

# 実験を初期化
run = wandb.init(
    project="my-project",
    config={
        "learning_rate": 0.001,
        "epochs": 10,
        "batch_size": 32,
        "architecture": "ResNet50"
    }
)

# トレーニングループ
for epoch in range(run.config.epochs):
    # トレーニングコード
    train_loss = train_epoch()
    val_loss = validate()

    # メトリクスをログ
    wandb.log({
        "epoch": epoch,
        "train/loss": train_loss,
        "val/loss": val_loss,
        "train/accuracy": train_acc,
        "val/accuracy": val_acc
    })

# 実験を終了
wandb.finish()

PyTorch を使用

import torch
import wandb

# 初期化
wandb.init(project="pytorch-demo", config={
    "lr": 0.001,
    "epochs": 10
})

# 設定にアクセス
config = wandb.config

# トレーニングループ
for epoch in range(config.epochs):
    for batch_idx, (data, target) in enumerate(train_loader):
        # フォワードパス
        output = model(data)
        loss = criterion(output, target)

        # バックワードパス
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()

        # 100 バッチごとにログ
        if batch_idx % 100 == 0:
            wandb.log({
                "loss": loss.item(),
                "epoch": epoch,
                "batch": batch_idx
            })

# モデルを保存
torch.save(model.state_dict(), "model.pth")
wandb.save("model.pth")  # W&B にアップロード

wandb.finish()

コアコンセプト

1. プロジェクトと実験

プロジェクト: 関連する実験の集合 実験: トレーニングスクリプトの単一実行

# プロジェクトを作成/使用
run = wandb.init(
    project="image-classification",
    name="resnet50-experiment-1",  # オプション: 実験名
    tags=["baseline", "resnet"],    # タグで整理
    notes="First baseline run"      # メモを追加
)

# 各実験は一意の ID を持つ
print(f"Run ID: {run.id}")
print(f"Run URL: {run.url}")

2. 設定の追跡

ハイパーパラメータを自動的に追跡します:

config = {
    # モデルアーキテクチャ
    "model": "ResNet50",
    "pretrained": True,

    # トレーニングパラメータ
    "learning_rate": 0.001,
    "batch_size": 32,
    "epochs": 50,
    "optimizer": "Adam",

    # データパラメータ
    "dataset": "ImageNet",
    "augmentation": "standard"
}

wandb.init(project="my-project", config=config)

# トレーニング中に設定にアクセス
lr = wandb.config.learning_rate
batch_size = wandb.config.batch_size

3. メトリクスログ

# スカラーをログ
wandb.log({"loss": 0.5, "accuracy": 0.92})

# 複数のメトリクスをログ
wandb.log({
    "train/loss": train_loss,
    "train/accuracy": train_acc,
    "val/loss": val_loss,
    "val/accuracy": val_acc,
    "learning_rate": current_lr,
    "epoch": epoch
})

# カスタム x 軸でログ
wandb.log({"loss": loss}, step=global_step)

# メディア (画像、音声、ビデオ) をログ
wandb.log({"examples": [wandb.Image(img) for img in images]})

# ヒストグラムをログ
wandb.log({"gradients": wandb.Histogram(gradients)})

# テーブルをログ
table = wandb.Table(columns=["id", "prediction", "ground_truth"])
wandb.log({"predictions": table})

4. モデルチェックポイント

import torch
import wandb

# モデルチェックポイントを保存
checkpoint = {
    'epoch': epoch,
    'model_state_dict': model.state_dict(),
    'optimizer_state_dict': optimizer.state_dict(),
    'loss': loss,
}

torch.save(checkpoint, 'checkpoint.pth')

# W&B にアップロード
wandb.save('checkpoint.pth')

# またはアーティファクトを使用 (推奨)
artifact = wandb.Artifact('model', type='model')
artifact.add_file('checkpoint.pth')
wandb.log_artifact(artifact)

ハイパーパラメータスイープ

最適なハイパーパラメータを自動的に検索します。

スイープ設定を定義

sweep_config = {
    'method': 'bayes',  # または 'grid', 'random'
    'metric': {
        'name': 'val/accuracy',
        'goal': 'maximize'
    },
    'parameters': {
        'learning_rate': {
            'distribution': 'log_uniform',
            'min': 1e-5,
            'max': 1e-1
        },
        'batch_size': {
            'values': [16, 32, 64, 128]
        },
        'optimizer': {
            'values': ['adam', 'sgd', 'rmsprop']
        },
        'dropout': {
            'distribution': 'uniform',
            'min': 0.1,
            'max': 0.5
        }
    }
}

# スイープを初期化
sweep_id = wandb.sweep(sweep_config, project="my-project")

トレーニング関数を定義

def train():
    # 実験を初期化
    run = wandb.init()

    # スイープパラメータにアクセス
    lr = wandb.config.learning_rate
    batch_size = wandb.config.batch_size
    optimizer_name = wandb.config.optimizer

    # スイープ設定でモデルを構築
    model = build_model(wandb.config)
    optimizer = get_optimizer(optimizer_name, lr)

    # トレーニングループ
    for epoch in range(NUM_EPOCHS):
        train_loss = train_epoch(model, optimizer, batch_size)
        val_acc = validate(model)

        # メトリクスをログ
        wandb.log({
            "train/loss": train_loss,
            "val/accuracy": val_acc
        })

# スイープを実行
wandb.agent(sweep_id, function=train, count=50)  # 50 回の試行を実行

スイープ戦略

# グリッドサーチ - 網羅的
sweep_config = {
    'method': 'grid',
    'parameters': {
        'lr': {'values': [0.001, 0.01, 0.1]},
        'batch_size': {'values': [16, 32, 64]}
    }
}

# ランダムサーチ
sweep_config = {
    'method': 'random',
    'parameters': {
        'lr': {'distribution': 'uniform', 'min': 0.0001, 'max': 0.1},
        'dropout': {'distribution': 'uniform', 'min': 0.1, 'max': 0.5}
    }
}

# ベイズ最適化 (推奨)
sweep_config = {
    'method': 'bayes',
    'metric': {'name': 'val/loss', 'goal': 'minimize'},
    'parameters': {
        'lr': {'distribution': 'log_uniform', 'min': 1e-5, 'max': 1e-1}
    }
}

アーティファクト

系統図を含むデータセット、モデル、その他のファイルを追跡します。

アーティファクトをログ

# アーティファクトを作成
artifact = wandb.Artifact(
    name='training-dataset',
    type='dataset',
    description='ImageNet training split',
    metadata={'size': '1.2M images', 'split': 'train'}
)

# ファイルを追加
artifact.add_file('data/train.csv')
artifact.add_dir('data/images/')

# アーティファクトをログ
wandb.log_artifact(artifact)

アーティファクトを使用

# アーティファクトをダウンロードして使用
run = wandb.init(project="my-project")

# アーティファクトをダウンロード
artifact = run.use_artifact('training-dataset:latest')
artifact_dir = artifact.download()

# データを使用
data = load_data(f"{artifact_dir}/train.csv")

モデルレジストリ

# モデルをアーティファクトとしてログ
model_artifact = wandb.Artifact(
    name='resnet50-model',
    type='model',
    metadata={'architecture': 'ResNet50', 'accuracy': 0.95}
)

model_artifact.add_file('model.pth')
wandb.log_artifact(model_artifact, aliases=['best', 'production'])

# モデルレジストリにリンク
run.link_artifact(model_artifact, 'model-registry/production-models')

統合例

HuggingFace Transformers

from transformers import Trainer, TrainingArguments
import wandb

# W&B を初期化
wandb.init(project="hf-transformers")

# W&B を使用したトレーニング引数
training_args = TrainingArguments(
    output_dir="./results",
    report_to="wandb",  # W&B ログを有効化
    run_name="bert-finetuning",
    logging_steps=100,
    save_steps=500
)

# Trainer は自動的に W&B にログ
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset,
    eval_dataset=eval_dataset
)

trainer.train()

PyTorch Lightning

from pytorch_lightning import Trainer
from pytorch_lightning.loggers import WandbLogger
import wandb

# W&B ロガーを作成
wandb_logger = WandbLogger(
    project="lightning-demo",
    log_model=True  # モデルチェックポイントをログ
)

# Trainer で使用
trainer = Trainer(
    logger=wandb_logger,
    max_epochs=10
)

trainer.fit(model, datamodule=dm)

Keras/TensorFlow

import wandb
from wandb.keras import WandbCallback

# 初期化
wandb.init(project="keras-demo")

# コールバックを追加
model.fit(
    x_train, y_train,
    validation_data=(x_val, y_val),
    epochs=10,
    callbacks=[WandbCallback()]  # メトリクスを自動ログ
)

可視化と分析

カスタムチャート

# カスタム可視化をログ
import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot(x, y)
wandb.log({"custom_plot": wandb.Image(fig)})

# 混同行列をログ
wandb.log({"conf_mat": wandb.plot.confusion_matrix(
    probs=None,
    y_true=ground_truth,
    preds=predictions,
    class_names=class_names
)})

レポート

W&B UI で共有可能なレポートを作成:

  • 実験、チャート、テキストを組み合わせ
  • Markdown サポート
  • 埋め込み可能な可視化
  • チーム協力

ベストプラクティス

1. タグとグループで整理

wandb.init(
    project="my-project",
    tags=["baseline", "resnet50", "imagenet"],
    group="resnet-experiments",  # 関連する実験をグループ化
    job_type="train"             # ジョブタイプ
)

2. 関連するすべてをログ

# システムメトリクスをログ
wandb.log({
    "gpu/util": gpu_utilization,
    "gpu/memory": gpu_memory_used,
    "cpu/util": cpu_utilization
})

# コードバージョンをログ
wandb.log({"git_commit": git_commit_hash})

# データ分割をログ
wandb.log({
    "data/train_size": len(train_dataset),
    "data/val_size": len(val_dataset)
})

3. 説明的な名前を使用

# ✅ 良好: 説明的な実験名
wandb.init(
    project="nlp-classification",
    name="bert-base-lr0.001-bs32-epoch10"
)

# ❌ 悪い: ジェネリック名
wandb.init(project="nlp", name="run1")

4. 重要なアーティファクトを保存

# 最終モデルを保存
artifact = wandb.Artifact('final-model', type='model')
artifact.add_file('model.pth')
wandb.log_artifact(artifact)

# 分析用の予測を保存
predictions_table = wandb.Table(
    columns=["id", "input", "prediction", "ground_truth"],
    data=predictions_data
)
wandb.log({"predictions": predictions_table})

5. 不安定な接続にはオフラインモードを使用

import os

# オフラインモードを有効化
os.environ["WANDB_MODE"] = "offline"

wandb.init(project="my-project")
# ... コード ...

# 後で同期
# wandb sync <run_directory>

チーム協力

実験を共有

# 実験は自動的に URL で共有可能
run = wandb.init(project="team-project")
print(f"Share this URL: {run.url}")

チームプロジェクト

  • wandb.ai でチームアカウントを作成
  • チームメンバーを追加
  • プロジェクト可視性を設定 (プライベート/パブリック)
  • チームレベルのアーティファクトとモデルレジストリを使用

料金

  • 無料: 無制限のパブリックプロジェクト、100GB ストレージ
  • 学生向け: 学生/研究者は無料
  • Teams: $50/シート/月、プライベートプロジェクト、無制限ストレージ
  • Enterprise: カスタム料金、オンプレミスオプション

リソース

関連項目

  • references/sweeps.md - 包括的なハイパーパラメータ最適化ガイド
  • references/artifacts.md - データとモデルバージョニングパターン
  • references/integrations.md - フレームワーク固有の例

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
davila7
リポジトリ
davila7/claude-code-templates
ライセンス
MIT
最終更新
不明

Source: https://github.com/davila7/claude-code-templates / ライセンス: MIT

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: davila7 · davila7/claude-code-templates · ライセンス: MIT