概要
BoFire(Bayesian Optimization Framework Intended for Real Experiments、実実験向けベイズ最適化フレームワーク)は、実験空間を定義し、次に実施する実験を選択するための Python ツールキットです。README では、反応、配合、デジタルツイン、閉ループ最適化が想定用途として挙げられています。単一目的と多目的のベイズ最適化に対応し、基盤となるベイズ最適化には BoTorch を使用します。これは最適化ワークフローを構築するためのフレームワークであり、単独で動作する予測モデルではありません。
問題は、入力特徴量、出力特徴量、目的関数、および任意の制約を Domain にまとめて表現します。ドキュメントに記載されている変数型には、連続、離散、カテゴリ型があります。目的関数は出力とは別に定義され、最小化、最大化、または目標値への近接を指定できます。実験レコードは候補の入力値と測定または評価された出力を組み合わせたものです。戦略はそのレコードを使い、提案する候補設定を返します。README では、SoboStrategy、qLogEI、および Himmelblau 関数を使った反復的な tell/ask ループにより、このワークフローを例示しています。
化学分野向けの機能には、分子エンコーディングとカーネルが含まれます。README によると、実装済みの分子カーネルは GAUCHE に由来します。問題、戦略、サロゲートのシリアライズ可能な定義は、RESTful ワークフローとの統合を支援します。また、LLMStrategy は問題の説明と過去の実験を言語モデルのコンテキストとして用い、候補を提案します。
例では数学関数を評価します。物理実験の実施とその結果の提供は、別個のワークフローステップです。オプションの依存関係グループは、最適化、ケモインフォマティクス、LLM の各機能を区別しています。このプロジェクトのバージョニング方針では、BIGRELEASE および MAJOR リリースで公開 API に後方互換性のない変更が許容されるため、選択したリリースに対して統合内容を確認してください。
主な機能
- 連続、離散、カテゴリ型パラメーターを含む混合空間を表現し、目的関数を出力特徴量とは別に定義できます。
- 最小化、最大化、目標値指向の目的関数を含む、単一目的および多目的のベイズ最適化に対応します。
- 個別制約と汎用制約、ブラックボックス出力制約、制約付きサンプリング、制約を順守する実験計画を提供します。
- 分子種を対象とする最適化に使用できる化学エンコーディングと分子カーネルを備えています。
- 問題定義、最適化戦略、サロゲートをシリアライズして RESTful 統合に利用できます。
- `LLMStrategy` により、記述された問題の説明と過去の実験から候補を提案できます。また、ドキュメントに記載された `tell`/`ask` 最適化ワークフローにも対応します。
用途
- 想定される評価:連続的な操作条件とカテゴリ選択肢を含む反応最適化キャンペーンを構成し、記録された実験結果に照らして提案候補を評価する。
- 想定される評価:制約付き配合設計を探索し、選択した測定特性に対する単一目的戦略と多目的戦略を比較する。
- 想定される評価:代表的な実験データセットを用いて、分子種の候補選択における分子エンコーディングとカーネルの適用性を評価する。
- 想定される評価:シリアライズされた最適化定義を閉ループサービスに統合し、測定結果を戦略に渡して次の候補を取得する。
使い方
- インストールガイドを参照し、想定するワークフローに応じて依存関係を選択してください。README では、基本的なベイズ最適化と、オプションのケモインフォマティクスおよび LLM 機能が区別されています。選択したリリースの要件を確認してください。
- README の例に従って、入力特徴量とその範囲、出力特徴量、目的関数を定義します。これらを
Domainにまとめ、問題に適した制約を追加してください。 - 初期候補を準備し、測定またはシミュレーションによる出力を取得します。生成される実験レコードがドメイン定義と一致するよう、入力と出力の識別子を統一してください。
- 最適化戦略を選択します。例では
qLogEIを用いるSoboStrategyを使用します。既存の実験をtellで渡し、askで候補を取得します。候補を外部で評価し、その結果を返してください。 - サービスとの統合については、データモデルと関数ガイドを参照してください。実験室のワークフローに接続する前に、代表的なデータを用いてシリアライズと最適化ループを評価してください。