Модель на 360M параметров изображает bash, vim и tmux без шелла
PrimeCoder · 2026 · формат: tech
Разбор новинки простыми словами: что это, кому нужно и брать ли.
Показывает рабочий рецепт маленькой модели-«мира»: крошечный словарь, самокоррекция по DAgger и параллельное декодирование дают интерактивный терминал на 208 МБ прямо в браузере — подход применим к прототипам интерфейсов и тренажёрам без бэкенда.
Связанные услуги: каталог, AI Boost Team, стать клиентом.
Терминал, у которого нет внутренностей
На записи всё выглядит рутинно. Открывается vim, запускается tmux, создаются файлы, змейка ползёт по экрану и слушается стрелок. Рутина обманчива: под этим терминалом нет ни шелла, ни файловой системы, ни процессов. Есть модель на 360 млн параметров. Она получает байты нажатий и предсказывает, какие строки экрана переписать и где окажется курсор.
Никакого шелла и файловой системы за ней нет: на вход идёт каждое нажатие клавиши, а модель предсказывает, как изменится экран.
Событие тут не в самом трюке. Трюк показателен другим: собран работающий рецепт маленькой «модели мира» на одной видеокарте. 75 GPU-часов на RTX 4090, синтетические данные из Docker, квантованная версия на 208 МБ, запуск прямо во вкладке браузера. Это уже не исследовательская демонстрация на кластере. Это инструкция, которую команда уровнем SMB может повторить под свою задачу.
Что именно дообучили
Основа — Qwen2.5-Coder-0.5B. Выбор объясним: нужна маленькая модель, чтобы попасть в реальное время, и кодовая, чтобы она уже видела командную строку в предобучении. Дальше — дообучение на 336 тысячах записанных сессий, около 2 млрд токенов. Базовая модель за своё обучение увидела порядка 18 трлн токенов, так что своя доля крошечная, зато узкая.
Данные не собирали с людей. Их генерировали: запускали настоящие команды в Docker-контейнерах и писали каждое нажатие и экран после него. В синтетике случайные имена пользователей и хостов, стили приглашения, каталоги и файлы под вымышленную персону (разработчик, сисадмин), от 6 до 24 занятий на сессию с весами, печать по одной клавише с автодополнением по Tab. Частота опечаток — 1,2%. Треть сессий начинается с середины, чтобы модель училась подхватывать любое состояние. Размеры экрана в основном 32×96, иногда 24×80 и 40×120.
Готовых наборов не нашлось. Записи вроде asciinema не дают точного соответствия «нажатие — экран», а именно оно здесь и нужно.
Как модель видит экран
Обычная LLM дописывает текст в конец. С терминалом это не работает. Одно нажатие может перевернуть весь экран: Esc в vim, clear, Enter в нижней строке.
Поэтому терминал представлен как сетка символов. Модель не видит картинку — она получает последовательность токенов: размер экрана, содержимое строк, позиция курсора. Нажатие подаётся теми же байтами, что отправил бы настоящий терминал: Enter как \r, Escape как 0x1b, стрелка влево как ESC [ D. Ответ — какие строки переписать и куда поставить курсор.