Skip to content

Детерминизм как этика

«Предсказуемость — это не фиксированное время. Это — воспроизводимый след, который система оставляет в мире»

В мире вероятностных «чёрных ящиков» детерминизм становится не технической характеристикой, а моральным императивом.

Суть: что мы на самом деле гарантируем

Неправильно:

«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 (детерминированный след)
Один запрос → Разные ответы, разные следы Одинаковый ответ, одинаковый след
Версия модели → Поведение меняется непредсказуемо Поведение стабильно, след воспроизводим
Железо → Разная скорость, разное поведение Разная скорость, но тот же след
Трассировка → «Почему так решил?» — статистика, не лог Каждый тайл, каждый такт — в логе
Ответственность → «Это вероятностная модель» «Это спецификация, вот бит-в-бит след»

Для чата — подойдёт вероятностная модель.

Для решений с последствиями — нужен детерминированный след.


Читать дальше