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.
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.
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.
| Benchmark | Chronicle (325M) | Gemma 3 (270M) | LFM-2 (350M) |
|---|---|---|---|
| Training Tokens | 138B | 6T | 10T |
| 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.
| Domain | Chronicle | TFM v1 | TFM v2 | Naive |
|---|---|---|---|---|
| Web/CloudOps | 0.63 | 0.94 | 0.66 | 1.00 |
| Energy (Grid Load) | 0.89 | 0.78 | 0.67 | 1.00 |
| Transport | 0.64 | 0.59 | 0.50 | 1.00 |
| Retail (Sales) | 0.48 | 0.42 | 0.42 | 1.00 |
| Nature (Weather) | 0.72 | 0.41 | 0.35 | 1.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
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.
| Model | AUROC (Higher is Better) | Performance Gap |
|---|---|---|
| Chronicle | 0.934 | - |
| Transformer | 0.891 | -4.6% |
| XGBoost | 0.862 | -7.7% |
| LSTM | 0.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.