pytorch-lightning
PyTorch Lightningを使ったディープラーニング開発を支援するスキルです。PyTorchコードをLightningModuleに整理し、マルチGPU/TPU対応のTrainer設定、データパイプラインやコールバック、W&BやTensorBoardによるロギング、DDP・FSDP・DeepSpeedを用いた分散学習など、スケーラブルなニューラルネットワーク学習の実装をサポートします。
description の原文を見る
Deep learning framework (PyTorch Lightning). Organize PyTorch code into LightningModules, configure Trainers for multi-GPU/TPU, implement data pipelines, callbacks, logging (W&B, TensorBoard), distributed training (DDP, FSDP, DeepSpeed), for scalable neural network training.
SKILL.md 本文
PyTorch Lightning
概要
PyTorch Lightning は、ボイラープレートコードを削減しながら完全な柔軟性を保つ、PyTorch コードを整理するディープラーニングフレームワークです。訓練ワークフロー、マルチデバイスオーケストレーション、そして複数の GPU/TPU にわたるニューラルネットワークの訓練とスケーリングのベストプラクティスを自動化します。
このスキルを使用する場合
以下の場合、このスキルを使用してください:
- PyTorch Lightning を使用したニューラルネットワークの構築、訓練、デプロイ
- PyTorch コードを LightningModule に整理する
- マルチ GPU/TPU 訓練のための Trainer を構成する
- LightningDataModules を使用したデータパイプラインの実装
- コールバック、ロギング、分散訓練戦略(DDP、FSDP、DeepSpeed)の使用
- ディープラーニングプロジェクトを専門的に構造化する
コア機能
1. LightningModule - モデル定義
PyTorch モデルを 6 つの論理的なセクションに整理します:
- 初期化 -
__init__()とsetup() - 訓練ループ -
training_step(batch, batch_idx) - 検証ループ -
validation_step(batch, batch_idx) - テストループ -
test_step(batch, batch_idx) - 予測 -
predict_step(batch, batch_idx) - オプティマイザー設定 -
configure_optimizers()
クイックテンプレートリファレンス: 完全なボイラープレートについては scripts/template_lightning_module.py を参照してください。
詳細なドキュメント: 包括的なメソッドドキュメント、フック、プロパティ、ベストプラクティスについては references/lightning_module.md を参照してください。
2. Trainer - 訓練自動化
Trainer は訓練ループ、デバイス管理、勾配操作、コールバックを自動化します。主な機能:
- DDP、FSDP、DeepSpeed などの戦略選択によるマルチ GPU/TPU サポート
- 自動混合精度訓練
- 勾配の蓄積とクリッピング
- チェックポイント保存と早期停止
- プログレスバーとロギング
クイックセットアップリファレンス: 一般的な Trainer 設定については scripts/quick_trainer_setup.py を参照してください。
詳細なドキュメント: すべてのパラメータ、メソッド、設定オプションについては references/trainer.md を参照してください。
3. LightningDataModule - データパイプライン整理
再利用可能なクラスにすべてのデータ処理ステップをカプセル化します:
prepare_data()- データのダウンロードと処理(単一プロセス)setup()- データセットの作成と変換の適用(GPU ごと)train_dataloader()- 訓練 DataLoader を返すval_dataloader()- 検証 DataLoader を返すtest_dataloader()- テスト DataLoader を返す
クイックテンプレートリファレンス: 完全なボイラープレートについては scripts/template_datamodule.py を参照してください。
詳細なドキュメント: メソッドの詳細と使用パターンについては references/data_module.md を参照してください。
4. Callbacks - 拡張可能な訓練ロジック
LightningModule を修正することなく、特定の訓練フックでカスタム機能を追加します。組み込みコールバック:
- ModelCheckpoint - 最高/最新モデルを保存
- EarlyStopping - メトリクスがプラトーに達したときに停止
- LearningRateMonitor - LR スケジューラの変化を追跡
- BatchSizeFinder - 最適バッチサイズを自動決定
詳細なドキュメント: 組み込みコールバックとカスタムコールバック作成については references/callbacks.md を参照してください。
5. Logging - 実験追跡
複数のロギングプラットフォームと統合:
- TensorBoard(デフォルト)
- Weights & Biases(WandbLogger)
- MLflow(MLFlowLogger)
- Neptune(NeptuneLogger)
- Comet(CometLogger)
- CSV(CSVLogger)
任意の LightningModule メソッドで self.log("metric_name", value) を使用してメトリクスをログ出力します。
詳細なドキュメント: ロガーのセットアップと設定については references/logging.md を参照してください。
6. 分散訓練 - マルチデバイスへのスケーリング
モデルサイズに基づいて適切な戦略を選択します:
- DDP - 5 億パラメータ未満のモデル用(ResNet、小型 Transformer)
- FSDP - 5 億パラメータ以上のモデル用(大型 Transformer、Lightning ユーザー向け推奨)
- DeepSpeed - 最新機能と細粒度制御用
次のように設定します: Trainer(strategy="ddp", accelerator="gpu", devices=4)
詳細なドキュメント: 戦略の比較と設定については references/distributed_training.md を参照してください。
7. ベストプラクティス
- デバイス非依存のコード -
.cuda()の代わりにself.deviceを使用 - ハイパーパラメータ保存 -
__init__()でself.save_hyperparameters()を使用 - メトリクスロギング - デバイス全体での自動集約のために
self.log()を使用 - 再現性 -
seed_everything()とTrainer(deterministic=True)を使用 - デバッグ -
Trainer(fast_dev_run=True)を使用して 1 バッチでテスト
詳細なドキュメント: 一般的なパターンと落とし穴については references/best_practices.md を参照してください。
クイックワークフロー
-
モデルを定義:
class MyModel(L.LightningModule): def __init__(self): super().__init__() self.save_hyperparameters() self.model = YourNetwork() def training_step(self, batch, batch_idx): x, y = batch loss = F.cross_entropy(self.model(x), y) self.log("train_loss", loss) return loss def configure_optimizers(self): return torch.optim.Adam(self.parameters()) -
データを準備:
# オプション 1: 直接 DataLoader train_loader = DataLoader(train_dataset, batch_size=32) # オプション 2: LightningDataModule(再利用性のため推奨) dm = MyDataModule(batch_size=32) -
訓練:
trainer = L.Trainer(max_epochs=10, accelerator="gpu", devices=2) trainer.fit(model, train_loader) # または trainer.fit(model, datamodule=dm)
リソース
scripts/
PyTorch Lightning の一般的なパターン向けの実行可能な Python テンプレート:
template_lightning_module.py- 完全な LightningModule ボイラープレートtemplate_datamodule.py- 完全な LightningDataModule ボイラープレートquick_trainer_setup.py- 一般的な Trainer 設定例
references/
各 PyTorch Lightning コンポーネントの詳細なドキュメント:
lightning_module.md- 包括的な LightningModule ガイド(メソッド、フック、プロパティ)trainer.md- Trainer 設定とパラメータdata_module.md- LightningDataModule パターンとメソッドcallbacks.md- 組み込みコールバックとカスタムコールバックlogging.md- ロガー統合と使用方法distributed_training.md- DDP、FSDP、DeepSpeed の比較とセットアップbest_practices.md- 一般的なパターン、ヒント、落とし穴
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- davila7
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/davila7/claude-code-templates / ライセンス: MIT
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。