Почему локальный full-duplex пока не взлетает: провал дообучения Gemma 4 12B
Создать полностью локальный аналог GPT-Live - задача, которая выглядит логичным шагом для любого инженера, работающего с Apple Silicon. M3 Pro с его Neural Engine и унифицированной памятью даёт достаточно ресурсов для инференса моделей среднего размера. Автор Parlor v2 пошёл по самому амбициозному пути: попытался дообучить открытую модель до full-duplex поведения. Результат - признание провала и возврат к классической каскадной схеме.
Дообучение Gemma 4 12B столкнулось с тремя неразрешимыми на текущем уровне технологий проблемами. Катастрофическое забывание базовых навыков модели после нескольких эпох на синтетических диалогах с разметкой прерываний. Неспособность обрабатывать перекрывающуюся речь - модель путала, когда говорить, а когда слушать. Высокая латентность даже после агрессивной квантизации до Q4_K_M: инференс занимал 80-90% ресурсов M3 Pro, не оставляя места для ASR и TTS компонентов. Итоговая задержка превышала 5 секунд, что уничтожало саму идею голосового взаимодействия в реальном времени.
Что такое full-duplex и почему GPT-Live стал ориентиром
Full-duplex в голосовых интерфейсах - способность системы одновременно слушать и говорить. Пользователь может перебить ассистента, уточнить вопрос на середине ответа, и система корректно обработает прерывание без потери контекста. Это фундаментально отличается от half-duplex схем, где действует строгая очерёдность: сначала пользователь говорит, потом система отвечает.
GPT-Live от OpenAI стал эталоном, потому что реализовал full-duplex на уровне, близком к человеческому диалогу. Модель слышит интонации, реагирует на паузы, понимает, когда её перебивают. Ключевой фактор: вся обработка идёт на облачных GPU класса H100/H200 с практически неограниченной памятью. Для локального запуска на потребительском устройстве этот подход нереализуем напрямую.
Эксперимент с Gemma 4 12B: ожидания и реальность
Gemma 4 12B - открытая модель Google с 12 миллиардами параметров, оптимизированная под эффективный инференс. Теоретически она подходила для дообучения: относительно компактная, с хорошими базовыми языковыми способностями. План состоял в файнтюнинге на синтетическом датасете из 50 000 диалогов с явной разметкой точек прерывания и перекрывающихся реплик.
Реальность оказалась жёстче. После трёх эпох обучения модель начала генерировать ответы, которые обрывались на полуслове при любом входном шуме. Метрика качества диалогов упала на 40% относительно baseline. Попытки стабилизировать обучение через снижение learning rate и добавление регуляризации лишь замедлили деградацию, но не остановили её. Вывод: дообучение small/medium моделей под full-duplex сегодня нерентабельно для команд без доступа к кластерам GPU и миллионным бюджетам на разметку данных.
Каскадная архитектура Parlor v2: разделяй и властвуй
Parlor v2 использует три независимых компонента, каждый из которых решает свою задачу. Голос пользователя поступает на ASR-модуль, который преобразует речь в текст. Текст передаётся локальной LLM для генерации ответа. Ответ озвучивается через TTS-движок. Эта схема не пытается имитировать full-duplex на уровне одной модели, но даёт контролируемое и предсказуемое качество на каждом этапе.
На M3 Pro такая связка укладывается в задержку 1.5-2 секунды от конца фразы пользователя до начала аудиоответа. Это приемлемо для большинства сценариев: голосовой поиск, управление умным домом, локальный ассистент для разработчика. Каждый компонент можно оптимизировать или заменить независимо, без переобучения всей системы.
Распознавание речи: почему Whisper вне конкуренции на устройстве
Whisper от OpenAI в формате CoreML - стандартный выбор для ASR на Apple Silicon. На M3 Pro модель размера medium обрабатывает 10-секундную фразу за 200-300 миллисекунд, используя Neural Engine. Word Error Rate на английском языке составляет 4.2-5.8% в тихих условиях, что сопоставимо с облачными API Google Speech-to-Text.
Ключевое преимущество: Whisper работает полностью офлайн. Никакие данные не покидают устройство. Модель весит 1.5 ГБ в формате CoreML и загружается в unified memory без значительного влияния на доступный для LLM объём. Для русскоязычных сценариев доступна мультиязычная модель, хотя качество распознавания русского языка ниже - WER около 12-15%.
Генерация ответа: локальные LLM на M3 Pro - компромисс скорости и качества
Выбор LLM для голосового ассистента диктуется жёстким бюджетом задержки. На M3 Pro с 18 ГБ ОЗУ квантизованная Llama 3 8B Q4_K_M через llama.cpp с Metal-ускорением выдаёт 18-22 токена в секунду. Время до первого токена - 400-600 миллисекунд. Для коротких ответов в 20-30 токенов общее время генерации укладывается в 1-1.5 секунды.
Модели большего размера, например Qwen 2.5 14B, дают лучшее качество текста, но скорость падает до 8-10 токенов в секунду, а задержка до первого токена вырастает до 1.2-1.8 секунд. Суммарное время ответа превышает 3 секунды, что разрушает естественный темп диалога. Для голосового интерфейса низкая задержка критичнее максимального качества текста - пользователь простит простоватый ответ, но не простит паузу в 4 секунды.
Практические сценарии использования локальных LLM уже хорошо изучены сообществом - от медицинского анализа до персональных тьюторов. Parlor v2 добавляет к этому голосовой интерфейс, сохраняя все преимущества офлайн-работы.
Синтез речи: естественность без облака
TTS-компонент Parlor v2 использует Piper TTS - движок, оптимизированный под CPU-инференс без GPU. Модель размера medium (50 МБ) генерирует речь быстрее реального времени: синтез 10-секундного аудио занимает 2-3 секунды на ядрах производительности M3 Pro. Качество субъективно оценивается как «приемлемое для информационных ответов», хотя уступает облачным решениям вроде ElevenLabs по естественности интонаций.
Альтернативы вроде системных голосов macOS дают лучшее качество, но требуют специфичных API и не позволяют тонко контролировать параметры синтеза. Для задач, где важна максимальная естественность, стоит рассмотреть ультракомпактные TTS-модели вроде Inflect v2 с 4-9 миллионами параметров, которые показывают UTMOS 4.4 и работают на CPU быстрее реального времени.
Гибридный подход против end-to-end: почему инженерная прагматика побеждает
Сравнение каскадной и end-to-end архитектур сводится к четырём критериям: надёжность, контролируемость, требования к данным и стоимость разработки. Каскадная схема выигрывает по всем пунктам на текущем уровне технологий.
Надёжность: ошибка в одном компоненте не разрушает всю систему. Если TTS выдал артефакт, ASR и LLM продолжают работать. В end-to-end модели сбой в любой части архитектуры приводит к полной потере связности ответа. Контролируемость: можно заменить Llama 3 на Qwen без переобучения других компонентов. Можно обновить Whisper до новой версии, не трогая LLM. End-to-end модель требует полного переобучения при любом изменении.
Требования к данным: для каскадной схемы нужны размеченные данные для каждого компонента отдельно - миллионы часов речи для ASR уже доступны в открытом доступе, текстовые датасеты для LLM измеряются триллионами токенов. Для end-to-end full-duplex модели нужны сотни тысяч часов диалогов с покадровой разметкой перекрытий и прерываний. Таких данных в открытом доступе практически нет.
Индустрия подтверждает этот вывод: Alexa, Siri и Google Assistant используют гибридные схемы. End-to-end модели остаются исследовательскими проектами, которые показывают впечатляющие результаты на демо, но не выдерживают нагрузку реального использования.
Когда ждать прорыва: условия для появления массовых full-duplex моделей
Три фактора должны сойтись, чтобы full-duplex модели стали реальностью для локального запуска. Первый: доступность больших объёмов диалоговых данных с разметкой перекрытий. Пока крупнейшие датасеты вроде Fisher содержат около 2 000 часов телефонных разговоров, чего недостаточно для обучения устойчивой модели. Нужны объёмы на два порядка больше.
Второй: рост вычислительной эффективности потребительских устройств. M4 и M5 с увеличенным Neural Engine и поддержкой INT4/INT8 операций могут дать 2-3x прирост скорости инференса. Но даже с этим приростом модели класса 12B параметров не смогут обеспечить full-duplex с задержкой менее 500 миллисекунд на устройстве.
Третий: появление архитектур, специально спроектированных для потоковой обработки речи. Текущие трансформеры плохо подходят для непрерывного аудиопотока - механизм attention квадратично растёт по длине последовательности. Возможные кандидаты: Mamba, RWKV, или гибридные архитектуры с линейным attention.
Прогноз: в ближайшие 1-2 года Apple и Google представят закрытые full-duplex модели, оптимизированные для on-device инференса на своих чипах. Для открытых моделей потребуется ещё 2-3 года накопления данных и развития архитектур. До этого момента каскадные схемы вроде Parlor v2 остаются практичным выбором для тех, кто хочет локальный голосовой AI здесь и сейчас.
Parlor v2 на практике: как запустить и что можно улучшить
Минимальные требования: Mac с чипом M3 Pro и 18 ГБ унифицированной памяти. M2 Pro с 16 ГБ работает на грани возможного - LLM и Whisper вместе занимают 12-14 ГБ, оставляя системе критически мало памяти. M1 Pro с 16 ГБ не рекомендуется из-за падения скорости инференса на 30-40% относительно M3.
Быстрый старт: установка и первый запуск
Клонирование репозитория и установка зависимостей занимают около 10 минут. Основные шаги: установка llama.cpp с поддержкой Metal через Homebrew, загрузка Whisper в формате CoreML, загрузка квантизованной LLM в формате GGUF. Типичная проблема - конфликт версий Python для llama.cpp и Whisper, решается через виртуальное окружение с Python 3.11.
После установки система запускается одной командой. Горячая клавиша активирует запись, отпускание запускает обработку. Ответ озвучивается через системный вывод звука. Модели загружаются в память при старте, поэтому первый запуск занимает 30-40 секунд, последующие ответы генерируются с целевой задержкой.
Измеряем задержку: на что способен M3 Pro
| Длина фразы пользователя | Модель LLM | ASR (Whisper) | Генерация ответа | TTS | Общая задержка |
|---|---|---|---|---|---|
| 2-3 секунды | Llama 3 8B Q4_K_M | 0.2 сек | 0.8 сек | 0.4 сек | 1.4 сек |
| 5-7 секунд | Llama 3 8B Q4_K_M | 0.4 сек | 1.2 сек | 0.6 сек | 2.2 сек |
| 2-3 секунды | Qwen 2.5 14B Q4_K_M | 0.2 сек | 1.8 сек | 0.4 сек | 2.4 сек |
| 5-7 секунд | Qwen 2.5 14B Q4_K_M | 0.4 сек | 2.6 сек | 0.6 сек | 3.6 сек |
Комфортный для диалога порог - 1-2 секунды от конца фразы до начала ответа. Llama 3 8B укладывается в этот диапазон для коротких запросов. Qwen 2.5 14B выходит за пределы даже на простых фразах. Это инженерный компромисс: качество ответа против темпа диалога.
Направления улучшений: стриминг ASR, который начинает распознавание до завершения фразы, может сократить задержку на 300-500 миллисекунд. Интеграция function calling позволит ассистенту выполнять действия, а не только отвечать текстом. Подключение к Home Assistant превратит Parlor v2 в полностью локальный голосовой интерфейс для умного дома. Эволюция нейросетей от узких задач к универсальным моделям подтверждает: голосовые интерфейсы станут стандартным способом взаимодействия с AI, и локальные решения вроде Parlor v2 - первый шаг в этом направлении.