Pull to refresh
16K+
6
Юрий Венедиктов@Fakeonomics

ML-разработчик

15,5
Rating
4
Subscribers
Send message

Про обученную матрицу. 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 весов - это по сути регуляризация: три значения не дают модели запомнить шум, потому что "разрешения" веса банально не хватает.

Information

Rating
558-th
Location
Россия
Date of birth
Registered
Activity

Specialization

ML разработчик
From 150,000 ₽
Python
Git
Linux
SQL
REST
Английский язык