google/pyglove

Manipulating Python Programs

何を解決するか

PyGlove は Python オブジェクトを記号的表現として扱う方法を提供し、簡単に操作・再結合・探索できるようにします。これにより、ハイパーパラメータやモデルアーキテクチャを最適化または進化させる必要がある複雑な機械学習ワークフローにおいて、メタプログラムの作成が簡素化されます。

仕組み

Python に記号的オブジェクト指向プログラミングモデルを導入します。@pg.symbolize デコレータを使用することで、ユーザーは Python クラスを記号的にできます。記号化されたオブジェクトは、異なる値に「再結合」したり、pg.oneof のようなプリミティブを使って探索空間として定義したりでき、より良いプログラム構成の自動探索が可能になります。

対象ユーザー

このライブラリは、自動機械学習(AutoML)、進化的計算、大規模 ML チームで作業する研究者や開発者向けに設計されており、ML コードを効率的に共有・進化させる必要がある人にとって最適です。

特徴

  • 記号的オブジェクトモデル: オブジェクトが作成された後でも、直接 Python オブジェクトを操作できます。
  • 自動探索 API: 既存の Python プログラムに探索機能を簡単に追加できるツールを提供します。
  • 探索アルゴリズム: すぐに使える探索アルゴリズムのライブラリと、新しいアルゴリズムを構築するためのフレームワークを備えています。
  • 分散インフラストラクチャ: 大規模な探索に対応する分散バックエンド(例: Open Source Vizier)と連携します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト