Skip to main content
June 15, 2026
⌘K によるグローバル検索、サロゲートベースの Bayesian / TuRBO / SOBER オプティマイザ、ワーカーフリートでの ECM パラメータ化、ファイル測定のインライン画像プレビュー

プラットフォーム全体を横断するグローバル検索

⌘K ダイアログがプロジェクト、セル仕様、セルインスタンス、 セル測定、パイプライン、データフィット、シミュレーション、最適化、 パラメータ化モデルを横断して検索できるようになった — グループ化され、 ディープリンクされた結果と、エンティティタイプごとのチップフィルター付き。 セル測定とインスタンスは全文検索(バックフィルされた search_vector 列を持つ Postgres の tsvector)でインデックス化されているため、 これらいずれかの画面の部分的な名前や ID から、1 回のキー入力で 正しい詳細ページに到達する。バックエンドは limitoffsetentity_typesproject_id のクエリパラメータを公開しているため、 ダイアログはサーバー側でチップフィルタリングとページングを行える。

パラメータ推定のための Bayesian Optimization、TuRBO、SOBER

3 つのサロゲートベースのオプティマイザが、共通の SurrogateBasedAlgorithm をベース(LHS ウォームアップ、外れ値クランプ 付きの GP フィッティング、制約 GP の処理、EI ベースのサロゲート収束)に ionworkspipeline で提供される:
  • BayesianOptimization — 制約付き問題向けの実行可能性で重み付けされた 獲得関数を備えた、(対数)期待改善量による逐次またはバッチ BO。
  • TuRBO — Thompson サンプリング、SCBO スタイルの制約処理、 異方的な長さスケールの重み付けを備えた信頼領域 BO。
  • SOBER — Tchernychova–Lyons カーネルリコンビネーション、 事前分布を考慮した重要度サンプリング、適応的な WKDE 事前更新を備えた、 Bayesian quadrature によるバッチ BO。
各アルゴリズムには対応する BayesianOptimizationOptionsTuRBOOptionsSOBEROptions スキーマがあり、ドキュメントには Nelder–Mead、CMA-ES、差分進化と比較していつそれらを選ぶべきかを 説明する新しい手法選択ガイドが追加された。

ECM パラメータ化がバックグラウンドジョブとして実行

認証済みの ECM フィットは、10–60 秒間 FastAPI ワーカーをブロックする 代わりに、Anyscale/Ray ワーカーフリート上の ecm_fit ジョブとして 実行されるようになった。POST /ecm/fit-from-filePOST /ecm/fit-from-measurements202 {job_id, status} を返す; 公開デモの POST /ecm/fit は同期のままなので、未認証のサンプルフィットは 引き続き 1 ラウンドトリップで完了する。新しい client.ecm Python SDK サブクライアントは 3 つの入力モードすべてを網羅する — fit_from_example (同期)、fit_from_filefit_from_measurementswait_for_completion(...) でポーリングする EcmFitJob を返す)、 さらに save_to_projectdetect_and_read — そして新しい ecm-fitting エージェントスキルが、モードの選択、フィットの実行、 パラメータ化モデルとしての永続化を、エージェントに順を追って案内する。 ユーザーデータ起因のソルバーの ValueError は、Sentry に通知する代わりに、 BadRequestError / CONFIGURATION_ERROR として表面化するようになった。

ファイル測定のインライン画像プレビュー

ファイル型のセル測定は以前は「Visualization not yet supported」という プレースホルダーを表示していた;測定の詳細ページは、添付された すべてのファイルを取得し、画像をインライン表示し(列いっぱいに広がり、 クリックで拡大できるライトボックス、Esc または外側のクリックで閉じる)、 あらゆるファイルタイプにダウンロードリンクを提供するようになった。 詳細ページのローダーは、時系列以外の測定に対して steps_and_cycles / time_series を無条件にリクエストすることをやめた — これらのエンドポイントが 返す 400 は、サンクの全体を拒否し、file および properties 行に対して 「Measurement not found」を表示する原因になっていた。
改善
  • 最適化が内部のジョブシステムから切り離された: 新しい /optimizations REST サーフェスはジョブを使わない OptimizationResource DTO (list、get、config、metadata、runs、statuses、cancel、resubmit、delete)を 返し、最適化一覧ページは行ごとに 1 つの WebSocket を開く代わりに、 軽量な /statuses?ids=... プロジェクションを 5 秒ごとにポーリングする。 パラメータ化モデルセレクターも、jobs キャッシュをスキャンするのではなく id でフェッチするようになった。
  • プロジェクトスコープのパラメータ化モデル一覧により、 パラメータ化モデルピッカーが現在のプロジェクトに属するモデルだけに 絞り込めるようになった。
  • id_textsearch_vector 列はオブジェクトフィールドパネルで 非表示になり、詳細ビューが内部のインデックスヘルパーを露出しなくなった。
  • データフィットの結果は、結果ペイロードに validation_not_supported が 設定されている場合、検証タブを空白のままにしたりページを失敗させたり する代わりに、インラインアラートとして「Validation not supported」を 表示するようになった。
  • 非エラーの停止条件で一時停止または終了したプロトコルファイルは、 ユーザーが修正可能なインラインメッセージをレンダリングするようになった; 以前はルートが汎用的な 500 を返していた。
  • 新しい pipelines/validations/{job_id}/plot_data / pipelines/datafits/{job_id}/plot_data の整合性パスと、汎用的な バックエンドマッピングが、Web レイヤー内部で発生したあらゆるプレーンな Python エラーを構造化されたドメインエラー応答に変換する。
  • Universal Cycler Protocol シミュレーターのページが、サポート対象の サイクラープロトコル形式として Maccor、Bitrode、BioLogic に加えて Arbin と Novonix を一覧表示するようになり、サポート対象プロトコルの 記述は両方の UCP ページで共有されるため、2 つは同期し続ける。
  • StandardDataGrid カードが固有の幅を主張するようになり、親コンテナに 明示的な幅がない場合の崩れたグリッドレイアウトを修正した。
  • 測定ファイルのストレージへのアップロードは、一時的なエラー時に 指数バックオフ(上限あり)でリトライし、試行回数を使い切ったときは 構造化された 502 を返すようになった。
  • パイプラインの一覧と詳細のフェッチは、requestId ガードによって last-wins を強制し、サンクの AbortSignalaxios に渡すように なったため、低速なリクエスト中にパイプライン間を移動しても、ビューが 古いパイプラインに戻ることはない。パイプライン要素のキャッシュは、 再フェッチ時にエンティティ辞書全体を消去するのではなく、スコープ付き エントリをマージするようになり、パイプライン詳細サブスクリプションの ポーリングコールバックは、前のパイプライン用の再フェッチを発火していた 古いクロージャレースに対するガードを備えた。
  • 親エンティティが変わったとき、測定一覧はレンダー時にページ 1 にリセット されるようになり、新しいリクエスト処理中に表示されていた古い行の ちらつきを取り除いた。
  • ハードリフレッシュ時の組織コンテキスト解決が決定的になった — ブートストラップの順序が、永続化された選択が再水和される前に、 アクティブプロジェクトが一覧の最初のプロジェクトに一時的に戻っていた 競合を回避する。
修正
  • ダークモードが、選択、フォーカス、ホバーの色を Ionworks のブランドピンクから 導出するようになったため、フォーカスされた行、選択されたナビゲーション項目、 ホバーされたボタンが、暗い背景に対して濁って見えなくなった。
  • 検証プロットの軸タイトルが Plotly 3.x で正しくレンダリングされる — アップグレードにより、以前のバージョンが裸の文字列から推測していた { text: ... } ラッパーが必須になった。
  • セル詳細ページのセルカードが、パンくずと重複する冗長なメタデータ フィールドを表示しなくなった。
  • すべての測定ページが、コールド/直接ナビゲーションでセルスペックを 読み込むようになり、他のページから移動してきたときだけでなく、初回 描画時に spec-name および spec-anode/cathode 列が表示されるようになった。
改善
  • CycleAgeing は実験が指定されたときに experiment_model_mode="unified" をデフォルトとし、iwp.Simulationcompile フラグは unified モードでデフォルトが True になった。 サイクリング実験は同じ少数のステップを何度も繰り返すため、単一の 切り替えモデルは、ステップごとに 1 モデルを使う場合と比べてビルドと ソルブのコストを圧縮する;コンパイルと組み合わせることで、サイクル エージングフィットの大幅な高速化となる。PyBaMM 26.6.1.0 に固定。
  • CycleAgeingexperiment="from data" を受け付けるようになり、 ユーザーが再記述する必要なく、読み込んだデータセットからサイクリング 実験を構築する。
  • CycleAgeing は、要求されたメトリックのすべてが最初/最後のサイクル の量しか必要としない場合、store_first_last を自動的に有効化し、 メトリックが読み取らない中間サイクルの保存をスキップする。
  • CycleAgeingsave_at_cycles は、呼び出し側が明示的に渡さない 場合、要求されたメトリックツリーから自動的に導出されるようになった — 下流のメトリックが実際に消費するサイクルだけが保存される。
  • ElectrodeBalancing は既存の容量出力に加えて dQ/dV 曲線を出力する ようになり、重み付き Wasserstein コストを dQ/dV のピーク構造に対して 直接計算できるようになった。
  • Time メトリックが時刻のベクトルを受け付け、それぞれでメトリックを 報告するようになり、数個のサンプル点を必要としていた呼び出し側での 以前の 1 回 1 スカラーのループを置き換える。
  • 汎用的な solve_kwargs がすべての目的関数を経由して Simulation.solve に渡されるようになり、先週のコンストラクター側の solver_kwargs を補完する。
  • メトリックツリーのイントロスペクションは Metric および Slicer クラスに移され、呼び出し側は config 辞書から答えを再導出する代わりに、 メトリックに何を保存するか尋ねられるようになった。
  • SimplePipeline は、高コスト要素(DataFitArrayDataFitValidation)を 2 つ以上含む config を拒否するクライアント側 バリデーターを備えた新しい Pipeline サブクラスであり、サーバー側の ガードレールを反映している。
修正
  • interactive_preprocessing は、目的関数のオプションで渡されたとき、 スキーマレベルで拒否されるようになり、ランタイムでの禁止と一致し、 より明確な config 時のエラーを提供する。
改善
  • client.electrolyte.transport_from_dataset(dataset_id, forms=, columns=) は、材料プロパティのデータセットを濃度依存の輸送関数の pybamm.ParameterValues に変換し、iws.direct_entries.DirectEntry(parameters=...) にそのまま渡せるようにする。プロパティごとに 2 種類の関数形式が サポートされる: 表形式の pybamm.Interpolant(デフォルト)と、 Landesfeind–Gasteiger の等温式 y = A·exp(B·c)ln y 上の 最小二乗)であり、後者は測定された最低濃度を下回っても正で有限の ままなので、電解液が枯渇する高レート DFN ソルブが IDA_ERR_FAIL に ぶつからない。
  • Quantity のコンストラクターは PyBaMM スタイルの単位文字列を受け付け、 入力時に正規化するようになったため、PyBaMM パラメータセットから コピーされた値が、単位を手動で書き換えることなくセルスキーマに 出入りしてラウンドトリップする。
  • JobClient.get_parameter_trace(job_id) は、最適化ジョブからの パラメータ評価トレースを、検査または下流のプロット向けに DataFrame として返す。
  • client.ecm(上記で紹介)は新しい ECM サブクライアントである。
修正
  • POST および PATCH 呼び出しは、GET ですでに使用されているのと同じ 上限付きバックオフポリシーで、一時的な接続切断時にリトライするように なり、不安定な回線に対する長時間のアップロード中に表面化していた 偽の ConnectionResetError を取り除く。
修正
  • 符号なしの混合モード符号規約による定電流放電セグメントが、ステップ 方向を誤ってラベル付けしなくなり、対応する CC 放電分類器が parquet のラウンドトリップで符号を反転させなくなった。
改善
  • SIGN(...) またはステップ時間の区分電流式を持つ Arbin プロトコルが、 正しくパースされ、期待されるステップ計画を出力するようになった; 以前のパーサーは条件式に対して汎用的な構文エラーで失敗していた。
  • human_readable_protocol(...) は、ドライブサイクルステップを、 インラインで展開する代わりに、シミュレーターが他の箇所で使うのと 同じ短縮記法でレンダリングする。
修正
  • 一時停止および終了の停止理由が、ソルバーの失敗として扱われる代わりに、 ユーザーが修正可能なインラインエラーとして表面化するようになった。
改善
  • parameterize スキルに、current-driven フィットテンプレートとフルセル OCV テンプレートが追加され、それぞれに目的関数/コストの意思決定ツリーが 付属するため、エージェントは入力データセットを、毎回選択を再導出する ことなく適切な開始構成にルーティングできる。
  • 新しい electrolyte-transport SDK スキルが、 client.electrolyte.transport_from_dataset(...) ワークフローを ドキュメント化する。interpolant と Landesfeind 指数のトレードオフ、 DirectEntry 統合パターンを含む。
  • 新しい ecm-fitting SDK スキルが、3 つの ECM 入力モード(example、 file、measurements)と save-to-project フローを順を追って案内する。
  • parameterize スキルが、component/material モデルと、material → cells の逆引きを説明するようになったため、エージェントは材料を編集する 前に、どのセルスペックがその材料を参照しているかを見つけられる。