Как мы научили ИИ слушать звонки и экономить сотни часов аналитиков
Введение
К нам пришёл клиент с классической болью: отдел контроля качества утонул в звонках.
Аналитики слушали по 30 - 40 разговоров в день, вручную ставили оценки - “вежлив ли оператор”, “упомянул ли цену”, “отработал ли возражение” — и заносили всё в Excel.
На один 5-минутный звонок уходило по 20 минут анализа, а отчёты появлялись через неделю, когда бизнесу уже было поздно реагировать.
Команда попросила решить просто: “Сделайте так, чтобы всё это считалось само, но с той же точностью”.
Мы построили систему, которая слушает, понимает и оценивает звонки без участия человека:
Whisper → компрессия → QLoRA → JSON → BI.
Теперь звонок обрабатывается за 10 секунд, отчёт появляется в тот же день, а себестоимость анализа упала до $0.0003.
Система масштабируется от 0 GPU в простое до полноценного кластера при пиках.
Работает стабильно, считает честно, иногда даже точнее, чем люди.
Хотя, признаемся, не всё идеально — сарказм и длинные диалоги по-прежнему вызывают у неё лёгкое недоумение.
От Excel к первому прототипу: почему “не учим всё”
Когда таблица становится длиннее человеческой жизни, приходит время автоматизации.
Сначала всё выглядело просто: возьмём Excel с оценками аналитиков, обучим модель на всех колонках и избавим людей от рутины.
Мы уже начали собирать датасет, но быстро заметили, что не все колонки требуют интеллекта.
Некоторые задачи - чистая логика.
Например, “упомянул ли оператор цену” легко определяется регуляркой, а “этап сделки” можно взять прямо из CRM.
Обучать на это языковую модель - всё равно что вызывать хирурга, чтобы открыть бутылку воды.
Потом включилась экономика: обучение каждой метрики - это GPU-часы, и они стоили больше, чем сами звонки.
Мы сели, посмотрели на таблицу и разделили всё на три категории:
- где действительно нужен контекст и смысл (вежливость, отработка возражений, вероятность продажи);
- где хватает алгоритмов (ключевые слова, длина диалога);
- где вообще не нужно думать (метаданные, даты, язык).
Так родилась идея: LLM занимается смыслом, код - фактами, Excel - историей.
Мы сократили объём данных для обучения втрое и бюджет примерно вчетверо.
И главное - сохранили контроль над системой, не превращая её в непредсказуемую “чёрную коробку”.
Данные и как оценивали
Основой стали реальные звонки колл-центра: продажи, поддержка, сервис.
Каждый разговор длился от 3 до 10 минут и имел стандартную структуру - приветствие, уточнение, аргументация, возражения, завершение сделки.
Для пилота мы взяли 5000 звонков, которые уже были размечены людьми по десяткам критериев.
Раньше аналитики слушали каждый звонок, писали комментарий и вручную выставляли оценки.
Теперь это делает модель - за секунды, без кофе и без «не уверен, но вроде нормально».
Отчёт выглядит так же, но за ним больше нет человеческой усталости.
Вот три следующих блока - 4, 5 и 6, написанные в твоём стиле: инженерно, с живыми деталями, без пафоса, но с лёгким сарказмом и чёткой логикой. Они выстроены как естественное продолжение истории из первых трёх разделов: от экспериментов к результатам.
GPT как старт и как трезвая экономика
Как и все нормальные инженеры, мы начали с готовых API.
Прототип собрали за пару дней: транскрипция через Whisper, промпт, JSON, отчёт.
GPT уверенно определял вежливость и вероятность продажи, даже писал объяснения в духе:
“Оператор проявил эмпатию, клиент удовлетворён.”
Красиво.
Пока не пришёл счёт.
Средняя стоимость анализа звонка выходила $0.04, то есть $400 в день на 10 000 звонков.
Для пилота - терпимо, для продакшена - комедия.
И это без учёта того, что 90% токенов уходили на “угу”, “да-да”, “секунду”.
Кроме того, latency API убивал потоковую обработку - отчёт приходил позже, чем клиент успевал пожалеть о звонке.
Экономика быстро отрезвила.
Мы поняли: если хотим систему, которая живёт в продакшене, а не на демо-слайдах,
нужно своя модель, свой контроль и свой бюджет.
Так начался переход от API-романтики к инженерной реальности.
Отбор кандидатов: кто выдержит реальность
Когда стало ясно, что платить за GPT бессмысленно, мы провели “кастинг моделей”.
Требования были простые, но жёсткие:
- адекватный русский язык,
- устойчивость к длинным транскриптам (6–8k токенов),
- стабильный JSON-вывод,
- и чтобы не сжигала карту за ночь.
Мы протестировали три открытых модели - Mistral 7B, Llama 2 7B и Qwen 2.5 7B,
на 200 реальных звонках. Все получили один и тот же промпт и одинаковый объём текста.
Вот сухая сводка:
Оптимальный баланс: понимает, не галлюцинирует, формат держит.
Qwen уверенно справилась с длинными диалогами, где операторы перескакивали с темы на тему,
и единственная не ломала JSON при код-свитчинге (“скидка or discount”).
Разрыв с GPT по качеству - всего 3 пункта F1, зато по цене - в 100 раз.
Так Qwen стала нашей основой для дообучения.
Мы взяли её и провели fine-tuning LoRA на собственных данных,
чтобы модель понимала нюансы вроде “вежливо, но устало”, “возражение отработано формально”, “продажа закрыта, но без энтузиазма”.
После обучения Qwen начала выдавать оценки, неотличимые от человеческих -
и даже иногда точнее.
6. Когда модель начала понимать людей
До обучения модель вела себя как вежливый студент-практикант: старается, но не вникает.
Она выдавала аккуратные JSON-ответы вроде
даже если клиент в конце сказал:
“Спасибо, больше не звоните.”
После LoRA-дообучения на 5000 звонках всё изменилось.
Мы использовали реальные комментарии аналитиков - не только числа, но и объяснения: “Оператор перебил клиента”, “Не предложил решение”.
Модель начала рассуждать, а не угадывать.
Теперь ответы выглядели так:
Она не просто копировала шаблон - понимала структуру диалога:
где колебание, где скрипт, где раздражение.
Когда мы сравнили её с ручными оценками, 83% расхождений объяснялись субъективностью аналитиков,
а не ошибками модели.
Иногда она попадала точнее.
Например, оператор сказал с усталым тоном:
“Я не могу вам помочь, но спасибо, что обратились.”
Аналитик поставил вежливость 90,
модель - 55, объяснив: “Формально вежливо, но без решения.”
И была права.
С этого момента мы начали относиться к ней не как к инструменту, а как к коллеге -
только без усталости и без обеденного перерыва.
отлично. вот два следующих блока - 7. Компрессия: меньше слов, больше смысла и 8. Что обучаем, а что нет.
они в твоём узнаваемом стиле: инженерная ясность, немного иронии, фокус на экономии и здравом смысле. текст построен как естественное продолжение - “мы научили модель понимать людей, а теперь заставили систему работать быстро и дёшево”.
7. Компрессия: меньше слов, больше смысла
Когда модель начала выдавать внятные оценки, оказалось, что проблема вовсе не в ней.
Проблема - в людях.
Средний звонок длиной пять минут содержал не больше 20% полезного текста.
Всё остальное - эхо, паузы, «ммм», «угу», «секунду», «сейчас посмотрю».
Whisper транскрибировал всё это честно, но модель тонула в мусоре, а счёт за токены рос быстрее, чем F1.
“Давайте отправим весь текст в LLM” выглядело красиво только в презентации.
Каждый звонок превращался в 6–8 тысяч токенов,
и треть вычислений уходила на “угу”.
Мы решили действовать хирургически.
Этап первый - структурная фильтрация.
Удаляем короткие реплики (меньше трёх слов), сжимаем повторы (“да-да-да-да” → “да”),
оставляем только фразы с глаголами, числами и смыслом.
Мгновенно - минус 60% токенов, падение точности всего на 1,8%.
Этап второй - смысловая компрессия.
Модель сама резюмирует повторяющиеся куски.
Если оператор трижды объяснил условия рассрочки, остаётся одно осмысленное предложение:
“Оператор объяснил условия рассрочки, клиент уточнил детали, возражений нет.”
Этап третий - динамическая компрессия.
Для коротких диалогов модель режет текст на 70%,
для эмоциональных и конфликтных - сохраняет почти полностью.
Так мы избежали “смыслового усреднения”.
Компрессия стала главным фактором экономической устойчивости проекта.
Без неё система бы работала красиво - и убыточно.
Теперь звонок проходит по каскаду:
Whisper → фильтр → компрессор → LoRA → отчёт.
Самое смешное, что аналитики, увидев сокращённые версии диалогов, сказали:
“Так читать даже приятнее.”
И впервые мы услышали, что ИИ “пишет короче, чем человек”.
8. Что обучаем, а что нет
Когда базовая архитектура заработала, начался философский спор:
“А нужно ли вообще обучать модель на всём подряд?”
Интуиция подсказала - нет.
Каждая колонка в отчёте требовала разного уровня интеллекта.
Мы решили не тратить GPU там, где достаточно if.
Разделили всё на три уровня.
1. Интеллектуальные критерии (требуют контекста).
Здесь без LoRA никак.
Модель анализирует смысл, тон, структуру диалога и эмоциональный подтекст.
2. Алгоритмические критерии (дешево и сердито).
Там, где работает код, LLM не нужен.
3. Метаданные (не трогаем вовсе).
Дата, время, канал, длительность - приходят из CRM и просто приклеиваются к отчёту.
Результат - в четыре раза меньше данных для обучения,
в три раза меньше вычислений
и система, в которой ясно, где работает интеллект, а где обычная логика.
Когда мы рассказали заказчику, что часть системы - просто регулярки, он спросил:
“А зачем тогда вам вообще нейросеть?”
Мы ответили:
“Чтобы не писать регулярки на вежливость.”
Экономика и эффект
К концу проекта цифры наконец перестали выглядеть как шутка.
То, что раньше занимало у команды неделю, теперь занимает чуть больше часа GPU-времени.
Каждый звонок анализируется за 10 секунд, без кофе, усталости и Excel с “примерно нормально”.
Экономия - в 100 раз по стоимости и в 120 раз по скорости.
Но самое ценное не это: отчёты теперь формируются в тот же день,
а не “в пятницу, если аналитик не на больничном”.
Бизнес получает обратную связь вовремя, а люди перестали быть узким местом.
Что дальше
Мы не остановились.
Следующие версии уже в разработке - там, где модель перестаёт просто понимать слова и начинает чувствовать речь.
- Эмоции и интонации. Чтобы определить, доволен ли клиент на самом деле, а не по числу “спасибо”.
- Intent-детектор. Чтобы система сама понимала цель звонка - продажа, жалоба, уточнение.
- Active learning. Модель учится на спорных кейсах, где человек и машина не согласны.
- Мультиязычность. Русский, английский, арабский - у всех разная “вежливость”, и это интересно.
- Режим “эконом/точность”. Когда можно снизить качество ради скорости - и наоборот.
Главное - теперь у нас инфраструктура и пайплайн, где любое улучшение становится модулем, а не проектом.
Выводы
GPT-API - красиво, но дорого.
LoRA - разумный компромисс между качеством и бюджетом.
Компрессия текста спасает бюджет лучше, чем CFO.
Kubernetes можно заставить работать, если его не трогать.
Совершенства нет: модель иногда ошибается, путает сарказм и не распознаёт пассивную агрессию.
Но уже делает жизнь людей проще:
аналитики не слушают бесконечные звонки,
бизнес получает данные вовремя,
а система стабильно крутится сама - без шаманства и костылей.
Мы не “изобрели будущее”,
мы просто заставили здравый смысл работать вместе с нейросетью.
И в этом, пожалуй, вся магия.
Excel устал считать, а операторы устали слушать. Хотите проверить на своих звонках? Запустим пилот за 14 дней, покажем цифры и отчёт. Оставить заявку