Pin the polygon environment: one commented requirements file with the heavy embedding extra split out, interpreter version declared, README rule five corrected
This commit is contained in:
parent
48ea521a0e
commit
f66518a860
4 changed files with 96 additions and 1 deletions
1
eval/.python-version
Normal file
1
eval/.python-version
Normal file
|
|
@ -0,0 +1 @@
|
|||
3.14.4
|
||||
|
|
@ -57,7 +57,7 @@
|
|||
2. **Претрейн-контаминация:** вся классика (Лу Синь/Акутагава/Уэллс) в претрейне моделей — C0 частично выдаёт канон, эхо систематично (deepseek 13/24 zh-чанков). Выводы на классике = предварительные; решающие замеры — на вебновелл-корпусе владельца.
|
||||
3. **Тест ставится, только если его исход может перевернуть решение** и не установлен литературой (урок снятого exp05).
|
||||
4. **LLM-судьи:** ≤2–3 семейства, 11+ повторов со свапом позиций, Bradley-Terry/медиана, судья не судит выходы своего семейства (D13.3); κ против человеческого IAA, не «средняя корреляция».
|
||||
5. Env: `eval/.venv` (torch-cpu, sentence-transformers, openai, dotenv, pymorphy3); ключи скрипты читают из `eval/.env` сами. Стенд: GTX 1070 8GB — модель полигона `qwen3-abliterated:30b-a3b` в ollama не выселять без нужды; **localhost из-под прокси даёт 403** — для локальных вызовов no-proxy.
|
||||
5. **Env — источник истины `eval/requirements.txt`** (у каждой строки комментарий «зачем и где»; интерпретатор — `.python-version`). Установка: `python3 -m venv .venv && .venv/bin/pip install -r requirements.txt`. Эмбеддинг-бенч (`retrieval_bench.py`) тянет ~2.5 ГБ ОТДЕЛЬНО — `requirements-embed.txt` (версии там намеренно не проставлены). ⚠ Замок снят 03.08.2026 с живого стенда Ubuntu 26.04 / CPython 3.14.4 и **не является стендом закрытых exp12–16/promptlang** (те шли на Ubuntu 24 / ~3.12, версии не сохранились) — перепрогон на нём это НОВЫЙ замер, не репродукция. Ключи скрипты читают из `eval/.env` сами. Не офлайн: `tokenizers` ждёт файлы в `eval/tokenizers/` (gitignore, на чистой машине их нет), `tiktoken.get_encoding` качает ~4 МБ BPE при первом вызове. Стенд: GTX 1070 8GB — модель полигона `qwen3-abliterated:30b-a3b` в ollama не выселять без нужды; **localhost из-под прокси даёт 403** — для локальных вызовов no-proxy.
|
||||
6. `data/` в .gitignore (коммитится только код) — критичные результаты дублируй цифрами в `docs/experiments/`.
|
||||
7. **Экстракция прод-выходов — ТОЛЬКО через `tmctl export` (D39.5, инвариант №8 backend/README):** сырое чтение чекпоинтов store (records.json-стиль) отдаёт НЕнормализованные байты (без export-contract слоя) и молча-неполную книгу (без manifest-join/drift-гарда). `--plaintext` для глаз, дефолтный JSON для скриптов. Прежний путь `final_hash→response_text` — только для форензики сырья, не для оценки качества.
|
||||
8. **Аномалия провайдера ≠ повод гадать:** странный отказ (интермиттентный 404/5xx, новый `finish_reason`, молча игнорируемые параметры) → сначала официальная дока вендора (deprecations/changelog/status) + свежий /models живьём, потом диагноз; в отчёт оба слоя — наблюдение И вендор-факт с датой/URL. Урок: 404-флейки gemini-2.5-flash оказались предвестником EOL всей 2.5-серии 16.10.2026 (research/15 → фактчек 10.07; правило — шапка `00-provider-quirks.md`).
|
||||
|
|
|
|||
29
eval/requirements-embed.txt
Normal file
29
eval/requirements-embed.txt
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
# eval/ — тяжёлый экстра: эмбеддинг-бенч памяти. Ставится ПОВЕРХ requirements.txt:
|
||||
# .venv/bin/pip install -r requirements-embed.txt
|
||||
#
|
||||
# Вынесено отдельно по одной причине — это ~2.5 ГБ ради ОДНОГО скрипта. Единственный
|
||||
# потребитель — retrieval_bench.py, и все три импорта у него ФУНКЦИОНАЛЬНЫЕ, а не
|
||||
# модульные, поэтому без этого файла падает ровно он и ровно на входе в эти функции:
|
||||
# retrieval_bench.py:93 from sklearn.metrics import roc_auc_score (в threshold_analysis)
|
||||
# retrieval_bench.py:153 from sentence_transformers import ... (в run_embed_model)
|
||||
# retrieval_bench.py:223 from rank_bm25 import BM25Okapi (в run_bm25)
|
||||
# Модульный там только `import numpy` (:34) — он уже в базовом наборе.
|
||||
#
|
||||
# torch НИГДЕ не импортируется напрямую (проверено обходом AST по всем 158 файлам) —
|
||||
# приходит транзитивно через sentence-transformers, поэтому в базовом файле ему не место.
|
||||
#
|
||||
# ⚠ ВЕРСИИ НЕ ПРОСТАВЛЕНЫ НАМЕРЕННО: этих пакетов в стенде нет
|
||||
# (import sklearn / sentence_transformers / rank_bm25 / torch → ModuleNotFoundError),
|
||||
# а версия из памяти — выдумка. Пины проставить с ПЕРВОЙ реальной установки.
|
||||
#
|
||||
# ⚠ CPU-сборка torch ставится с --extra-index-url https://download.pytorch.org/whl/cpu
|
||||
# — решать при первом реальном прогоне, не заранее.
|
||||
#
|
||||
# Под CPython 3.14 колёса есть у всех (сверено на PyPI 02.08.2026: torch
|
||||
# cp314-manylinux_2_28_x86_64, scikit-learn cp314, sentence-transformers и rank_bm25 —
|
||||
# чистый Python), так что 3.14 сам по себе не блокер.
|
||||
|
||||
sentence-transformers
|
||||
torch
|
||||
scikit-learn
|
||||
rank_bm25
|
||||
65
eval/requirements.txt
Normal file
65
eval/requirements.txt
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
# eval/ — зависимости полигона.
|
||||
#
|
||||
# Установка: python3 -m venv .venv && .venv/bin/pip install -r requirements.txt
|
||||
# Интерпретатор: см. .python-version (3.14.4).
|
||||
# Эмбеддинг-бенч (retrieval_bench.py) тянет ~2.5 ГБ отдельно — requirements-embed.txt.
|
||||
#
|
||||
# СТЕНД 03.08.2026: Ubuntu 26.04 / CPython 3.14.4. Каждая версия сверена ИСПОЛНЕНИЕМ
|
||||
# против реальных call-site'ов (compat-прогон 03.08), а не взята из памяти.
|
||||
#
|
||||
# ⚠ ЭТО НЕ СТЕНД ЗАКРЫТЫХ exp12–16 / promptlang / rerun2. Те шли 12.07–01.08 на
|
||||
# Ubuntu 24 / CPython ~3.12 с НЕИЗВЕСТНЫМИ версиями: манифеста тогда не было, .venv и
|
||||
# data/ в .gitignore. Единственный уцелевший след — `openai 2.44.0` (комментарий
|
||||
# rerun2_judge/judge.py:33, 24.07). Следствие: перепрогон на этих пинах — НОВЫЙ замер,
|
||||
# а не репродукция ратифицированных вердиктов (D30/D32/D37/D38/D39.22/D39.61).
|
||||
# Цифры живут в docs/experiments/, не здесь.
|
||||
#
|
||||
# Здесь только то, что импортируется КОДОМ напрямую. Часть строк пришла бы и
|
||||
# транзитивно (PyYAML через huggingface-hub, regex/requests через tiktoken, numpy через
|
||||
# scipy) — объявлены ЯВНО намеренно: код импортирует их сам, и смена чужого дерева
|
||||
# зависимостей не должна их унести.
|
||||
|
||||
# --- вызовы моделей -------------------------------------------------------------
|
||||
# 12 файлов, все через `from openai import OpenAI` (rerun2_judge/judge.py:33,
|
||||
# exp15/exp15_llm.py:22). Проверено: extra_body кладёт квирк-ключи ПЛОСКО в тело
|
||||
# (00-provider-quirks.md на этом стоит), max_tokens и max_completion_tokens оба живы
|
||||
# и SDK их не переписывает, DeepSeek-овый `prefix: true` в сообщении не срезается.
|
||||
openai==2.52.0
|
||||
|
||||
# 14 файлов читают eval/.env сами.
|
||||
python-dotenv==1.2.2
|
||||
|
||||
# --- данные и разбор ------------------------------------------------------------
|
||||
# 21 файл. Везде safe_load (`yaml.load(` — 0 вхождений), поэтому слом PyYAML 6.x не кусает.
|
||||
# Байт-стабильность дампа сида держится на dump(allow_unicode, sort_keys, width) —
|
||||
# exp15/gender_transport.py:37, exp14b/exp14b_reseed_promote.py:25.
|
||||
PyYAML==6.0.3
|
||||
|
||||
# 8 файлов. НЕСУЩЕЕ: классы письменностей \p{Han}/\p{Cyrillic}, которые stdlib re
|
||||
# не компилирует вовсе — это паритет с Go unicode.Han/Hiragana (exp15/mem_select.py:32).
|
||||
regex==2026.7.19
|
||||
|
||||
# 6 файлов: русская морфология (pilot/declmetric.py:35, pkg7/rubric_probe.py:83).
|
||||
# Тянет pymorphy3-dicts-ru (словарь) и setuptools (требование самого pymorphy3 на py>=3.12).
|
||||
pymorphy3==2.0.6
|
||||
|
||||
# --- счёт и статистика ----------------------------------------------------------
|
||||
# 6 файлов (retrieval_bench.py:34, exp15/fertility_calib.py:15). Все 18 используемых
|
||||
# атрибутов живы в 2.x; ни одного удалённого имени (np.float_/np.NaN/np.trapz/…) в коде нет.
|
||||
numpy==2.5.1
|
||||
|
||||
# 3 файла — только пере-анализы exp15 (stats.t, ttest_1samp).
|
||||
scipy==1.18.0
|
||||
|
||||
# --- токенизация ----------------------------------------------------------------
|
||||
# token_calc.py:35, exp14/exp14_common.py:141 — ТОЛЬКО Tokenizer.from_file
|
||||
# (from_pretrained: 0 вхождений, сети не будет). Тянет huggingface-hub/hf-xet/fsspec.
|
||||
# ⚠ сами файлы токенизаторов в eval/tokenizers/ (gitignore) — на чистой машине их нет.
|
||||
tokenizers==0.23.1
|
||||
|
||||
# token_calc.py:29. ⚠ get_encoding при первом вызове КАЧАЕТ ~4 МБ BPE-таблицы
|
||||
# с openaipublic.blob.core.windows.net — $0 и не провайдер, но офлайн не отработает.
|
||||
tiktoken==0.13.0
|
||||
|
||||
# exp15/preflight_models.py:54 — единственный call-site, живой фактчек /models.
|
||||
requests==2.34.2
|
||||
Loading…
Add table
Reference in a new issue