Skip to main content
June 29, 2026
並列データフィット向けの再構築された実行エンジン、名前ベースの測定ルックアップ、Arbin サブスケジュール/ループサポート、より明確なモデルおよび重複エラー

データフィット向けに再構築された実行エンジン

パイプラインの並列化レイヤーが専用の実行エンジンとして再構築された。 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 のユニーク制約違反のキャッチオールおよびすべての 挿入サイトでのパスごとの変換の両方を介するため、重複作成の 試みがオンコールにページングしなくなった。
改善
  • 最適化の「テンプレートとして保存」が、最適化の保存済み設定を テンプレートに直接コピーする新しい POST /optimization_templates/from-optimization エンドポイント 経由で、サーバー側でテンプレートをビルドするようになった。
修正
  • 完了した検証/データフィットの結果が、ペアになっているプロットの 片方について散発的に「プロットデータの読み込みに失敗しました」 を表示することがなくなった。ジョブのメタデータは実行中にその場で 書き換えられる(チェックポイント、続いて検証プロット設定を追加 する最終書き込み)が、プロセス内のメタデータキャッシュは完了後 のメタデータが不変であると仮定していた;現在は古いエントリを 自己修復し、ジョブごとのストレージブロブは no-cache で書き込まれる ため、古い早期書き込みが勝つことはなくなった。
  • 遅延 DataLoader として渡された CycleAgeing 実験 (experiment="from data")が、db: 測定参照をサーバー側で 解決するようになり、認証情報なしのフィットワーカーまで生き残って そこで失敗することがなくなった。
改善
  • 多変数の目的に適用された裸の要素単位コスト (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)シリアライズしかできなかった。
改善
  • client.resolve_measurementparameterized_model.create_or_get(両方とも上記で導入)、 および、モデルの保存された構成を検査するための Model.config
  • 素の pandas/polars DataFrame をスキーマ data フィールド (目的 data_inputOCPDataInterpolant.data、Arrhenius 計算の data)に渡すと、シリアライズ時に正しく自動ラップ されるようになり、不透明な「Required field ‘data’ missing」で サーバー側検証に失敗することがなくなった。
改善
  • Arbin プロトコルがサブスケジュール(参照される .subsdx が 登録され再帰的にパースされる UCP サブルーチンにマッピング)、 カウンタループ温度アドインをサポートするように なったため、これまでアップロード時に「Unsupported step type: SubSchedule」でクラッシュしていたスケジュールがパースされ、 エンドツーエンドでシミュレートされるようになった。
修正
  • BioLogic .mps シミュレーションの修正: ループカウンタが 1 つずれていた問題は解消された(EC-Lab の ctrl_repeat は 最初のパスをカウントしないため、ループは現在 ctrl_repeat + 1 回実行される)、加えて BCD/EIS サポートとドライブサイクルの 修正があり、いずれも修正前に報告された設定ファイルに対して 再現された。
  • Protocol Simulator とパイプラインライブラリにおけるユーザーが 修正可能なプロトコルおよび設定エラーが、汎用的な ValueError / RuntimeError ではなく、特定のドメインエラータイプ (ProtocolConfigurationErrorUserConfigurationError)を 発生させるようになり、オンコールへのページングではなく ユーザーに表面化するようになった。
改善
  • process-data リーダーの注意点がドキュメント化された: マルチシート Neware BTSDA .xlsx ファイルに対して record シートを選択すること、そして電流単位の取り扱い — ワンコール の read.time_series_and_steps エントリポイントと並んで。