AWS Germany – Amazon Web Services in Deutschland

KI Made in Germany: Wie die Deutsche Bahn Chronos Modelle für präzise Zeitreihenprognosen nutzt

Dieser Beitrag wurde gemeinsam mit Kilian Zimmerer und Daniel Ringler von der Deutschen Bahn verfasst.

November 2025: Chronos-2 [EN] ist nun verfügbar. Dieser Beitrag wurde aktualisiert.

Jeden Tag befördert die Deutsche Bahn (DB) über 6,6 Millionen Fahrgäste durch Deutschland und benötigt dafür präzise Zeitreihenprognosen für eine Vielzahl von Anwendungsfällen. Die Erstellung genauer und differenzierter Prognosemodelle erforderte jedoch erhebliche Expertise und wochenlange Entwicklungszeit.

Dieser Beitrag zeigt, wie Chronos-Bolt [EN] – verfügbar über Amazon Bedrock Marketplace und Amazon SageMaker JumpStart [EN] in der AWS Region Frankfurt – präzise Zeitreihenprognosen mit minimalem Aufwand ermöglicht. Während herkömmliche Prognosemethoden in der Regel auf statistischen Modellen basieren, behandelt Chronos Zeitreihendaten als eine zu lernende Sprache. Chronos verwendet ein vortrainiertes Foundation Model (FM) um Prognosen zu erstellen – ähnlich wie LLMs (Large Language Models) Texte generieren. Chronos kann eingesetzt werden, um schneller genaue Vorhersagen zu erstellen und reduziert die Entwicklungszeit im Vergleich zu herkömmlichen Methoden erheblich.

Die Chronos Modelle sind Open-Source und wurden mehrheitlich von Forschern in Deutschland entwickelt.

Chronos: Die Sprache der Zeitreihen

Die Chronos-Modellfamilie basiert auf vortrainierten FMs und demonstriert damit neue Möglichkeiten für die Zeitreihenprognose. Im Gegensatz zu traditionellen Zeitreihen-Prognosemodellen, welche zunächst mit einem Datensatz trainiert werden müssen, kann Chronos ohne Vorbereitungschritte für Prognosen zu unbekannten Datensätzen eingesetzt werden. Das ursprüngliche Chronos-Modell wurde schnell zum am häufigsten heruntergeladenen Modell auf Hugging Face im Jahr 2024, was die starke Nachfrage nach FMs in der Zeitreihenprognose demonstriert.

Aufbauend auf diesem Erfolg haben wir Chronos-Bolt entwickelt, welches eine höhere Zero-Shot-Genauigkeit im Vergleich zu den ursprünglichen Chronos-Modellen bietet. Es bietet folgende Verbesserungen:

  • Bis zu 250-mal schnellere Inferenz
  • 20-mal effizienterer Speicherbedarf
  • CPU-Deployment-Unterstützung, wodurch Hosting-Kosten bis zu 10-mal günstiger werden

Im Oktober 2025 haben wir Chronos-2 veröffentlicht. Aufbauend auf Chronos-Bolt bietet die neue Modellfamilie einige neue Funktionen:

  • Multivariate Vorhersagen
  • Numerische und kategorische Kovariablen zur Verbesserung der Prognoseleistung
  • Vergrößerter maximaler Input-Kontext (8192) und Prognosehorizont (1024)

Sie können Chronos lokal installieren oder SageMaker Jumpstart sowie Amazon Bedrock Marketplace nutzen, um Chronos auf AWS zu hosten. Amazon Bedrock Marketplace ist eine Funktion in Amazon Bedrock, die es Entwicklern ermöglicht, eine breite Auswahl an spezialisierten FMs zu nutzen – zusätzlich zur vorselektierten Auswahl an On-Demand Modellen in Amazon Bedrock.

Die Herausforderung

Die Deutsche Bahn befördert jährlich über 1,8 Milliarden Fahrgäste im Fern- und Regionalverkehr und zählt damit zu den größten Bahnbetreibern weltweit. Seit mehr als einem Jahrzehnt treibt die Deutsche Bahn gemeinsam mit AWS Innovationen voran. AWS ist der primäre Cloud-Anbieter der Deutschen Bahn und strategischer Partner der DB Systel, einer hundertprozentigen Tochtergesellschaft der DB AG, die die Digitalisierung in allen Konzernunternehmen vorantreibt.

Bisher waren die Prognoseprozesse der Deutschen Bahn über die verschiedenen Teams hinweg sehr heterogen und erforderten für jeden neuen Anwendungsfall erheblichen Aufwand. Unterschiedliche Datenquellen machten den Einsatz mehrerer spezialisierter Prognosemethoden erforderlich, was zu kosten- und zeitintensivem manuellem Aufwand führte. Konzernweit identifizierte die Deutsche Bahn Dutzende verschiedene und unabhängig voneinander betriebende Prognoseprozesse. Für kleinere Teams war es schwer zu rechtfertigen, maßgeschneiderte Prognoselösungen für ihre spezifischen Bedürfnisse zu entwickeln.

So integriert und analysiert beispielsweise die Datenanalyseplattform für Personenbahnhöfe der DB InfraGO AG verschiedenste Datenquellen, von Wetterdaten und SAP-Instandhaltungsinformationen bis hin zu Videoanalysen. Angesichts der vielfältigen Daten waren spezifisch-entwickelte Prognosemodelle in der Regel nicht auf andere Datenquellen übertragbar.

Um Prognosefähigkeiten unternehmensweit zugänglich zu machen, benötigte die Deutsche Bahn einen effizienteren und skalierbaren Ansatz für vielfältige Prognoseszenarien. Mit Chronos zeigt die Deutsche Bahn, wie modernste Technologie unternehmensweite Prognoseprozesse transformieren kann.

Lösungsübersicht

Ein Team aus dem Skydeck Accelerator Programm der Deutschen Bahn, dem Innovationslabor der DB Systel, entwickelte in Zusammenarbeit mit der DB InfraGO AG ein Prognosesystem für Zeitreihen auf Basis der Chronos-Modelle. Dieses System bietet eine gesicherte interne API, die von Teams der Deutschen Bahn unternehmensweit für effiziente und einfach nutzbare Zeitreihenprognosen genutzt werden kann – ohne eigene Software entwickeln zu müssen.

Das folgende Diagramm zeigt eine vereinfachte Architektur, wie Chronos genutzt werden kann.

Ein Benutzer kann Zeitreihendaten an Amazon API Gateway schicken, welches als gesicherter Zugangspunkt für API-Aufrufe dient und Authentifizierung sowie Autorisierung übernimmt. Weitere Informationen zur Absicherung eines API-Endpunktes finden Sie unter Control and manage access to REST APIs in API Gateway [EN]. Anschließend wird eine serverlose AWS Lambda-Funktion genutzt, um Anfragen zu verarbeiten und an das Chronos-Modell für Inferenzen weiterzuleiten. Der schnellste Weg, ein Chronos-Modell zu hosten, ist über Amazon Bedrock Marketplace oder Amazon SageMaker Jumpstart. Für Testzwecke können Sie Chronos gegebenenfalls auch auf lokaler Hardware ausführen.

Ergebnisse und Ausblick

Die Deutsche Bahn testete das Prognosesystem an mehreren Anwendungsfällen, wie der Vorhersage tatsächlicher Kosten für Bauprojekte und der Prognose monatlicher Umsätze für Einzelhändler in Personenbahnhöfen. Die Implementierung mit Chronos-Modellen zeigte überzeugende Ergebnisse. Die folgende Tabelle fasst die erzielten Resultate zusammen. Im ersten Anwendungsfall ist erkennbar, dass Chronos-Modelle in Zero-Shot-Szenarien (d.h., das Modell hat die Daten zuvor nie gesehen) eine höhere Genauigkeit als etablierte statistische Methoden wie AutoARIMA und AutoETS erreichen können – obwohl diese Methoden spezifisch auf den Daten trainiert wurden. Zudem ist die Inferenzzeit von Chronos in beiden Anwendungsfällen bis zu 100-mal schneller. Wenn das Modell gefinetuned wird, übertrifft Chronos traditionelle Ansätze in beiden Szenarien. Weitere Details zum Finetuning von Chronos finden Sie unter Forecasting with Chronos – AutoGluon [EN].

. Modell Fehler (niedriger ist besser) Dauer Inferenz (Sekunden) Dauer Training (Sekunden)
DB Szenario 1 AutoArima 0.202 40 .
AutoETS 0.2 9.1 .
Chronos Bolt Small (Zero Shot) 0.195 0.4 .
Chronos Bolt Base (Zero Shot) 0.198 0.6 .
Chronos Bolt Small (Fine-Tuned) 0.181 0.4 650
Chronos Bolt Base (Fine-Tuned) 0.186 0.6 1328
DB Szenario 2 AutoArima 0.13 100 .
AutoETS 0.136 18 .
Chronos Bolt Small (Zero Shot) 0.197 0.7 .
Chronos Bolt Base (Zero Shot) 0.185 1.2 .
Chronos Bolt Small (Fine-Tuned) 0.134 0.7 1012
Chronos Bolt Base (Fine-Tuned) 0.127 1.2 1893

Der Fehler wurde in SMAPE gemessen. Das Finetuning wurde nach 10.000 Schritten gestoppt.

Basierend auf dem erfolgreichen Prototyp entwickelt die Deutsche Bahn einen unternehmensweiten Prognoseservice, der allen DB-Geschäftsbereichen zugänglich ist und verschiedene Prognoseszenarien unterstützt. Wichtig ist, dass dies die Nutzung von Prognosen in der gesamten Organisation demokratisiert. Bisher ressourcenbeschränkte Teams sind nun in der Lage, schnell und standardisiert ihre eigenen Prognosen zu erstellen.

Beispiel

Betrachten wir ein praktisches Beispiel für die Nutzung von Chronos-Bolt mit dem Amazon Bedrock Marketplace. Wir prognostizieren die Passagierkapazitätsauslastung an deutschen Fern- und Regionalbahnhöfen mithilfe öffentlich verfügbarer Daten.

Voraussetzungen

Für dieses Beispiel verwenden wir das AWS SDK für Python (Boto3), um mit Amazon Bedrock zu interagieren. Als Voraussetzungen müssen Sie die Python-Bibliotheken boto3, pandas und matplotlib installiert haben. Konfigurieren Sie außerdem eine Verbindung zu einem AWS-Account, sodass Boto3 Amazon Bedrock nutzen kann. Weitere Informationen zur Einrichtung von Boto3 finden Sie unter Quickstart – Boto3 [EN]. Wenn Sie Python in einem Amazon SageMaker-Notebook verwenden, sind die erforderlichen Pakete bereits installiert.

Passagierkapazität prognostizieren

Zunächst laden wir ein Datenbeispiel mit historischer Passagierkapazitätsauslastung herunter. Für dieses Beispiel konzentrieren wir uns auf Bahnhof 239.

import pandas as pd
# Load data
df = pd.read_csv(
"https://mobilithek.info/mdp-api/files/aux/573351169210855424/benchmark_personenauslastung_bahnhoefe_training.csv"
)
df_train_station = df[df["train_station"] == 239].reset_index(drop=True)

Als Nächstes nutzen wir Amazon Bedrock Marketplace um einen Chronos-Bolt Endpunkt zu starten. Dieser Endpunkt kann Anfragen mit Zeitreihendaten empfangen und daraufhin Prognosen zurückgeben.
Amazon Bedrock nimmt eine AWS Identity & Access Management (IAM)-Rolle an, um den Endpunkt bereitzustellen. Modifizieren Sie den folgenden Code, um auf ihre Rolle zu verweisen. Eine Anleitung zur Erstellung einer IAM-Ausführungsrolle finden Sie unter How to use SageMaker AI execution roles [EN]. Alternativ können Sie eine Rolle auch über die Amazon Bedrock Weboberfläche der AWS-Managementkonsole erstellen lassen.

import boto3
import time

def describe_endpoint(bedrock_client, endpoint_arn):
    return bedrock_client.get_marketplace_model_endpoint(endpointArn=endpoint_arn)["marketplaceModelEndpoint"]

def wait_for_endpoint(bedrock_client, endpoint_arn):
    endpoint = describe_endpoint(bedrock_client, endpoint_arn)
    while endpoint["endpointStatus"] in ["Creating", "Updating"]:
        print(
        f"Endpoint {endpoint_arn} status is still {endpoint['endpointStatus']}. "
        "Waiting 10 seconds before continuing..."
         )
        time.sleep(10)
        endpoint = describe_endpoint(bedrock_client, endpoint_arn)
    print(f"Endpoint status: {endpoint['status']}")

bedrock_client = boto3.client(service_name="bedrock")
region_name = bedrock_client.meta.region_name
executionRole = "arn:aws:iam::account-id:role/ExecutionRole" # Change to your role

# Deploy Endpoint
body = {
    "modelSourceIdentifier": f"arn:aws:sagemaker:{region_name}:aws:hub-content/SageMakerPublicHub/Model/autogluon-forecasting-chronos-bolt-base/2.0.7", # Check for updates
    "endpointConfig": {
        "sageMaker": {
        "initialInstanceCount": 1,
        "instanceType": "ml.m5.xlarge",
        "executionRole": executionRole,
        }
    },
    "endpointName": "brmp-chronos-endpoint",
    "acceptEula": True,
}
response = bedrock_client.create_marketplace_model_endpoint(**body)
endpoint_arn = response["marketplaceModelEndpoint"]["endpointArn"]
# Wait until the endpoint is created. This will take a few minutes.
wait_for_endpoint(bedrock_client, endpoint_arn)

Anschlißened übergeben wir dem Endpunkt die Zeitreihendaten zusammen mit Konfigurationsparametern wie Prognoselänge und Quantilstufen. Basierend auf diesen Eingaben berechnet und gibt der Endpunkt eine Prognose der zukünftigen Werte zurück.

import json
# Query endpoint
bedrock_runtime_client = boto3.client(service_name="bedrock-runtime")
body = json.dumps(
    {
        "inputs": [
            {"target": df_train_station["capacity"].values.tolist()},
        ],
        "parameters": {
        "prediction_length": 64,
        "quantile_levels": [0.1, 0.5, 0.9],
        }
    }
)
response = bedrock_runtime_client.invoke_model(modelId=endpoint_arn, body=body)
response_body = json.loads(response["body"].read())  

Jetzt können wir die von Chronos-Bolt generierten Prognosen visualisieren.

import matplotlib.pyplot as plt
# Plot forecast
forecast_index = range(len(df_train_station), len(df_train_station) + 64)
low = response_body["predictions"][0]["0.1"]
median = response_body["predictions"][0]["0.5"]
high = response_body["predictions"][0]["0.9"]

plt.figure(figsize=(8, 4))
plt.plot(df_train_station["capacity"], color="royalblue", label="historical data")
plt.plot(forecast_index, median, color="tomato", label="median forecast")
plt.fill_between(
    forecast_index,
    low,
    high,
    color="tomato",
    alpha=0.3,
    label="80% prediction interval",
)
plt.legend(loc='upper left')
plt.grid()
plt.show()

Die nachfolgende Grafik zeigt das Ergebnis.

Wie wir auf der rechten Seite des vorangehenden Diagramms in Rot sehen können, ist das Modell in der Lage, das Muster fortzuführen, welches wir im linken Teil der Darstellung (in Blau) erkennen können. Das Chronos-Modell prognostiziert einen steilen Rückgang gefolgt von zwei kleineren Spitzen. Es ist hervorzuheben, dass das Modell dieses Muster erfolgreich mittels Zero-Shot-Inferenz vorhergesagt hat, also ohne auf den Daten trainiert worden zu sein. Bezogen auf die ursprüngliche Prognoseaufgabe können wir interpretieren, dass diese bestimmte Bahnstation an Wochenenden unterausgelastet ist.

Löschen der Resourcen

Um Kosten zu vermeiden, können Sie den folgenden Code verwenden, um den Modell-Endpunkt wieder zu löschen:

from botocore.exceptions import ClientError

bedrock_client.delete_marketplace_model_endpoint(endpointArn=endpoint_arn)

# Confirm that endpoint is deleted
time.sleep(5)
try:
    endpoint = describe_endpoint(bedrock_client, endpoint_arn=endpoint_arn)
    print(endpoint["endpointStatus"])
except ClientError as err:
    assert err.response['Error']['Code'] =='ValidationException'
    print(f"Confirmed that endpoint {endpoint_arn} was deleted")
    print(err.response['Error'])

Fazit

Die Chronos-Modellfamilie, insbesondere das neue Chronos-Bolt-Modell, stellt einen bedeutenden Fortschritt dar, um präzise Zeitreihenprognosen zugänglicher zu machen. Ob Sie Nachfrage prognostizieren, Betriebsabläufe optimieren oder Ressourcenaufwand planen – die Chronos-Modelle sind universal einsetzbar. Anspruchsvolle Prognoselösungen können durch die einfachen Bereitstellungsoptionen mit Amazon Bedrock Marketplace und SageMaker JumpStart in Stunden statt Wochen implementiert werden und dabei state-of-the-art Genauigkeit erreichen.

Weitere Informationen zu Chronos finden Sie unter Chronos: Learning the Language of Time Series [EN].
Außerdem finden Sie im deutschsprachige AWS Podcast Cloud Horizonte eine Episode über Chronos: Die Sprache der Zeitreihen: Wie Foundation Models das Forecasting revolutionieren.


Über die Autoren

Simeon Brüggenjürgen ist Solutions Architect bei Amazon Web Services in München. Simeon hat die Deutsche Bahn bei diesem Projekt mit seinem Hintergrund in der Machine-Learning-Forschung unterstützt.

Daniel Ringler ist Software Engineer mit Schwerpunkt Machine Learning bei der DB Systel GmbH in Berlin. Neben seiner beruflichen Tätigkeit engagiert er sich ehrenamtlich als Organisator für PyData Berlin und trägt damit zur lokalen Data-Science- und Python-Community bei.

Kilian Zimmerer ist AI und DevOps Engineer bei der DB Systel GmbH in Berlin. Mit seiner Expertise in Machine Learning, Deep Learning und DevOps-Infrastrukturen gestaltet er die technische Vision von Projekten bei der Deutschen Bahn und führt sie erfolgreich zur Umsetzung.

Pedro Eduardo Mercado Lopez ist Applied Scientist bei Amazon Web Services und arbeitet dort an Zeitreihenprognosen für Personal- und Kapazitätsplanung mit Fokus auf hierarchischen Zeitreihen und Foundation Models. Er promovierte an der Universität des Saarlandes im Bereich Spectral Clustering für vorzeichenbehaftete und mehrschichtige Graphen.

Michael Bohlke-Schneider ist Applied Science Manager bei Amazon Web Services. Bei AWS arbeitet Michael an maschinellem Lernen und Vorhersagemodellen mit Schwerpunkt auf Foundation Models für strukturierte Daten und AutoML. Er promovierte an der Technischen Universität Berlin, wo er an der Vorhersage von Proteinstrukturen forschte.

Florian Saupe ist Principal Technical Product Manager bei AWS AI/ML Research und unterstützt dort Wissenschaftsteams wie die Graph Machine Learning Gruppe sowie Teams, die an skalierbarem verteilten Training, Inferenz und Resilienz arbeiten. Zuvor leitete Florian das technische Produktmanagement für automatisiertes Fahren bei Bosch, war Strategieberater bei McKinsey & Company und arbeitete als Wissenschaftler im Bereich Regelungstechnik und Robotik – einem Fachgebiet, in dem er promoviert hat.

John Liu verfügt über 15 Jahre Erfahrung als Produktmanager und 9 Jahre als Portfoliomanager. Bei AWS ist er Principal Product Manager für Amazon Bedrock. Zuvor war er Head of Product für AWS Web3 / Blockchain. Vor seiner Tätigkeit bei AWS hatte er verschiedene Führungspositionen im Produktbereich bei öffentlichen Blockchain‑Protokollen und FinTech‑Unternehmen inne und war zudem 9 Jahre als Portfoliomanager bei unterschiedlichen Hedge‑Fonds tätig.