Skip to main content

Why was my text left unchanged?

Leaving text unchanged is a valid decoding path. Premove ITN selects a replacement only when its score beats KEEP while remaining compatible with the other selected edits.

Why is a temporal span annotated but unresolved?

Temporal resolution is conservative. Relative dates and missing-year dates need a caller-supplied NormalizationContext(reference_datetime=...). Ambiguous numeric dates also need date_order. Invalid calendar dates and weekday contradictions remain unresolved instead of being guessed. The runtime never discovers the current clock, timezone, or locale. Pass the complete context for the call:
See the Python API for DateOrder and per-call context replacement semantics.

Why can Premove ITN not produce a specific format?

The scorer can select only outputs generated by the deterministic Rust layer. Check Supported forms and the exhaustive Rust candidate coverage.

Why is the first request slow?

The first request can include a model download and model initialization. These are separate from warm inference. Load one instance during service startup and reuse it. See Deployment.

Why is the first download about 1.6 GB?

Premove ITN uses a 435.6-million-parameter DeBERTa-v3-large contextual scorer. Hugging Face caches the pinned model files after the first download.

How do I update an existing installation?

Upgrade the Python package explicitly:
The new package selects its matching pinned model revision on the next PremoveITN.from_pretrained() call. The new snapshot is downloaded only when it is not cached; older release snapshots remain available for pinned use.

Does Premove ITN work with Deepgram, AssemblyAI, or Whisper?

Premove ITN consumes transcript text and does not depend on an ASR provider. Pass the provider’s transcript string to normalize().

Why did device selection fail?

An explicit mps or cuda selection fails when that backend is unavailable. Use device="auto" for automatic selection or choose cpu. An exposed device option is not necessarily a validated release platform; see Platform support.

Why was a long input rejected?

When text has normalization candidates, an input longer than 512 DeBERTa encoder tokens is rejected instead of being silently truncated. Text with no candidates returns unchanged before tokenization. Split long material at transcript or sentence boundaries.