Загрузка
Надоело платить за ChatGPT и сливать данные? Разверни свою Llama 3 или Mistral на мощностях Qudata. Гайд для тех, кто любит контроль: арендуем правильный GPU, запускаем Docker-контейнер с Ollama и настраиваем собственный API без цензуры и абонентской платы. Справишься за 15 минут, даже если никогда не трогал нейросети.

Платить 20 долларов в месяц за подписку на ChatGPT, чтобы задать вопрос «как выйти из Vim» или сгенерировать JSON — это не всегда рационально. К тому же, отправляя данные в облако корпораций, мы теряем над ними контроль. В эпоху, когда открытые модели (Llama 3, Mistral, Gemma) дышат в спину GPT-4, иметь собственного карманного «умника» — это вопрос не только экономии, но и цифровой гигиены.
В этом гайде мы разберем, как за 15 минут развернуть аналог ChatGPT на собственном или арендованном сервере. Без цензуры, без очередей и с полным контролем над данными. Использовать будем связку Docker + Ollama, запущенную на мощностях Qudata.
Для запуска нейросети обычного процессора (CPU) недостаточно. Точнее, запустить можно, но скорость ответов будет напоминать переписку бумажными письмами. Нам нужна видеокарта (GPU).
Сервер с GPU: Идеальный вариант — виртуальная машина на Qudata.
Для моделей 7B-8B (Llama 3, Mistral) хватит карты уровня RTX 3090 или A4000 (нужно минимум 8-12 ГБ видеопамяти/VRAM).
Для моделей 70B (умные, мощные) потребуется уже 48 ГБ VRAM (уровень A6000 или пара 3090).
Docker: Стандарт де-факто для контейнеризации. На образах Qudata он обычно уже стоит.
Терминал: И готовность скопировать пару команд.
Чтобы не углубляться в математические дебри, представим работу локальной LLM (Large Language Model) через простую аналогию.
Файл модели (Веса): Это «мозг» нейросети. Огромный файл (от 4 до 40 ГБ), в котором записаны все знания модели в виде миллиардов чисел. Сам по себе он бесполезен, как флешка без компьютера.
Ollama: Это «движок» или «плеер» для этого мозга. Программа, которая умеет загружать веса в память видеокарты и заставляет их генерировать текст. Сейчас это самый популярный инструмент, потому что он делает сложные вещи одной командой.
Docker: Это «стерильная комната» (контейнер). Мы помещаем Ollama внутрь Docker, чтобы не засорять основную систему библиотеками и зависимостями. Если что-то пойдет не так — мы просто удаляем контейнер, а сервер остается чистым.
Прежде чем запускать тяжелые вычисления, нужно убедиться, что Docker «видит» видеокарту. Это самая частая проблема новичков: контейнер запускается, но работает на процессоре, пожирая оперативную память и отвечая по 3 минуты.
Подключитесь к серверу и введите команду:
nvidia-smiВы должны увидеть таблицу с названием видеокарты (например, NVIDIA GeForce RTX 3090) и версией драйвера.
Далее проверяем, установлен ли NVIDIA Container Toolkit (прослойка между Docker и видеокартой):
docker run --rm --gpus all ubuntu nvidia-smi
Если эта команда вывела ту же табличку — всё отлично, система готова к полету.
Теперь скачаем и запустим контейнер с Ollama. Мы используем официальный образ.
Выполните команду в терминале:
docker run -d --gpus=all \
-v ollama:/root/.ollama \
-p 11434:11434 \
--name ollama \
--restart always \
ollama/ollama
Разбор параметров:
--gpus=all: Критически важный флаг. Он передает видеокарту внутрь контейнера.
-v ollama:/root/.ollama: Создает постоянное хранилище (volume). Если вы перезагрузите сервер, скачанные модели не исчезнут.
-p 11434:11434: Открывает порт. Ollama общается с миром через порт 11434.
--restart always: Если сервер перезагрузится, ваш ИИ поднимется сам.
Контейнер работает, но он пуст. В нем нет моделей. Самое время выбрать, кого мы поселим в наш сервер. Сейчас золотым стандартом считаются модели Llama 3 (от Meta*) или Mistral.
Чтобы скачать и запустить Llama 3, отправляем команду внутрь контейнера:
docker exec -it ollama ollama run llama3
Для моделей Mistral команда будет ollama run mistral.
Система начнет загрузку (около 4.7 ГБ). После завершения вы увидите приглашение >>>. Попробуйте написать: «Привет, расскажи о себе на русском». Если текст печатается быстро (как в матрице), значит, ускорение GPU работает.
Нажмите Ctrl+D, чтобы выйти из диалога. Модель продолжит работать в фоне.
Сидеть в черной консоли — удел хардкорных админов. Чтобы получить опыт, как в ChatGPT (с историей чатов, кнопками и красивым оформлением), мы поднимем второй контейнер — Open WebUI.
docker run -d -p 3000: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
Теперь откройте браузер и перейдите по адресу: http://IP-АДРЕСА-ВАШЕГО-СЕРВЕРА:3000
Вам предложат создать аккаунт (он сохраняется только локально на вашем сервере). После входа вы увидите интерфейс, который автоматически подтянет модель Llama 3 из соседнего контейнера.
Даже в такой простой инструкции есть нюансы, о которые можно споткнуться.
1. Проблема «Толстого соседа» (OOM Error) Модели потребляют видеопамять (VRAM). Если вы попытаетесь запустить модель llama3:70b на карте с 24 ГБ памяти, вы получите ошибку Out Of Memory.
Решение: Используйте квантованные версии. Квантование — это сжатие весов модели с минимальной потерей качества. Ollama по умолчанию качает версию 4-bit (оптимальный баланс). Не гонитесь за версиями fp16, если у вас не промышленный кластер.
2. Безопасность открытого порта В инструкции мы открыли порт 11434 и 3000 на весь интернет. Это удобно для тестов, но опасно для постоянной работы. Сканеры портов найдут ваш сервер за пару часов, и кто-то может начать использовать вашу модель для генерации спама, нагружая вашу карту.
Решение: Настройте Firewall (например, ufw в Ubuntu), разрешив доступ только с вашего IP-адреса. Либо используйте VPN/SSH-туннель для доступа к интерфейсу.
3. Галлюцинации и контекст Локальные модели имеют ограничение по «памяти» разговора (контекстное окно). У стандартной Llama 3 это 8000 токенов (примерно 15 страниц текста). Если беседа затянется, модель начнет забывать начало разговора.
Решение: Если вы обсуждаете длинный документ, используйте RAG (Retrieval Augmented Generation) — функцию работы с документами, которая уже встроена в Open WebUI. Просто загрузите PDF в чат, и модель будет искать ответы в нем, не перегружая контекстное окно.
4. «Почему модель отвечает по-английски?» Даже если вы спросили на русском, модель может ответить на английском. Это особенность обучающей выборки.
Решение: Используйте системный промпт. В настройках Open WebUI (или через API) можно задать ролевую установку: «Ты — русскоязычный ассистент. Отвечай всегда на русском языке, используя кириллицу». Это резко повышает качество ответов.
Meta признана экстремистской организацией и запрещена в РФ.
В этом материале нет файлов для просмотра.