1A · Linux / macOS 쉘
python3 -m venv .venv source .venv/bin/activate python -m pip install --upgrade pip python -m pip install git+https://github.com/mistralai/timestral.git
MISTRAL AI · 시계열 예측
Mistral AI의 첫 번째 시계열 모델 계열은 채팅 응답을 생성하는 대신 수치적 관찰을 예측합니다. 5M부터 209M 매개변수까지 4가지 크기가 CPU 또는 GPU에서 제로샷 확률 예측을 지원합니다.
5M으로 시작하여 입력 및 출력 형식을 학습한 다음 보유한 데이터에서 더 큰 체크포인트를 검증하세요. 아래 권장 사항은 시작점이며 워크로드에 대해 측정된 순위가 아닙니다.
| 모델 | FP32 가중치 파일 | 어디서부터 시작해야 할까요? |
|---|---|---|
| Timestral-5M | 21 MB | API를 배우거나 적당한 CPU 작업량을 살펴보세요. |
| Timestral-28M | 111 MB | 설치 공간을 작게 유지하면서 더 큰 모델을 평가합니다. |
| Timestral-123M | 490 MB | 리소스 사용과 정확성 사이의 중간 지점을 테스트합니다. |
| Timestral-209M | 837 MB | 아래 비교의 주요 체크포인트를 평가해 보세요. |
공유 지원: 일변량 또는 다변량 목표, 과거 전용 및 알려진 미래 공변량, 21개 출력 분위수. 컨텍스트는 텍스트 토큰이 아닌 32,768개의 과거 시간 단계로 제한됩니다. 하나의 예측 블록은 최대 1,024개의 미래 단계를 포함합니다. 더 긴 지평선은 예측된 중앙값을 후속 블록에 다시 공급합니다.
파일 크기는 다운로드/저장 수치입니다. 런타임 RAM 또는 VRAM은 텐서 버퍼, 컨텍스트 길이, 배치 크기 및 변수 수에 따라 달라집니다. 최소 메모리 보장은 암시되지 않습니다.
게시된 디자인은 인과 패치 기반 Transformer입니다. 209M의 경우 모델 카드에는 24개의 레이어와 768차원 임베딩이 나열되어 있습니다. 아래 흐름은 훈련의 완전한 재구성이 아닌 추론을 설명합니다.
규칙적인 간격의 목표와 선택적 공변량을 제공합니다. NaN을 사용하여 누락된 관측값을 표시합니다.
값과 결측값 표시기가 함께 포함되어 시간 순서가 유지됩니다.
주의는 시간과 변수에 따른 역사와 관련이 있습니다. 공변량은 대상 행을 읽지 않고도 대상에 알릴 수 있습니다.
분리된 지평선 예측은 별도의 예측 토큰을 사용하여 인코딩된 컨텍스트를 읽고 정렬된 분위수를 생성합니다.
과거 공변량은 역사를 다룹니다. 알려진 미래 공변량은 계획된 운영 일정과 같은 요청된 예측 기간도 포함합니다. 미래 목표 관측치는 알려진 미래 공변량이 아닙니다. 범주형 입력은 숫자 범주 코드를 사용합니다. 라이브러리는 해당되는 경우 대상 인코딩을 처리합니다.
중앙값은 0.5 분위수입니다. 0.1 및 0.9 분위수는 명목상 중앙 80% 예측 구간을 형성하지만 향후 관측치의 80%가 이 구간에 속한다는 보장은 없습니다. 보류된 기간에 대한 교정을 확인합니다.
모델 카드에는 확인 날짜에 곧 제공될 기술 보고서가 계속 표시되어 있습니다. 여기의 아키텍처 세부정보는 README 및 모델 카드에서 가져온 것입니다. 공개되지 않은 교육 세부정보는 추론되지 않습니다.
Mistral은 사전 학습된 제로샷 예측 모델 중에서 출시 시 최고의 결과를 보고합니다. 이 표는 원래 모델 이름과 미터법 레이블을 사용하여 209M 모델 카드의 비교를 재현합니다. 라이브 리더보드가 아닌 날짜가 있는 스냅샷입니다.
| 벤치마크 · 측정항목 | Timestral-209M | t0-gamma | TimesFM-3 | Toto-2.0-2.5B | Chronos-2 |
|---|---|---|---|---|---|
| GIFT-Eval · MASE ↓ | 0.658 | 0.661 | 0.667 | 0.696 | 0.698 |
| GIFT-Eval · CRPS ↓ | 0.446 | 0.452 | 0.456 | 0.476 | 0.485 |
| TIME · MASE ↓ | 0.626 | 0.637 | 0.640 | 0.642 | 0.662 |
| TIME · CRPS ↓ | 0.522 | 0.534 | 0.536 | 0.539 | 0.556 |
| fev-bench · SQL skill score ↑ | 50.39 | 49.42 | 48.99 | 44.42 | 47.28 |
| fev-bench · MASE skill score ↑ | 39.49 | 37.99 | 37.82 | 32.54 | 35.50 |
소스 라벨 차이: 릴리스 기사에서는 GIFT-Eval 확률 차트 WQL 라벨을 지정하고, 모델 카드 테이블에서는 해당 행 CRPS 라벨을 지정합니다. 여기에 표시된 값에 대해 CRPS를 유지하며 두 레이블이 동일한 계산을 설명한다고 가정하지 않습니다. 화살표는 낮거나 높을수록 더 나은지 여부를 나타냅니다.
평균 절대 척도 오차는 절대 예측 오차를 순진한 기준 척도와 비교합니다. 낮을수록 좋습니다. 이러한 GIFT-Eval 및 TIME 수치는 정확한 예측의 백분율이 아닌 집계 결과입니다.
연속 순위 확률 점수는 관찰에 대한 예측 분포를 평가합니다. 낮을수록 좋습니다. 데이터 세트를 비교하기 전에 벤치마크 정의 및 집계를 검사하세요.
Scaled Quantile Loss 기술 점수는 참조 예측에 비해 개선 사항을 보고합니다. 높을수록 좋습니다. 50.39점은 50.39% 예측 정확도가 아닙니다. MASE 스킬 점수 행도 높을수록 좋음 점수를 사용합니다.
README는 예측 기본값과 최대 32,768단계의 내역을 지정합니다. GIFT-Eval은 과거 숫자 공변량과 함께 97개 구성을 사용합니다. TIME은 공변량 없이 98개의 작업을 사용합니다. fev-bench는 인코딩된 범주를 포함하여 과거 및 알려진 공변량이 포함된 100개의 작업을 사용합니다.
이러한 집계 결과는 모든 센서, 수요 시리즈 또는 비즈니스 기간에 대한 승자를 설정하지 않습니다. 자체 홀드아웃 기간에 대해 동일한 예측 원점, 범위, 공변량 및 오류 측정항목을 평가합니다. 역사에서 미래 정보를 제외합니다.
릴리스 기사에는 좁은 CPU 예가 포함되어 있습니다. 이는 모델 크기의 장단점을 이해하는 데 유용하지만 프로덕션 대기 시간에 대한 약속은 아닙니다.
| 모델 | 보고된 대기 시간 | 보고된 조건 |
|---|---|---|
| Timestral-5M | 10 ms | 서버 CPU, 8개 스레드; 3주간의 15분 기록; 1일 앞으로 예측합니다. |
| Timestral-209M | 140 ms | 서버 CPU, 8개 스레드; 3주간의 15분 기록; 1일 앞으로 예측합니다. |
이 기사에서는 정확한 CPU SKU 또는 전체 타이밍 프로토콜을 식별하지 않습니다. 콜드 다운로드, 모델 로딩, I/O 및 변수 개수로 인해 엔드투엔드 시간이 변경될 수 있습니다. 이 수치를 일반적인 속도 향상 주장으로 바꾸지 마십시오.
로컬 추론은 CPU/GPU 시간, RAM, 전력 및 운영 노력을 소비합니다. 다운로드 가능한 가중치에는 라이선스가 적용됩니다. 이 가이드는 공개 Timestral 특정 호스팅 API 가격 또는 엔드포인트를 확인하지 않았습니다. 토큰별 또는 예측별 판매 가격은 벤치마크에서 추론되지 않습니다.
요구 사항: Python 3.10 이상, PyTorch 2.4 이상, Git 및 패키지 및 모델 호스트에 대한 액세스. GPU는 선택 사항입니다. Windows 예제에서는 Python 3.12를 선택합니다. 설치된 지원 버전을 사용하십시오.
참조 지침만 해당: 이 사이트는 Timestral을 설치하지 않았으며 가중치를 다운로드하거나 이러한 예측을 실행하지 않았습니다. 처음 사용하려면 종속성과 선택한 체크포인트를 가져오기 위해 네트워크 액세스가 필요합니다.
python3 -m venv .venv source .venv/bin/activate python -m pip install --upgrade pip python -m pip install git+https://github.com/mistralai/timestral.git
py -3.12 -m venv .venv .\.venv\Scripts\Activate.ps1 python -m pip install --upgrade pip python -m pip install git+https://github.com/mistralai/timestral.git
둘 다 선택하지 말고 하나의 환경 설정을 선택하세요. python3 명령은 Python ≥ 3.10으로 확인되어야 합니다. Git에서의 설치는 공식 README를 따르며 현재 종속성을 해결합니다. 그것은 얼어붙은 환경이 아닙니다. 재현성을 위해 저장소는 uv.lock 및 uv sync --frozen도 제공합니다. CPU 전용 PyTorch 빌드는 공식 PyTorch 설치 프로그램을 통해 선택할 수 있습니다.
import numpy as np
from timestral import TimestralForecaster
model = TimestralForecaster.from_pretrained(
"mistralai/Timestral-5M", device="cpu"
)
rng = np.random.default_rng(42)
context = rng.standard_normal(1000).cumsum()
forecast = model.forecast(context, prediction_length=96)
median = forecast.median
lower = forecast.quantile(0.1)
upper = forecast.quantile(0.9)
print("shape:", tuple(median.shape)) # (1, 1, 96)
print("first median:", median[0, 0, 0].item())
print("first interval:", lower[0, 0, 0].item(), upper[0, 0, 0].item())python forecast.py
캡처된 테스트 결과가 아닌 예상 인터페이스 모양: 중앙값은 하나의 계열, 하나의 변수 및 96개의 미래 단계를 나타내는 모양(1, 1, 96)을 갖습니다. 랜덤 워크는 합성 데모 데이터입니다. 그 예측은 모델 품질을 확립하지 않습니다.
플래그십을 평가하려면 모델 ID를 mistralai/Timestral-209M으로 바꾸세요. 지원되는 CUDA 환경은 device="cuda"를 사용할 수 있습니다. 컨텍스트, 변수 또는 배치 크기를 늘리기 전에 메모리를 확인하고 보류된 데이터를 비교하세요.
헤더가 포함된 값 열 하나를 준비합니다. 각 행은 정확히 하나의 시간 단계이며 이미 가장 오래된 것부터 최신 것 순으로 정렬되어 있습니다. 짧은 샘플에서는 파일 형식만 보여줍니다. 실제 평가를 위해 의미 있는 역사적 범위를 사용합니다.
value 100 103 "" 108 110
import csv
import numpy as np
from timestral import TimestralForecaster
# series.csv: one header named "value"; oldest observation first.
# Each row represents one equally spaced time step; blank = missing.
with open("series.csv", newline="", encoding="utf-8-sig") as stream:
rows = list(csv.DictReader(stream))
context = np.array([
float(row["value"]) if row["value"].strip() else np.nan
for row in rows
], dtype=np.float32)
if context.size == 0 or not np.isfinite(context).any():
raise ValueError("Provide at least one finite observation")
if np.isinf(context).any():
raise ValueError("Use blank cells for missing values, not infinity")
model = TimestralForecaster.from_pretrained(
"mistralai/Timestral-5M", device="cpu"
)
result = model.forecast(context, prediction_length=96)
values = result.median[0, 0].cpu().numpy()
np.savetxt("forecast.csv", values, delimiter=",", header="median", comments="")빈 셀은 NaN이 됩니다. 누락된 시간 슬롯에 대한 행을 유지합니다. 스크립트는 타임스탬프를 구문 분석하고, 데이터를 정렬, 중복 제거 또는 재샘플링하지 않습니다. 단일 열을 내보내기 전에 해당 단계를 수행하고 샘플링 간격을 정의하십시오. 출력에는 96개의 중앙값이 있습니다. 해당 간격을 사용하여 미래 타임스탬프를 할당합니다.
다변량 입력 사용(B, V, T): 배치, 변수, 기록. 과거 숫자 공변량은 (B, C, T)를 사용합니다. 알려진 미래 공변량은 (B, C, T + H)를 사용합니다. 여기서 H는 예측_길이입니다. 단일 대상 시리즈는 관련되지 않은 센서를 독립적인 배치 행으로 처리하라는 명령이 아닙니다.
모델 로딩은 일반적으로 config.json 및 model.safetensors를 Hugging Face 캐시에 다운로드합니다. 완전한 캐시 또는 로컬 디렉터리를 사용하면 허브 요청 없이 모델을 로드할 수 있습니다.
from timestral import TimestralForecaster
# First load online to populate the Hugging Face cache:
model = TimestralForecaster.from_pretrained(
"mistralai/Timestral-5M", device="cpu"
)
# Later, load the same cached checkpoint without a network lookup:
cached = TimestralForecaster.from_pretrained(
"mistralai/Timestral-5M", device="cpu", local_files_only=True
)
# Alternative: directory containing config.json and model.safetensors.
local = TimestralForecaster.from_pretrained(
"/path/to/Timestral-5M", device="cpu", local_files_only=True
)파일을 준비한 후 캐시 또는 로컬 브랜치를 사용하십시오. 위의 세 가지 로드는 수명 주기를 설명하기 위한 대안이지 모든 스크립트에서 필수 순서는 아닙니다. 자리 표시자 경로를 바꾸거나 r"D:\models\Timestral-5M"과 같은 Windows 경로를 사용합니다. local_files_only=True는 누락된 파일을 복구할 수 없습니다. 오프라인으로 전환하기 전에 패키지도 설치해야 합니다.
활성화된 환경 내에서 python --version 및 python -m pip show torch를 확인하세요. Python ≥ 3.10, torch ≥ 2.4 및 Git 가용성을 확인하세요. CUDA 장치에는 호환되는 PyTorch 빌드 및 드라이버도 필요합니다. 이러한 문제를 분리하려면 CPU부터 시작하세요.
네트워크 액세스, 사용 가능한 디스크 공간 및 대소문자를 구분하는 정확한 모델 ID를 확인하세요. 오프라인 캐시에는 선택한 개정이 포함되어야 합니다. 로컬 폴더에는 config.json과 model.safetensors가 모두 포함되어야 합니다. 파일 이름만으로는 체크포인트 디렉터리가 아닙니다.
대상은 (T,), (B, T) 또는 (B, V, T)를 허용합니다. 공통 샘플링 간격에 따라 모든 계열을 정렬하고, 누락된 값에 NaN을 사용하고, 알려진 미래 공변량에 대해 T + H 단계를 제공합니다. 테스트 범위의 관찰 내용을 입력 기록에 넣지 마십시오.
더 작은 배치와 더 적은 변수인 5M으로 시작하세요. 작업에 적합한 경우에만 기록을 줄이세요. 추론과 별도로 다운로드 및 로딩을 측정합니다. 가중치 파일 크기에는 런타임 활성화 또는 라이브러리 오버헤드가 포함되지 않습니다.
추론 코드는 Apache 2.0입니다. 모델 가중치는 일반 MIT가 아닌 수정된 MIT입니다. 209M 중량 라이센스는 귀하의 회사(또는 고용주)의 글로벌 통합 수익이 전월에 2천만 달러를 초과하는 경우 권리를 유보하고 영향을 받는 사용자를 상업용 라이센스를 위해 Mistral로 안내합니다. 필요한 통지를 유지하고 사용하는 정확한 체크포인트에 대한 라이센스를 검토하십시오.
업데이트는 원본 소스를 따르세요. 벤치마크 번호, 인터페이스, 가용성 및 라이센스 문구는 변경될 수 있습니다. 아래 스냅샷 날짜가 이 가이드에 적용됩니다.