Блог
[виджеты работают в браузере; модули TRI-27 следуют закреплённой версии эмулятора, остальное учит на небольших числах] Курс 8 на t27.ai: 27 уроков от того, почему основание 3 самое дешёвое (39 против 40 для любого числа до 999999), через сбалансированную троичную, логику Клини, сумматоры, умножение без умножителя, пять тритов в байте, командное слово TRI-27 и троичную машину до нейронов с весами -1, 0, +1.

На t27.ai восьмой курс: «Троичная машина». Он начинается с вопроса, зачем вообще основание 3, и заканчивается нейронами с весами -1, 0 и +1, всего 27 уроков в 9 модулях. В каждом уроке есть виджет, который можно нажимать, и каждое число в нём вычисляет спека t27, скомпилированная в WebAssembly прямо в вашем браузере, а не вписанная в страницу.
Если цена цифры — число состояний, которые она различает, то число стоит основание, умноженное на количество цифр. Первый виджет запускает radix_economy.t27: любое число до 999999 стоит 39 в основании 3 и 40 в основаниях 2 и 4, потому что b / ln b минимально в точке e, а 3 — ближайшее к ней целое. Урок говорит и о том, что модель упускает: двоичная система победила, потому что элементы на два состояния дёшевы, быстры и надёжны.
С цифрами -1, 0 и +1 числу не нужен знак, смена знака переворачивает каждый трит, а отбрасывание тритов уже и есть округление. Сложение — это полный сумматор на каждый разряд; ниже — стартовый пример виджета со сквозным переносом, нарисованный той же скомпилированной trits.t27, что исполняет виджет.
Умножение на трит — это переключатель: копия, ноль или переворот. Поэтому троичные нейросети дёшевы в железе, и курс заканчивается именно этим: MAC, который только складывает и вычитает, нейрон, умеющий ответить «не уверен», детектор полосы и маленький слой.
Два модуля выходят из игрушечного мира. Командное слово — это 32-битное слово, которое декодирует закреплённая версия эмулятора Trinity: из 256 байтов опкода 47 что-то значат, а остальные 209 декодируются как NOP. Виджеты вызывают encode(), opcode_of() и остальные функции из specs/isa/ternary_encoding.t27. Затем троичная машина с тремя 9-тритными регистрами выполняет цикл, который сам завершается переходом на три стороны.
Логика — две новые спеки в gHashTag/t27, trits.t27 и radix_economy.t27: 21 тест, каждый исполняет свои проверки, 8 отрицательных контролей пойманы. Они читают сбалансированные триты через смещение 111...1 в основании 3, поэтому знаковое деление не нужно. 27 виджетов используют один общий модуль отрисовки, который ничего не вычисляет; scripts/widget-logic.mjs сверяет каждый скомпилированный logic.js со спекой рядом с ним. Тексты уроков приводят только числа, которые дают спеки или виджеты, а там, где спека урока — другая машина, например двоичные сумматоры из троичных нейронов, текст так и говорит.
Поработаем вместе
Я проектирую форматы низкой разрядности и троичную арифметику, синтезируемый RTL, независимые референсные модели и побитовые тест-векторы. Готовые измеренные ядра можно лицензировать.