Про обученную матрицу. Controller это MLP, вход 53 сущности, выход 4 предиката. В посте фраза "Переписал controller на float32 MLP - 624 тысячи параметров, тривиальный прямой проход. 200 эпох за 0.3 секунды". Обучение: берем пары (entity, goal) и правильный предикат, считаем cross-entropy loss, назад через градиент. Всё. Не правила, а веса матрицы после градиентного спуска.
Про решение когда случая нет в правилах. В экспертной системе если нет matching правила, ответа нет. В TernaT если Controller выдаёт распределение вероятностей по 4 предикатам, даже если ни один не "правильный", ChainScorer оценивает цепочки через beam search и выбирает лучшую. Не "я не знаю", а "вот наиболее вероятный путь". В посте: "Beam search шириной 3 помогает, но не идеально". Это не магия. Если похожего случая не было в train set, accuracy будет ниже — на 3-hop как раз 70% вместо 100% на 1-2 hop.
Про цитаты. Весь раздел "TernaT: три компонента" описывает именно как это работает. PredicateShardedStore группирует факты, GraphKANResonator чистит шум через negative training (цитата: "False positive rate упал с 1.3% до 0%"), FastController предсказывает предикат. Если коротко: Controller learned (MLP, backprop), Resonator learned (тернарная нейросеть), ChainScorer learned (Transformer). Ни одного if-then правила в reasoning части
Мне кажется или вы не читали пост? Там же все расписано.
Экспертная система это когда инженер сидит и пишет 500 if-then правил. А потом приходит новый случай и правила не хватает. TernaT работает иначе.
Controller предсказывает предикат не по правилу, а по обученной матрице 53x4. 624K параметров, 200 эпох, градиент.
Resonator чистит шум не алгоритмически (как Frady 2021), а нейросетью на 65K тернарных параметров. Плюс negative training чтобы false positives были 0%.
NL parser гибрид: 50+ regex покидали, но потом word-level эвристики и нейросетевой fallback. Не чистая грамматика.
Где тут hand-crafted правила? Их нет. Есть обученные веса, VSA представления и beam search шириной 3.
И да, я знаю что такое экспертная система. MYCIN, DENDRAL, CLIPS проходили. TernaT про другое. Про нейронный reasoning который умещается в Cortex-M0+ и не требует инженера с 500 if-then.
Спасибо за вопрос кстати. Хорошо что люди вчитываются.
Тут нет базы знаний как таковой есть движок который берёт твои факты и отвечает на вопросы по ним не читает тексты не понимает контекст а просто логически соединяет факты
Пример с завода датчик на насосе мерит вибрацию температуру давление В базу загружаешь правила типа если вибрация больше 5 это опасно Если температура выше 80 нужна остановка TernaT может ответить какая сейчас вибрация а если она вырастет что будет Что сначала проверить Каждый ответ вытекает из факта а не из угадайки как у LLM
Размер базы не ограничен можно 20 фактов про станок можно 20 тысяч про цех Война и мир не загрузишь потому что это не база фактов а текст TernaT не про чтение книг а про чёткие связи сущность свойство значение
Короче это такой логический калькулятор на микроконтроллере за 30 рублей без интернета без GPU LLM рядом не стояла
Так MNIST в статье не как метрика "смотрите мы крутые", а как демонстрация что ternary ≥ float (94.77 → 96.15%). Весь смысл не в высоте процента, а в том что квантование не убило точность, а подняло. На Fashion-MNIST то же самое: 84.1 → 86.68%. На CNN: 91.57 → 92.02%. Эффект не на одном MNIST, а на всех архитектурах. Сам MNIST тут — это просто понятный бенчмарк, чтобы показать трюк, а не SOTA.
Логика простая: 3 состояния = 3 операции. Пропустить (+1), инвертировать (-1), заблокировать (0). Это конечный автомат, где каждый вес - это switch. Четвертое состояние (+2) потребовало бы уже умножение на коэффициент - а тернарность как раз в том, чтобы заменить умножение на условное сложение/вычитание/пропуск. log2(3) ≈ 1.58 бита - это уже между binary и ternary. Если нужен +2 - лучше просто добавить еще один нейрон с +1, чем вводить четвертое значение веса
Контроль - кросс-доменная валидация. Модель обучалась на MNIST, но проверялась на 5 доменах: Fashion-MNIST, HAR (акселерометры), FSDD (аудио), CIFAR-10. Если бы было переобучение - на доменах, отличных от MNIST, точность бы рухнула. На Fashion-MNIST ternary даже бьет float (86.68% vs 84.1%). А сам эффект ternary весов - это по сути регуляризация: три значения не дают модели запомнить шум, потому что "разрешения" веса банально не хватает.
Про обученную матрицу. Controller это MLP, вход 53 сущности, выход 4 предиката. В посте фраза "Переписал controller на float32 MLP - 624 тысячи параметров, тривиальный прямой проход. 200 эпох за 0.3 секунды". Обучение: берем пары (entity, goal) и правильный предикат, считаем cross-entropy loss, назад через градиент. Всё. Не правила, а веса матрицы после градиентного спуска.
Про решение когда случая нет в правилах. В экспертной системе если нет matching правила, ответа нет. В TernaT если Controller выдаёт распределение вероятностей по 4 предикатам, даже если ни один не "правильный", ChainScorer оценивает цепочки через beam search и выбирает лучшую. Не "я не знаю", а "вот наиболее вероятный путь". В посте: "Beam search шириной 3 помогает, но не идеально". Это не магия. Если похожего случая не было в train set, accuracy будет ниже — на 3-hop как раз 70% вместо 100% на 1-2 hop.
Про цитаты. Весь раздел "TernaT: три компонента" описывает именно как это работает. PredicateShardedStore группирует факты, GraphKANResonator чистит шум через negative training (цитата: "False positive rate упал с 1.3% до 0%"), FastController предсказывает предикат. Если коротко: Controller learned (MLP, backprop), Resonator learned (тернарная нейросеть), ChainScorer learned (Transformer). Ни одного if-then правила в reasoning части
Спасибо, присмотрелся.
Мне кажется или вы не читали пост? Там же все расписано.
Экспертная система это когда инженер сидит и пишет 500 if-then правил. А потом приходит новый случай и правила не хватает. TernaT работает иначе.
Controller предсказывает предикат не по правилу, а по обученной матрице 53x4. 624K параметров, 200 эпох, градиент.
Resonator чистит шум не алгоритмически (как Frady 2021), а нейросетью на 65K тернарных параметров. Плюс negative training чтобы false positives были 0%.
ChainScorer оценивает цепочки. Transformer, 2 слоя, 4 головы, 128d. Тоже обученный.
NL parser гибрид: 50+ regex покидали, но потом word-level эвристики и нейросетевой fallback. Не чистая грамматика.
Где тут hand-crafted правила? Их нет. Есть обученные веса, VSA представления и beam search шириной 3.
И да, я знаю что такое экспертная система. MYCIN, DENDRAL, CLIPS проходили. TernaT про другое. Про нейронный reasoning который умещается в Cortex-M0+ и не требует инженера с 500 if-then.
Спасибо за вопрос кстати. Хорошо что люди вчитываются.
Спс за вопрос
Тут нет базы знаний как таковой есть движок который берёт твои факты и отвечает на вопросы по ним не читает тексты не понимает контекст а просто логически соединяет факты
Пример с завода датчик на насосе мерит вибрацию температуру давление В базу загружаешь правила типа если вибрация больше 5 это опасно Если температура выше 80 нужна остановка TernaT может ответить какая сейчас вибрация а если она вырастет что будет Что сначала проверить Каждый ответ вытекает из факта а не из угадайки как у LLM
Размер базы не ограничен можно 20 фактов про станок можно 20 тысяч про цех Война и мир не загрузишь потому что это не база фактов а текст TernaT не про чтение книг а про чёткие связи сущность свойство значение
Короче это такой логический калькулятор на микроконтроллере за 30 рублей без интернета без GPU LLM рядом не стояла
Так MNIST в статье не как метрика "смотрите мы крутые", а как демонстрация что ternary ≥ float (94.77 → 96.15%). Весь смысл не в высоте процента, а в том что квантование не убило точность, а подняло. На Fashion-MNIST то же самое: 84.1 → 86.68%. На CNN: 91.57 → 92.02%. Эффект не на одном MNIST, а на всех архитектурах. Сам MNIST тут — это просто понятный бенчмарк, чтобы показать трюк, а не SOTA.
кое что интересное попробую...
Логика простая: 3 состояния = 3 операции. Пропустить (+1), инвертировать (-1), заблокировать (0). Это конечный автомат, где каждый вес - это switch. Четвертое состояние (+2) потребовало бы уже умножение на коэффициент - а тернарность как раз в том, чтобы заменить умножение на условное сложение/вычитание/пропуск. log2(3) ≈ 1.58 бита - это уже между binary и ternary. Если нужен +2 - лучше просто добавить еще один нейрон с +1, чем вводить четвертое значение веса
Контроль - кросс-доменная валидация. Модель обучалась на MNIST, но проверялась на 5 доменах: Fashion-MNIST, HAR (акселерометры), FSDD (аудио), CIFAR-10. Если бы было переобучение - на доменах, отличных от MNIST, точность бы рухнула. На Fashion-MNIST ternary даже бьет float (86.68% vs 84.1%). А сам эффект ternary весов - это по сути регуляризация: три значения не дают модели запомнить шум, потому что "разрешения" веса банально не хватает.