Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions docs/perf-model/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -1398,12 +1398,16 @@ work as before in this release. The next release removes them.
| `engine.estimation_mode` | `auto` | `x` | `-` | Deprecated; use [`engine.ais_perf_model`](#unified-perf-model-input). `auto`, `op_level`, `fpm_interpolation`, `fpm_regression`, or `fpm_learned`. Regression and learned roles are priced per iteration (see [engine replay timing](#engine-replay-timing)). |
| `engine.workers.<role>.timing.estimation_mode` | `null` | `x` | `-` | Deprecated; use [`engine.ais_perf_model`](#unified-perf-model-input). Optional role override using the same five modes; omission inherits the global selection. |
| `engine.workers.<role>.timing.type` | `default` | `x` | `-` | `default`, `fixed`, or `polynomial`. |
| `engine.workers.<role>.timing.prefill_ms` | `null` | `x` | `-` | Nonnegative and required for `fixed` timing. |
| `engine.workers.<role>.timing.decode_ms` | `null` | `x` | `-` | Nonnegative and required for `fixed` timing. |
| `engine.workers.<role>.timing.prefill_ms` | `null` | `x` | `-` | Finite, nonnegative and required for `fixed` timing. |
| `engine.workers.<role>.timing.decode_ms` | `null` | `x` | `-` | Finite, nonnegative and required for `fixed` timing. |
| `engine.workers.<role>.timing.forward_model` | `op_level` | `x` | `-` | Deprecated; use [`engine.ais_perf_model`](#unified-perf-model-input). `op_level` or `fpm`; `default` timing only. `fpm` replays whole-forward (FPM) latency measured for the role's exact model, hardware, backend version, parallel shape and quantization, and fails closed when no such cell exists. |
| `engine.workers.<role>.timing.fpm_parquet_path` | `null` | `x` | `-` | Deprecated; use [`engine.ais_perf_model`](#unified-perf-model-input). External FPM parquet for `forward_model: fpm`; the adjacent same-stem `.metadata.json` sidecar is required. Relative paths are anchored to the working directory when the engine is constructed. Preserved per role in recommendations, candidate YAML, and ordinary prefill/decode companions of AFD roles. |
| `engine.workers.<role>.timing.estimator_config.state_snapshot` | `null` | `x` | `-` | Deprecated; use [`engine.ais_perf_model`](#unified-perf-model-input). `recommend`: `{path, sha256}` of a calibrated snapshot; the role takes its estimator and engine identity from it. See [snapshot roles](#recommending-with-a-calibrated-snapshot). `predict` requires the complete saved configuration, as for any `state_snapshot`. |

Fixed timing accepts zero for either phase. Nonfinite values (infinity or NaN)
are configuration errors, rejected before prediction output is prepared, including
when `--overwrite` is used.

AFD replay prices every decode pass at its actual batch, context length and
MTP verification width. The former `estimator_config.afd.frozen_decode_identity`
control and saved pricing identity have been removed. Configurations and saved
Expand Down
4 changes: 2 additions & 2 deletions python/aisim/src/aisim/config/engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -501,8 +501,8 @@ def _preserve_legacy_estimator_selection(cls, value):
value.setdefault("fallback_policy", "deny")
return value

prefill_ms: float | None = Field(default=None, ge=0.0)
decode_ms: float | None = Field(default=None, ge=0.0)
prefill_ms: float | None = Field(default=None, ge=0.0, allow_inf_nan=False)
decode_ms: float | None = Field(default=None, ge=0.0, allow_inf_nan=False)
Comment thread
Harrilee marked this conversation as resolved.
Resolved

@model_validator(mode="after")
def _validate_timing(self) -> TimingConfig:
Expand Down
Loading