Blog

はじめに

ブラックボックス最適化フレームワークOptunaの最新バージョン4.6をリリースしました。本リリースでは、特に以下のハイライトに注力し、ユーザー体験と最適化性能を大幅に改善させました。

  • 大規模言語モデル (Large Language Model, LLM) を活用した対話的インタフェースの導入
  • GPSamplerのさらなる高速化の実現
  • AutoSamplerの多目的および制約付き最適化の本格的なサポート
  • ロバストベイズ最適化パッケージの追加

これらの主要な改善に加え、OpenTelemetry連携チュートリアルの公開や、OptunaHubでのLaTeX数式サポート、Optuna MCP ServerのStructured Oputput対応など、ユーザビリティを向上させる様々なアップデートも含まれています。本記事ではこれらの注目すべきアップデートについて、詳細をご紹介します。

以下のコマンドからぜひ新機能を備えたバージョンをインストールしてください!

 

pip install -U optuna optuna-dashboard optunahub

Optuna Dashboard LLM Integrationの導入

Optuna DashboardにLLM連携機能が導入されました。本機能を有効化することで、現時点では ① 自然言語によるTrialの絞り込み機能 ② グラフの自動生成機能の2つが利用可能になります。

自然言語によるTrialの絞り込み機能は図1に示すように、グラフや表に表示されるTrialを自然言語で絞り込む機能です。従来のOptuna Dashboardで指定可能なフィルター条件は非常に限定的でした。様々なフィルター条件に対応しようとするとUIが複雑化してしまい、使いづらくなってしまうためです。本機能ではユーザーの指示に従ってLLMがフィルター関数を生成することで、シンプルなUIで柔軟な絞り込みを可能にします。

図1: 自然言語によるTrial絞り込み機能

図1: 自然言語によるTrial絞り込み機能

次に紹介するのは自動グラフ生成機能です。Optuna Dashboardでは、評価値の推移やパレートフロント解の可視化、等高線図など、最適化タスクによらず汎用的に使えるグラフをサポートしてきました。一方で一部のユースケースでしか必要ないような、特定の最適化タスクに特化した可視化機能などのサポートには課題がありました。本機能では、図2に示すように、ユーザーが欲しい図を自然言語で説明するとLLMがPlotly.jsを使った可視化用関数を生成することで、これまでサポートできなかったタスク特化の可視化を可能にします。

図2: グラフの自動生成機能の使用例。使用したLLMは、OpenAIのGPT-5 Mini。入力プロンプトは「Plot intermediate values of all trials in a study.」。

図2: グラフの自動生成機能の使用例。使用したLLMは、OpenAIのGPT-5 Mini。入力プロンプトは「Plot intermediate values of all trials in a study.」。

LLM連携機能の使用方法については、Tutorial: LLM Integration – Optuna Dashboard documentationをご確認ください。なお本機能の性能は使用するLLMに依存します。

GPSamplerの高速化

GPSamplerはガウス過程ベースのベイズ最適化Samplerで、サンプル効率が良いことで知られています。一方で、目的関数の評価時間が数時間以下の場合にはGPSamplerのサンプル時間が律速になってしまうことがあります。

Optuna v4.6ではGPSamplerの内部実装にいくつか修正を加えることで、最適化性能を維持しつつ、サンプル時間の高速化を達成しました。具体的には繰り返し行われる計算のキャッシュ、空テンソルに対する演算呼出削除、および獲得関数最適化の並列化等を行いました。図3の実験設定では8倍弱程度の高速化効果を得ることができました。特に獲得関数最適化の並列化に関しては個別記事で詳説しています。計算環境によって、高速化効果が変化することに注意してください。

図3: v4.5と比較したGPSamplerの高速化効果。横軸はTrial数で縦軸は累積実行時間です。ベンチマークは10次元のRastrigin関数に対して行い、v4.5とv4.6それぞれに対して、異なる3つの乱数を用いて最適化を実行しました。薄色の帯はこの3つの乱数によって得られた標準誤差を表しています。

図3: v4.5と比較したGPSamplerの高速化効果。横軸はTrial数で縦軸は累積実行時間です。ベンチマークは10次元のRastrigin関数に対して行い、v4.5とv4.6それぞれに対して、異なる3つの乱数を用いて最適化を実行しました。薄色の帯はこの3つの乱数によって得られた標準誤差を表しています。

AutoSamplerにおける多目的及び制約付き最適化の本格的なサポート

AutoSamplerは最適化アルゴリズムの自動選択により効率的な探索を実現する、OptunaHubで最も人気のあるパッケージです。Optuna v4.6では、多目的及び制約付き最適化における本格的なサンプラ選択ルールが実装されました (図4)。最新のAutoSamplerでは、Optuna v4.2-v4.5にかけて実装された制約付き・多目的最適化向けのGPSamplerや多数目的最適化に適したNSGAIIISampler等が状況に応じて使用されるようになり、ベンチマーク性能が大幅に改善しています。

詳しくは、ブログ記事「AutoSampler:多目的・制約付き最適化を本格的にサポート」をご覧ください。

図4: 多目的最適化及び制約付き最適化に本格対応した新しいAutoSampler。

図4: 多目的最適化及び制約付き最適化に本格対応した新しいAutoSampler。

ロバストベイズ最適化パッケージの追加

ロバストベイズ最適化は、シミュレーションなどで得られた最適解を、現実世界の実験でノイズによるパラメータのズレがあっても安定して再現できるようにするための手法です。現実の実験環境では、設定した温度や圧力などのパラメータを完全に厳密に保つのは難しく、結果がブレてしまうことがあります。この課題に対応するため、設定値が多少ずれても目的関数の値が極端に悪化しない最適解を見つけ出す枠組みとして研究・開発が進められています。

Optuna v4.6ではそれぞれ実験化学と機械学習分野で開発されたロバストベイズ最適化手法であるCARBOValue at Risk (VaR) をOptunaHub経由で利用可能にしました。図5にあるとおり、導入手法は入力ノイズのある問題に対しても頑健に最適化をすることができます。

図5: CARBOによる制約付きロバストベイズ最適化結果 (問題設定の詳細はPRをご覧ください)。等高線の青色が良い目的値で、黄色が悪い目的値になっています。また制約非充足領域は影で暗くしています。黄色の点がCARBOで発見したロバストなパラメータであり、水色の枠線が黄色の点がノイズで取りうるパラメータ値領域になっています。図によるとロバストな解はノイズが載ったとしても、ほとんど制約充足し、良い目的値を取ることがわかります。

図5: CARBOによる制約付きロバストベイズ最適化結果 (問題設定の詳細はPRをご覧ください)。等高線の青色が良い目的値で、黄色が悪い目的値になっています。また制約非充足領域は影で暗くしています。黄色の点がCARBOで発見したロバストなパラメータであり、水色の枠線が黄色の点がノイズで取りうるパラメータ値領域になっています。図によるとロバストな解はノイズが載ったとしても、ほとんど制約充足し、良い目的値を取ることがわかります。

その他のアップデート内容の紹介

OpenTelemetryによるOptuna Dashboard監視チュートリアルの公開

OpenTelemetryを用いてOptuna Dashboardのモニタリングを行うチュートリアル「Tutorial: Integrating with OpenTelemetry」を公開しました。OpenTelemetryは、アプリケーション・システムのパフォーマンスやリソース使用量の監視・追跡を容易にするフレームワークです。Optuna DashboardをOpenTelemetryと統合 (図6) することで、以下を実現できます。

  • HTTPリクエストのメトリクス(レイテンシ、エラー率、スループット)の監視
  • データベースクエリのパフォーマンス追跡
  • メトリクスのPrometheusへのエクスポート及びGrafanaでの保存と可視化

Optuna Dashboardのモニタリングに関心がある方は、ぜひお試しください。

図6: Optuna DashboardとOpenTelemetryの連携図。

図6: Optuna DashboardとOpenTelemetryの連携図。

OptunaHubパッケージ詳細ページにおけるLaTeX数式のサポート

OptunaHubのパッケージ詳細ページにおいて、LaTeX数式がサポートされるようになりました。今回のアップデートにより、パッケージ開発者の方々はGitHub互換の記法を用いたインライン数式 ($expr$, $`expr`$) とブロック数式 ($$expr$$) を使用可能になり、ユーザ視点では数式が美しくレンダリングされることでドキュメントの可読性が大幅に改善しました。図7はCARBOSamplerのパッケージ詳細ページから抜粋した数式の利用例です。

図7:パッケージ詳細ページにおける数式の利用例。

図7:パッケージ詳細ページにおける数式の利用例。

Optuna MCP ServerがStructured Outputに対応

Optuna MCP ServerがStructured Outputに対応しました。Structured OutputはModel Context Protocolの最新仕様2025-06-18で導入された機能です。これにより、Optuna MCP ServerからMCPクライアントに返される結果が型アノテーションから生成された出力スキーマに対して自動的に検証されるようになり、より安定して動作するよう改善されました。技術詳細については公式ページをご参照下さい。

Optuna MCP Serverをまだお試しになられていない方は、ぜひ公式のインストール手順に従って最新版をお試し下さい!

図8: Optuna MCP ServerのStructured Outputの例。(左) optuna-mcp 0.1.2ではスタディ名がテキストに埋め込まれ、LLMは認識して抽出する必要があった。(右) optuna-mcp 0.2.0ではスタディ名はJSON schemaで定義され、機械的な取得・検証が可能となった。

図8: Optuna MCP ServerのStructured Outputの例。(左) optuna-mcp 0.1.2ではスタディ名がテキストに埋め込まれ、LLMは認識して抽出する必要があった。(右) optuna-mcp 0.2.0ではスタディ名はJSON schemaで定義され、機械的な取得・検証が可能となった。

おわりに

本記事では、Optuna v4.6のリリースハイライトについて紹介しました。これらのハイライトは、今年5月に公開したOptuna v5 ロードマップの3つの核にそれぞれ紐づいています。

  • 生成AIを用いてブラックボックス最適化の可能性を広げる
    • Optuna Dashboard LLM Integrationの導入
    • Optuna MCP ServerのStructured Oputput対応
  • Optunaをいつでも手軽に利用できるようにする
    • OpenTelemetryによるOptuna Dashboard監視チュートリアルの公開
  • Optunaを継続的に発展させる
    • GPSamplerの高速化
    • AutoSamplerにおける多目的及び制約付き最適化の本格的なサポート
    • ロバストベイズ最適化パッケージの追加
    • OptunaHubパッケージ詳細ページにおけるLaTeX数式のサポート

開発チームでは現在、デフォルトサンプラの変更に向けた準備、Rustによる一部コンポーネントの置き換えによる高速化の試作、プロンプト最適化の検証などを進めています。今後もOptuna v5に向け、続々と新機能を公開していく予定ですので、どうぞご期待ください!

コントリビュータ一覧

v4.6のリリースには以下のコントリビュータの方々の貢献が含まれます。ありがとうございました!

@AddyM, @GabrielRomaoG, @Jongwan93, @Kaichi-Irie, @ParagEkbote, @Zrahay, @c-bata, @contramundum53, @dross20, @euangoodbrand, @fusawa-yugo, @gen740, @jaikumarm, @kAIto47802, @ktns, @nabenabe0928, @nihalsiddiqui7, @not522, @satyarth7srivastava, @sawa3030, @toshihikoyanase, @unKnownNG, @y0z

  • Twitter
  • Facebook