41 lines
7.8 KiB
Markdown
41 lines
7.8 KiB
Markdown
# Нативный MNIST: AltAILIF / официальный GoldenModel
|
||
|
||
Рабочая машина: `user@10.9.8.230`. Исходники сохраняются в `/home/user/KNP/mnist-altai-native`, runtime `/home/user/run/mnist-altai-native`, официальный backend1.0.2 и сборочные include/lib — `/home/user/run/altai-official-probe`. Это отдельная модель от гибридной IF256 браузерной сети и от старого STDP примера.
|
||
|
||
## Модель
|
||
|
||
784 входа с детерминированным целочисленным rate-кодом,32 активных тика;256 AltAILIF (threshold32, is_diff=true,is_reset=false,negative threshold0,saturate=true);160 AltAILIF выходов (2 знака×8 групп×10 классов, threshold4). Выходные нейроны возбуждаются только положительными выученными весами. Хост декодирует разность положительных/отрицательных спайковых счётчиков и argmax, а не вычисляет обученный линейный слой.
|
||
|
||
Веса каждого нейрона: до3 рабочих величин плюс255 для reset. Порог и все параметры целые; консервативные границы потенциалов укладываются в signed16. После входа отдельным отрицательным burst очищается hidden, выходы дожидаются окончания спайков, затем очищается output и выдерживаются задержки. Все128 reset-линий имеют разные индексы: официальный GoldenModel схлопывает одинаковые индексы внутри тика. Начальный потенциал в этой версии backend не подтверждён, поэтому смещения задаются событиями отдельного clock.
|
||
|
||
Данные и веса: model.bin (8 int32 header +w1/b1/w2/b2 int16), model.npz, images.bin (нормализованные784 uint8), labels.bin int32. Метки используются только для оценки, никогда не подаются в сеть. Веса фиксируются по train/validation, test10000 не используется для обучения/выбора параметров.
|
||
|
||
## Восстановление сборки и эксперимента
|
||
|
||
1. Сначала прочитать `/home/user/KNP/reports/2026-10-15/Отчёт_AltAI_native.md` и журнал. Не менять модель/библиотеки во время коллекций.
|
||
2. Официальные deb распакованы без установки в altai-official-probe/extracted; compile-command.txt фиксирует include/lib текущей KNP-сборки. Не запускать preinst ради воспроизведения.
|
||
3. `python3 /home/user/KNP/mnist-altai-native/build_native.py` — сборка native_digits.new и атомарная замена runtime/native_digits. Сборка берёт native_digits.cpp рядом со своим скриптом; dependency paths берутся из сохранённой compile-command.txt. build manifest фиксирует SHA256.
|
||
4. Переобучение (меняет runtime, не запускать поверх сохранённого результата): `~/anvenv/bin/python ~/KNP/mnist-altai-native/prepare_native.py`.
|
||
5. Проверка: `~/anvenv/bin/python ~/KNP/mnist-altai-native/run_verify.py cpu 10000 8 cpu-new-run`, аналогично cuda. Официальный: `... run_verify.py gm 1000 2 gm-new-run`. Для параллельной проверки фиксированных первых1000: `~/anvenv/bin/python ~/KNP/mnist-altai-native/run_sharded.py gm-new-group` (8 независимых процессов, по125 картинок и2 копии сети). Каждый новый прогон — новый каталог: повторное использование непустого каталога запрещено, чтобы старый VERIFIED не скрывал сбой.
|
||
6. GoldenModel допускается только с replicas<=2 в подтверждённой стандартной конфигурации4×4. Попытки8 копий в4×4 и явной8×8 дали несовпадения, хотя placement завершался. Не считать расширение сетки или принятие графа размещателем достаточным доказательством. Для параллелизма используются отдельные процессы эмулятора с изолированными cwd. Пакет называет устройство AltAIv1_GoldenModel; руководство KNP2.0 описывает путь как AltAI-2. Физический чип этим опытом не проверен.
|
||
7. `VERIFIED.json` создаётся только при успешном выходе и точном совпадении всех256 hidden и160 output counters и предсказаний. При несовпадении — FAILED.json, процесс останавливается. Прогресс: progress_probe.py <run-directory> печатает compact JSON, done только после VERIFIED.
|
||
|
||
## Сайт
|
||
|
||
`http://10.9.8.230:8081/native_viz.html`; предыдущие сайты8080 сохранены. Запуск без системного автозапуска:
|
||
|
||
```bash
|
||
nohup /home/user/anvenv/bin/python /home/user/KNP/mnist-altai-native/server.py > /home/user/run/mnist-altai-native/web-server.log 2>&1 < /dev/null &
|
||
```
|
||
|
||
PID фиксировать в web-server.pid и сверять команду процесса перед остановкой. Backend cpu или gm выбирается в интерфейсе. GoldenModel запускается явной кнопкой, поскольку размещение и API-тиковый обмен заметно медленнее. POST /api/native-recognize:784 нормализованных целых пикселя0..255; каждый запрос создаёт изолированную сеть через настоящий C++ KNP-исполнитель. Пустой вход — без ответа. Нет обученных матриц в JS/Python-сервере. Timeout30с и semaphore1, устаревшие ответы UI отменяются. GPU используется в пакетных тестах; для одного запроса загрузка контекста дороже CPU.
|
||
|
||
## Что сохранить следующему чату
|
||
|
||
- model.bin/model.npz, selection/history, reference.npz, metrics-reference.json, split исходного teacher.
|
||
- CPU/CUDA/GoldenModel VERIFIED.json и binary счётчики; не считать неуспешные каталоги финальными.
|
||
- source/build manifests, официальные tiny/semantics логи, web/browser API-проверки и полный отчёт.
|
||
- На локальном сервере: `/opt/neiro/reports/2026-10-15-altai-native.md`, `/opt/neiro/reports/altai-native-artifacts`.
|
||
- Все старые локальные отчёты уже импортированы в `/home/user/KNP/reports/imported-neiro-2026-10-15`, checksum manifest проверен. После новых записей импорт дополняется отдельным delta.
|
||
|
||
Не записывать пароли/приватные ключи. Подключаться к стенду только по запросу пользователя. Никакие commits/push или systemd enable этим экспериментом не выполнялись.
|