our_knp/reports/2026-10-15/журнал.md

148 lines
33 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Журнал работы — 15 октября 2026
## Ночь (продолжение): выход, обучаемый дофамином по ошибке, внутри KNP
Пользователь: «начинай, связь со мной не нужна». Цель — перенести в KNP правило, проверенное в симуляторе (выход «цель − ответ» × вход).
### Код
- `examples/.../models/altai/construct_network.cpp`: режим `KNP_DELTA=<a>,<b>`. Метка подаёт дофамин +a нейронам своего класса с задержкой 1 на каждом активном шаге; собственный спайк нейрона даёт ему дофамин −b на следующем шаге (проекция input→input, исключена из сети распознавания). Нет торможения по метке (−30000) и принуждения через гейт; у нейронов выключены Хебб (d_h=0), стабильность и порог от суммы весов. Используется с `KNP_COL_SIZE=1` (один нейрон на класс).
- `.../models/altai/spike_generators.cpp`: при `KNP_DELTA` метка отправляется на шагах 0–9 (а не на 11-м).
- `readout/build_delta_cpu.py` → `/home/int/run/delta-cpu/libknp-cpu-delta-backend.so`: изолированная копия бэкенда; `KNP_DELTA_RULE=<скорость>` — у нейрона с дофамином D ≠ 0 каждый обучаемый синапс, чей входной спайк пришёл с отставанием `KNP_DELTA_LAG` шагов, меняет ресурс на скорость·D (независимо от спайка самого нейрона); `KNP_DELTA_DEBUG` печатает гистограмму отставаний. Оригинальные библиотеки не менялись.
- Отладка: при отставании 0 обновлений не было (веса не менялись); гистограмма: отставания 1/2/3 = 406 тыс./252 тыс./120 тыс., 0 — ни одного. Дофамин приходит на шаг позже входа → `KNP_DELTA_LAG=1`.
- Пробный прогон (признаки coarse, 3000 обучение, 1000 проверка, 10 нейронов): скорость 0,3 — 48,5%, 1 — 76,8%, 3 — **77,4%** (колонки 200 нейронов на том же объёме: 69,8% без наказания, до 79% с наказанием).
- `cats-dogs/source`: те же изменения (`construct_network.cpp`, `spike_generators.cpp`), пересобран `cats_dogs`; `cats-dogs/run.py --backend delta`.
- Запущены: `readout/delta_runs.sh` (MNIST coarse, 30 000, 6 вариантов) и кошки/собаки на плотных признаках `features-v3/kmeans_validation` (2048 входов, 18 000 обучение, скорости 0,3/1/3).
### Результаты обучения дофамином по ошибке в KNP (validation)
MNIST, признаки coarse, 30 000 обучение, 10 000 проверка, 10 выходных нейронов (`KNP_COL_SIZE=1`), порог 60, торможение 255:
| скорость | a | b (штраф за свой спайк) | разброс | верно |
| --- | --- | --- | --- | --- |
| 1 | 1 | 1 | 20 | 85,17% |
| 3 | 1 | 1 | 20 | 86,25% |
| 3 | 1 | 1 | 0 | 85,86% |
| 10 | 1 | 1 | 20 | 79,42% |
| 3 | 1 | 0,5 | 20 | 59,79% |
| 1 | 1 | 2 | 20 | 91,43% |
| 3 | 1 | 2 | 20 | 93,27% |
| 10 | 1 | 2 | 20 | 93,02% |
| 3 | 1 | 3 | 20 | 94,31% |
| 3 | 1 | 4 | 20 | 94,76% |
| 3 | 1 | 6 | 20 | **94,81%** |
Для сравнения на тех же признаках: колонки STDP (200 нейронов) — 79,7% без наказания, 83,5% с наказанием 0,012; выход, обученный вне чипа (ridge, спайковый) — 94,9%. Симулятор на `dl_r3_a1_b2_j20`: 93,26% (KNP 93,27%); порог 20–160 и торможение 0/255 — 87,7–93,7%.
Кошки/собаки, плотные выученные признаки `features-v3/kmeans_validation` (2048 входов, K=512, без разреживания), 18 000 обучение, 1000 проверка, 2 нейрона, разброс 0:
| скорость | b | верно |
| --- | --- | --- |
| 0,3 | 1 | 50,1% |
| 1 | 1 | 54,5% |
| 3 | 1 | 58,4% |
| 3 | 2 | 65,8% |
| 10 | 2 | 65,6% |
| 10 | 4 | 65,6% |
| 3 | 4 | **69,1%** |
Колонки STDP на этих же плотных признаках молчали (≈0%), на разреженных top-256 — 64–65%; ridge на этих uint8-признаках 74,2%, спайковый нейрон-разность 72,4%. Симулятор `dl_cd_r3_b4`: порог 30–250, торможение 0/255 — 67,6–68,8%.
- MNIST, штраф b: 8 — 94,22%; 12 — 92,42% (оптимум b = 4–6). Устойчивость `dl_r3_a1_b6_j20` (симулятор, 2000): как есть 94,5%, сдвиг 2 px 87,5%, толще 90,8%, тоньше 84,0%.
- MNIST с аугментацией A (`fcoarseA_val90000`, 90 000, r3 b6): KNP **94,63%**; устойчивость — 94,6 / **91,3** / 91,2 / 80,8%.
- Кошки/собаки, ещё b: r3 b6 63,5%, r3 b8 62,2%, r3 b12 60,0%, r1 b4 67,7%, r1 b8 68,4%.
- `cats-dogs/source`: размер входа — `get_input_size()` из `KNP_MNIST_INPUT_SIZE` (по умолчанию 2048), пересобран. `objects/make_knp_features.py --model --name`. Признаки онлайн WTA: K=800 (3200 входов) — r3 b4 65,3%, r1 b8 67,2%; K=1600 (6400) — 65,9% / 67,2%.
- Три прохода по обучению (обучающая часть ×3 с новым перемешиванием, `*_x3_validation`, 54 000): K=512 — r1 b4 67,3%, r1 b8 65,0%, r3 b4 66,4%; K=1600 r1 b8 63,2%. Не помогает.
- Вывод по объектам: в KNP дофамин по ошибке даёт 65–69% (колонки STDP — 64–65% на разреженных, ≈0% на плотных); ridge на тех же признаках — 74%. Вероятная причина разрыва — ограниченный и несимметричный диапазон весов KNP (−253…+92) и насыщение ресурса.
- `KNP_W_RANGE=<min>,<max>` (MNIST и cats-dogs `construct_network.cpp`): диапазон обучаемых весов. Кошки/собаки r3 b4: ±120 — 66,1%, ±250 — 66,4% (r1 b8 — 61,8%), ±500 — 64,9% (по умолчанию −253…+92 — 69,1%). Гипотеза про диапазон не подтвердилась. Разброс весов большой (σ 91 при стандартном диапазоне, 177 при ±250); вероятнее, мешает онлайн-обучение за один проход с крупными шагами.
## Утро: всё на платформе — распознавание транспорта (цель — демо для беспилотников)
Решения пользователя: живое демо; тезис «нейроморфный Алтай заменяет нейросеть для распознавания объектов в беспилотных системах»; всё (и признаки, и обучение) должно работать в KNP.
- Скорость KNP на свёрточном слое (`altai-objects/bench_conv.cpp`, однопоточный бэкенд, случайный вход 0,4): K=32 шаг 2 — 0,06 с/картинку, 0,2 ГБ; K=100 шаг 2 — 0,25 с, 0,7 ГБ; K=200 шаг 2 — 0,95 с, 1,4 ГБ; K=100 шаг 1 — 1,8 с, 2,6 ГБ (~320 байт на синапс).
- Данные: CIFAR-10 с Hugging Face (`uoft-cs/cifar10`, parquet; официальный сервер давал ~37 КБ/с). `altai-objects/prepare_vehicles.py` → `~/run/cifar/vehicles`: самолёт/автомобиль/корабль/грузовик; train 16 000 (первые 4000 каждого класса), val 4000 (последние 1000), test 4000 (официальный, не просмотрен). pyarrow установлен в `~/anvenv`.
- Проверка замысла в numpy (`altai-objects/retina_proto.py`): сетчатка ON/OFF (DoG σ 0,5/1,5, усиление 4) → онлайн WTA на кусочках 6×6×6 → вычитание среднего узора (линейно) → пулинг по четвертям → ridge. Кошки/собаки v3, K=200 шаг 2: 70,2% (с нормировкой и ZCA при том же размере — 73,6%). Транспорт: **76,0%**.
- `altai-objects/altai_objects.cpp` (сборка `altai-objects/build.py`): режим `features` — кусочки 12×12 → сетчатка (216 нейронов AltAI, фиксированные веса DoG×1000) → K детекторов STDP-AltAI, взаимное торможение и дофамин от собственного спайка; режим `run` — полная сеть пиксели → сетчатка 6×32×32 → детекторы K×196 (выученные веса минус средний, целые) → выход (дофамин по ошибке), затем веса читаются из бэкенда и фиксируются для проверки.
- Бэкенд: `KNP_DELTA_DECAY=d` — у нейрона с дофамином D неактивные синапсы меняются на −скорость·D·d (соревновательное обучение).
- `altai-objects/export_knp.py` (ошибка: многократное чтение npz съело 31 ГБ — исправлено), `score_features.py` — быстрая оценка узоров (только для настройки). Ориентиры (K=64, 6000 обучение): узоры WTA в numpy 68,0%, случайные веса 62,2%; первая проба KNP (5000 кусочков, убавка 0,2) — 60,9%. Сетчатка: в среднем 10% входов спайкают за шаг.
### Обучение узоров в KNP (до уточнения пользователя) и смена курса
- Соревновательное обучение узоров в KNP (`features`, `altai-objects/feature_grid.sh`, оценка `score_features.py`, K=64, ориентиры: WTA в numpy 68,0%, случайные 62,2%): постоянная убавка (`KNP_DELTA_DECAY`) — 64–65,6% при любых скорости, пороге, торможении (26 вариантов); нормировка порогом AltAI (`KNP_SUMTHR`) — без изменений; сильнее обучение — детекторы замолкают; убавка, пропорциональная весу (`KNP_DELTA_WDECAY`), — 54,8% и очень медленно (55–98 мин на 100 000 кусочков, прогоны остановлены). Длительное торможение (`KNP_DET_NEG`, `KNP_DET_LEAK`, `KNP_SELF_INHIB`): утечка AltAI отводит отрицательный потенциал дальше от нуля при положительном значении; при отрицательном — слишком много спайков.
- Запечатление (`KNP_IMPRINT=1`: кусочек c учит детектор c через канал дофамина; numpy: K=200 — 71,4% против 73,0% у WTA): в KNP K=200 — 69,6–70,9% (лучшее 70,9%: 10 повторов, скорость 100).
- **Уточнение пользователя: важен инференс на Алтае, обучение может быть вне платформы.** Курс: обучение обычным кодом, распознавание целиком в KNP.
- `altai-objects/altai_infer.cpp`: распознавание в KNP — пиксели (спайки) → детекторы K × позиции (целые веса на 6×6×3 пикселей, смещение через постоянно активный вход) → нейроны классов (веса на (четверть, тип детектора), смещение с задержкой 2). Пишет числа спайков детекторов по четвертям (для обучения выхода) и спайки классов.
- `altai-objects/build_model.py`: k-средние без деления на контраст на кусочках транспорта, свёртка центровки/ZCA/узора в целые веса ±127, порог — 99-й перцентиль. K=200 шаг 2: масштаб 37,6, порог детектора 135, смещения −13…−5. KNP: 0,8 с/картинку, 1,5 ГБ, ~36 тыс. спайков детекторов на картинку.
- `altai-objects/run_counts.sh`: параллельный сбор чисел спайков из KNP (train, train_flip, val; 14 процессов). `altai-objects/train_readout.py`: ridge на этих числах → целые веса классов ±255, смещение по шагам, порог по обучающей выборке.
### Состояние на 11:20 (сессию выключают)
- Идёт сбор чисел спайков из KNP: `altai-objects/run_counts.sh model_k200 counts_k200` (в `~/run/altai-objects`, 14 процессов, 36 частей по 1000 картинок: train, train_flip, val). Готовые части помечены `counts_k200/*.done`; при перезапуске скрипт пропускает готовые.
- Дальше: `~/anvenv/bin/python altai-objects/train_readout.py ~/run/altai-objects/model_k200 ~/run/altai-objects/counts_k200` → веса классов в `model_k200`; затем распознавание проверочной выборки целиком в KNP: `altai_infer /home/int/run/cifar/vehicles/val_images.bin <first> <count> model_k200 <single-threaded backend> <prefix>` (частями параллельно) и точность по `<prefix>_classes.csv` против `val_labels.txt`. Тест (`test_images.bin`) — один раз в конце.
- Потом: страница демо (локальный сервер → `altai_infer` на одной картинке), сравнение с обычной CNN.
## Продолжение в новом чате: native Linux и настоящий GPU-бэкенд KNP
По запросу пользователя репозиторий склонирован в `/home/user/KNP`, HEAD8fe6c3a. Система заменена: теперь user@10.9.8.230, Ubuntu26.04.1/native Linux, hostname knp, GPU RTX4070TiSUPER/драйвер595.99.02. Ключевой SSH-доступ настроен. Прежние WSL-runtime/готовые части отсутствуют. Прочитана новая передача: важен инференс транспорта в KNP, обучение разрешено вне платформы.
Подробные команды, новые файлы, ошибки подготовки и ограничения: [Отчёт_Linux_GPU.md](Отчёт_Linux_GPU.md). Восстановлены CPU-сборка в `~/KNP/build`, Python в `~/anvenv`, CIFAR/vehicles в `~/run/cifar/vehicles` с фиксированной HF revision и SHA256, kmeans-модель K200/stride2 с порогом135. Добавлены переносимые CMake-цели/пути и возобновляемый collection/evaluation pipeline. Полная CPU/test-suite не запускалась, целевые проверки перечислены в отчёте.
Пользователь дополнительно потребовал GPU. Создан `altai-objects/gpu` и `build/bin/libknp-altai-cuda-backend.so` — реальный KNP backend AltAILIF/Delta, CUDA Driver+NVRTC, device-resident состояния/очереди/CSR, host message bus, без STDP. Драйвер не меняли. Проверены точные биты состояний и спайки на101 шаге в каждом из двух режимов, mixed signs/duplicates/multipleprojections/delays1..64, guards; реальные counts8/32 совпали CPU/GPU. 32 изображения после stream-фикса: CPU31,537с wall/27,161с execution против CUDA4,832с/0,342с. Это detector-only контроль, не FPS одиночного кадра; ~6,5× wall и~79,5× execution.
В KNP добавлен no-copy receive_messages без изменения сигнатуры update; счётчики в altai_infer собираются по шагам, исправлен выход pixel_gen за границу на конечном шаге. Старые/новые counts CPU/GPU8/32 совпали. По ревью Astra исправлены проверки ошибок записи; /dev/full приводит к exit1, результаты нормального прогона неизменны.
Основной pipeline запущен PID47256: `~/anvenv/bin/python -u ~/KNP/altai-objects/vehicle_pipeline.py --backend cuda --jobs 2 --chunk 1000`. Каталог `~/run/altai-objects/native-cuda`: collection36000, offline ridge, отдельный CPU/CUDA gate класса, validation4000. Официальный test не запускается. Пока работает — не пересобирать/изменять веса и входные данные. Не сбрасывать произвольно границы chunk: нейроны сохраняют остаточный потенциал между картинками. Результаты/статус брать из pipeline.json и validation/metrics.json; при записи журнала итог ещё не получен. Код не коммитили и не пушили.
## Итог нового запуска — завершён
Последняя истина: pipeline.json `completed/done=true/failed=false`, повторный PID49452 завершился. Старые разделы о работающем PID47256 и промежуточном сбое описывают историю, а не текущий процесс. Новых обучений/сборов в фоне не осталось.
Полный collection36000 успешно получен на GPU; readout обучен offline на train+flip. После исправления glob обучение завершено, предиктор целиком проверен в KNP на4000 validation: **2850/4000 = 71.25%**, молчаний0, равных максимальных ответов426 (правило argmax выбирает первый класс). По классам: airplane746/1000, automobile741/1000, ship636/1000, truck727/1000. Это validation, не итоговая test-оценка. Точность ridge на тех же KNP counts74,48% — диагностический ориентир, не число KNP-нейронного readout. Официальный test не запускался.
Полная сеть с readout: CPU/GPU побайтно совпали по detector counts и class CSV на8/32 изображениях. На32: CPU wall32.140с, GPU wall6.218с, ускорение5.17×; executor.start CPU26.418с против GPU0.369с (71.6×). Не смешивать с приведёнными выше detector-only замерами.
Для всей validation4000 дополнительно проверено: добавление readout не меняет детекторные counts против предыдущего collection при одинаковых chunk1000, все четыре файла совпали побайтно. Доказательство detectors-readout-independence.json. Во время collection наблюдалась фактическая загрузка GPU99% в одном сэмпле nvidia-smi; это не среднее за опыт.
Итоговые параметры readout: lambda1000, threshold120, веса классов в ±255. Обученная полная модель: `~/run/altai-objects/native-cuda/model_readout`. Финальные метрики: `validation/metrics.json`; сводка `~/run/native-migration/final-summary.json`. Артефакты source diff/исходников и модели сохранены отдельно в native-migration, копии на машине ассистента — `/opt/neiro/reports/native-gpu-artifacts`.
Следующий шаг: поднять долгоживущий демо-сервер, согласовать reset/сохранение состояния между кадрами и оценку того же протокола, затем улучшать readout (сейчас10,65% ties) по validation. Не менять границы частей и не обещать одиночный кадр за batch-time. Test сохранить до финального выбора модели.
## MNIST: отдельная проверка цифр на native Linux
По просьбе пользователя запущен `/home/user/run/mnist-native-20261015/run_mnist.py`. Канонические train/test побайтно сверены с MNIST.zip; штатная CPU-STDP сеть AltAI обучена на 60 000 и проверена на 10 000 test. Настройки: jitter20, seed42, columns20, threshold60, additional_threshold scale0, inhibition255. Исходники не менялись. Итог: **9223/10000 = 92.23%**, молчаний 144, неверных немолчаливых ответов 633, положительных ties 196; wall 344.284 с. Покартинковые голоса восстановлены из stdout и совпали с evaluator по всем классам. Предыдущие 71,25% — validation транспорта CIFAR, другая задача. GPU-STDP отсутствует; GPU-инференс MNIST в этом опыте не заявлен. Подробности: `reports/2026-10-15/Отчёт_MNIST_native.md`; артефакты: `/home/user/run/mnist-native-20261015`. Объектные модели не менялись, commit/push не выполнялись.
## Запуск существующего сайта рисования MNIST
По просьбе пользователя найден и запущен существующий `/home/user/KNP/viz/altai_viz.html`; доступен http://10.9.8.230:8080/altai_viz.html, вариант со сдвигами — /aug_viz.html. Перед запуском порт8080 был свободен. Добавлены только `/home/user/run/mnist-viz/server.py` и `start.sh`: detached `nohup` Python ThreadingHTTPServer на0.0.0.0:8080, document root строго `/home/user/KNP/viz`, PID58749, log `server.log`, pid `server.pid`. Автозапуск ОС не включали; файлы сайта и веса не меняли. Для HTML явно задан charset=utf-8. Проверки извне: обе страницы HTTP200, UTF-8 и meta charset корректны, JSON с2моделями разбирается. Это исторический браузерный JS-симулятор, не новый CUDA backend и не веса нового92,23% CPU-MNIST-прогона. Команды restart/stop и точные пути — `/home/user/run/mnist-viz/README.md`.
## Новая быстрая гибридная IF-модель для сайта
Создана собственная сеть784→256integerIF→линейныйreadout10,128шагов, offlineNumPyобучение на55000train,5000validation, seed20261015; выборcheckpoint/stepsтолькоvalidation. Каноническийtest10000:9830верных=98,30% против9223=92,23% старойKNPсети на техжеизображениях. Это другаяhybridархитектура, еёинтеграциявKNP/GPUнепроверена. Test2534(пользовательская3)→3, нетtrain/selectionпоэтомупримеру. Новаястраница http://10.9.8.230:8080/fast_viz.html; ссылкидобавленывстарыеaltai_viz.html/aug_viz.html. Нормализацияbbox20+центрмассы, автоответ, blank, clear, testгалерея, mouse/touch. CDP85примеров: bytes/IFcounts/scores/predictionточноPython=JS; realmouse/touch1→1; clear/debounce/mobilepass. Fixedstress shift2=97,74%,thicker96,85%,thinner91,41% (ограничение). ИсходникиKNP/mnist-fast, webKNP/viz/fast*, runtime~/run/mnist-fast; полныйотчёт reports/2026-10-15/Отчёт_MNIST_fast.md. ПрежнийHTTPсерверPID58749работает, автозапускОСне меняли, GPUbackendобъектовне меняли, commit/pushнет.
## Нативный AltAI — завершено (основной ассистент)
По уточнению пользователя перенесено распознавание в настоящие AltAILIF/Delta:784 rate inputs→256 hidden→160 opponent outputs, host только кодирование и декодирование счётчиков. Model SHA256 0a93f4a987d0021337b48c1d6333e7fa0fcb38ac3a43c49f8fcad19276b6548c. Обучение offline, train55000/validation5000; полные10000 test дали9776 в KNP CPU и CUDA, ВСЕ hidden/output counters exact. Официальный backend1.0.2 AltAIv1_GoldenModel:первые1000 test,975 правильных, все счётчики точны;8 независимых процессов,2 копии,стандарт4×4. Полный10000 официальный GM не запускался. Неуспешные8-копийные прогоны4×4/8×8 сохранены как FAILED; финальный код GM>2 запрещает.
Новый сайт http://10.9.8.230:8081/native_viz.html исполняет реальный C++ граф через API CPU или официальный GM. CPU single request~114–165мс,GM regression2534→3~6,126с; browser mouse/touch/blank/clear/parity проверены. Ранее гибридная JS сеть98,30% и старые страницы8080 сохранены отдельно. Исходники mnist-altai-native, runtime /home/user/run/mnist-altai-native, executable/officialdeps /home/user/run/altai-official-probe. Исчерпывающие команды/неуспехи/проверки в Отчёт_AltAI_native.md и source/README.md. CPU64,889/CUDA11,6164с — одинаковый таймер ModelExecutor, без чтения данных/построения графа; не сравнивать со143,273с всего официального1000-пакета как одну нагрузку.
Вся новая реализация выполнена лично после лимита исполнителя. Astra3/3 проверила архитектуру, исправлены stale markers, точные IDs и fingerprints, атомарная сборка. Другие subagents не запускались после запрета пользователя. Все локальные отчёты/журналы/передачи импортированы в reports/imported-neiro-2026-10-15 с пофайловой SHA256-сверкой; последняя истина IMPORT-MANIFEST.json и IMPORT-VERIFIED.json. Пакет модели и доказательств runtime/native-model-and-proofs.tar.gz, копии также в импортированных отчётах. Сервисы8080/8081 оставлены работающими, ОС-autostart/commit/push не делались.
## AltAI Pet lab — финальный результат
Создан собственный нелинейный hidden256 поверх KNP convK200;40эпох offlineMLP train+mirror, checkpoint/квантование/readout только validation. Root-L2 нормализация фиксированная на хосте, все learned operations в KNP. Первый экспорт `runtime/head` содержал переполненные пороги у слабых нейронов и не был развёрнут. `adapt_head.py` создалвалидный`head-v2`: prune71overflowunits,32rescalethresholds,refitreadoutтолькоtrain/val. Smoke успешно подтвердил256hidden и2outputs exactCPU/CUDA/reference. Послефиксациимодели final:validation1437/2000=71,85%, officialtest1427/2000=71,35%; на всех4000 exacthidden/outputreferenceCUDA. FullCPUtestнепроводился. HeadSHA1b5b8a716d19741cdd873713e60697a7adba26755dc90b3b08281d1a4b60e417;pipelineweightsSHA41cbd3bc6a5bfeb17f8cac2575b26052ab3945a72b45956836c3ca3df6db200f.
Astra3/3финальныйобзор: исправленыserverстароймодели→head-v2,подключеноencode+KNP hidden+KNPoutput; BILINEAR32contractзафиксирован; добавленыsmoke/fingerprintgate,adversarialresetcap64наCPU/CUDA;reset/absguardsпереведенывint64,INT_MINfixtureотвергается;HTTPadmission≤4/sockettimeout15/GPUlockпередdecode,upload8MB/16MP,subprocesstimeouts/modelSHAguard. Другиеагентынезапускались.
Новый`pets_worker.cpp`/`worker.py`держитKNPgraph/GPUзагруженным;6requestsdetectorcountsпобайтноexactобычномуrunnerпослеwhite/black/repeat. Первыйstartup5,69s,следующиеdetector1–5ms;непутатьсвсейклассификацией. Head/readoutпокаотдельныепроцессы. ПолныйAPI4запроса392–444ms,ответыиобаoutputспайкаexactfinaltestCSV. API400malformed/200+429parallelпроверены. Server8082PID116676,worker116704;актуальностьчерезruntime/server.pid. АвтозапускаОСнет.
Сайт http://10.9.8.230:8082/:24testпримеров(первые12каждогокласса,безотбораудачных),свояфотография,32×32input,реальнаяheatmap,числоспайков/время,честноуказанhostpool/normalization/routingиGoldenModelnotverified. EmojiнеотрисовывалисьвChromium,замененыSVG. ChromiumCDPповторнопроверилdesktop,mobile390nooverflow,realfilepicker,staleresponse,JSerrors0. T3previewоткрытпользователю,automationявнонеподдерживается. Скриншоты и JSON `reports/pets-knp-artifacts`.
`train_head.py`исправлендляследующегообучения(scaleclampдоcast/resetnormbound/floatcheckpoint,head-next);историческийtrain_head_legacy.pyсохранён. Syntheticnearzeroweightregressionпрошёлвremotevenv;локальныйnumpyнеустановлен,ничегонеустанавливали. Новоевсеполноеобучениеисправленнымтренеромне запускалось,head-v2не менялся.
Полныйотчёт `reports/2026-10-15-pets-knp.md`,команды/source `experiments/pets-knp/README.md`,HANDOFFиAGENTSобновлены. Исходникинастанции`/home/user/KNP/pets-knp`;runtime`/home/user/run/pets-knp`. Сборкиатомарныевотдельныеpetsбинарники;KNPбиблиотеки/старые8080/8081/моделине менялись. Сохраняется`model-and-proofs.tar.gz`+SHA(source,модели,proofs,разбиенияданных),копиявreports/pets-knp-artifacts,всеотчётысинхронизируютсянастанциюсSHA.
Pet lab: финальный перенос подтверждён — 261 файл imported-neiro-2026-10-15 с SHA каждого; model-and-proofs.tar.gz 61517274 bytes,153 members,SHA 2cfefd3c2617aef48e2bfaefa672311d89fb88d657b42354eb77101d66718b55. Локальная копия и tar members проверены. Сайт8082 оставлен запущенным.
## Аппаратный аудит / муха остановлена / GitSSH
ТекущаяPetlab несовместима с Алтай2какесть:ёмкостьпрототипа,палитравесов,потенциалы16bit,hostnormalization. Свереныдокументыивеса,отчёт Отчёт_Аппаратный_аудит_и_статус.md;runtime/pets-knp/hardware-feasibility.json. Пользовательявноостановилмуху:толькоотменённаяручнаязаготовкасобрана,неисполнялась,сайтанет. Поего запросунаэтойстанциисоздан~/.ssh/id_ed25519_git_snw(+.pub),Hostgit.snw.suнастроен. Privateнепередавался;Gitpush/remoteне менялись. Все264отчётныхфайлаимпортированы сSHA;публичныйZIP на public.agent.snw.su/knp-reports-2026-10-15.zip.