Как llama.cpp-бэкенд ускорил инференс CosyVoice3 в 2,6 раза

Автор добавил llama.cpp-бэкенд в CosyVoice3 через llama-cpp-python и ускорил генерацию речи примерно в 2,6 раза на NVIDIA T4. Ключевая ценность решения — быстрый TTS-инференс без Docker, Triton и сложной привязки к конкретной GPU.

CosyVoice3 использует LLM на базе Qwen2.5-0.5B для генерации речевых токенов, но её архитектура отличается от обычной языковой модели: есть текстовые эмбеддинги, речевые эмбеддинги и отдельная речевая голова. llama.cpp ожидает стандартную модель с одним словарём и одной lm_head, поэтому модель пришлось привести к привычному виду: объединить текстовые и речевые эмбеддинги в один большой словарь примерно на 158,7 тыс. токенов, обновить config.json и расширить vocab.json речевыми токенами.

После такой конвертации стандартный convert_hf_to_gguf.py из llama.cpp видит модель как большой Qwen2.5, а готовые GGUF-варианты опубликованы на HuggingFace с разными типами квантизации — от Q2_K до F32. При инференсе остаётся отдельная проблема: модель может начать генерировать текстовые токены вместо речи, поэтому в сэмплинге используется маскировка логитов — разрешаются только речевые токены и EOS.

В тесте на NVIDIA T4 в fp16 средний RTF снизился с ~1,17 у оригинального PyTorch-бэкенда до ~0,45 у llama-cpp-python F16 GGUF. Это означает синтез быстрее реального времени, что делает вариант пригодным для стриминга без накопления задержки; в отличие от TensorRT-LLM-подхода через FastCosyVoice, этот бэкенд проще поставить и может работать даже на слабых GPU или CPU.

Коротко

  • CosyVoice3 использует Qwen2.5-0.5B для генерации речевых токенов, но её LLM-часть на PyTorch медленно работает на слабых GPU.
  • Для llama.cpp текстовые и речевые эмбеддинги объединили в один словарь примерно на 158,7 тыс. токенов.
  • После конвертации в GGUF стандартный convert_hf_to_gguf.py видит модель как большой Qwen2.5 без доработок.
  • Чтобы модель не генерировала текст вместо речи, при сэмплинге маскируются все логиты, кроме речевых токенов и EOS.
  • На NVIDIA T4 средний RTF снизился с ~1,17 до ~0,45, то есть синтез стал быстрее реального времени.

FAQ

Зачем добавлять llama.cpp-бэкенд в CosyVoice3, если модель уже работает через PyTorch?

llama.cpp через llama-cpp-python ускоряет LLM-часть TTS-модели и упрощает запуск на слабых GPU или CPU. В тесте на NVIDIA T4 это дало ускорение примерно в 2,6 раза.

Почему CosyVoice3 нельзя просто напрямую сконвертировать в GGUF как обычную LLM?

У CosyVoice3 отдельные текстовые и речевые эмбеддинги, а также отдельная речевая голова. Для llama.cpp их пришлось объединить в один словарь и единую выходную структуру.

Чем подход через llama-cpp-python отличается от варианта с TensorRT-LLM и FastCosyVoice?

TensorRT-LLM требует Docker и конвертацию под конкретную GPU, а бенчмарки в источнике приведены только для RTX 3090 и RTX 5060ti. llama-cpp-python ставится одной командой и проще подходит для слабого железа.

Читайте также

  1. Как я пришёл в аналитику, устроился в бигтех и понял, что рабочих задач недостаточно для роста
  2. Как научить LLM исправлять код без лишних изменений
  3. Практическое руководство по инжинирингу контекста для AI-ассистентов
  4. Дружба Linux и Windows, или как поиграться с ИИ-моделями на втором компьютере без видеокарты
  5. Наглядный пример, зачем нужны AI-агенты
Ключевые инсайты из новости (по версии ChatGPT)
  • llama.cpp как лёгкий backend для TTS-инференса: Для open source TTS-моделей с LLM-частью llama.cpp через llama-cpp-python может быть практичной альтернативой PyTorch на слабых GPU и CPU. В кейсе CosyVoice3 на NVIDIA T4 переход с PyTorch fp16 на llama-cpp-python F16 GGUF снизил RTF примерно с 1,17 до 0,45, то есть сделал синтез быстрее реального времени.
    [AI-инфраструктура и TTS]
Для получения полного доступа оформите подписку PubMag PRO.
Зарегистрированные пользователи видят только два тезиса.
Зарегистрироваться
Инсайты автоматически генерируются с помощью искусственного интеллекта на основе текста статьи.
← Назад в лентуЧитать оригинал →
✈️ Подписывайтесь на мой Telegram-канал — там еще больше интересного про AdTech, MarTech, AI и многое другое!