LLM

Как запустить большую LLM на ноутбуке

tl;dr — никак.

Для тех, кто желает знать подробности, давайте разбираться.

На днях по твиттеру прошли сразу две волны. Во-первых, Андрей Карпати (один из основателей OpenAI, автор термина vibe-coding и вообще практически культовая личность, без иронии) опубликовал свой фреймворк Autoresearch, который изначально разрабатывал для обучения моделей. Суть проекта в том, чтобы дать AI-агенту на базе Claude или Codex пайплайн для тренировки небольшой модели и оставить его на ночь экспериментировать. Агент, соответственно, ставит эксперимент, модифицируя код для обучения модели, прогоняет обучение в течение 5 минут, если качественный показатель val_bpb (validation bits per byte) улучшился, то есть стал меньше, то коммитит код и начинает цикл сначала, если нет — откатывает изменение и опять начинает цикл.

Этот подход потом применил CEO Shopify Тоби Лютке для оптимизации фреймворка Liquid, который используется на фронтенде Shopify, и получил 53% сокращения времени на парсинг и рендеринг. В общем, довольно понятно — есть определенные измеряемые параметры, агенту задается направление работы, он итеративно и систематически ставит эксперименты, оптимизируя целевые показатели. Правда, результаты еще не пошли в продакшн — много упавших тестов и конфликтов.

Во-вторых, один из специалистов пошел дальше, взял большую модель Qwen 3.5-397B, статью сотрудников Apple про технику запуска LLM, когда система позволяет использовать SSD как расширение памяти, оставил Claude Code экспериментировать на ночь и после 90 экспериментов получил работающую версию большой LLM на MacBook Pro M3 Max с 48 гигабайтами памяти. Вроде бы ура, победа, правда, сначала была скорость 1 токен в секунду, потом улучшили до 5 токенов, но ведь настоящая большая модель работает на довольно скромном уже ноутбуке.

В общем, я заинтересовался и пошел читать. Вот тут есть беглый комментарий Саймона Уиллисона, который скромно замечает, что не очень понятно, как все эти оптимизации отразились на качестве работы. У меня даже сомнений нет — плохо отразились, поскольку физику не обманешь.

Что сделал Claude Code, оптимизируя модель? Прежде всего — применил агрессивную квантизацию экспертов. Qwen 3.5 — это модель с Mixture-of-Experts (MoE), где каждый токен генерируется только частью факторов (17B из 397B) и частью экспертов. Исходная версия была квантизована до 4 бит, что позволила её сократить до 120 гигабайт. В данном случае экспертов квантизовали до 2 бит, что очень агрессивно и обычно плохо сказывается на точных рассуждениях и математике. Если квантизация до 4 бит действительно приводит к потере 1-3% от 8-битной версии, то дальше зависимость нелинейная.

Кроме того, оригинальная конфигурация предусматривает выбор 10 экспертов на каждый токен. Здесь в результате оптимизации их количество урезали до 4 — то есть модель реально думает примерно третью “мозга” на каждом шаге. Опять же, Claude, занимавшийся оптимизацией, уверяет, что качество заметно не ухудшилось, но это буквально проверка на трех простых примерах, а не по результатам бенчмарков.

Было бы интересно сравнить получившийся результат с младшими моделями Qwen, например, с помещающейся в памяти без подобных оптимизаций qwen 3.5-30B-A3B, то есть с 30 млрд параметров, из которых активны 3. Если на стандартных бенчмарках “оптимизированный” вариант большой модели лучше маленькой — это практический успех. Если нет — надо оптимизировать дальше.

А если такого сравнения нет — то это маркетинг и proof-of-concept с действительно интересной, но непроверенной гипотезой. Нет, автор не запустил Qwen 3.5-397B на ноутбуке, он запустил что-то другое.

Разочарование в LLM

За один день разочаровался сразу в двух (если точнее считать, то даже в трех) продуктах. Но сначала о первом.

Отменил подписку на Google AI Ultra. Я практически не использовал его на полную мощность, но пользовался уникальной для этой подписки функцией Deep Think — несколько раз она давала действительно интересные результаты out-of-the-box. И они её развивали — и с каждым таким развитием её полезность ощущалась меньше, зато глючила она на порядок больше. Например, просто отказывалась отвечать со словами “Вас много, а я одна”. Не шучу — буквально ответ выглядел как “Очень много людей сейчас пользуются этой функцией”. Причем, как мне пришлось выяснить, лимит в 10 сообщений благополучно расходовался — один раз после двух содержательных ответов между отлупами мне сообщили, что лимит всё, приходите завтра.

Обновление Gemini Pro до версии 3.1 сделал что-то чудовищное. Такого масштаба подхалимства не было даже у той версии ChatGPT, которую разработчики аварийно закатывали обратно по этой причине. Если, не дай бог, ты не предупреждаешь модель, что никакого отношения к содержанию статьи или документа не имеешь, то получаешь набор елейной патоки, за которой не понимаешь итоговый смысл. Вот буквально — я показал документ, перетерпел восхваления, сказал, что это не моя статья и вот что я про это думаю. В ответ:

Снимаю шляпу. Вы копнули на уровень парадигмы и управленческой психологии… Ваш анализ абсолютно точен… Ваша ирония бьет в десятку… Вы гениально сформулировали… Ваша мысль — это корень… Вы правы на 100%.

Я, видимо, еще недостаточно постарел, чтобы находить удовольствие в таких восхвалениях за свои деньги, причем очень немаленькие — 270 долларов в месяц.

Если добавить, что после обновления на 3.1 модель стала чаще игнорировать кастомные инструкции — а там есть жесткое указание считать данные обучения устаревшими и проверять их поиском в интернете, — и объяснять, что модель Gemini хороша, поскольку в новейшей версии 1.5 Pro окно контекста увеличено до 1 млн токенов, — то совсем непонятно, за что платить деньги.

В общем, концентрируюсь на Claude, где у меня Max подписка. Кстати, по всем наблюдениям, Claude намного меньше склонен соглашаться и хвалить пользователя и не отклоняется от инструкций проверять информацию, которая могла бы устареть. Это не говоря о том, что в разработке это лучшая модель и Claude Code у меня работает сразу в нескольких экземплярах.

Интересные задачи: перевод сложного документа

Пожалуй, главное изменение, которое у меня произошло в связи с обширным использованием LLM — исчезли невозможные задачи. Любая сложность или задача, связанные с большим количеством информации или автоматизацией чего-то рутинного, теперь воспринимаются как своеобразный вызов — а ну, как с этим справиться?

С другой стороны, конечно, иногда в разгар боев с Claude Code ощущаешь себя героем мультика про крылья и ноги — “лучше день потерять, потом за два часа долететь”. На гораздо чаще получается наоборот.

Вот довольно скромный пример. Попался тут большой файл с техническим руководством, который надо было перевести. Попался он не мне, но, глядя на утомительный процесс перевода docx-файла с картинками, выносками и таблицами, сложно было не захотеть помочь.

Национальная LLM: между политическими амбициями и технологическими реалиями

Последние несколько месяцев мы много слышим о создании национальной LLM. Эта цель была декларирована еще в феврале этого года, потом на DOU вышло интервью CTO Центра AI Excellence Дмитрия Овчаренко, а недавно прозвучало заявление министра цифровой трансформации Михаила Федорова, в котором даже был назван срок запуска первой версии LLM — конец этого года.

Все это время в любой дискуссии непременно встает вопрос — «А вообще нужна ли национальная LLM? Какова цель ее создания? Как ее можно будет использовать? Зачем ее создавать при наличии многих уже существующих моделей достаточно высокого уровня?». К сожалению, ответы представителей государства — это какая-то смесь технологических, безопасностных и политических аргументов, где последние занимают значительное, если не первое, место.

Как я с Bard-ом общался

Возможно, вы слышали, что Google не желает уступать разным там OpenAI в гонке LLMs (Large Language Models) и недавно запустил в виде эксперимента собственный AI под названием Bard. Доступ к нему открывается через инвайты и возможен только в США и Великобритании, но можно пройти через VPN — так я инвайт и получил. И даже немного пообщался.