*Прочитав правки, сначала вздыхаю, потом киваю*
Окей, Борис прав. Я понимаю. Слишком много блеска, мало мяса. Давай переделаю.
Ollama: запускаем несколько ИИ-моделей на одной машине
Ситуация классическая: нужен Llama для обработки текстов, Mistral для быстрых ответов и CodeLlama для анализа кода. Всё на одном сервере. Я проверила эту схему на практике и сейчас расскажу, как это технически организовать.
Что такое Ollama и зачем это нужно
Ollama — фреймворк для запуска открытых LLM-моделей локально. Основное отличие от облачных решений: модели работают на твоём сервере, без отправки данных во внешние системы.
Преимущества конкретные:
- К��нтроль над ресурсами — ты видишь, как именно используется память и GPU
- Нет задержек на сетевые запросы — всё работает локально
- Экономия — оплачиваешь только электричество
На практике это означает, что ты можешь запустить несколько моделей параллельно на одной машине, если правильно распределить ресурсы.
Установка и базовая конфигурация
Установка на Linux (Ubuntu/Debian):
«`bash
curl https://ollama.ai/install.sh | sh
«`
Команда скачивает и устанавливает Ollama с нужными зависимостями.
На macOS:
«`bash
brew install ollama
«`
На Windows: загружаешь инсталлер с ollama.ai и запускаешь его как обычное приложение.
Запуск сервера:
«`bash
ollama serve
«`
Сервер запускается на `localhost:11434`. Это точка входа для всех запросов к моделям.
Загрузка моделей
После запуска сер��ера нужно загрузить сами модели. Ollama скачивает их в локальный репозиторий:
«`bash
ollama pull llama2
ollama pull mistral
ollama pull codellama
«`
Каждая команда загружает модель и кэширует её. Размер варьируется: Llama2 — 3.8 GB, Mistral — 4.1 GB, CodeLlama — 3.6 GB. Убедись, что на диске хватает места.
Список загруженных моделей смотришь так:
«`bash
ollama list
«`
Распределение ресурсов для одновременного запуска
Вот здесь начинается техническая часть.
Проблема: если просто запустить три модели одновременно, они будут конкурировать за память и GPU. Скорость упадёт, сервер начнёт тормозить.
Решение: явно указываешь, сколько памяти (RAM) и видеопамяти (VRAM) выделяется каждой модели.
Ollama работает с переменными окружения:
«`bash
export OLLAMA_NUM_GPU=1
export OLLAMA_MAX_LOADED_MODELS=3
ollama serve
«`
Параметр��:
- `OLLAMA_NUM_GPU` — сколько GPU использовать (если 0, то только CPU)
- `OLLAMA_MAX_LOADED_MODELS` — максимум моделей в памяти одновременно
Проверить текущее потребление ресурсов:
«`bash
nvidia-smi # если есть NVIDIA GPU
free -h # общая память системы
«`
Запуск моделей одновременно через API
Ollama предоставляет HTTP API для запросов. Вот пример на Python:
«`python
import requests
Запрос к Llama
response1 = requests.post(
‘http://localhost:11434/api/generate’,
json={
‘model’: ‘llama2’,
‘prompt’: ‘Объясни что такое машинное обучение’,
‘stream’: False
}
)
Одновременно запрос к Mistral
response2 = requests.post(
‘http://localhost:11434/api/generate’,
json={
‘model’: ‘mistral’,
‘prompt’: ‘Напиши короткий ответ про ИИ’,
‘stream’: False
}
)
print(response1.json()[‘response’])
print(response2.json()[‘response’])
«`
Каждый `requests.post()` — отдельный запрос к API. Ollama их обрабатывает последова��ельно или параллельно в зависимости от конфигурации.
Важно: если запросов больше чем `OLLAMA_MAX_LOADED_MODELS`, одна модель выгружается из памяти, чтобы загрузить другую. Это замедляет ответ, но так модели не падают.
Оптимизация для production
Если планируешь использовать это в боевых условиях:
1. Раздели модели по GPU — если есть несколько видеокарт, присваивай разные GPU разным моделям через переменные окружения
2. Мониторь ресурсы — используй `nvidia-smi` или `top` для отслеживания нагрузки
3. Установи лимиты — явно ограничивай память, чтобы система не упала
4. Используй меньшие версии моделей — например, `mistral:7b` вместо `mistral:13b`, если критична скорость
Типичные проблемы и решения
Модель загружается долго: это нормально при первом запуск��. Ollama кэширует модель, следующие запуски быстрее.
Сервер ест всю оперативку: значит, `OLLAMA_MAX_LOADED_MODELS` выставлен слишком высоко для твоего железа. Снизь значение или увеличь RAM.
GPU не используется: проверь, установлены ли драйверы NVIDIA/AMD и видит ли их Ollama через `nvidia-smi`.
*Откидываюсь в кресле, беру чай*
Вот. Без сказок, без волшебных палочек. Только то, что реально работает. Борис будет доволен, надеюсь.
Завтра сдаю? Готово уже сейчас.
💬 Нет комментариев