Land the first cross-family reading comparison the phase has ever had: no arm of twenty-one is ordered differently, and say plainly why this still does not satisfy the two-family norm
This commit is contained in:
parent
21108cc3d4
commit
2d1e4250d2
2 changed files with 93 additions and 7 deletions
|
|
@ -4856,13 +4856,16 @@ n=15 ед (7.4 главы Гу) круг 1 · n=12 ед (5.9 главы Гу) о
|
|||
файлах нет). Суб-агент наследует модель сессии, а я **не передал переопределения и не проверил, что
|
||||
уехало.**
|
||||
|
||||
**Чем читал круг 1.** `READERS-vendor.json`, `READERS-vendor2.json`, `READERS-zhpanel.json` несут
|
||||
`"_модель": "fable-5, по одному агенту на главу"`; `READERS-arch2.json` несёт то же во вложенном
|
||||
ключе `читатель.модель = "claude-fable-5"` вместе с основанием — решение владельца 20.08 «забьём на
|
||||
Sol, отдадим всё судейство фаблу». Это САМО-ОБЪЯВЛЕНИЕ прошлой сессии: транскриптов её читателей на
|
||||
диске не осталось, и независимо подтвердить его нечем. Оно согласовано по четырём панелям и
|
||||
совпадает с записанным решением владельца, поэтому принимаю его как верное — и помечаю как
|
||||
непроверяемое.
|
||||
**Чем читал круг 1 — ПОДТВЕРЖДЕНО ФАКТОМ, а не декларацией.** Предыдущая сессия по запросу
|
||||
владельца подняла свой транскрипт и пере-считала вызовы: **58 вызовов `Agent` с пакетом из
|
||||
`~/books/chtenie-rol/`, у КАЖДОГО в параметрах `model: 'fable'`** — `arch2` 15 · `vendor2` 15 ·
|
||||
`vendor` 13 · `zhpanel` 12 · `abl`+`rol` 3. Ни одного `opus-5` среди читателей не было. Декларации
|
||||
`READERS-*.json` («fable-5» / `читатель.модель = "claude-fable-5"`) с фактом совпали, и сверено это
|
||||
отдельно — сама по себе декларация не доказывает ничего.
|
||||
|
||||
⚠ Уточнение той же сессии, которое надо держать рядом: `opus-5` в прошлых прогонах был
|
||||
ОРКЕСТРАТОРОМ (собирал пакеты, считал ранги, сводил), но **прибором не был ни разу**. И агенты
|
||||
глобального ревью 21.08 (231 штука) — **тоже `fable`**: и прибор, и его аудитор были одной моделью.
|
||||
|
||||
⇒ **ВТОРОЕ ЧТЕНИЕ ЕСТЬ КРОСС-СЕМЕЙНОЕ, А НЕ ПОВТОР ОДНИМ ПРИБОРОМ.**
|
||||
|
||||
|
|
@ -4927,3 +4930,46 @@ Sol, отдадим всё судейство фаблу». Это САМО-ОБ
|
|||
⚠ Вся середина панели (`ZP`, `Z7`, `Z1`, `Z8R`, `RN`, `RB`, `RC`, `ZF`) — «в пределах» в обоих
|
||||
кругах и в обоих семействах. Это САМОЕ сильное «неразличимо», какое фаза произвела: оно устояло
|
||||
против смены выборки, смены читателя и смены модели читателя разом.
|
||||
|
||||
### Д33.9 ⭐⭐ ВТОРОЕ СУДЕЙСКОЕ СЕМЕЙСТВО — ПОЯВИЛОСЬ ПО ОШИБКЕ, И ОНО СОГЛАСНО С ПЕРВЫМ
|
||||
|
||||
Заказано владельцем 23.08 после разбора Д33.6: «раз уж ты пробежал какое-то судейство другим
|
||||
агентом, заодно можно и сравнить будет их». До этого дня фаза жила с ограничением, записанным
|
||||
прямым текстом в `READERS-arch2.json`: **судейское семейство ровно ОДНО, норма П-1 о двух не
|
||||
исполняется, Sol запаркован решением владельца 20.08.** Следствие оговаривалось честно: общий ВКУС
|
||||
`fable` от качества перевода не отделим в принципе, пока второго семейства нет.
|
||||
|
||||
Круг 2 дал второе семейство. Сравнение — поармный сдвиг среднего места, парно по главам, знаковый
|
||||
тест (сдвиг >0 = `opus` ставит арм НИЖЕ, чем `fable`):
|
||||
|
||||
| панель | армов | наибольший сдвиг | наименьший p | **армов, судимых различимо по-разному** |
|
||||
|---|---|---|---|---|
|
||||
| `vendor2` | 10 | `RK` +0.50 / `RGT` −0.75 (из 10 мест) | 0.289 | **0 из 10** |
|
||||
| `arch2` | 11 | `ZD` +1.08 / `RN` −1.08 (из 11 мест) | 0.070 (`ZF`) | **0 из 11** |
|
||||
|
||||
⇒ **Ни один арм из 21 два семейства не упорядочивают различимо по-разному.** Ближе всех к границе
|
||||
`ZF` на архитектурной панели (`opus` ставит её ниже на 1.04 места, 7 глав из 8 в одну сторону,
|
||||
p=0.070) — единственный кандидат в «разный вкус», и он границы не перешёл.
|
||||
|
||||
**Что это значит и чего НЕ значит:**
|
||||
|
||||
* ⭐ **Ранговые вердикты фазы не являются идиосинкразией одной модели.** Всё, что `fable` назвал
|
||||
различимым и что пережило второе чтение (`RKT` хуже якоря, `ZD` хуже связки), `opus` называет так
|
||||
же; всё, что `fable` не разрешил, `opus` тоже не разрешает.
|
||||
* ⛔ **Но это НЕ исполнение нормы П-1, и притворяться иначе нельзя.** `claude-fable-5` и
|
||||
`claude-opus-5` — модели ОДНОЙ лаборатории и одной линии обучения. Их согласие снимает вопрос
|
||||
«не выдумал ли конкретный прибор свой порядок» и **не снимает** вопрос «не выдумала ли его вся
|
||||
эта линия». Внешним семейством был Sol, и он по-прежнему запаркован. ⇒ П-1 остаётся
|
||||
НЕ ИСПОЛНЕННОЙ; засчитывать `opus` за второе семейство — самообман.
|
||||
* ⚠ **Мощность у этой проверки слабая.** 12 глав, знаковый тест: чтобы получить p<0.05 при всех
|
||||
расхождениях в одну сторону, нужно 6 глав с ненулевой разницей. «0 из 21 различимо» читается как
|
||||
«крупных расхождений вкуса нет», а не как «вкусы тождественны».
|
||||
* ⚠ **Места КОМПОЗИЦИОННЫ:** сумма сдвигов по построению ≈0, поэтому «сдвиг арма» есть утверждение
|
||||
относительное. Абсолютной строгости («какое семейство придирчивее») этот прибор не видит.
|
||||
* ⛔ **И то, что ни один машинный прибор не закрывает:** ось ВЕРНОСТИ, на которой владелец разошёлся
|
||||
с `fable` радикально (Д30). Согласие двух моделей одной линии про эту ось не говорит ничего —
|
||||
скорее наоборот, повышает вероятность, что расхождение с владельцем есть свойство ЛИНИИ.
|
||||
|
||||
⚠ **И ещё одно, названное самой предыдущей сессией:** агенты глобального ревью 21.08 (231 штука) —
|
||||
**тоже `fable`**. То есть и прибор, и его аудитор были одной моделью. Настоящая кросс-семейная
|
||||
проверка ревью не проводилась ни разу.
|
||||
|
|
|
|||
|
|
@ -188,6 +188,44 @@ def report(tag: str = "vendor2", p: str = "en", anchor: str = "RN", drop: tuple
|
|||
return 0
|
||||
|
||||
|
||||
def vkus(tag: str = "vendor2", p: str = "en", drop: tuple = ()) -> int:
|
||||
"""СРАВНЕНИЕ ДВУХ СУДЕЙСКИХ СЕМЕЙСТВ — то, чего норме П-1 не хватало с 20.08.
|
||||
|
||||
⚠ Заведено 23.08 по слову владельца: «раз уж ты пробежал какое-то судейство другим агентом,
|
||||
заодно можно и сравнить будет их». До этого дня всё судейство фазы вело ОДНО семейство
|
||||
(`fable-5`), и общий ВКУС семейства нельзя было отделить от качества перевода в принципе —
|
||||
ограничение записано в `READERS-arch2.json` как ⚠_ограничение. Круг 2 дал второе семейство
|
||||
(`opus-5`) — пусть и по моей ошибке, а не по замыслу.
|
||||
|
||||
⛔ ЧТО МЕРИТСЯ И ЧТО НЕТ. Места КОМПОЗИЦИОННЫ: если один арм поднялся, другой обязан опуститься,
|
||||
и сумма мест по главе константна. Значит «систематический сдвиг арма» есть утверждение
|
||||
ОТНОСИТЕЛЬНОЕ — «семейства по-разному упорядочивают», — а не «одно строже другого». Абсолютной
|
||||
строгости этот прибор не видит и видеть не может.
|
||||
"""
|
||||
r1, r2 = ranks_of(tag, p, "r1"), ranks_of(tag, p, "r2")
|
||||
uids = [u for u in sorted(set(r1) & set(r2)) if u not in drop]
|
||||
arms = sorted(r1[uids[0]])
|
||||
print(f"\n=== ВКУС ДВУХ СЕМЕЙСТВ, {tag}: fable-5 (круг 1) против opus-5 (круг 2) ===")
|
||||
print(f" глав {len(uids)} · армов {len(arms)}\n")
|
||||
print(f" {'арм':6s}{'fable':>8s}{'opus':>8s}{'сдвиг':>8s}{'глав ↑':>8s}{'глав ↓':>8s}{'p':>9s} вывод")
|
||||
rows = []
|
||||
for a in arms:
|
||||
d = [r2[u][a] - r1[u][a] for u in uids] # >0 — opus ставит НИЖЕ (место больше)
|
||||
m = st.mean(d)
|
||||
nz = [x for x in d if x]
|
||||
pv = ZS._sign_p(d) # noqa: SLF001
|
||||
rows.append((a, st.mean([r1[u][a] for u in uids]), st.mean([r2[u][a] for u in uids]),
|
||||
m, sum(1 for x in nz if x < 0), sum(1 for x in nz if x > 0), pv))
|
||||
for a, m1, m2, m, up, dn, pv in sorted(rows, key=lambda x: x[3]):
|
||||
mark = "⛔ opus судит ИНАЧЕ" if pv < 0.05 else ""
|
||||
print(f" {a:6s}{m1:8.2f}{m2:8.2f}{m:+8.2f}{up:8d}{dn:8d}{pv:9.4f} {mark}")
|
||||
sig = [r for r in rows if r[6] < 0.05]
|
||||
print(f"\n армов, чьё место семейства ставят РАЗЛИЧИМО по-разному: {len(sig)} из {len(arms)}"
|
||||
+ ("" if not sig else " — " + ", ".join(r[0] for r in sig)))
|
||||
print(" ⚠ сдвиг >0 значит «opus ставит арм НИЖЕ, чем fable»; сумма сдвигов по построению ≈0")
|
||||
return 0
|
||||
|
||||
|
||||
def cmd_selftest() -> int:
|
||||
bad = 0
|
||||
|
||||
|
|
@ -229,4 +267,6 @@ if __name__ == "__main__":
|
|||
_tag = next((x.split("=", 1)[1] for x in a if x.startswith("--tag=")), "vendor2")
|
||||
_anch = next((x.split("=", 1)[1] for x in a if x.startswith("--anchor=")), "RN")
|
||||
_drop = tuple(next((x.split("=", 1)[1].split(",") for x in a if x.startswith("--drop=")), []))
|
||||
if "--vkus" in a:
|
||||
sys.exit(vkus(_tag, "en", _drop))
|
||||
sys.exit(report(_tag, "en", _anch, _drop))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue