Новые возможности для локальных LLM
Пакет mlx-lm от Apple стал мощным инструментом для разработчиков, позволяющим запускать, дообучать и квантовать большие языковые модели (LLM) непосредственно на устройствах с чипами Apple Silicon. Ключевое нововведение — поддержка распределенного вывода (distributed inference) и тонкой настройки через модуль mx.distributed, что открывает путь к оптимизации работы с тяжелыми моделями на нескольких устройствах или GPU.
Помимо этого, разработчики внедрили инструменты для эффективной работы с длинными контекстами. Теперь доступны фиксированный вращающийся кэш ключей/значений (KV-cache) и кэширование промптов. Это позволяет значительно ускорить обработку повторяющихся длинных текстов в многошаговых диалогах, избегая повторных вычислений.
Поддержка моделей и интеграция с Hugging Face
MLX-LM обеспечивает бесшовную интеграцию с Hugging Face Hub. Пользователи могут загружать тысячи моделей одной командой, а также конвертировать и загружать свои квантованные модели обратно в репозитории. По умолчанию для генерации текста используется модель mlx-community/Llama-3.2-3B-Instruct-4bit, но поддерживается широкий спектр архитектур, включая Mistral и Qwen.
Технические детали и оптимизация памяти
Для работы с большими моделями, превышающими объем доступной RAM, в macOS 15.0+ реализована привязка памяти (memory wiring). Это критически важно для предотвращения замедлений. Если вы сталкиваетесь с предупреждениями о медленной генерации, рекомендуется увеличить лимит связанной памяти через sysctl:
sudo sysctl iogpu.wired_limit_mb=N(где N — размер модели в МБ, но меньше общего объема памяти).
Также добавлены параметры для управления потреблением памяти при работе с длинными промптами: --max-kv-size (от 512 для экономии RAM до 4096+ для качества) и --prefill-step-size (по умолчанию 2048).
Примеры использования
Установка и запуск модели занимают минимум времени. Ниже приведена таблица основных команд для быстрого старта:
| Задача | Команда / Код | Примечание |
|---|---|---|
| Установка | pip install mlx-lm |
Доступно через pip и conda |
| Генерация текста | mlx_lm.generate --prompt "..." |
Использует модель по умолчанию или указанную через --model |
| Чат-режим | mlx_lm.chat |
Сохраняет контекст диалога в рамках сессии REPL |
| Квантование и загрузка | mlx_lm.convert --model ... -q --upload-repo ... |
Создает 4-bit версию и загружает в Hugging Face |
| Кэширование промпта | mlx_lm.cache_prompt --prompt-cache-file ... |
Ускоряет повторное использование длинного контекста |
Для программистов доступен полный Python API с функциями load, generate и stream_generate, поддерживающими кастомные сэмплеры и процессоры логитов. Это делает MLX-LM универсальным решением для локального развертывания LLM на Mac.
Источник: Github ↗
