Что такое Text Generation WebUI
Text Generation WebUI — открытый интерфейс для работы с языковыми моделями через браузер: чат, режим блокнота для свободного текста и панель параметров генерации без командной строки. Проект поддерживает несколько backend-движков: llama.cpp для CPU и лёгких GPU-серверов, Transformers и ExLlama для полноценного GPU-инференса.
Инструмент удобен, когда модель нужно тестировать интерактивно, сравнивать ответы при разных настройках температуры и подключать расширения — от голосового ввода до генерации изображений. Для чистого API без интерфейса лучше подойдёт vLLM, а WebUI закрывает сценарий ручной работы человека с моделью.
Требования к серверу
Минимальная конфигурация зависит от выбранного backend'а и размера модели.
| Сценарий | CPU | RAM | GPU |
|---|---|---|---|
| llama.cpp, модель 7B | 4 ядра | 16 ГБ | не обязателен |
| Transformers, модель 7B | 4 ядра | 16 ГБ | 8 ГБ VRAM |
| ExLlama, модель 13B | 6 ядер | 24 ГБ | 16 ГБ VRAM |
Точный объём видеопамяти под конкретную модель проще прикинуть заранее — см. статью сколько VRAM нужно модели.
Установка на VDS
Проект распространяется как обычный Python-репозиторий со скриптом установки зависимостей.
sudo apt update
sudo apt install -y git python3.11-venv
git clone https://github.com/oobabooga/text-generation-webui
cd text-generation-webui
python3.11 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Установка зависимостей занимает несколько минут: скрипт ставит PyTorch, поддержку выбранных backend'ов и веб-сервер на Gradio.
Первый запуск и загрузка модели
После установки запустите сервер и укажите порт, доступный извне, чтобы открыть интерфейс с рабочего компьютера.
python server.py --listen --listen-port 7860 --api
Модель загружается через вкладку Model: файлы GGUF кладутся в каталог models/, после чего модель появляется в выпадающем списке. Флаг --api дополнительно открывает OpenAI-совместимый эндпоинт, поэтому WebUI можно использовать и как сервер для сторонних приложений, не только как чат в браузере.
Полезные расширения и режимы работы
WebUI закрывает не только диалоговый режим — расширения покрывают большинство рабочих сценариев:
- Режим Notebook — свободный текст без ролей ассистента и пользователя, удобен для дописывания и экспериментов с промптом.
- Расширение superbooga добавляет простой поиск по документам прямо в диалоге.
- Character-карточки задают личность и стиль ответа модели через отдельный JSON-профиль.
- Встроенный API-режим позволяет подключать WebUI к сторонним скриптам так же, как OpenAI API — впрочем, для продакшен-нагрузки надёжнее отдельный inference-сервер вроде llama.cpp напрямую.
Что делать при типичных проблемах
Большинство сбоев решаются проверкой версии зависимостей или параметров запуска:
- Интерфейс не открывается снаружи — проверьте флаг
--listenи правило файрвола для порта 7860. - Модель не грузится и падает с ошибкой памяти — уменьшите уровень контекста в настройках модели или возьмите более лёгкое квантование.
- Backend ExLlama не находит библиотеку CUDA — переустановите PyTorch версии, указанной в файле requirements для GPU.
- Ответы обрываются на середине фразы — увеличьте параметр max_new_tokens на вкладке генерации.
После настройки WebUI превращается в удобный рабочий стенд: можно быстро переключать модели, сравнивать квантования и делиться доступом с коллегами через один и тот же VDS.
Частые вопросы
Можно ли работать с Text Generation WebUI вообще без видеокарты, используя только процессор?
Да, backend llama.cpp изначально рассчитан на работу без GPU: модель в формате GGUF грузится прямо на процессор, и для не слишком тяжёлых моделей хватает обычного VDS с достаточным объёмом оперативной памяти. Скорость генерации текста при этом заметно ниже, чем на видеокарте, но для тестов и редкого использования вариант вполне рабочий.
Чем этот интерфейс отличается от отдельного API-сервера для продакшен-нагрузки?
WebUI создан для ручной работы человека с моделью: чат, блокнот, сравнение ответов при разных настройках. Встроенный API-режим удобен для разработки и небольших скриптов, но для стабильной работы под реальной нагрузкой надёжнее отдельный inference-сервер вроде llama.cpp напрямую или vLLM — они не тратят ресурсы на отрисовку веб-интерфейса и рассчитаны именно на обслуживание запросов.
Как понять заранее, сколько видеопамяти нужно для конкретной модели, прежде чем её загружать?
Объём видеопамяти зависит от размера модели и выбранного уровня квантования, а не только от backend'а: чем сильнее сжата модель, тем меньше VRAM ей требуется ценой некоторой потери качества ответов. Прежде чем арендовать сервер под конкретную модель, стоит прикинуть требуемый объём памяти заранее, а не выяснять это методом проб после установки WebUI.
Можно ли дать доступ к одному серверу Text Generation WebUI сразу нескольким коллегам?
Технически да: интерфейс работает как обычный веб-сервер, и ссылку можно передать нескольким людям для работы с одними и теми же моделями на общем VDS. Но встроенного разделения на отдельные учётные записи с личной историей переписки и ролями здесь нет, поэтому для командной работы с разграничением доступа удобнее инструмент с полноценной многопользовательской системой.