Запуск 001первое выполнение
конверт детерминизма
- capability
- finance.npv
- runtime_bundle
- 0.1.0 · 4d64142e…
- platform
- darwin-arm64
- precision_mode
- float64
- thread_count
- 1
- value
- 505.020148896933
computation_hashb74f67d0d7a594aa…
Детерминизм по построению
Задайте модели один и тот же вопрос дважды — и получите два разных ответа. Это недетерминированный AI: приемлемо для текста, недопустимо для чисел. SQAI забирает число у модели: каждое вычисление выполняется на зафиксированном float64-рантайме, в одном потоке, и выводит хеш, позволяющий воспроизвести его точно.
IIВоспроизведение
Одно вычисление — finance.npv при ставке дисконтирования 10% на пяти денежных потоках — выполнено однажды, затем воспроизведено спустя месяцы. Детерминизм как обещание требует доверия. Детерминизм как хеш требует лишь сравнения.
Запуск 001первое выполнение
конверт детерминизма
computation_hashb74f67d0d7a594aa…
Запуск 002несколько месяцев спустя
конверт детерминизма
computation_hashb74f67d0d7a594aa…
Идентично. Не похоже — идентично.
общий computation_hashb74f67d0d7a594aa7ac91f6291612452aa8ccdf603351ebc8d801a6fddd91bc8
Два языка, один поток байтов
TypeScriptcanonicalJson(result.value)
Pythoncanonical_json(result.value)
одинаковые байты на любом из языков505.020148896933
одни байты на входе → один sha256 на выходе → один сертификат
canonicalJson в TypeScript и canonical_json в Python по конструкции выдают одинаковые байты: −0 становится 0, ключи сортируются, экранирование unicode фиксировано. Совпадение хешей между языками — не удача, на которую остаётся надеяться, а контракт сериализации.
IIIМелкий шрифт
«Детерминизм» легко декларировать и трудно соблюдать. SQAI не утверждает, что результат будет идентичен на любой машине во вселенной. Система объявляет область выполнения, фиксирует её в конверте и гарантирует идентичность внутри этой области.
Фиксировать среду надёжнее, чем делать о ней заявления. Всё, что способно изменить число, либо закреплено, либо записано.
указывается в каждом результатеdeterministic_scope: "local_registered_source"
IVРазделение доменов провенанса
Провенанс здесь — не строка в логе. Это три конструкции sha256, каждая отвечает на отдельный вопрос и вычисляется по каноническим байтам.
plan_hashf87610d8afeb…Разрешённый план, хешированный до начала выполнения. Один и тот же вопрос разрешается в один и тот же план — decision_path: exact_spec — поэтому план, проверенный однажды, остаётся проверенным навсегда.
invocation_hashИдентификатор вызова — возможность плюс её канонизированные аргументы — под собственным префиксом с тегом версии. explainQuery выводит это как предварительный просмотр без выполнения; хеш выполненного вызова фиксируется независимо в момент запуска.
computation_hashb74f67d0d7a594aa…Включает invocation_hash перед каноническими байтами значения. Ответ криптографически связан со своим вопросом — этот хеш нельзя прикрепить к другому результату.
invocation_hash = sha256("sqai:invocation:v1\0" + canonicalJson(identity))
computation_hash = sha256("sqai:computation:v1\0" + invocation_hash + canonicalJson(value))Префиксы — это и есть суть. «sqai:invocation:v1» и «sqai:computation:v1» — непересекающиеся пространства байтов: вызов никогда не столкнётся с вычислением, а будущий v2 никогда не выдаст себя за v1. Разделение доменов делает хеши доказательством, а не украшением.
В основе всех трёх — сам интерфейс закреплён. Контракт возможностей, определяющий, что вообще может выполняться, поставляется со своим собственным хешем:contract_hash sha256:79f1c5a6c716…
сэмплирование — не выполнение: модель здесь ничего не вычисляет
VСэмплирование vs выполнение
temperature: 0настройка декодирования
computation_hashсвойство выполнения
VIГде детерминизм может нарушиться
seed_required
Десять из 4 574 доступных возможностей симулируют случайность. Без сида они не выполняются вовсе — вызов отклоняется до начала выполнения. С сидом воспроизводятся так же, как всё остальное. Никакой скрытой энтропии, никаких тихих исключений.
одна из десятиdistributions.sample_normal
schema_revision_mismatch
Каждый зарегистрированный источник несёт ревизию схемы. Воспроизведите план на изменившихся данных — движок откажет со структурированной ошибкой, а не вернёт молча другое число, которое никто бы не заметил.
указывается для каждого источникаschema_revision
4 564 детерминированы по умолчанию · 10 детерминированы при наличии сида · 0 угадывают
VIIВопросы
Система, чьи ответы воспроизводятся точно: одинаковый ввод — одинаковый вывод, доказуемо. SQAI реализует это конструктивно: вычисления выполняются на зафиксированном float64-рантайме, в одном потоке, и каждый результат несёт computation_hash, позволяющий воспроизвести его побайтово.
Система, чей вывод может различаться при идентичных запросах. Языковые модели сэмплируют токены, поэтому один и тот же вопрос может порождать разные рассуждения, разный SQL и разные числа — без какого-либо сигнала об изменении. Воспроизводимый хеш — противоядие от этого дрейфа.
Temperature лишь сужает выбор следующего токена. Модель по-прежнему предсказывает ваше число, а не вычисляет его, и ничего о прогоне не фиксируется и не воспроизводится. Детерминизм SQAI — свойство исполнения, а не декодирования: модель формирует типизированный план, а движок выполняет арифметику.
Сравните computation_hash каждого результата. Это domain-separated sha256 по идентификатору вызова и каноническим байтам значения: совпадающие хеши означают побайтово идентичные ответы — пример finance.npv выводит b74f67d0… и в TypeScript, и в Python.
За счёт отказа от скрытой случайности. Ровно 10 из 4 574 доступных возможностей SQAI симулируют случайность; вызванные без seed они отклоняются с seed_required, а с seed воспроизводятся точно так же, как любая другая возможность.
Воспроизведение завершается с явной ошибкой. Каждый зарегистрированный источник несёт ревизию схемы, и план, воспроизведённый против изменившихся данных, возвращает schema_revision_mismatch — структурированную ошибку, а не молчаливо другое число.