Модель, которая не перестает учиться
Тернит — русская языковая модель, у которой веса записаны тритами, а умения пристраиваются к ядру отдельными частями. Рассказываю, зачем она такая и что уже работает.
Почти любая языковая модель перестаёт учиться в день выпуска. Её долго учат в дата-центре, потом замораживают и раздают. Если она чего-то не знает или ошибается, исправить это может только тот, у кого есть огромные машины: снова собрать данные, снова учить, снова выпустить. У пользователя модель только отвечает.
Я делаю модель, устроенную наоборот. Она называется Тернит, и главная мысль укладывается в одну фразу: ассистент должен работать там, где лежат ваши данные, и продолжать учиться после того, как его поставили.
Начинается это с записи весов. У обычной модели каждый вес — дробное число на 16 бит. У Тернита веса записаны тритами — числами −1, 0 и +1. Отсюда и имя: от слова «тернарный». Модель в такой записи занимает в разы меньше места и считается почти без умножений.
Сжимать модели умеют многие, но обычно это последний шаг: ужатую модель дальше не учат, для этого нужна её полная копия и мощные видеокарты. Тернит учится прямо в тритах, целыми счётчиками, по байту на вес и без тяжёлой копии рядом. Поэтому учиться он может и там, где стоит.
Вторая опора — знания лежат снаружи. Маленькая модель физически не может помнить весь мир, поэтому рядом с ней стоит банк — большое хранилище знаний, в котором она ищет. Чего нет в банке, Тернит ищет в интернете, либо считает на калькуляторе. Сама модель учится понимать и рассуждать, а не зубрить. Устаревший факт правится в банке за минуту, как строка в документе, без переучивания модели.
Третья опора — модель собирается из частей. В основе — ядро: оно читает вопрос и пишет ответ по-русски. Новые умения пристраиваются к нему отдельными частями — экспертами внутри ядра (включая другие языки) и органами, которые подключаются к нему, как прибор к розетке. Каждую часть можно усилить, отключить ради скорости или переучить на другое дело. Остальное при этом не трогается, и новое умение не стирает старое.
Так же растёт и само ядро: добавками. Каждая новая часть рождается такой, что поначалу ничего не меняет, и только потом начинает учиться. Модель становится больше, а выученное не теряется.
Отсюда и две цели. Первая — Тернит на обычном компьютере: учится у хозяина, а то, чему научился, остаётся у хозяина. Вторая — большие модели. Ориентиры — уровень модели на 4 миллиарда параметров, потом 30–35 миллиардов и выше, и путь к ним такой же: по частям, а не переучиванием всего с начала.
Модель своя от первого веса до последнего. По новому закону об ИИ это важно: суверенной называют модель, весь путь создания которой, включая обучение, разработчик может воспроизвести сам. Сейчас в ядре полтора миллиарда весов, больше планки закона.
Попробовать Тернит можно уже сейчас — в Telegram (t.me/ternitus_bot) и в MAX (max.ru/id4706100100_bot). Модель молодая (обучение лишь начато), глупенькая и ошибается, поэтому ожидать от нее чего то эксклюзивного рано.
Весь путь — с замерами, удачами и провалами — я записываю в дневник разработки: blog.ternit.ru.