# 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