Label every WVS model family
Co-Authored-By: PI[gpt-5.6-terra] <288921227+claudypoo@users.noreply.github.com>
|
Before Width: | Height: | Size: 386 KiB After Width: | Height: | Size: 404 KiB |
|
Before Width: | Height: | Size: 423 KiB After Width: | Height: | Size: 493 KiB |
@@ -461,6 +461,60 @@
|
||||
"y": 0.17828757955153599
|
||||
}
|
||||
],
|
||||
"latest_by_family": {
|
||||
"claude": {
|
||||
"name": "claude-fable-5.1",
|
||||
"source": "catalog created=2026-09-01"
|
||||
},
|
||||
"deepseek": {
|
||||
"name": "deepseek-v4.1-flash",
|
||||
"source": "catalog created=2026-09-10"
|
||||
},
|
||||
"gemini": {
|
||||
"name": "gemini-3.7-flash",
|
||||
"source": "catalog created=2026-08-13"
|
||||
},
|
||||
"gemma": {
|
||||
"name": "gemma-4-31b-it",
|
||||
"source": "explicit legacy release-order choice"
|
||||
},
|
||||
"glm": {
|
||||
"name": "glm-5.3",
|
||||
"source": "catalog created=2026-08-18"
|
||||
},
|
||||
"gpt": {
|
||||
"name": "gpt-6-astra",
|
||||
"source": "catalog created=2026-09-04"
|
||||
},
|
||||
"grok": {
|
||||
"name": "grok-4.3",
|
||||
"source": "explicit legacy release-order choice"
|
||||
},
|
||||
"inkling": {
|
||||
"name": "inkling",
|
||||
"source": "catalog created=2026-07-17"
|
||||
},
|
||||
"kimi": {
|
||||
"name": "kimi-k3",
|
||||
"source": "catalog created=2026-07-16"
|
||||
},
|
||||
"llama": {
|
||||
"name": "llama-4-maverick",
|
||||
"source": "explicit legacy release-order choice"
|
||||
},
|
||||
"mistral": {
|
||||
"name": "mistral-large-2512",
|
||||
"source": "explicit legacy release-order choice"
|
||||
},
|
||||
"muse": {
|
||||
"name": "muse-spark-1.3",
|
||||
"source": "catalog created=2026-09-02"
|
||||
},
|
||||
"qwen": {
|
||||
"name": "qwen3.8-flash",
|
||||
"source": "catalog created=2026-08-26"
|
||||
}
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"color": "#7e22ce",
|
||||
@@ -513,7 +567,7 @@
|
||||
{
|
||||
"color": "#14b8a6",
|
||||
"family": "gemma",
|
||||
"label": null,
|
||||
"label": "gemma-4-31b-it",
|
||||
"name": "gemma-4-31b-it",
|
||||
"x": -0.36,
|
||||
"y": 0.66
|
||||
@@ -553,7 +607,7 @@
|
||||
{
|
||||
"color": "#2b2d42",
|
||||
"family": "grok",
|
||||
"label": null,
|
||||
"label": "grok-4.3",
|
||||
"name": "grok-4.3",
|
||||
"x": -0.44,
|
||||
"y": 0.73
|
||||
@@ -609,7 +663,7 @@
|
||||
{
|
||||
"color": "#2ca02c",
|
||||
"family": "mistral",
|
||||
"label": null,
|
||||
"label": "mistral-large-2512",
|
||||
"name": "mistral-large-2512",
|
||||
"x": -0.65,
|
||||
"y": 0.64
|
||||
@@ -625,7 +679,7 @@
|
||||
{
|
||||
"color": "#6d5ae0",
|
||||
"family": "llama",
|
||||
"label": null,
|
||||
"label": "llama-4-maverick",
|
||||
"name": "llama-4-maverick",
|
||||
"x": -0.64,
|
||||
"y": 0.64
|
||||
|
||||
@@ -54,6 +54,15 @@ DIGITS = "0123456789"
|
||||
|
||||
# OpenRouter model IDs checked against https://openrouter.ai/api/v1/models on 2026-09-16.
|
||||
# Selecting a set is explicit because every uncached entry makes paid API calls.
|
||||
# These existing plotted families predate the saved OpenRouter catalog. The choice is an explicit
|
||||
# release-order decision, not numeric parsing: Grok 4.3 is the observed series endpoint in README.
|
||||
LEGACY_LATEST = {
|
||||
"gemma": "gemma-4-31b-it",
|
||||
"grok": "grok-4.3",
|
||||
"llama": "llama-4-maverick",
|
||||
"mistral": "mistral-large-2512",
|
||||
}
|
||||
|
||||
API_MODEL_SETS = {
|
||||
"fable-astra": (
|
||||
"anthropic/claude-fable-5.1",
|
||||
@@ -398,11 +407,18 @@ def main() -> None:
|
||||
fams.setdefault(family, []).append(k)
|
||||
metadata = json.loads(Path("docs/img/wvs/wvs_model_metadata.json").read_text())["models"]
|
||||
model_labels: dict[str, str] = {}
|
||||
label_sources: dict[str, str] = {}
|
||||
for family, names in fams.items():
|
||||
catalogued = [name for name in names if name in metadata]
|
||||
if catalogued:
|
||||
latest = max(catalogued, key=lambda name: metadata[name]["created"])
|
||||
model_labels[latest] = latest.replace("claude-", "")
|
||||
label_sources[family] = f"catalog created={metadata[latest]['created']}"
|
||||
else:
|
||||
latest = LEGACY_LATEST[family]
|
||||
if latest not in names:
|
||||
raise ValueError(f"legacy latest {latest} absent from plotted {family} family")
|
||||
label_sources[family] = "explicit legacy release-order choice"
|
||||
model_labels[latest] = latest.replace("claude-", "")
|
||||
if args.web_data:
|
||||
zones_all, _ = zones_for(countries)
|
||||
zones = maps.select_spread_zones(P, countries, zones_all, 4)
|
||||
@@ -415,6 +431,8 @@ def main() -> None:
|
||||
"countries": [{"name": name, "x": float(x * sx), "y": float(y * sy)}
|
||||
for name, (x, y) in zip(countries, P)],
|
||||
"zones": zones,
|
||||
"latest_by_family": {family: {"name": name, "source": label_sources[family]}
|
||||
for family, names in fams.items() for name in names if name in model_labels},
|
||||
"models": [{"name": name, "x": float(v[0] * sx), "y": float(v[1] * sy),
|
||||
"family": maps.model_family(name), "color": maps.model_family_color(name),
|
||||
"label": model_labels.get(name)} for name, v in plot_models.items()],
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# WVS latest-label selection
|
||||
|
||||
The static map and `docs/wvs/wvs_map_data.json` label exactly one model for each plotted family. The code is `scripts/wvs_map.py:LEGACY_LATEST` plus the saved OpenRouter `created` metadata in `docs/img/wvs/wvs_model_metadata.json`.
|
||||
|
||||
- Catalog-backed families use the maximum saved `created` date. This is the release-order source, not numeric parsing.
|
||||
- Four historical families have no saved catalog entries. Their explicit choices are: Gemma `gemma-4-31b-it`, Grok `grok-4.3`, Llama `llama-4-maverick`, Mistral `mistral-large-2512`.
|
||||
- The Grok choice is constrained by the README's observed series, which says it ends at Grok 4.3. The single Mistral point is necessarily its own label. The Gemma and Llama choices are recorded explicit legacy decisions rather than fabricated release dates.
|
||||
|
||||
`latest_by_family` in the generated web JSON retains the selected name and source category. -- PI[gpt-5.6-terra]
|
||||
|
Before Width: | Height: | Size: 220 KiB After Width: | Height: | Size: 225 KiB |
|
Before Width: | Height: | Size: 206 KiB After Width: | Height: | Size: 210 KiB |