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, по одному запросу за раз.
Что вы думаете: стоит ли публиковать данные об «активной памяти», или они скрывают больше, чем показывают? Дайте мне знать в комментариях.