ГАЙД 2026

Синхронный перевод локально: Hy-SimulMT, SimulInfer и vLLM

Одна команда deploy.sh поднимает модельный сервер и веб-интерфейс, но грабли начинаются на версии vLLM, портах и TTS. Разбираем установку по шагам — с проверками после каждого этапа.

Локальный запускvLLM2026
Категория Локальный инференсВремя 40–60 минутОбновлено 28.10.2026

Hy-SimulMT запускается в два слоя: модельный сервер (vLLM ≥ 0.31 с поддержкой HYV3ForCausalLM) и оркестратор SimulInfer, который даёт веб-страницу, загрузку файлов и WebSocket-микрофон. Ниже — рабочий порядок: проверка железа, установка одной командой, проверка через curl, затем опциональная озвучка.

57 GiB
Память BF16
до KV-кэша
32 ГБ
Память FP8
файлы на диске
8080
Порт веб/API
по умолчанию
8800
Порт модели
vLLM
Сначала посчитайте память
Одна карта 48 ГБ в BF16 не подойдёт: веса сами занимают около 57 GiB. Варианты: FP8 (32 ГБ) или две карты с --tensor-parallel-size 2. Если карты на 24 ГБ — берите GGUF Q4_K_M (19,75 ГБ), но учтите, что llama.cpp для этой архитектуры ещё не влит в upstream (PR #31198).

01Что нужно до установки

  • Linux-сервер с NVIDIA GPU и CUDA-совместимым драйвером, Python 3.12+ (допускается 3.11 для клиента).
  • Git и место на диске под чекпойнт: 61 ГБ для BF16, 32 ГБ для FP8, 20–34 ГБ для GGUF.
  • Свободные порты: 8080 (веб и API), 8800 (модельный сервер), 8091 (TTS, если включаете озвучку).
  • Для удалённого микрофона — HTTPS-адрес: браузер не даёт доступ к микрофону по http на чужом хосте.
ВариантВесПамять GPU под весаКогда выбирать
BF1660,9 ГБ~57 GiB + KV-кэшэталонное качество, H200/H100
FP832,2 ГБ~30 GiB + KV-кэшодна карта 48–80 ГБ, продакшен
Q8_0 (GGUF)33,3 ГБ~33 ГБllama.cpp с патчем, почти без потерь
Q4_K_M (GGUF)19,8 ГБ~20 ГБэксперимент на одной карте 24 ГБ
Размеры — сумма файлов репозиториев HF, снято 28.10.2026
Сколько качатьвес файлов на диске
0 ГБ40 ГБ80 ГБBF1661 ГБFP832 ГБQ8_033 ГБQ4_K_M20 ГБ
BF16, FP8 и два GGUF-кванта одного чекпойнта
Что качают чаще всего
70%14%6%3077загрузок лидераInterleave-GGUF3 077 · 70%GGUF623 · 14%base BF16269 · 6%Interleave166 · 4%FP8165 · 4%Interleave-FP8111 · 3%
Загрузки репозиториев на HF, снято 28.10.2026: GGUF-сборки интересуют людей сильнее BF16

Выбор по этим цифрам простой: если нужен продакшен с vLLM — берите FP8 (32 ГБ), если нужно «посмотреть, как это работает» на одной карте — GGUF Q4_K_M, но с готовностью патчить llama.cpp. BF16 имеет смысл только когда есть H200/H100 и важна эталонная точность.

02Установка одной командой

Команда запускается из каталога SimulInfer/. Флаг --install-server создаёт изолированные окружения, готовит шаблон инференса и поднимает оба сервиса. Первый запуск скачивает зависимости и, если передан HF-ID, сам чекпойнт — это десятки гигабайт.

Порядок действий
1
1. Клонировать репозиторий
Ветка main, каталог SimulInfer — рабочая директория для всех команд ниже.
terminalcopy
git clone https://github.com/Tencent-Hunyuan/Hy-SimulMT.git
cd Hy-SimulMT
cd SimulInfer
2
2. Запустить установку и старт
Модель можно указать HF-ID или локальным путём. Команду не закрывать: она держит сервисы.
terminalcopy
bash deploy.sh --install-server \
  --model tencent/Hy-SimulMT-30B-A3B-Interleave
3
3. Дождаться готовности
В логе появится строка Ready с адресом. Порт занят — задайте другой через --port.
terminalcopy
Ready: http://127.0.0.1:8080/
4
4. Проверить перевод файла
Направление задаётся как en-zh или zh-en; файл — wav, поток отдаётся чанками.
terminalcopy
curl -N http://127.0.0.1:8080/translate/stream \
  -F direction=en-zh -F file=@audio.wav
5
5. Открыть веб-интерфейс
С сервера — по 127.0.0.1, с другой машины — по IP сервера и порту 8080.
браузерcopy
http://SERVER_IP:8080/

Для своей сборки vLLM или CUDA окружение модели можно переиспользовать: поставьте в него пакет simulst без зависимостей и передайте путь к интерпретатору через --server-python. Если модельный сервер уже работает отдельно, SimulInfer поднимается один — флагом --backend-url.

03Порты и что где живёт

Путаница с портами — самая частая причина «страница открывается, но перевода нет». У каждого пути запуска свои номера, и они не совпадают между vLLM, llama.cpp и SGLang.

КомпонентПортЧто отдаётПуть запуска
SimulInfer web/API8080страница, /translate/stream, /translate/ws, /docsdeploy.sh
vLLM модель8800OpenAI-совместимый APIdeploy.sh (внутри)
llama.cpp мост8094веб-страница моста для GGUFserve_llamacpp.py
llama.cpp модель8080загруженный GGUFllama-server с патчем
TTS Qwen3-TTS8091синтез речи и клонированиеsimulinfer-tts-omni
SGLang-Omni8000/v1/audio/translations и realtime WSsgl-omni serve
Сводка по README SimulInfer и карточке модели, снято 28.10.2026
Конфликт портов в llama.cpp-пути
В мосте llama.cpp модельный сервер по умолчанию слушает 8080 — тот же порт, который в vLLM-пути занимает SimulInfer. Если поднимаете оба варианта на одной машине, разведите их: PORT для моста и LLAMA_URL для адреса модели. Иначе получите «порт занят» или тихое подключение не к тому сервису.
1deploy.shсоздаёт окружения и готовит шаблон инференса2vLLM на 8800поднимает чекпойнт с HYV3ForCausalLM3SimulInfer на 8080веб-страница, файлы, WebSocket — проксирует в vLLM4TTS на 8091опционально: озвучка и клонирование тембраПроверка после каждого шага дешевле, чем разбор логов целиком

04Озвучка и клонирование голоса

Сама модель отдаёт текст. Чтобы получить «перевод голосом», нужен TTS, и в документации предлагается Qwen3-TTS-12Hz-0.6B-Base через vLLM-Omni: он поднимается отдельным процессом и получает от SimulInfer текст вместе с эмбеддингом голоса говорящего.

TTS отдельным сервисом
1
1. Поднять TTS
Отдельное окружение модели, порт 8091.
terminalcopy
simulinfer-tts-omni \
  --model Qwen/Qwen3-TTS-12Hz-0.6B-Base \
  --host 0.0.0.0 --port 8091
2
2. Включить в конфиге
Скопируйте deploy.example.toml в deploy.toml и укажите адрес TTS, затем запустите с --config.
terminalcopy
cp deploy.example.toml deploy.toml
bash deploy.sh --config deploy.toml
3
3. Проверить файл
При включённом TTS клиент сохраняет озвучку в outputs/translated.wav.
terminalcopy
.simulinfer/app-env/bin/simulinfer-client audio.wav \
  --url http://127.0.0.1:8080
Про клонирование
Тембр восстанавливается по аудио говорящего, поэтому голос в переводе похож на оригинал — это и есть «real-time voice cloning» из описания модели. Юридически это чувствительная функция: для записи чужих голосов нужно согласие, а в ряде юрисдикций — и пометка о синтезе.

05Типичные ошибки и что проверить

Почти все сбои на старте сводятся к четырём причинам: несовместимая версия vLLM, пустой шаблон инференса, занятый порт и отсутствие аудио-зависимостей. Первые три видны в логах сразу, четвёртая — только при попытке загрузить файл.

СимптомПричинаЧто делать
Модель не грузится, ошибка архитектурыvLLM старше/новее требуемого или без HYV3ForCausalLMпоставить vLLM ≥ 0.31 из чистого окружения
Модель отвечает не по форматуне выполнен simulinfer-prepare-modelпрогнать подготовку и перезапустить vLLM
Порт занят при стартевисят прошлые процессы или llama.cpp на 8080сменить --port/--model-port, убить старые процессы
Файл загружается, перевода нетнет аудио-зависимостей или VADпоставить simulst[audio] и [vad]
Микрофон не работает на удалённой машиненет HTTPSиспользовать HTTPS-адрес или туннель с поддержкой WebSocket
Речь не синтезируетсяTTS не подключёнподнять TTS на 8091 и указать его в deploy.toml
Собрано по README SimulInfer и разделу требований карточки модели

Отдельно про качество: модель может переписывать уже сказанное. Если вы пишете субтитры в реальном времени, рассчитывайте на правки в предыдущих строках — это не баг, а заявленная стратегия «сказать раньше, уточнить позже». Для протокола встречи берите Interleave-чекпойнт: он отдаёт и оригинал, и перевод, и правки видны в контексте.

Частые вопросы

Можно ли обойтись без vLLM?
Да, через llama.cpp с GGUF-квантом, но поддержка архитектуры ещё не влита в upstream: нужен патч из PR #31198, а llama-server в нём пока не поддерживается. Второй вариант — SGLang-Omni, он отдаёт OpenAI-совместимые эндпоинты, но покрывает только BF16 translation-only чекпойнт.
Сколько времени занимает первый запуск?
Основное время уходит на скачивание весов: 61 ГБ для BF16, 32 ГБ для FP8. При канале 100 Мбит/с это часы. Скачайте чекпойнт заранее через huggingface-cli и передайте deploy.sh локальный путь — установка тогда занимает десятки минут.
Хватит ли одной карты 24 ГБ?
Только с GGUF Q4_K_M (19,8 ГБ) и патченным llama.cpp. Для vLLM-пути нужно 32 ГБ на FP8-вариант плюс место под KV-кэш, то есть карта на 48 ГБ — минимальный практичный вариант.
Как проверить качество на своём материале?
Возьмите 10–20 своих записей, прогоните через /translate/stream и сравните с ручным переводом по трём вещам: пропуски, искажения терминов и правки середины фразы. Оценки из карточки модели на вашем домене ничего не гарантируют.
Что с нагрузкой и параллельными запросами?
В примере запуска vLLM стоит --max-num-seqs 4 и --gpu-memory-utilization 0.9. Это стартовая точка для одной карты: больше одновременных потоков потребует запаса по памяти под KV-кэш. Замеры под свой поток делайте сами — публичных нет.
Нужен ли интернет после установки?
Нет: модель, оркестратор и TTS работают локально. Интернет нужен только на этапе скачивания весов и зависимостей.

Источники и официальные ссылки

Нужен разбор самой модели?
Читайте обзор Hy-SimulMT: бенчмарки авторов, лицензия и кому это подходит.