Установка Ollama: Руководство по локальному запуску LLM
Установка Ollama, запуск локальных LLM моделей (Llama 3, Mistral, Gemma), использование API, управление моделями, GPU-ускорение и развертывание через Docker.
Содержание
Установка Ollama: Руководство по локальному запуску LLM
Ollama — это инструмент с открытым исходным кодом, позволяющий легко запускать большие языковые модели (LLM) на вашем локальном сервере. Вы можете загрузить и использовать Llama 3, Mistral, Gemma, Phi-3 и многие другие модели одной командой. В этом руководстве подробно рассматриваются установка Ollama, управление моделями, использование API и GPU-ускорение.
Что такое Ollama?
Ollama — это легковесная среда выполнения для локального запуска LLM-моделей. Она позволяет загружать и управлять моделями с подходом, аналогичным Docker. Основные возможности:
- Простая установка: Настройка и загрузка моделей одной командой
- Широкая поддержка моделей: Llama 3, Mistral, Gemma, Phi-3, CodeLlama, Qwen и другие
- REST API: OpenAI-совместимый API-эндпоинт
- GPU-ускорение: Поддержка NVIDIA и AMD GPU
- Modelfile: Создание пользовательских конфигураций моделей
- Низкое потребление ресурсов: Малое потребление памяти с квантизированными моделями
Системные требования
| Компонент | Минимум | Рекомендуется |
|---|---|---|
| RAM | 8 ГБ | 16 ГБ+ |
| Диск | 20 ГБ | 50 ГБ+ |
| GPU (опционально) | NVIDIA 4 ГБ VRAM | NVIDIA 8 ГБ+ VRAM |
| ОС | Linux, macOS, Windows | Ubuntu 22.04 LTS |
Установка на Linux
Используйте официальный скрипт установки:
curl -fsSL https://ollama.com/install.sh | sh
После установки сервис Ollama запускается автоматически. Проверьте статус:
systemctl status ollama
Ручная установка
Если скрипт не работает:
# Загрузка бинарного файла
curl -L https://ollama.com/download/ollama-linux-amd64 -o /usr/local/bin/ollama
chmod +x /usr/local/bin/ollama
# Создание пользователя ollama
useradd -r -s /bin/false -m -d /usr/share/ollama ollama
# Файл сервиса systemd
cat > /etc/systemd/system/ollama.service << 'EOF'
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="HOME=/usr/share/ollama"
[Install]
WantedBy=default.target
EOF
systemctl daemon-reload
systemctl enable --now ollama
Установка через Docker
Режим CPU
docker run -d \
--name ollama \
-p 11434:11434 \
-v ollama_data:/root/.ollama \
ollama/ollama
Режим GPU (NVIDIA)
docker run -d \
--name ollama \
--gpus all \
-p 11434:11434 \
-v ollama_data:/root/.ollama \
ollama/ollama
Docker Compose
version: '3.8'
services:
ollama:
image: ollama/ollama
container_name: ollama
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
restart: unless-stopped
volumes:
ollama_data:
Загрузка и запуск моделей
# Модель Llama 3.1 8B
ollama pull llama3.1
# Mistral 7B
ollama pull mistral
# Google Gemma 2 9B
ollama pull gemma2
# Интерактивный чат
ollama run llama3.1
# Одиночный запрос
ollama run llama3.1 "Как проверить использование диска в Linux?"
Управление моделями
# Список установленных моделей
ollama list
# Информация о модели
ollama show llama3.1
# Удаление модели
ollama rm mistral
# Показать запущенные модели
ollama ps
Использование REST API
Ollama предоставляет REST API на порту 11434:
Завершение чата
curl http://localhost:11434/api/chat -d '{
"model": "llama3.1",
"messages": [
{"role": "system", "content": "Ты полезный ассистент."},
{"role": "user", "content": "Что такое Docker?"}
],
"stream": false
}'
Генерация текста
curl http://localhost:11434/api/generate -d '{
"model": "llama3.1",
"prompt": "Напиши конфигурацию Nginx reverse proxy",
"stream": false
}'
Использование API на Python
import requests
def chat_with_ollama(prompt, model="llama3.1"):
response = requests.post(
"http://localhost:11434/api/chat",
json={
"model": model,
"messages": [{"role": "user", "content": prompt}],
"stream": False
}
)
return response.json()["message"]["content"]
result = chat_with_ollama("Как отсортировать список в Python?")
print(result)
Пользовательские модели с Modelfile
# Modelfile
FROM llama3.1
SYSTEM """Ты ассистент технической поддержки REXE Technology.
Ты помогаешь с управлением серверами, Docker, Linux и сетевыми вопросами."""
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER num_ctx 4096
Создание модели:
ollama create rexe-assistant -f Modelfile
ollama run rexe-assistant
GPU-ускорение
NVIDIA GPU
# Проверка драйвера NVIDIA
nvidia-smi
# Версия CUDA
nvcc --version
AMD GPU (ROCm)
curl -fsSL https://ollama.com/install.sh | OLLAMA_ACCELERATION=rocm sh
docker run -d \
--name ollama \
--device /dev/kfd \
--device /dev/dri \
-p 11434:11434 \
-v ollama_data:/root/.ollama \
ollama/ollama:rocm
Управление памятью GPU
export OLLAMA_NUM_GPU=1
export OLLAMA_GPU_MEMORY=6144
export OLLAMA_MAX_LOADED_MODELS=2
export CUDA_VISIBLE_DEVICES=0
Переменные окружения
# /etc/systemd/system/ollama.service.d/override.conf
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/data/ollama"
Environment="OLLAMA_NUM_PARALLEL=4"
Environment="OLLAMA_MAX_LOADED_MODELS=2"
Environment="OLLAMA_KEEP_ALIVE=5m"
Применение изменений:
systemctl daemon-reload
systemctl restart ollama
Советы по производительности
# Экономия RAM с квантизированными моделями
ollama pull llama3.1:8b-q4_0 # 4-бит (~4,7 ГБ)
ollama pull llama3.1:8b-q5_1 # 5-бит (~5,7 ГБ)
ollama pull llama3.1:8b-q8_0 # 8-бит (~8,5 ГБ)
# Настройка контекстного окна
ollama run llama3.1 --num-ctx 2048
На GPU-серверах REXE вы можете запускать большие языковые модели с высокой производительностью через Ollama. GPU NVIDIA A100/H100 обеспечивают быстрые ответы даже для моделей с 70B параметрами.
Связанные статьи
Установка Open WebUI: Локальный ИИ с интерфейсом как у ChatGPT
Установка Open WebUI через Docker, интеграция с Ollama, управление пользователями, RAG (запросы к документам), управление моделями и поддержка нескольких пользователей.
Развёртывание ИИ-моделей на GPU-сервере: Руководство по NVIDIA CUDA
Установка драйверов NVIDIA, CUDA toolkit, nvidia-container-toolkit, обслуживание моделей с vLLM, мониторинг GPU и развёртывание ИИ-моделей с Docker.
Установка Stable Diffusion: Self-Hosted генерация изображений
Установка Stable Diffusion, интерфейсы AUTOMATIC1111 и ComfyUI, загрузка моделей, обучение LoRA, использование ControlNet и Docker self-hosted генерация изображений.