Установка TTS-модели MOSS-TTS, не требующей тонкой настройки (с использованием NVIDIA DGX Spark)

В этом посте я поделюсь процессом установки высокопроизводительной модели TTS MOSS-TTS в среде новейшей рабочей станции для ИИ от NVIDIA — DGX Spark (Grace-Blackwell). Особенность этой модели заключается в невероятной производительности клонирования голоса без необходимости дополнительной тонкой настройки.

moss-tts-on-dgx-spark

Краткий обзор системной среды

Данное руководство по установке основано на следующей конфигурации:

Категория Характеристики Примечание
Hardware NVIDIA DGX Spark (Grace-Blackwell) Энергоэффективная/бесшумная рабочая станция для ИИ
GPU GB10 (CUDA Capability 12.1) Архитектура Blackwell
OS На базе Ubuntu 22.04 LTS -
CUDA / Driver CUDA 13.0 Стандартная среда драйверов Spark
Python 3.10+ (используется venv) Выбран легковесный venv вместо Conda
VRAM 점유 около 23.8 GB При ожидании и выполнении инференса

1. Клонирование репозитория

git clone https://github.com/OpenMOSS/MOSS-TTS.github

2. Создание и активация виртуальной среды (venv)

Хотя руководство GitHub рекомендует Conda, я выбрал виртуальную среду Python (venv) для удобства дальнейшей упаковки в Docker или регистрации службы systemd.

python3 -m venv myvenv
source myvenv/bin/activate

3. Обновление базовых инструментов сборки

pip install -U pip setuptools wheel

4. Важная настройка: Изменение pyproject.toml

Для соответствия среде CUDA 13.0 на DGX Spark необходимо вручную изменить версии зависимостей. Важно обязательно согласовать версии torch и torchaudio, чтобы избежать конфликтов во время установки.

  • Изменения:
  • "torch==2.10.0+cu130"
  • "torchaudio==2.10.0+cu130"
  • "torchcodec==0.10.0+cu130"

5. Установка зависимостей

pip install --extra-index-url https://download.pytorch.org/whl/cu130 -e .

6. Установка FFmpeg на хост

Отсутствие FFmpeg вызовет ошибку при инференсе, поэтому его необходимо установить заранее вместе с необходимыми библиотеками.

sudo apt update && sudo apt install -y ffmpeg libavcodec-dev libavformat-dev libavutil-dev libswresample-dev libswscale-dev
sudo ldconfig

7. Загрузка модели и меры предосторожности при запуске

  • Не скачивайте напрямую с HuggingFace: Если вручную загрузить модель с HuggingFace и указать путь через --model_path, это может вызвать ошибку из-за несоответствия имен переменных с исполняемым файлом (moss_tts_app.py).
  • Рекомендуется автоматическая загрузка: При запуске по умолчанию автоматически загружаются весовые модели (около 17 ГБ) и токенизатор (7 ГБ) в кэш-директорию.
  • Скрипт запуска:
python clis/moss_tts_app.py --device cuda --attn_implementation auto --host 0.0.0.0 --port 7860

Примечание: При запуске может появиться предупреждение, связанное с GB10 (cuda capability 12.1), однако было подтверждено, что это не влияет на фактическую производительность инференса. Начальная загрузка занимает около 30-60 секунд.

8. Отзывы об использовании: «Тонкая настройка больше не нужна»

  • Производительность клонирования: Всего один образец моего голоса позволяет идеально воспроизвести тембр и особенности речи на корейском, английском и японском языках.
  • Скорость: Короткие предложения генерируются за 7-8 секунд, длинные тексты (3-4 предложения) — примерно за 30 секунд.
  • Особенности по языкам: Английский практически безупречен, а неправильное прочтение иероглифов в японском легко исправляется использованием хираганы.
  • Энергоэффективность: Даже при инференсе потребляется низкое энергопотребление — около 36 Вт, а полное отсутствие шума вентиляторов является большим преимуществом DGX Spark.

9. Устранение неполадок: Почему не использовался официальный образ NVIDIA?

Образ nvcr.io/nvidia/pytorch:26.01-py3, предоставляемый NVIDIA, не позволяет собрать torchaudio и torchcodec, необходимые для работы TTS. Похоже, что версия PyTorch, включенная NVIDIA при создании образа, была специально скомпилирована для продуктов NVIDIA, и это вызвало проблемы из-за несоответствия версий PyTorch с torchaudio и torchcodec. Поэтому, к сожалению, на данный момент наиболее стабильной средой для Spark является обычное окружение venv.


🚀 Планы на будущее

  • Применение FlashAttention 2: Планируется протестировать, насколько сократится скорость инференса после установки.
  • MOSS-VoiceGenerator: Также планируется изучить модель для генерации новых виртуальных голосов без использования референсов.

Связанные статьи

-NVIDIA DGX Spark - 온프레미스 AI 인프라의 새로운 기준