データフィット向けに再構築された実行エンジン
パイプラインの並列化レイヤーが専用の実行エンジンとして再構築された。DataFit.fit はこのエンジン上の DataFit.run となり、
オプティマイザ(ask/tell)、点評価、マルチスタート調整、進捗
レポートを単一のエグゼキュータプロトコル一式(シリアル、
マルチプロセッシング、そしてバックエンドではウォームアクター
プール上の Ray)を通じて駆動する。古い distributed.py の Joblib
設定群とその num_workers / parallel スキーマフィールドは
廃止され、エンジン所有の並列化に置き換えられた。バックエンドの
データフィットジョブは、分類されたフェイラーのエラーマッピングと
世代ごとの進捗ストリーミングを備えた薄い datafit.run() ホスト
を通じて実行されるようになった。名前ベースの測定ルックアップ
client.resolve_measurement(cell_specification, cell_instance, measurement) は、人間が読める名前から measurement_id を解決し、
各レベルでサーバー側フィルタリングを行いながら spec → instance →
measurement の階層をたどる。スクリプトは ID を取得するためだけに、
3 つのリストエンドポイントを手動でたどって名前マッチングの
ボイラープレートを繰り返す必要がなくなった。
parameterized_model.create_or_get も追加され、他のセルリソースが
すでに持っていた再実行可能な「作成または解決」の挙動を
パラメータ化モデルに与える。モデルの失敗と重複に対するより明確なエラー
2 つの不透明な「予期しないエラーが発生しました」のケース — ユーザーが供給しなかったジオメトリをモデルセットアップが必要と するフィット、および離散化レシピのないカスタムモデル — が、 何が失敗したかを明示する明確なModelError として表面化する
ようになった。別途、すでに存在するリソースを作成しようとすると、
500 ではなく既存の ID 付きの 409 CONFLICT を返すようになり、
Postgres のユニーク制約違反のキャッチオールおよびすべての
挿入サイトでのパスごとの変換の両方を介するため、重複作成の
試みがオンコールにページングしなくなった。Studio
Studio
改善
- 最適化の「テンプレートとして保存」が、最適化の保存済み設定を
テンプレートに直接コピーする新しい
POST /optimization_templates/from-optimizationエンドポイント 経由で、サーバー側でテンプレートをビルドするようになった。
- 完了した検証/データフィットの結果が、ペアになっているプロットの 片方について散発的に「プロットデータの読み込みに失敗しました」 を表示することがなくなった。ジョブのメタデータは実行中にその場で 書き換えられる(チェックポイント、続いて検証プロット設定を追加 する最終書き込み)が、プロセス内のメタデータキャッシュは完了後 のメタデータが不変であると仮定していた;現在は古いエントリを 自己修復し、ジョブごとのストレージブロブは no-cache で書き込まれる ため、古い早期書き込みが勝つことはなくなった。
- 遅延
DataLoaderとして渡されたCycleAgeing実験 (experiment="from data")が、db:測定参照をサーバー側で 解決するようになり、認証情報なしのフィットワーカーまで生き残って そこで失敗することがなくなった。
Pipeline
Pipeline
改善
- 多変数の目的に適用された裸の要素単位コスト
(
SSE/MSE/RMSE/MAE/Max)が、変数の長さが一致しない 場合 — 例えばモデル軸 dQ/dV 変数とデータ軸電圧変数の対比 — に警告するようになり、無意味な残差に静かにブロードキャスト されることがなくなった。 - すべての 1 次元 interpolant 計算が
"pchip"補間器 (単調 3 次)を受け付けるようになった。これは、ハーフセル GITT の パルスごと拡散率のような疎で桁が変化するD(sto)テーブルに 対する正しい選択である。
- MSMR ハーフセルのロジスティック値とその導関数が、指数が常に ≤ 0 となる単一の種ごとに安定化されたヘルパーを通じて評価される ようになり、決してオーバーフローしなくなった。
- オブジェクトパス(
iwp.Pipeline.from_schema(...).run())が、 目的オプション内のシリアライズされたモデル辞書を config/server パスと同じ方法で再構築するようになり、両パスが一致するように なった。 - シリアライズされた geometry/mesh を持つカスタムモデルが、
標準ライブラリの
pickle/生のマルチプロセッシング マルチスタートを生き残るようになった — 以前の匿名サブクラス 方式では値による(cloudpickle/Ray)シリアライズしかできなかった。
Python API
Python API
改善
client.resolve_measurementとparameterized_model.create_or_get(両方とも上記で導入)、 および、モデルの保存された構成を検査するためのModel.config。- 素の pandas/polars DataFrame をスキーマ
dataフィールド (目的data_input、OCPDataInterpolant.data、Arrhenius 計算のdata)に渡すと、シリアライズ時に正しく自動ラップ されるようになり、不透明な「Required field ‘data’ missing」で サーバー側検証に失敗することがなくなった。
Protocol Simulator
Protocol Simulator
改善
- Arbin プロトコルがサブスケジュール(参照される
.subsdxが 登録され再帰的にパースされる UCP サブルーチンにマッピング)、 カウンタループ、温度アドインをサポートするように なったため、これまでアップロード時に「Unsupported step type: SubSchedule」でクラッシュしていたスケジュールがパースされ、 エンドツーエンドでシミュレートされるようになった。
- BioLogic
.mpsシミュレーションの修正: ループカウンタが 1 つずれていた問題は解消された(EC-Lab のctrl_repeatは 最初のパスをカウントしないため、ループは現在ctrl_repeat + 1回実行される)、加えて BCD/EIS サポートとドライブサイクルの 修正があり、いずれも修正前に報告された設定ファイルに対して 再現された。 - Protocol Simulator とパイプラインライブラリにおけるユーザーが
修正可能なプロトコルおよび設定エラーが、汎用的な
ValueError/RuntimeErrorではなく、特定のドメインエラータイプ (ProtocolConfigurationError、UserConfigurationError)を 発生させるようになり、オンコールへのページングではなく ユーザーに表面化するようになった。
Data Processing
Data Processing
改善
process-dataリーダーの注意点がドキュメント化された: マルチシート Neware BTSDA.xlsxファイルに対してrecordシートを選択すること、そして電流単位の取り扱い — ワンコール のread.time_series_and_stepsエントリポイントと並んで。