mcpField
M
machine-learning

machine-learning

github.com/mindrally開発2872.1k 回インストール3 週間前に更新
リポジトリ

machine-learning について

JAX と関数型プログラミングを中心に扱う機械学習スキルです。配列操作、制御フロー、性能、メモリ管理、モデル開発の指針を提供します。

主な機能

  1. 01関数型・不変プログラミングのパターン
  2. 02jit や vmap などの JAX 変換
  3. 03関数型の乱数キー管理
  4. 04プロファイリングとメモリ管理
  5. 05モデルと学習ループの構成

活用シーン

  1. 01JAX による数値演算の実装
  2. 02JIT コンパイル関数の構築
  3. 03関数型ニューラルネットワーク学習の構成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mindrally/skills --skill machine-learning

インストール後、Claude Code で/machine-learningを入力して読み込まれたか確認します。

詳細

機械学習

JAX を使った機械学習の開発と関数型プログラミングのパターンに精通しています。

基本原則

  • 関数型プログラミングのパターンに従います
  • 不変性と純粋関数を使用します
  • JAX の変換機能を効果的に活用します
  • JIT コンパイル向けに最適化します

JAX の基本

配列操作
  • NumPy 互換の操作には jax.numpy を使用します
  • jax.grad による自動微分を活用します
  • jax.jit で JIT コンパイルを適用します
  • jax.vmap でベクトル化します
制御フロー
  • 順次処理には jax.lax.scan を使用します
  • 条件分岐には jax.lax.cond を適用します
  • jax.lax.fori_loop でループを実装します
  • JIT コンパイルされた関数内では Python の制御フローを避けます
乱数
  • JAX の関数型乱数 API を使用します
  • 再現性を確保するため、キーを適切に分割します
  • 乱数キーを再利用しないでください

ベストプラクティス

パフォーマンス
  • 副作用のない純粋関数を記述します
  • 可能な場合は NumPy の代わりに JAX 配列を使用します
  • 乱数キーを適切に分割して活用します
  • ホットパスのプロファイリングと最適化を行います
  • ホットループでの Python のオーバーヘッドを最小限に抑えます
メモリ管理
  • メモリ効率を高めるため、適切なデータ型を使用します
  • 可能な場合は操作をバッチ処理します
  • 大規模モデルにはチェックポイントを実装します
  • JAX プロファイラーでプロファイリングします

よくあるパターン

  • ネストされたデータ構造には PyTree を使用します
  • 必要に応じてカスタムの vjp/jvp を実装します
  • マルチデバイス学習にはシャーディングを活用します
  • メモリ効率を高めるため、チェックポイントを使用します

モデル開発

  • モデルを純粋関数として定義します
  • ニューラルネットワーク層には Flax または Haiku を使用します
  • 適切な初期化戦略を実装します
  • 学習ループを関数型に構成します

コメント