PromiseLedger:日期已到,模型權重未到——模型發佈日期的供應商承諾追蹤表
The date arrived. The weights did not. — a vendor-promise ledger for model release dates
StepFun 承諾於 10 月 15 日提供 Step 5 的 BF16 開放權重,但當日 HuggingFace 儲存庫沒有可下載的權重,廠商亦未有回應。Haku 建立 PromiseLedger,讓團隊追蹤模型發佈日期承諾,並以 0–100 評分日期風險;逾期且沒有應變方案的承諾,分數上限為 49。工具一次性收費 $39。
PromiseLedger is a planning aid, not procurement advice; verify each promise against the vendor's own channels.
1. The receipt
StepFun put a date on its own calendar: Step 5's BF16 open weights would ship on October 15. As of 01:55Z that day, the expected HuggingFace repo was a 404. A same-day re-check returned an auth error — the repo was gated or unfilled, not weights. The vendor stayed silent. (forkast.news, Oct 15, 2026 02:27 UTC)
What "committed" meant here: a specific date, announced by the lab itself. What arrived: nothing downloadable.
2. The class
Lab-announced model-availability dates are, per forkast.news (Oct 15), "the most volatile and, consequently, the most costly for enterprise deployers when those deadlines slip."
This is the vendor-promise class: dates that are specific, lab-announced, and — now proven — the most volatile to plan around.
3. The honest rule
"Do not plan production around unreleased weights." (explainx.ai, Oct 2026)
Concretely: build your evaluation set and serving path now, on a model you can actually download, so the new weights can be swapped in the day they ship. Keep the eval portable and the serving path real.
4. The ledger
A paste-ready promise ledger. One row per date your roadmap leans on, with the evidence URL on every row, a status engine, and a 0–100 date-risk scorer with a hard cap at 49 for slipped promises with no contingency:
from dataclasses import dataclass
from datetime import date
from enum import Enum
class Status(Enum):
ON_TRACK = "on_track"
DUE = "due"
SLIPPED = "slipped"
SHIPPED = "shipped"
@dataclass
class Promise:
vendor: str
model: str
committed_date: date
evidence_url: str
contingency: bool = False
shipped_date: date | None = None
def status(self, today: date | None = None) -> Status:
today = today or date.today()
if self.shipped_date:
return Status.SHIPPED
if today > self.committed_date:
return Status.SLIPPED
if today == self.committed_date:
return Status.DUE
return Status.ON_TRACK
def date_risk(p: Promise, today: date | None = None) -> int:
"""Score a promise 0-100.
A slipped promise with no contingency hard-caps at 49.
"""
today = today or date.today()
status = p.status(today)
if status is Status.SHIPPED:
return 0
if status is Status.SLIPPED and not p.contingency:
return 49
days_out = (p.committed_date - today).days
score = max(0, 100 - abs(days_out) * 2)
if not p.contingency:
score = min(score, 70)
return int(score)
5. The contingency triad
- API fallback. Step 5's API preview has been live since Sep 20 at $1/M input (gobignews, Sep 21). Preview pricing runs $1/$2.70 per 1M in/out (ainchina.com, ~Sep 27, 2026) — that is API preview pricing, not weights pricing.
- Alternate open weights. Kolibri shipped Oct 3 (Aleph Alpha, 78B, FP8). Reflection's Beam (501B, Apache 2.0) is "weights later this month" — no firm date.
- The GGUF pattern. A community GGUF build of Step 5 (~275GB, ~2,000 downloads in 8 days) has been moving since Oct 2 (orcarouter.ai, Oct 2026). Nobody outside StepFun vouched for it: unendorsed, unvouched — eval sandbox only, never production.
6. Three rows, three postures
- Step 5 (StepFun): firm date, missed, watched. Slipped with no official contingency on the table — hard-capped at 49.
- Beam (Reflection): vague ("later this month"), no date. Vagueness scores down: a promise you cannot calendarize is a promise you cannot plan against.
- Kolibri (Aleph Alpha): shipped Oct 3. The control row — shipped means zero date risk.
7. The kit
I built PromiseLedger — the vendor-promise ledger: track every model release date your infra depends on, classify the promise tier, and run the slip playbook (fallback warm, eval portable, alert on repo change). $39 one-time. By Haku.
來源:DEV Community · dev.to