ym88659208ym87991671
SaluteBot
8 минут на чтение
22 февраля 2024

Датасет для обучения чат-бота

Продукты из этой статьи:

Зачем чат-ботам нейросети

В последние годы бизнес стал активно использовать для автоматизации общения с клиентами чат-боты, которые ведут диалог с пользователем либо в чате, либо голосом.

Чтобы быстро отвечать на вопросы пользователей без вмешательства оператора, чат-боты должны уметь:

  • распознавать речь и переводить аудио в текст,
  • понимать смысла текста,
  • генерировать ответ,
  • синтезировать речь.

Для решения задач распознавания и синтеза речи чат-боты обычно используют нейросети.

Чтобы понять смысл реплики, намерение клиента, найти ответ на вопрос пользователя, используется множество инструментов, в том числе основанных на машинном обучении и deep learning.

Для построения чат-ботов на основе машинного обучения требуется огромное количество данных.

Чат-бот SaluteBot

Как нейросети обучаются распознавать голос

Сеть, которая позволяет чат-ботам распознавать аудио, обычно обучается с учителем (supervised learning). Для этого нужен набор данных (датасет). Он содержит примеры с правильными ответами: тегами, классами, показателями.

Такие датасеты называют размеченными. Наличие полностью размеченного набора данных означает, что каждому примеру в обучающем наборе соответствует ответ, который алгоритм и должен получить.

При обучении нейронная сеть на основе входных данных предсказывает выходные данные, которые сравниваются с правильными ответами. Расхождение между выходными данными и правильным ответом используется для улучшения параметров нейросети (изменения весов параметров).

Например, если вы хотите создать нейросеть для оценки тональности текста (позитивный, негативный, нейтральный), датасетом будет список предложений с ответами — правильными оценками тональности. Сеть пытается определить тональность текста по признакам, которые придают ему негативную или позитивную окраску, — словам, фразам, структуре предложения. Веса признаков в итоговой оценке тональности текста определяются во время обучения нейронной сети.

Видеозвонки в SaluteJazz
Общайтесь с друзьями и близкими везде, где есть Интернет

Как сети обучаются анализировать текст

Языковые нейросети, например KenLM или генеративная сеть GPT-3, обычно обучаются на больших массивах текста. Подготовить большое количество размеченного текста очень непросто, поэтому используется «обучение без учителя» (unsupervised learning).

В обучении без учителя у сети есть набор данных, но нет правильных ответов. Нейронная сеть извлекает полезные признаки, анализирует их и пытается самостоятельно найти корреляции.

В зависимости от задачи, модель систематизирует данные по-разному:

  • кластеризирует,
  • ищет семантически похожие фразы,
  • обнаруживает аномалии,
  • ищет ассоциации.

Где взять данные для обучения

Набор данных

Самое сложное в разработке интеллекта для чат-бота — это получение реалистичных, ориентированных на задачи данных для машинного обучения. Собирать их самостоятельно слишком утомительно. Но можно воспользоваться готовыми датасетами для разных типов задач.

В свободном доступе есть множество размеченных и неразмеченных наборов данных с аудиозаписями, текстами, вопросами и ответами для служб поддержки, диалогами. Это, например, Common Voice, WikiQA, Yahoo Language Data, Common Crawl, набор данных поддержки клиентов в Twitter. Большинство данных — англоязычные, наборов для русского языка меньше.

Даже при готовом датасете обучение — ресурсоёмкое занятие. Поэтому разработчики ботов часто предпочитают использовать предварительно обученные нейросети. Такие предобученные модели тоже есть в открытом доступе, в том числе на русском языке.

Датасет Golos

Это самый большой набор аудиозаписей на русском языке, размеченный вручную.

Чтобы стимулировать развитие исследований в области речевых технологий, компания SberDevices выложила этот набор данных в открытый доступ с лицензией, которая допускает как научное, так и коммерческое использование. Эти данные можно применять для распознавания и синтеза речи.

Из чего состоит Golos

Речевой датасет Golos состоит из аудиофайлов и соответствующих транскрипций. Общая длительность записей — примерно 1240 часов, частота дискретизации — 16кГц. Таким образом, Golos содержит более миллиона коротких (в среднем около четырёх секунд) записей речи на русском языке и их транскрипций.

В массиве записей выделена тренировочная и тестовая часть, 1227 часов аудио для тренировки и 13 часов — для тестирования.

Все аудиозаписи обезличены и не содержат такой персональной информации, как пол и возраст. Каждая обезличенная запись прослушана и размечена вручную.

Как собирались данные

Аудиозаписи в датасете собраны из двух источников.

Первый источник — это краудсорсинговая платформа, так называемый Crowd-домен.

Второй источник — записи, созданные в студии с помощью SberPortal. Это одно из устройств, на котором должно работать распознавание речи. Эти записи условно называют Farfield-доменом, так как расстояние от пользователя до микрофона было достаточно большим.

Тренировочные и тестовые записи выделены в каждом домене.

Для сбора записей пользователи краудсорсинговой платформы наговаривали предлагаемый им текст, а другие пользователи слушали аудио и пытались его транскрибировать. Выбор тематик записей не был случайным: акцент — на темах, полезных для виртуальных ассистентов Салют, например заказ продуктов, музыка, фильмы.

Создайте своего чат-бота в удобном конструкторе
Простая настройка чат-бота в личном кабинете Цифровой витрины

Акустическая модель для распознавания голоса

Нейросеть

На базе датасета Golos Сбер обучил модель распознавания русской речи.

Задача акустической модели — определить вероятность, что в данном коротком отрывке записи звучит тот или иной символ. Затем из этих символов искусственный интеллект чат-бота будет собирать слова и фразы.

В качестве акустической модели Сбер использует нейронную сеть с архитектурой QuartzNet15×5. Акустическую модель обучали, перемешивая тренировочный набор Golos и русскоязычную часть датасета Common Voice. Оценка обучения проводилась также на тестовых наборах Golos и Common Voice.

Обучение проводилось 8 дней на 16 видеокартах.

Сбер опубликовал в открытом доступе не только датасет Golos, но и обученную на аудиоданных модель распознавания речи, которая демонстрирует точность, сравнимую с человеческой.

Для дальнейшего улучшения распознавания речи нужны знания о структуре языка, которых нет в обучающей выборке акустической модели. Поэтому Сбер подготовил языковую модель, обученную на текстах из интернета.

Языковая модель

Языковая модель определяет вероятность появления в данном месте текста того или иного слова. Зная это, можно переопределить вероятности появления символов, которые дала акустическая модель, — и ещё немного улучшить качество распознавания речи.

Сбер построил языковую модель, используя обучающий датасет Common Crawl на русском языке и нейросеть KenLM. Common Crawl — это доступная для свободного скачивания коллекция текстовых данных, собранных из интернета.

Были сделаны три разные 3-граммные языковые модели — где вероятность появления слова зависит от двух предыдущих:

  • предобработанные тексты Common Crawl,
  • тексты транскрипций датасета Golos,
  • комбинация первых двух в равных долях.

Применение нейросетей, обученных на данных Golos, Common Crawl и Common Voice, позволило снизить ошибки распознавания слов вплоть до 3%. Это позволяет чат-ботам понимать речь пользователя не хуже оператора.


Продукты из этой статьи:

Создайте чат-бот без навыков программирования
Собирайте сценарии с нуля или воспользуйтесь готовыми
Ещё по теме
Чат-боты
Добавление бота в чат Телеграм

Подробная инструкция для каналов и групп
Чат-боты
Обзор сервиса Aimylogic и его аналоги

Обзор платформы для создания чат-ботов
Чат-боты
Эффективность чат-бота

Как проанализировать и оценить работу чат-бота
Чат-боты
Создание чат-бота Telegram в конструкторе

Подкючение и настройка бота в ТГ
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.
Нейросетевая модель поможет с рутинными задачами
GigaChat API упростит поиск информации и выделит главное в рабочем обсуждении