DeepSeek 1.5B: Компактная языковая модель для локального использования на Ubuntu 24.04
Введение
Сегодня расскажу, как настроить и запустить языковую модель DeepSeek 1.5B на сервере с Ubuntu 24.04. Мы будем использовать Ollama для управления моделью и Open WebUI для удобного веб-интерфейса. Этот подход идеален, если вы хотите локальный ИИ без облачных сервисов, мощного железа и лишних затрат.
В статье я покажу:
- Что такое DeepSeek 1.5B и на что он способен.
- Как подготовить сервер Ubuntu 24.04.
- Как установить и настроить Ollama.
- Как развернуть DeepSeek 1.5B.
- Как запустить Open WebUI для общения с моделью через браузер.
- Тонкости работы и мои наблюдения.
Что такое DeepSeek 1.5B и зачем он нужен?
DeepSeek 1.5B — это языковая модель с 1,5 миллиардами параметров. По сравнению с гигантами вроде GPT-4 это немного, но для большинства задач её мощности хватает. Главное преимущество — она работает локально на скромном оборудовании: сервер с 8–16 ГБ оперативной памяти и средним процессором справится без проблем.
Я выбрал DeepSeek, потому что хотел автономное решение: без облаков, без передачи данных третьим лицам и без покупки топового GPU вроде RTX 4090. Модель поддерживает задачи вроде:
- Создание чат-ботов.
- Ответы на вопросы.
- Генерация текстов, идей и кода.
- Анализ данных и текстов.
DeepSeek 1.5B популярен среди небольших команд, стартапов и энтузиастов, которые хотят экспериментировать с ИИ без сложной инфраструктуры. Для меня это идеальный вариант: минимум затрат, максимум приватности.
Подготовка сервера Ubuntu 24.04
Прежде чем запускать модель, нужно подготовить сервер. Если система захламлена или не настроена, DeepSeek может работать нестабильно. Я начну с чистки, обновления системы и установки необходимых инструментов.
Обновление системы
Подключаюсь к серверу через SSH (или открываю терминал, если работаю локально) и обновляю систему:
sudo apt update && sudo apt upgrade -y
Эта команда обновляет списки пакетов и устанавливает последние версии программ. После этого ставлю несколько утилит:
sudo apt install -y curl git build-essential
curl
— для загрузки файлов из сети.git
— если нужно клонировать репозитории.build-essential
— для компиляции, если потребуется.
Проверка ресурсов сервера
DeepSeek 1.5B не требователен, но нужно убедиться, что сервер готов. Проверяю оперативную память:
free -h
Для работы хватит 8 ГБ RAM, но 16 ГБ будет комфортнее. Если памяти мало, создаю swap-файл на 4 ГБ:
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Чтобы swap-файл сохранялся после перезагрузки, добавляю его в /etc/fstab
:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Теперь проверяю процессор:
lscpu
DeepSeek не требует топового CPU, но 4 ядра и выше обеспечат более плавную работу. Я тестировал на сервере с 4 ядрами и 16 ГБ RAM — всё работает отлично.
Установка Docker
Ollama и Open WebUI лучше запускать в Docker-контейнерах, поэтому устанавливаю Docker. Сначала добавляю официальный репозиторий:
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
Добавляю репозиторий в источники APT:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Устанавливаю Docker:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Запускаю Docker и включаю автозапуск:
sudo systemctl enable docker
sudo systemctl start docker
Чтобы работать с Docker без sudo
, добавляю своего пользователя в группу docker
:
sudo usermod -aG docker $USER
После этого переподключаюсь по SSH или перезапускаю сессию.
Проверка окружения
Убеждаюсь, что Docker работает:
docker --version
Ожидаемый вывод: Docker version 27.0.3
или новее. Проверяю docker compose
:
docker compose version
Если обе команды работают, сервер готов. Если нет — проверяйте логи (sudo journalctl -u docker
) или документацию Docker.
Установка и настройка Ollama
Ollama — это инструмент для управления локальными языковыми моделями. Он упрощает загрузку, запуск и обновление моделей, предоставляя удобный интерфейс через CLI или API.
Установка Ollama через Docker
Я решил запускать Ollama в Docker-контейнере для большей изоляции. Сначала создаю директорию для хранения данных:
mkdir -p ~/ollama
Запускаю Ollama:
docker run -d -v ~/ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
-d
— запуск в фоновом режиме.-v ~/ollama:/root/.ollama
— привязка локальной папки для хранения моделей.-p 11434:11434
— открытие порта 11434 для взаимодействия с Ollama.--name ollama
— имя контейнера.
Проверяю, что контейнер работает:
docker ps
Если всё в порядке, вижу контейнер ollama
. Проверяю доступность Ollama:
curl http://localhost:11434
Ожидаемый ответ: Ollama is running
. Если ответа нет, проверяю порт (sudo netstat -tuln | grep 11434
) и логи (docker logs ollama
).
Настройка автозапуска
Чтобы Ollama запускалась автоматически и перезапускалась при сбоях:
docker update --restart unless-stopped ollama
Разворачивание DeepSeek 1.5B
Теперь, когда Ollama готова, пора загрузить и запустить DeepSeek 1.5B.
Загрузка модели
DeepSeek 1.5B занимает около 3–4 ГБ, но я рекомендую иметь минимум 10 ГБ свободного места в директории ~/ollama
для временных файлов. Проверяю место:
df -h
Загружаю модель через Ollama:
docker exec -it ollama ollama pull deepseek-r1:1.5b
Примечание: На момент написания (май 2025 года) DeepSeek 1.5B может быть недоступен напрямую через Ollama. В таком случае нужно загрузить файл модели (например, в формате GGUF) из официального источника DeepSeek или с Hugging Face, а затем импортировать:
docker cp deepseek-1.5b.gguf ollama:/root/.ollama/models/
docker exec -it ollama ollama import deepseek-1.5b.gguf deepseek-r1:1.5b
После загрузки запускаю модель:
docker exec -it ollama ollama run deepseek-r1:1.5b
Ollama открывает интерактивный режим. Задаю вопрос:
Привет, DeepSeek! Расскажи о себе.
Если модель отвечает, всё работает. Для выхода из режима нажимаю Ctrl+D
.
Тестирование возможностей
Чтобы понять, на что способен DeepSeek, задаю разные вопросы:
- Практический: «Напиши Python-скрипт для чтения JSON-файла.»
- Аналитический: «Проанализируй этот текст: [вставьте текст].»
- Творческий: «Придумай идею для фантастического рассказа.»
Модель отвечает быстро, хотя иногда допускает небольшие ошибки в стиле или фактах. Это нормально для модели такого размера.
Настройка Open WebUI
Общаться через терминал неудобно, поэтому я настроил Open WebUI — веб-интерфейс для работы с моделью.
Установка Open WebUI
Создаю директорию для данных:
mkdir -p ~/open-webui
Запускаю Open WebUI в Docker-контейнере:
docker run -d -p 8080:8080 --add-host=host.docker.internal:host-gateway -v ~/open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
-p 8080:8080
— открытие порта 8080.--add-host=host.docker.internal:host-gateway
— для связи с Ollama.-v ~/open-webui:/app/backend/data
— сохранение настроек.--restart always
— автозапуск.
Проверяю, что контейнер работает:
docker ps
Открываю в браузере: http://<IP_сервера>:8080
(например, http://localhost:8080
, если работаю локально). При первом запуске создаю учётную запись с логином и паролем.
Подключение к Ollama
Open WebUI автоматически находит Ollama по адресу host.docker.internal:11434
. В интерфейсе выбираю модель deepseek-r1:1.5b
. Если модель не отображается, проверяю:
- Работает ли Ollama (
curl http://localhost:11434
). - Правильный ли порт. Если нужно, перезапускаю Open WebUI:
docker stop open-webui
docker rm open-webui
docker run -d -p 8080:8080 -e OLLAMA_API_BASE_URL=http://host.docker.internal:11434 -v ~/open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
Безопасность
Если сервер доступен из интернета:
- Использую надёжный пароль для Open WebUI.
- Настраиваю HTTPS через Nginx и Let’s Encrypt.
- Ограничиваю доступ по IP:
sudo ufw allow from <ваш_IP> to any port 8080
sudo ufw enable
Тонкости работы с DeepSeek 1.5B
За время работы с моделью я заметил несколько нюансов.
1. Формулировка запросов
DeepSeek лучше отвечает на чёткие запросы с контекстом. Например, вместо «Напиши код» лучше спросить:
Напиши Python-функцию для сортировки списка чисел методом быстрой сортировки.
2. Настройка параметров
В Open WebUI можно менять параметры модели:
- Температура: 0.3–0.5 для точных ответов, 0.8–1.0 для креативных.
- Максимальная длина ответа: Увеличьте для длинных текстов.
- Top-p: 0.9 — хороший баланс разнообразия.
3. Ограничения
DeepSeek 1.5B — не топовая модель, поэтому:
- Может путаться в сложных задачах (например, глубокий анализ больших текстов).
- Иногда выдаёт неточные данные — проверяйте важные ответы.
- Лучше работает с короткими и средними текстами.
4. Оптимизация
На слабом сервере модель может тормозить. Рекомендации:
- Используйте GPU, если есть (
nvidia-smi
для проверки). - Ограничьте одновременные запросы:
docker stop ollama
docker run -d -v ~/ollama:/root/.ollama -p 11434:11434 --name ollama -e OLLAMA_MAX_QUEUE=1 ollama/ollama
- Увеличьте swap-файл при нехватке памяти.
5. Работа с русским языком
DeepSeek понимает русский, но иногда отвечает неестественно (например, использует устаревшие слова вроде «добре»). Для лучших результатов:
- Задавайте вопросы на английском, а затем просите перевести.
- Переформулируйте запрос, если ответ не устраивает.
Заключение
Я подготовил сервер Ubuntu 24.04, установил Ollama и развернул DeepSeek 1.5B. Затем добавил Open WebUI, чтобы общаться с моделью через браузер. DeepSeek 1.5B оказался удобным решением для локального ИИ: он экономит время, сохраняет приватность и помогает в задачах вроде написания кода, анализа текстов и генерации идей.
Эта модель — отличный выбор для тех, кто хочет экспериментировать с ИИ без облаков и мощного железа. В будущем планирую протестировать её в более сложных сценариях, например, для автоматизации техподдержки.