optuna.integration

integration モジュールには、Optuna を外部の機械学習フレームワークと連携させるためのクラスが含まれています。

Note

Optuna のサードパーティライブラリ向け統合モジュールは、Optuna 本体から optuna-integration というパッケージに移行しつつあります。 リポジトリ および ドキュメント をご確認ください。

Optuna がサポートするほとんどの機械学習フレームワークにおいて、対応する Optuna 統合クラスは、各フレームワークの特定のコールバック API に準拠したコールバックオブジェクトと関数を実装し、モデル訓練の各中間ステップで呼び出すためのものです。これらのコールバックで実装される機能には、以下が含まれます:

  1. optuna.trial.Trial.report() を使用して中間モデルのスコアを Optuna トライアルに報告する機能、

  2. optuna.trial.Trial.should_prune() の結果に基づいて optuna.TrialPruned() を発生させ、現在のモデルを剪定する機能、

  3. MLflowCallback のように現在のトライアル番号などの中間 Optuna データをフレームワークに報告する機能。

scikit-learn については、scikit-learn の BaseEstimator 機能とクラスレベルの Study オブジェクトへのアクセスを組み合わせた統合 OptunaSearchCV 推定器が利用可能です。

各統合の依存関係

各統合に必要な依存関係を以下にまとめます。

統合

依存関係

AllenNLP

allennlp, torch, psutil, jsonnet

BoTorch

botorch, gpytorch, torch

CatBoost

catboost

ChainerMN

chainermn

Chainer

chainer

pycma

cma

Dask

distributed

FastAI

fastai

Keras

keras

LightGBMTuner

lightgbm, scikit-learn

LightGBMPruningCallback

lightgbm

MLflow

mlflow

MXNet

mxnet

PyTorch Distributed

torch

PyTorch (Ignite)

pytorch-ignite

PyTorch (Lightning)

pytorch-lightning

SHAP

scikit-learn, shap

Scikit-learn

pandas, scipy, scikit-learn

SKorch

skorch

TensorBoard

tensorboard, tensorflow

TensorFlow

tensorflow, tensorflow-estimator

TensorFlow + Keras

tensorflow

Weights & Biases

wandb

XGBoost

xgboost