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 оказался удобным решением для локального ИИ: он экономит время, сохраняет приватность и помогает в задачах вроде написания кода, анализа текстов и генерации идей.

Эта модель — отличный выбор для тех, кто хочет экспериментировать с ИИ без облаков и мощного железа. В будущем планирую протестировать её в более сложных сценариях, например, для автоматизации техподдержки.

🇺🇦 Stop Russian Aggression!
See what you can do →

Выберите мессенджер

Telegram Email Forms