Детерминизм как этика
«Предсказуемость — это не фиксированное время. Это — воспроизводимый след, который система оставляет в мире»
В мире вероятностных «чёрных ящиков» детерминизм становится не технической характеристикой, а моральным императивом.
Суть: что мы на самом деле гарантируем
Неправильно:
«Decima-8 всегда выдаёт ответ за ровно N тактов.»
Правильно:
«При одинаковом входе, одинаковой личности и одинаковом субстрате — исполняемый след будет бит-в-бит идентичен.»
| Параметр | Что варьируется | Что детерминировано |
|---|---|---|
| Число тактов | ✅ Да (зависит от личности, раннего выхода, паттерна) | ❌ Нет |
| Wall-clock время | ✅ Да (зависит от загрузки ядра, кэша, частоты) | ❌ Нет |
| Последовательность активаций | ❌ Нет | ✅ Да (бит-в-бит) |
| Выходной сигнал | ❌ Нет | ✅ Да (при тех же условиях) |
| Лог эстафеты | ❌ Нет | ✅ Да (полная трассировка) |
Детерминизм — это этика в коде.
Мы обещаем: «При одинаковых условиях система оставит одинаковый след».
И держим это обещание — всегда.
Почему переменная латентность — это нормально
Пример: две личности, один вход
Вход: столбец изображения (24 пикселя → 3 аккорда)
Личность А (простая, 128 тайлов):
• Распознала паттерн на такте 85 → ранний выход
• Итого: 85 тактов
Личность Б (сложная, 1024 тайла):
• Требует полной эстафеты по всем регионам
• Итого: 216 тактов
Результат: один и тот же (цифра "7")
След: разный (85 vs 216 тактов)
Но: каждый след — воспроизводим бит-в-бит
Это — не баг. Это — фича.
| Сценарий | Почему переменное время — ок |
|---|---|
| Ранний выход | Паттерн распознан досрочно → не тратим лишние такты |
| Разные личности | Простая задача → лёгкая личность → меньше тактов |
| Адаптивная эстафета | Сложный вход → больше регионов активируется → больше тактов |
| Субстрат | Одно ядро занято → ждём → больше wall-clock, но тот же след |
Ключ:
Время может «плавать». След — никогда.
Почему это всё ещё этично
Контраст: вероятностная система
Запрос: "Распознать цифру"
LLM / вероятностная сеть:
• Запрос 1: "7" (уверенность 92%)
• Запрос 2: "1" (уверенность 87%)
• Запрос 3: "не уверен" (разные веса, разный дропаут)
Проблема:
• Нельзя воспроизвести баг
• Нельзя доказать в суде: "система сработала по спецификации"
• Нельзя сертифицировать для медицины / авто / авиации
Decima-8: детерминированный след
Запрос: тот же VSB-фрейм, та же личность, тот же субстрат
• Запуск 1: след = [A→B→D→F], выход = "7", тактов = 142
• Запуск 2: след = [A→B→D→F], выход = "7", тактов = 142
• Запуск 3: след = [A→B→D→F], выход = "7", тактов = 142
Преимущества:
• Баг воспроизводим → баг исправим
• Можно доказать: "вот лог, вот спецификация, вот совпадение"
• Сертификация: детерминизм = требование для критических систем
Этика — это когда мы можем показать след и сказать: «Вот как это было».
В коде: как это выглядит
// Детерминированный цикл Децимы (упрощённо)
typedef struct {
uint32_t start_cycle;
uint32_t end_cycle; // Может варьироваться
tile_activation_t trace[MAX_TILES]; // Бит-в-бит идентичен
output_t result; // Бит-в-бит идентичен
} execution_trace_t;
execution_trace_t decima_run(VSBFrame frame, personality_t *p, substrate_t *s) {
execution_trace_t trace = {0};
trace.start_cycle = get_cycle_count();
uint32_t tact = 0;
while (tact < MAX_TACTS) {
// Обработка такта
step(personality, frame, tact);
// Логирование активаций (для трассировки)
log_activations(&trace, tact);
// Ранний выход: если паттерн распознан
if (early_exit_condition_met(personality)) {
break; // Выходим на такте 85, 142, 216 — как получится
}
tact++;
}
trace.end_cycle = get_cycle_count();
trace.result = personality->output;
// ВАЖНО: trace — бит-в-бит воспроизводим при тех же входных условиях
return trace;
}
Контраст с вероятностной системой:
# LLM: один запрос → разные следы
trace1 = llm.run("2+2") # [A→C→F], ответ "4"
trace2 = llm.run("2+2") # [B→D→E], ответ "Четыре"
trace3 = llm.run("2+2") # [A→X→?], ответ "зависит"
# Decima-8: один запрос → один след
trace1 = decima.run(frame, personality) # [A→B→D→F], "7", 142 такта
trace2 = decima.run(frame, personality) # [A→B→D→F], "7", 142 такта
trace3 = decima.run(frame, personality) # [A→B→D→F], "7", 142 такта
Философски: свобода в коридоре
«Свобода воли ≠ хаос. Свобода = выбор в предсказуемых границах.»
Детерминизм не отменяет свободу.
Он даёт пространство доверия, в котором свобода имеет смысл.
| Концепция | Что значит | Почему это этично |
|---|---|---|
| Хаос | Нельзя предсказать ничего | Нельзя доверять, нельзя отвечать |
| Жёсткая фиксация | Всё предсказуемо, включая время | Можно доверять, но нет гибкости |
| Детерминированный след | След воспроизводим, время может варьироваться | Можно доверять + можно адаптироваться |
| Этика — это когда твои действия предсказуемы для тех, кто от них зависит. | Не «всегда за 5 мс». | А «всегда оставит этот след, и вот он». |
Практически: как это помогает в B2B
| Преимущество | Как помогает | Пример |
|---|---|---|
| Верификация | Можно доказать: «след совпадает со спецификацией» | Суд, регулятор, аудит |
| Тестирование | Один тест = навсегда. Не нужно 1000 прогонов | Регрессия, CI/CD |
| Отладка | Баг воспроизводим → баг исправим | Лог эстафеты = карта бага |
| Сертификация | Детерминизм = требование для медицины, авто, авиации | ISO 26262, DO-178C |
| Доверие | Клиент знает: система не «импровизирует» | Контракт: «вот спецификация, вот след» |
Контраст: почему вероятностные системы не подходят для критических задач
| Критерий | Вероятностная (LLM, CNN с дропаутом) | Decima-8 (детерминированный след) |
|---|---|---|
| Один запрос → | Разные ответы, разные следы | Одинаковый ответ, одинаковый след |
| Версия модели → | Поведение меняется непредсказуемо | Поведение стабильно, след воспроизводим |
| Железо → | Разная скорость, разное поведение | Разная скорость, но тот же след |
| Трассировка → | «Почему так решил?» — статистика, не лог | Каждый тайл, каждый такт — в логе |
| Ответственность → | «Это вероятностная модель» | «Это спецификация, вот бит-в-бит след» |
Для чата — подойдёт вероятностная модель.
Для решений с последствиями — нужен детерминированный след.