Летом 2026 года большие языковые модели наконец-то научились запускаться на железе, которое стоит под столом, а не в дата-центре |
||
|
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ Атаки на ИИ Внедрение ИИИИ теория Компьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Промпты. Генеративные запросы Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2026-08-20 11:38 Летом 2026 года большие языковые модели наконец-то научились запускаться на железе, которое стоит под столом, а не в дата-центре. Замер, который расставляет всё по местам: модель на 2,8 триллиона параметров запустили на одном MacBook с M1 Max и 64 ГБ памяти. Скорость — примерно один токен в минуту. Первая реакция — «ну и зачем?» — самая простая и самая неправильная. Если разобраться, это лучший бесплатный учебник по иерархии памяти за последние годы. Ситуация знакомая: приходит идея внутреннего ассистента по коду, доходишь до вопроса «а куда уходят данные» — и разговор заканчивается за пятнадцать минут. Дальше два пути: закрытый контракт с провайдером или своё железо. Только про своё железо в интернете написано либо «нужен кластер из восьми H100», либо «да всё прекрасно крутится на ноутбуке». Истина где-то посередине. «Своё железо» — это не бинарный выбор, а целая шкала возможностей, и почти никто не понимает, где именно на этой шкале стоит он. Ключ ко всему — архитектура MoE, смесь экспертов. Вместо одной большой сети модель состоит из множества специализированных блоков, и маршрутизатор на каждом шаге выбирает лишь некоторые из них. Kimi K3, веса которой Moonshot выложила в конце июля, устроена так: 2,8 триллиона параметров всего, но на каждый токен активируются 16 экспертов из 896 на каждом слое. По оценкам, в вычислении участвует порядка 104 миллиардов параметров. Основная масса весов экспертов хранится в четырёхбитном формате MXFP4: числа пакуются по 4 бита, а на блок из 32 значений хранится один общий масштабный множитель. Это даёт примерно восьмикратную экономию против bf16 при контролируемой потере точности. Важная деталь: это не постфактум-квантование готового чекпойнта — модель обучали с учётом низкой точности начиная со стадии SFT, а часть весов вне экспертов остаётся в более высокой точности. Репозиторий на Hugging Face весит около 1,56 ТБ. Модель делится на две очень разные по поведению части. Спина — эмбеддинги, слои внимания, общие эксперты, латентные проекции — работает на каждом токене всегда, это около 114 ГБ в bf16. Маршрутизируемые эксперты — 82 432 штуки, порядка 1,45 ТБ. На конкретном токене нужна крошечная доля, остальные лежат мёртвым грузом. И здесь частое заблуждение: малое число активных параметров снижает вычислительную стоимость токена, но не уменьшает объём, который надо где-то держать. Память определяется полным набором весов, вычисления — активным. Поэтому на ограниченном железе MoE превращает проблему из «как запихнуть всё в память» в другую: как организовать иерархию хранения и доставку выбранных экспертов. «Память» — не один уровень, а несколько с разницей в пропускной способности на порядки. Вопрос не в том, хватает ли её, а в том, через какой уровень на каждом токене приходится тащить рабочий набор весов. На практике для локального запуска таких моделей встречаются три подхода. Первый — динамическое квантование. В конце июля команда Unsloth выпустила калиброванные динамические кванты K3. Слово «динамические» ключевое: большая часть весов уезжает в 1–2 бита, а чувствительные к квантованию тензоры получают более высокую битность. Однобитная сборка — около 594 ГБ против исходных 1,56 ТБ, при этом по замерам команды она удерживает примерно 78,9% от результата восьмибитного эталона на их наборе задач. Это относительная доля бенчмарк-скора, а не accuracy классификатора, и её нельзя переносить на свои задачи без проверки. Двухбитные сборки — 711 и 861 ГБ. Калиброванный квант и «слепой» квант — принципиально разные вещи. Ранние конверсии делались вслепую, потому что модель было не на чем прогнать для калибровки. Второй подход — оффлоад экспертов в RAM. Это реально применимо на обычной рабочей станции. В llama.cpp есть флаг -n-cpu-moe N, который оставляет MoE-веса части слоёв в системной памяти, а остальной граф считает на видеокарте. Механизм рабочий, но оптимальные параметры зависят от версии llama.cpp, бэкенда и конкретного файла модели. Более тонкий контроль — через переопределение размещения тензоров. Однако этот механизм работает поверх реальных имён тензоров конкретного файла, а не абстрактных «слоёв». Раскладывать блоки по нескольким картам через регулярные выражения можно, но шаблон придётся строить под свою модель. Порядок действий такой: посмотреть фактические имена тензоров, начать со стандартного механизма, и только если его не хватает — браться за переопределения. Третий подход — самый радикальный — стриминг. Не держать экспертов в памяти вообще, а подтягивать их с NVMe или по сети по мере обращения. Именно так работает история с ноутбуком. Проект называется Deltafin, автор задал честный абсурдный вопрос: можно ли запустить K3 на одном ноутбуке Apple Silicon? Схема такая. Спина скачивается один раз — те самые 114 ГБ — и опционально конвертируется в int8, что вдвое сокращает объём чтения на каждом токене. По проверкам автора порядок топ-5 кандидатов сохраняется, верхний логит смещается на 0,07%. Все 82 432 эксперта остаются на удалённом хранилище: на каждый токен маршрутизатор выбирает 16 штук на слой, и они докачиваются range-запросами в растущий локальный кэш. Со временем кэш вырастает до той части модели, которая реально используется. Под спину с её int8-копией нужно около 175 ГБ диска, плюс место под кэш — автор советует закладывать от 350 ГБ. И вот что в проекте интереснее всего — приёмы, которыми автор отжимал эти минуты. Они узнаваемы для любого, кто оптимизировал работу с диском в бэкенде. Склеенное чтение: шесть тензоров каждого эксперта лежат подряд в файлах, автор проверил это для всех 82 432. Значит, эксперт вытягивается одним range-запросом на 17,55 МБ через пул keep-alive соединений. Измеренное ускорение — около 6,4 раза. Кэш сырых байт: файлы кэша содержат байты исходных шардов без обёртки, чтение через mmap. Двойная буферизация загрузки слоёв: отдельный поток читает данные следующего слоя, пока текущий считается. Префетч по маршруту предыдущего токена: соседние токены переиспользуют примерно 40% выбранных экспертов — замерено 39,7%, что близко к 41,3%, о которых сообщал другой проект для иной модели. Поэтому набор экспертов текущего токена фоном докачивается в расчёте на следующий. Это эвристика, которая достаточно часто угадывает, а не точное предсказание маршрута. Фьюзед gemv на NEON: распаковка MXFP4 и умножение в один проход через табличный поиск, вместо медленной связки «сначала распаковали, потом перемножили». На проверенных входах результат совпал с эталонной реализацией бит в бит. Переиспользование буферов через шаблонные слои: 69 слоёв KDA имеют одинаковую форму тензоров, а 24 слоя MLA — другую. Достаточно двух постоянно висящих на ускорителе «шаблонных» слоёв, в которые копируются веса. Профилирование показало, что возня аллокатора съедала заметную долю времени на токен. Отдельно стоит уважение к тому, что автор опубликовал провалы. Низкоранговая аппроксимация экспертов не сработала — и это тоже часть учебника. Установившееся декодирование — 60–76 секунд на токен при прогретом кэше. Холодный кэш и длинный промпт дают совсем другие цифры. Но сам факт: модель на 2,8 триллиона параметров работает на ноутбуке, пусть и со скоростью один токен в минуту. Это не практичное решение для продакшена, зато идеальная демонстрация того, как работает иерархия памяти: VRAM, RAM, диск, сеть — и как доставка данных становится главным узким местом. Для backend-инженера всё это не просто забавный трюк. Вопрос «а можно ли крутить это у нас внутри?» приходит не от датасайентистов, а от безопасности и юристов. Когда речь идёт о платёжном контуре, легаси-коде или любых чувстви Телеграм: t.me/ainewsline Источник: vk.com Комментарии: |
|