Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OptunaHub: ブラックボックス最適化のためのプラットフォーム

OptunaHub: ブラックボックス最適化のためのプラットフォーム

2026/10/16 Optuna Meetup #3 発表資料。ブラックボックス最適化のためのプラットフォームOptunaHubについてご紹介します。

イベントサイト: https://optuna.connpass.com/event/406648/

Avatar for Preferred Networks

Preferred Networks PRO

October 16, 2026

More Decks by Preferred Networks

Other Decks in Technology

Transcript

  1. OptunaHubの概要 OptunaHubとは ブラックボックス最適化のためのプラットフォーム 背景 機械学習コミュニティにおけるプラットフォームの台頭 ブラックボックス最適化コミュニティの課題 プラットフォームの役割 (Hugging Face等) 集約・共有の遅れ

    モデルやデータセットを公開する場と共通の APIを提供 アルゴリズムやベンチマーク実装の集約が MLコミュニティほど 進んでいなかった 分野の発展に貢献する大きな成果 OptunaHub モデルやデータセットのアクセス性・再利用性が大幅に向上し、実 務活用や研究における再現・検証が容易化 ブラックボックス最適化のためのプラットフォームとして、コミュニ ティにおけるソフトウェアの共有、再利用、検証を加速させるた め、2024年8月に正式公開。 8年の運用実績がある Optunaのソ フトウェア資産を活かせることが強み 4
  2. OptunaとOptunaHubの違い Optunaを含む従来のフレームワーク OptunaHub 開発体制 中央集権的な開発体制。機能の追加にはコアチームによる議論、設 計のレビューや実装の検証が必要 開発体制 コミュニティベースの分散型開発。機能の追加にはマルウェアではな いことの確認、ライセンスファイルの確認など、最小限のレビューの みが必要。開発は原則コントリビュータが担い、コードはあらかじめ

    機能単位で完全に独立なパッケージとして分離される形となっている コミッタ・メンテナの役割 実装の正確性の検証・コード品質の評価・長期保守の責任を直接担う (熟練の開発者によって品質が担保される) コミッタ・メンテナの役割 プラットフォーム・エコシステムの維持管理に集中し、個別コードの保 守はコントリビュータに委ねる 課題 開発チームのメンテナンスキャパシティには限界があり、実績に乏しい 手法や、需要が限定的な手法等は気軽に取り入れづらい 課題 スケーラブルだが、品質の担保はコントリビュータ個人に依存(従来 フレームワークとのトレードオフ) 広く知られている OSSの例 Optuna, Vizier, Nevergrad, COCO, IOHProfiler, etc. 従来のフレームワークの上位互換ではなく、相補的な存在 5
  3. OptunaHubの構成 1. OptunaHub Module 2. OptunaHub Registry 3. OptunaHub Web

    Pythonライブラリ パッケージ(機能)リポジトリ RegistryのWebフロントエンド pip install optunahub GitHub上の分散型コードベース hub.optuna.org 主な機能 : 役割: 特徴: • load_module API • パッケージを集積、カテゴライズ • パッケージの検索機能 • Optuna互換APIを提供するBase Class • Gitに基づくバージョン管理 • 一覧と詳細ページの提供 6
  4. OptunaHubのコード例 optunahub_example.py 1 from optuna import create_study 2 from optuna.visualization

    import plot_optimization_history, plot_param_importances 3 from optunahub import load_module 4 5 # All modules have their own package pages at https://hub.optuna.org/ 6 auto_sampler = load_module("samplers/auto_sampler") 7 nasbench201 = load_module("benchmarks/nasbench201") 8 sampler = auto_sampler.AutoSampler() 9 objective = nasbench201.Problem(dataset_id=0) 10 study = create_study(sampler=sampler, directions=objective.directions) 11 study.optimize(objective, n_trials=100) 12 13 plot_optimization_history(study).show() 14 plot_param_importances(study).show() 11 1. モジュールの読み込み load_module(“category/package_name”) OptunaHub上のパッケージを Pythonモジュールとして動 的ロードする。初回はレジストリからコードを取得する。次 回以降のため、ローカルキャッシュを持つ 2. OptunaHubモジュールの使用 ロードしたモジュールは Optuna互換のAPIを持ち、 create_studyやoptimizeにそのまま渡すことが可能
  5. OptunaHub Registry (optuna / optunahub-registry) OptunaHubのレジストリ・パッケージの実体 OptunaHubレジストリ OptunaHubの全てのパッケージは optunahub-registryという名 のリポジトリで管理されており

    Category–Packageの階層構造で 配置されている。全てのパッケージはこのリポジトリの mainから 標準で取得される(明示的に forkやbranch/hash指定すれば独 自パッケージや特定バージョンも取得可)。 OptunaHubパッケージ OptunaHubパッケージは、独立した Pythonパッケージ構造を持 ち、__init__.py, requirements.txt, README.md, LICENSEなど を含む。READMEやライセンスの情報は、 Web上のパッケージ 詳細ページに同期される 13
  6. OptunaHubパッケージの開発方法について 公式チュートリアル Tutorials for Contributors • https://optuna.github.io/optunahub/tutorials_for_contribu tors.html • サンプラやベンチマークなどのパッケージ実装手順を解説

    optunahubライブラリが提供する基底クラス • SimpleBaseSampler, BaseProblem等の基底クラスを提供 • Optunaモジュール実装のために必要な多くの要素について、デ フォルト実装を提供してくれるため実現したい機能に固有の最小 限の追加実装を行うだけでOptuna互換になる class MySampler(optunahub.samplers.SimpleBaseSampler): … class MyProblem(optunahub.benchmarks.BaseProblem): … 14
  7. OptunaHubパッケージの公開方法について optunahub-registryにpull requestを出せば OK How to Register Your Package with

    OptunaHub • https://optuna.github.io/optunahub/generated/recipes/0 02_registration.html パッケージ公開までの流れ • パッケージを追加するpull requestを出す • メンテナから最小限のコードレビューを受ける ◦ サンプルコードの動作が確認できる ◦ ライセンスが明示されている ◦ あからさまにマルウェアではない ◦ 技術者倫理に違反していない ▪ 例:明確なOSSライセンス違反がない ◦ ※ 品質の保証は要件外 • Mergeされると、速やかにWebに公開される 15
  8. 発表のまとめ OptunaHubはブラックボックス最適化のためのプ ラットフォーム Journal of Machine Learning Researchの論文 コミュニティにおけるソフトウェアの共有、再利用、検証 を加速させることが目的

    (ユーザは利用できる、開発者は普及させられる) 従来のフレームワークとは相補的な存在 便利なのでぜひ活用してみてください https://www.jmlr.org/papers/v27/25-2424.html 17