Локальные LLM: Как правильно выбрать железо для максимальной производительности
Выбор аппаратного обеспечения для запуска больших языковых моделей (LLM) локально часто вызывает вопросы, особенно при сравнении таких мощных систем, как MacBook M5 и NVIDIA RTX 4090. Однако подход «какой чип лучше?» является ошибочным. Правильная постановка вопроса должна быть следующей: какую именно модель вы планируете использовать, для каких задач, и какой уровень скорости ответа вам требуется?
Память — ключевой фактор производительности LLM
Распространенное заблуждение заключается в том, что «чип» (CPU или GPU) является единственным или главным узким местом. На самом деле, производительность LLM в значительной степени определяется объемом и скоростью доступной оперативной или видеопамяти. Если модель не помещается полностью в память, система начинает использовать своп-файл или оперативную память CPU, что значительно замедляет работу.
Пример производительности Qwen3.5-35B-A3B (~22 ГБ) на разных конфигурациях:
- M3 Max 36GB: Модель помещается полностью, обеспечивая стабильные 60-80 токенов/с.
- M4 Pro 24GB (стандартная): Модель не помещается, часть данных выгружается в своп. Результат — низкая скорость (8.4 токена/с).
- M4 Pro 48GB (с num_ctx 24k): Достаточный объем памяти позволяет модели работать без свопа, достигая 40-50 токенов/с.
- BOSGAME M5 128GB: Избыточный объем памяти для Q6_K квантизации, что гарантирует полное размещение модели и скорость более 50 токенов/с.
- RTX 4090 24GB: Несмотря на высокую вычислительную мощность GPU, объем видеопамяти 24 ГБ недостаточен для этой модели. Часть данных выгружается на CPU, что снижает общую производительность.
Как видно из примеров, даже мощный графический процессор, такой как RTX 4090, не может компенсировать недостаток памяти, если модель превышает доступный объем. Основной тормоз производительности LLM — это не вычислительный чип, а дефицит памяти.
На что обращать внимание при выборе оборудования
При подборе железа для локальных LLM следует учитывать три ключевых параметра:
- Объем памяти: Этот параметр является определяющим и указывает, какую максимальную модель (по размеру) вы сможете запустить без использования свопа. Больше памяти — больше возможностей.
- Скорость памяти: Высокая пропускная способность памяти напрямую влияет на скорость генерации токенов и общую отзывчивость модели. Быстрая память сокращает время ответа.
- Архитектура модели: Некоторые модели, например, с архитектурой Mixture of Experts (MoE), такие как Qwen3.5-35B-A3B, могут быть более эффективными в использовании памяти. В случае MoE 35B-A3B, одновременно активными являются лишь 3B параметров из 35B, что позволяет достигать высокой скорости при относительно меньших требованиях к памяти по сравнению с плотными моделями аналогичного размера.
Оптимизация производительности: параметр num_ctx в Ollama
Одной из распространенных причин снижения производительности, особенно на системах с ограниченным объемом памяти, является некорректная настройка контекста. По умолчанию Ollama может резервировать очень большой контекст (до 128k токенов). Это означает, что вся история диалога хранится в памяти, потребляя значительные ресурсы даже при коротких запросах. Для большинства задач обычного общения достаточно контекста в 24k токенов, что эквивалентно примерно 60 страницам текста.
Вы можете настроить размер контекста для вашей модели, создав кастомный Modelfile:
cat > Modelfile <<'EOF'
FROM huihui_ai/qwen3.5-abliterated:35b
PARAMETER num_ctx 24576
EOF
ollama create qwen35b-24k -f Modelfile
ollama run qwen35b-24k
Уменьшение num_ctx до необходимого минимума поможет значительно снизить потребление памяти и повысить скорость работы модели.
Выделенная среда для стабильной работы LLM
Если вы планируете использовать LLM постоянно или для критически важных задач, настоятельно рекомендуется выделять под нее отдельную машину или изолированную среду. Браузеры, Docker-контейнеры, фоновые процессы операционной системы и другие приложения активно потребляют память и вычислительные ресурсы. LLM крайне чувствительны к разделению ресурсов, и наличие конкурирующих процессов может привести к заметному снижению скорости и стабильности.
Подбор модели под железо до загрузки
Прежде чем скачивать гигабайты данных, есть инструменты, позволяющие оценить совместимость модели с вашим аппаратным обеспечением. Ранее мы подробно писали об инструменте llmfit, который помогает подобрать модель под доступные ресурсы.
Для более глубокого понимания вопроса рекомендуем также ознакомиться с видеоматериалом по теме: https://www.youtube.com/watch?v=SmYNK0kqaDI