Перейти к содержимому

Edge0 только что запустил Qwen 35B, используя всего 3 ГБ оперативной памяти

Code Unpacked

0:00 / 0:00

Edge0 только что запустил Qwen 35B, используя всего 3 ГБ оперативной памяти

7 578 просмотров · 8 дней назад
Code Unpacked
372 подписчика
7 578 просмотров · 8 дней назад
Модель с 35 миллиардами параметров, работающая на Mac mini, сообщает о 2,9 гигабайтах активной памяти. Контрольная точка на хранилище составляет примерно 23 гигабайта. Остальные 20 гигабайт никуда не делись. Большая часть этих весов по-прежнему находится на SSD, пока модель генерирует ответ, а вторая, гораздо меньшая нейронная сеть пытается определить, какие из них ей понадобятся, прежде чем модель доберется до нужного значения. В этом и заключается весь трюк. Это также та часть, которая незаметно меняет то, что вычисляет модель. 🔔 Подписаться https://www.youtube.com/@Code-Unpacke... 📌 Разделы: 00:00 - На этой машине это не поместится. 00:51 - Тот же движок. Две совершенно разные машины. 01:42 - Некоторые эксперты работают. Большинство остаются неактивными. 02:34 - В памяти находится только рабочий набор. 03:31 - Число на коробке не определяет задачу. 04:26 - Головки прогнозирования, на один токен впереди 05:17 - Прогнозирование - это решение о маршрутизации 06:11 - Каждый эксперт - это дополнительный вес для перемещения. 06:58 - Замороженная база и адаптер LoRA 08:00 - Два числа, два измерения 08:55 - 113 холодное, 140 теплое 09:51 - Теперь машина принимает решение. 10:44 - Подкачка и обработка повторных ошибок страниц 11:37 - Вес не выделен постоянно 12:22 - Четыре вопроса перед установкой 13:08 - Локальный ИИ, представленный как емкость 13:53 - Число, которое действительно имеет значение В этом видео мы разбираем, как Edge0 обменивает оперативную память на прогнозирование — и во сколько на самом деле обходится этот обмен. Edge0 — это движок вывода с открытым исходным кодом, построенный на основе модели Qwen 35B mix-of-experts: 40 слоев, в каждом из которых доступно 256 экспертов, маршрутизируемых по запросу. Вместо хранения в памяти, он отображает контрольную точку в память и извлекает веса экспертов по требованию. Это означает 160 вариантов выбора экспертов для одного сгенерированного токена — и если каждый из них ожидает загрузки в хранилище, задержка значительно увеличивает время выполнения. Поэтому Edge0 добавляет предварительную маршрутизацию: обученные головы прогнозирования, которые предвидят маршрутизацию экспертами на один токен вперед. Голова на одном слое прогнозирует выбор эксперта на следующем слое, сохраняет его и использует для следующего токена — таким образом, чтение с SSD и вычисления модели перекрываются, а не происходят поочередно. Опубликованные проектом показатели: • 2,9 ГБ активной памяти при контрольной точке ~23 ГБ • 15–18 токенов/сек на Mac mini M4 Pro с 24 ГБ унифицированной памяти • 4 маршрутизируемых эксперта на слой — в оригинальной конфигурации Qwen указано 8 • Предварительная маршрутизация: до 59% лучше пропускная способность декодирования • Предварительное заполнение: ~113 токенов/сек в холодном режиме, ~140 в теплом режиме Две вещи, о которых не говорится в заголовке. Во-первых, предварительный маршрутизатор не является подсказкой кэша. В конфигурации по умолчанию 35B его предсказание ЯВЛЯЕТСЯ решением о маршрутизации — поэтому, если бы он выбрал других экспертов, отличных от маршрутизатора исходной модели, само вычисление изменилось бы. Добавьте к этому четырехбитное квантование, половину маршрутизированных экспертов и адаптер Recover-LoRA, разработанный преподавателем высокоточной обработки данных, и вы получите собственные результаты бенчмарков проекта: около 83 баллов в среднем снижаются до 79, AIME — с 92,7 до 86,6, HumanEval — с 95,1 до 90,9. Результаты опубликованы самостоятельно и применены ко всем параметрам одновременно — поэтому они не могут сказать, какое изменение чего стоило. Во-вторых, 2,9 ГБ — это активное выделение памяти, а не то, что необходимо машине. Файловый кэш macOS незаметно обрабатывает большую часть этих данных из оперативной памяти. Если убрать этот запас, это станет очевидно: MacBook Pro с 8 ГБ памяти и процессором M1, работающий на более компактном уровне 8B, показал производительность от 0,7 до 0,8 токенов/сек против заявленных 24–25 — при этом объем используемой памяти по-прежнему близок к ожидаемому 1 ГБ, а также наблюдается активная работа файла подкачки. На MacBook Air с 16 ГБ оперативной памяти, подключенном через внешний USB SSD, скорость передачи данных на 35-битном процессоре составила примерно 5 токенов в секунду. Edge0 не делает оперативную память неактуальной. Он позволяет избежать постоянного выделения памяти, что является другим — и по-прежнему действительно интересным — достижением. Пока что используется только Apple Silicon через MLX, по одному запросу за раз. Что вы думаете: стоит ли публиковать данные об «активной памяти», или они скрывают больше, чем показывают? Дайте мне знать в комментариях.