Новый проект Waste позволяет запускать гигантские AI-модели даже на слабых компьютерах
GitHub-проект Waste обходит проблему нехватки оперативной памяти при работе с моделями на триллионы параметров — веса подгружаются «на лету» с накопителя, а не целиком загружаются в RAM.
Вместо того чтобы втиснуть весь мозг AI в оперативную память, Waste подаёт ему знания порциями — ровно тогда, когда они нужны.
Если вы хоть раз пробовали запустить крупную языковую модель на собственном компьютере или на недорогом облачном сервере, вы наверняка сталкивались с одной и той же головной болью: «Недостаточно оперативной памяти». Модели на десятки и сотни миллиардов параметров требуют столько RAM, что обычному разработчику проще смириться и пользоваться чужим API. Но что, если эту проблему можно обойти хитрым трюком с подгрузкой данных?
Именно это предлагает проект Waste — и на первый взгляд идея выглядит элегантно.
В чём проблема
Современные AI-модели растут как на дрожжах. Возьмём модель Kimi K3 от китайской компании Moonshot AI: у неё 2,78 триллиона параметров. Это число само по себе мало о чём говорит обычному человеку, поэтому переведём на человеческий: чтобы загрузить все веса такой модели в оперативную память, понадобились бы терабайты RAM. Даже самые мощные серверные конфигурации с трудом справляются с такими объёмами.
Для сравнения: модель Llama 3 от Meta* с 70 миллиардами параметров требует около 140 ГБ RAM в стандартном режиме. А Kimi K3 — это примерно в 40 раз больше. Получается, что самые интересные и мощные модели оказываются доступны лишь тем, у кого бюджет на серверный парк исчисляется сотнями тысяч долларов.
Для стартапов, исследователей и небольших команд это настоящий тупик. Хочется использовать передовые решения, а железо не позволяет.
Как Waste решает задачу
Ключевая идея проекта — потоковая подгрузка весов (streaming). Вместо того чтобы заранее загружать всю модель в оперативную память, инференс-движок Waste запрашивает только те веса, которые нужны для обработки конкретного входного тока данных. Запрос пришёл — движок «достал» нужные куски модели с NVMe-накопителя, обработал, отдал результат. Следующий запрос — следующая порция.
Если провести бытовую аналогию: представьте толстую энциклопедию. Обычный подход — выгрузить всю энциклопедию на рабочий стол, чтобы отвечать на вопросы. Подход Waste — держать энциклопедию на полке и открывать только нужную страницу, когда вопрос задан.
Важно, что речь идёт именно о NVMe-накопителях — скоростных SSD, которые подключаются напрямую к шине PCIe. Это не старый добрый жёсткий диск с вращающимся блюдцем: современные NVMe-диски обеспечивают последовательное чтение на скоростях до 7 ГБ/с, а задержки при случайном чтении измеряются микросекундами. Именно такая скорость делает потоковую подгрузку теоретически жизнеспособной.
Технические подробности
Проект написан на C — классическом языке системного программирования. Это не случайный выбор: C обеспечивает минимальные накладные расходы и максимальный контроль над тем, как именно данные читаются с диска и передаются в память. Зависимостей у проекта практически нет, что упрощает интеграцию в существующие пайплайны.
Такой подход делает Waste потенциально интересным для встраивания в самые разные среды — от серверов до граничных (edge) устройств с ограниченными ресурсами.
На момент написания проект уже набрал более полутора тысяч звёзд на GitHub, что для свежего инструмента в нише AI-инфраструктуры — весьма неплохой показатель. Сообщество явно заинтересовано в решении проблемы нехватки памяти.
Скрытые компромиссы
Здесь самое время поговорить о слоне в комнате. Любой, кто хоть немного разбирается в компьютерной архитектуре, спросит: «А что со скоростью?»
И вопрос этот абсолютно справедлив. Когда модель загружена целиком в RAM, доступ к любому весу практически мгновенный — наносекунды. Когда же веса читаются с NVMe-диска, даже самого быстрого, добавляется задержка. Она измеряется не наносекундами, а микросекундами — в тысячи раз больше.
На практике это означает, что инференс будет медленнее. Насколько — зависит от конкретной задачи, архитектуры модели, скорости накопителя и размера батча. Возможно, для многих приложений это приемлемо: если модель отвечает за секунду вместо 200 миллисекунд, но зато вообще работает — это лучше, чем ничего. Но для задач, требующих реального времени (чат-боты с мгновенным откликом, системы рекомендаций), такая задержка может оказаться критичной.
Есть и ещё один нюанс: NVMe-диски имеют ограниченный ресурс записи. При активном чтении больших объёмов данных ресурс диска, конечно, не расходуется — но и перегрев контроллера, и троттлинг при длительных сессиях никто не отменял.
Для кого это реально работает
Waste выглядит наиболее полезным в нескольких сценариях:
- Исследователи и экспериментаторы, которым нужно протестировать гипотезу на большой модели, но бюджет не позволяет арендовать мощный GPU-кластер.
- Компании, работающие с редкими запросами, где задержка в секунду-две не критична — например, обработка документов или анализ данных в пакетном режиме.
- Разработчики edge-решений, которые хотят запустить продвинутую модель на устройстве с ограниченной памятью.
А вот для production-систем с высокой нагрузкой и требованиями к latency Waste пока остаётся скорее экспериментальным инструментом, чем готовым решением.
Здоровый скептицизм
Стоит отметить, что оригинальная публикация на dev.to, по сути, представляет собой обзор открытого проекта — без собственных бенчмарков, сравнительных тестов или детального анализа того, как Waste ведёт себя на практике. Утверждение, что проект «позволяет запускать» модель на 2,78 триллиона параметров, выглядит впечатляюще, но пока не подкреплено воспроизводимыми результатами.
Это не значит, что проект не работает. Это значит, что к его возможностям стоит относиться с разумной осторожностью и ждать независимых тестов от сообщества. История AI-инструментов полна проектов, которые блестяще выглядели в README, но на практике оказывались сырыми.
Что это значит для индустрии
Независимо от того, станет ли Waste мейнстримом, сам тренд важен. Идея вытеснения данных между оперативной памятью и быстрым хранилищем — это не новость в компьютерных науках (виртуальная память работает по похожему принципу уже десятилетия), но применение этого подхода к AI-инференсу на моделях-триллионниках — шаг в интересном направлении.
Если подобные инструменты будут развиваться, это может снизить порог входа в мир крупных моделей. Вместо того чтобы гоняться за всё более дорогими GPU и серверами, разработчики смогут использовать более скромное железо — пусть и с некоторыми компромиссами по скорости.
Пока рано говорить, станет ли Waste стандартом де-факто. Но сам факт появления таких проектов показывает: сообщество не готово мириться с тем, что самые мощные AI-модели доступны только избранным. И это, пожалуй, хорошая новость.