⌘K によるグローバル検索、Bayesian / TuRBO / SOBER オプティマイザ、バックグラウンドでの ECM パラメータ化、ファイル測定のインライン画像プレビュー
プラットフォーム全体を横断するグローバル検索
⌘K ダイアログがプロジェクト、セル仕様、セルインスタンス、
セル測定、パイプライン、データフィット、シミュレーション、最適化、
パラメータ化モデルを横断して検索できるようになった — グループ化され、
ディープリンクされた結果と、エンティティタイプごとのチップフィルター付き。
セル測定とインスタンスはサーバー側の全文検索でインデックス化されているため、
これらいずれかの画面の部分的な名前や ID から、1 回のキー入力で
正しい詳細ページに到達する。ダイアログはサーバー側でチップフィルタリングと
ページングを行える。パラメータ推定のための Bayesian Optimization、TuRBO、SOBER
3 つのサロゲートベースのオプティマイザがionworkspipeline で提供される:BayesianOptimization— 制約付き問題向けの実行可能性で重み付けされた 獲得関数を備えた、(対数)期待改善量による逐次またはバッチ BO。TuRBO— 信頼領域 BO。Thompson サンプリングと制約処理をサポート。SOBER— Bayesian quadrature によるバッチ BO。
BayesianOptimizationOptions、
TuRBOOptions、SOBEROptions スキーマがあり、ドキュメントには
Nelder–Mead、CMA-ES、差分進化と比較していつそれらを選ぶべきかを
説明する新しい手法選択ガイドが追加された。ECM パラメータ化がバックグラウンドジョブとして実行
認証済みの ECM フィットは、10–60 秒間リクエストをブロックする 代わりに、バックグラウンドジョブとして実行されるようになった。POST /ecm/fit-from-file と POST /ecm/fit-from-measurements は
202 {job_id, status} を返す;公開デモの POST /ecm/fit は同期のまま
なので、未認証のサンプルフィットは引き続き 1 ラウンドトリップで完了する。
新しい client.ecm Python SDK サブクライアントは 3 つの入力モードすべてを
網羅する — fit_from_example(同期)、fit_from_file と
fit_from_measurements(wait_for_completion(...) でポーリングする
EcmFitJob を返す)、さらに save_to_project と detect_and_read —
そして新しい ecm-fitting エージェントスキルが、モードの選択、フィットの
実行、パラメータ化モデルとしての永続化を、エージェントに順を追って案内する。
ユーザーデータ起因のソルバーエラーは、BadRequestError /
CONFIGURATION_ERROR として表面化するようになった。ファイル測定のインライン画像プレビュー
ファイル型のセル測定は以前は「Visualization not yet supported」という プレースホルダーを表示していた;測定の詳細ページは、添付された すべてのファイルを取得し、画像をインライン表示し(列いっぱいに広がり、 クリックで拡大できるライトボックス、Esc または外側のクリックで閉じる)、 あらゆるファイルタイプにダウンロードリンクを提供するようになった。Studio
Studio
改善
- 最適化ページの読み込みが軽量化され、最適化一覧ページは行ごとに 常時接続を維持する代わりに、軽量なステータス情報を定期的に ポーリングするようになった。パラメータ化モデルセレクターも、 効率的に id でフェッチするようになった。
- プロジェクトスコープのパラメータ化モデル一覧により、 パラメータ化モデルピッカーが現在のプロジェクトに属するモデルだけに 絞り込めるようになった。
- 内部のインデックス用フィールドがオブジェクトフィールドパネルで 非表示になり、詳細ビューが内部の実装詳細を露出しなくなった。
- データフィットの結果は、結果ペイロードに
validation_not_supportedが 設定されている場合、検証タブを空白のままにしたりページを失敗させたり する代わりに、インラインアラートとして「Validation not supported」を 表示するようになった。 - 非エラーの停止条件で一時停止または終了したプロトコルファイルは、 ユーザーが修正可能なインラインメッセージをレンダリングするようになった; 以前はルートが汎用的な 500 を返していた。
- バックエンドの一般化されたエラーマッピングにより、内部で発生した あらゆるプレーンなエラーが構造化されたドメインエラー応答に変換される ようになった。
- Universal Cycler Protocol シミュレーターのページが、サポート対象の サイクラープロトコル形式として Maccor、Bitrode、BioLogic に加えて Arbin と Novonix を一覧表示するようになり、サポート対象プロトコルの 記述は両方の UCP ページで共有されるため、2 つは同期し続ける。
- データグリッドのカードが固有の幅を主張するようになり、親コンテナに 明示的な幅がない場合の崩れたグリッドレイアウトを修正した。
- 測定ファイルのストレージへのアップロードは、一時的なエラー時に 指数バックオフ(上限あり)でリトライし、試行回数を使い切ったときは 構造化された 502 を返すようになった。
- パイプラインの一覧と詳細のフェッチは、リクエストの前後関係を 正しく扱うようになったため、低速なリクエスト中にパイプライン間を 移動しても、ビューが古いパイプラインに戻ることはない。パイプライン 要素のキャッシュは、再フェッチ時にキャッシュ全体を消去するのでは なく、関連エントリをマージするようになり、パイプライン詳細の 定期更新は、前のパイプライン用の再フェッチが発火してしまう古い レースに対するガードを備えた。
- 親エンティティが変わったとき、測定一覧はレンダー時にページ 1 にリセット されるようになり、新しいリクエスト処理中に表示されていた古い行の ちらつきを取り除いた。
- ハードリフレッシュ時の組織コンテキスト解決が決定的になった — 起動時の順序が、永続化された選択が復元される前に、アクティブ プロジェクトが一覧の最初のプロジェクトに一時的に戻っていた競合を 回避する。
- ダークモードが、選択、フォーカス、ホバーの色を Ionworks のブランドピンクから 導出するようになったため、フォーカスされた行、選択されたナビゲーション項目、 ホバーされたボタンが、暗い背景に対して濁って見えなくなった。
- 検証プロットの軸タイトルが正しくレンダリングされるようになった。
- セル詳細ページのセルカードが、パンくずと重複する冗長なメタデータ フィールドを表示しなくなった。
- すべての測定ページが、コールド/直接ナビゲーションでセルスペックを 読み込むようになり、他のページから移動してきたときだけでなく、初回 描画時に spec-name および spec-anode/cathode 列が表示されるようになった。
Pipeline
Pipeline
改善
CycleAgeingは実験が指定されたときに統合されたモデルモードを デフォルトとするようになった。サイクリング実験は同じ少数のステップを 何度も繰り返すため、単一の切り替えモデルは、ステップごとに 1 モデルを 使う場合と比べてビルドとソルブのコストを圧縮する;これにより、サイクル エージングフィットの大幅な高速化となる。PyBaMM 26.6.1.0 に固定。CycleAgeingはexperiment="from data"を受け付けるようになり、 ユーザーが再記述する必要なく、読み込んだデータセットからサイクリング 実験を構築する。CycleAgeingは、要求されたメトリックのすべてが最初/最後のサイクル の量しか必要としない場合、中間サイクルの保存を自動的にスキップする ようになった。CycleAgeingの保存対象サイクルは、呼び出し側が明示的に渡さない 場合、要求されたメトリックツリーから自動的に導出されるようになった — 下流のメトリックが実際に消費するサイクルだけが保存される。ElectrodeBalancingは既存の容量出力に加えてdQ/dV曲線を出力する ようになり、重み付きコストを dQ/dV のピーク構造に対して直接 計算できるようになった。Timeメトリックが時刻のベクトルを受け付け、それぞれでメトリックを 報告するようになり、数個のサンプル点を必要としていた呼び出し側での 以前の 1 回 1 スカラーのループを置き換える。- 汎用的なソルバーオプションがすべての目的関数を経由して渡されるように なり、先週のコンストラクター側のソルバーオプションを補完する。
SimplePipelineは、高コスト要素(DataFit、ArrayDataFit、Validation)を 2 つ以上含む config を拒否するクライアント側 バリデーターを備えた新しいPipelineサブクラスであり、サーバー側の ガードレールを反映している。
interactive_preprocessingは、目的関数のオプションで渡されたとき、 スキーマレベルで拒否されるようになり、ランタイムでの禁止と一致し、 より明確な config 時のエラーを提供する。
Python API
Python API
改善
client.electrolyte.transport_from_dataset(dataset_id, forms=, columns=)は、材料プロパティのデータセットを濃度依存の輸送関数のpybamm.ParameterValuesに変換し、iws.direct_entries.DirectEntry(parameters=...)にそのまま渡せるようにする。プロパティごとに 2 種類の関数形式が サポートされる: 表形式のpybamm.Interpolant(デフォルト)と、 Landesfeind–Gasteiger の等温式であり、後者は測定された最低濃度を 下回っても正で有限のままなので、電解液が枯渇する高レート DFN ソルブが 失敗にぶつからない。Quantityのコンストラクターは PyBaMM スタイルの単位文字列を受け付け、 入力時に正規化するようになったため、PyBaMM パラメータセットから コピーされた値が、単位を手動で書き換えることなくセルスキーマに 出入りしてラウンドトリップする。JobClient.get_parameter_trace(job_id)は、最適化ジョブからの パラメータ評価トレースを、検査または下流のプロット向けに DataFrame として返す。client.ecm(上記で紹介)は新しい ECM サブクライアントである。
- POST および PATCH 呼び出しは、GET ですでに使用されているのと同じ 上限付きバックオフポリシーで、一時的な接続切断時にリトライするように なり、不安定な回線に対する長時間のアップロード中に表面化していた 偽の接続エラーを取り除く。
Data Processing
Data Processing
修正
- 符号なしの混合モード符号規約による定電流放電セグメントが、ステップ 方向を誤ってラベル付けしなくなり、対応する CC 放電分類器が parquet のラウンドトリップで符号を反転させなくなった。
Protocol Simulator
Protocol Simulator
改善
SIGN(...)またはステップ時間の区分電流式を持つ Arbin プロトコルが、 正しくパースされ、期待されるステップ計画を出力するようになった; 以前のパーサーは条件式に対して汎用的な構文エラーで失敗していた。human_readable_protocol(...)は、ドライブサイクルステップを、 インラインで展開する代わりに、シミュレーターが他の箇所で使うのと 同じ短縮記法でレンダリングする。
- 一時停止および終了の停止理由が、ソルバーの失敗として扱われる代わりに、 ユーザーが修正可能なインラインエラーとして表面化するようになった。
Skills
Skills
改善
parameterizeスキルに、current-driven フィットテンプレートとフルセル OCV テンプレートが追加され、それぞれに目的関数/コストの意思決定ツリーが 付属するため、エージェントは入力データセットを、毎回選択を再導出する ことなく適切な開始構成にルーティングできる。- 新しい
electrolyte-transportSDK スキルが、client.electrolyte.transport_from_dataset(...)ワークフローを ドキュメント化する。interpolant と Landesfeind 指数のトレードオフ、DirectEntry統合パターンを含む。 - 新しい
ecm-fittingSDK スキルが、3 つの ECM 入力モード(example、 file、measurements)と save-to-project フローを順を追って案内する。 parameterizeスキルが、component/material モデルと、material → cells の逆引きを説明するようになったため、エージェントは材料を編集する 前に、どのセルスペックがその材料を参照しているかを見つけられる。