InertialAI

Chronicle.

A foundation model that reads text and time-series as a single language — finetune it on your domain data and deploy it as a private endpoint.

“pump A-12 · high vibration after maintenance”TEXTTIME-SERIESONE SEQUENCEpumpvibhighforecastquantile fanclassifyoutput.labelregressoutput.valuegenerateoutput.text
text tokens + series patches → one sequence → any objective
Parameters
325M
Text tokens
138B
TS datapoints
384B
Context
4096

One model, both languages.

Your infrastructure generates text and time-series simultaneously: sensor streams beside maintenance logs, market data beside news, vitals beside clinical notes. Traditional approaches stitch separate models together and lose context at the seams.

Chronicle projects continuous sensor data into the same vector space as language tokens, so one sequence carries both — and the model reasons about physical systems with the semantic depth of an LLM.

The record shape picks the objective.

One dataset format, four things a finetuned Chronicle can become. Whatever your records' output field holds is what your model learns to produce.

Forecast

Quantile forecasts of your signal's future, served as a full uncertainty fan.

"output": {"series": [412, 407, …]}

Classify

Fault types, regimes, activity states — any label your records carry.

"output": {"label": "bearing_wear"}

Regress

Continuous targets read out of the signal: efficiency, quality, remaining life.

"output": {"value": 87.4}

Generate

Written summaries and reports conditioned on the signal and its context.

"output": {"text": "Pump A-12 shows…"}

Yours in three calls.

Train on your records, read the before/after eval, and query your model by name. Training from $5, refunded automatically if the tuned model doesn't win.

See pricing · Finetuning quickstart

pythonchronicle
from inertialai import InertialAI

client = InertialAI(api_key="iai_...")

run = client.fine_tunes.create(
    model="chronicle",
    training_file="pump_sensor_windows.jsonl",
)

print(run.eval_report.relative_improvement)   # e.g. +0.33 vs the frozen base

endpoint = client.endpoints.create(job_id=run.id, name="pump-fault-detector")

result = client.endpoints.predict(
    endpoint="pump-fault-detector",
    input={
        "series": {"values": [0.42, 1.87, 0.95, 2.31]},
        "text": "pump A-12, high vibration after maintenance",
    },
)

Small model, both benchmarks.

Trained on a mix of text and time-series, Chronicle holds competitive performance in both modalities at 325M parameters.

Language Understanding

Despite training on only 138B text tokens, Chronicle holds its own on reasoning benchmarks.

BenchmarkChronicle (325M)Gemma 3 (270M)LFM-2 (350M)
Training Tokens138B6T10T
HellaSwag (0-shot)43.4%40.1%48.3%
PIQA (10-shot)69.5%67.6%69.8%
BoolQ (10-shot)56.5%51.7%57.2%
Winograd (0-shot)67.4%65.2%60.8%
Matches or exceeds models trained on 40x more text data.

Probabilistic Forecasting

CRPS across domains with varying context and output lengths. Lower is better.

DomainChronicleTFM v1TFM v2Naive
Web/CloudOps0.630.940.661.00
Energy (Grid Load)0.890.780.671.00
Transport0.640.590.501.00
Retail (Sales)0.480.420.421.00
Nature (Weather)0.720.410.351.00
Designed to be finetuned for downstream multi-modal applications.

See it read real signals.

How Chronicle handles complex, multi-modal tasks.

Predicting Cardiac Events

ECG waveform
clinical notes
Chronicle
cardiac event risk

Early detection of cardiac events in the ER requires analyzing two distinct data sources: continuous ECG waveforms from bedside monitors and unstructured clinical notes from triage. Standard approaches process these separately, missing critical correlations between physiological signals and patient history.

Chronicle jointly encodes the ECG time-series and clinical text into a shared representation. This allows the model to detect patterns like arrhythmias that coincide with reported symptoms of faintness. By understanding both modalities together, it achieves higher accuracy than single-modality baselines like Transformers and LSTMs.

ModelAUROC (Higher is Better)Performance Gap
Chronicle
0.934
-
Transformer0.891-4.6%
XGBoost0.862-7.7%
LSTM0.814-12.8%

Distributed through finetuning.

Proof on every run

Every finetune ends with a before/after eval against the frozen base on held-out data. If your model doesn't beat the base, the training fee refunds automatically.

Learns from little

Pretrained on hundreds of billions of signal points, Chronicle picks up your patterns with far fewer examples than training from scratch.

Your data stays yours

Isolated compute, per-customer storage, raw uploads deleted after training, hard-delete anytime. Never used to train our base models.