Этот блог был впервые опубликован 10 февраля 2022 г. в разделе УГОЛОК РАЗРАБОТЧИКОВ журнала Analytics India Magazine.



Обработка естественного языка (NLP) — это набор методов и алгоритмов, которые позволяют компьютерам читать, понимать и интерпретировать человеческие языки. НЛП — необходимая дисциплина для любого разработчика, который хочет создавать надежные чат-боты, программы для распознавания речи или языкового перевода в реальном времени. Основная трудность для разработчиков NLP заключается в том, что компьютеры предназначены для понимания языков программирования, которые являются явными и хорошо структурированными. В то время как естественный язык, который используют люди, не является ни явным, ни хорошо структурированным!

Из-за этих проблем машины исторически с трудом понимали контекст естественного языка. Кроме того, разработка сложного набора правил может быть эффективной только для ограниченного или узкого круга задач. К счастью, благодаря недавним достижениям в области вычислительной мощности, алгоритмов и программного обеспечения для машинного обучения, компьютеры теперь могут более эффективно «справляться» с двусмысленностью, которую часто представляет человеческий язык.

В следующих разделах мы более подробно рассмотрим несколько реальных случаев использования НЛП.

Вариант использования: автоматическое распознавание речи/голоса

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

Ниже приведен пример типичного рабочего процесса ASR.

Теперь давайте посмотрим, что происходит на каждом этапе рабочего процесса ASR.

  • Первое, что нужно сделать, это разбить аудиофайлы записи речи на «токены» или отдельные звуки. Эти токены представляют собой небольшие фрагменты аудиофайлов, длительность которых обычно составляет 6–10 секунд.
  • Далее нам нужно проанализировать каждый звук в контексте речи.
  • Мы можем использовать различные типы алгоритмов, такие как НЛП, скрытая марковская модель глубокого обучения или N-граммы, чтобы найти наиболее вероятное слово, подходящее для этой языковой модели.
  • На этом этапе мы выполняем «преобразование речи в текст», преобразуя каждый звук речи в текст.
  • Например, Handover to NLU полезен для определения значения каждой из адаптированных к тексту моделей.
  • Пример вывода модели ASR может выглядеть следующим образом:

r eh k ao g n ay z s p iy ch = «распознавать речь»

r eh kay n ay s b iy ch = «разрушить хороший пляж»

Вариант использования: чат-боты

Каждая компания хочет обеспечить превосходное обслуживание клиентов, имея возможность круглосуточно и без выходных отвечать на запросы клиентов. В действительности, однако, это может быть либо непрактично, учитывая уровень укомплектования персоналом, либо дорого. Введите виртуальных помощников и чат-ботов!

В идеале чат-боты могут взаимодействовать с людьми так же, как и люди. Чем более «человеческое» и менее «роботизированное» взаимодействие, тем лучше будет опыт для клиента. Чтобы достичь такого уровня сложности, боты должны эффективно использовать генерацию естественного языка (NLG) и расширенные возможности естественной обработки.

Вот некоторые из преимуществ, которые NLG и NLP привносят в разработку чат-ботов.

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

Теперь давайте посмотрим, как чат-боты могут использовать НЛП на практике.

Естественный разговор на разных языках

Проблема с подходом к ботам с предварительно загруженным статическим контентом заключается в том, что языки имеют бесконечное количество способов выразить фактическое утверждение. Кроме того, у пользователя есть бесконечное количество способов создать высказывание для выражения эмоций. К счастью, в последние годы исследователи добились огромных успехов в том, как системы интерпретируют человеческие языки. Теперь можно связать входящий текст от человека с ответом, сгенерированным системой, с помощью НЛП. Этот ответ может варьироваться от простого ответа на запрос до действия, основанного на запросе клиента, или хранения любой информации от клиента в базе данных системы.

Поскольку чат-боты на основе НЛП способны понимать языковую семантику, текстовые структуры и речевые фразы, они также могут понимать огромные объемы неструктурированных данных. Например;

  • НЛП может понимать морфемы разных языков, что делает бота более опытным в определении различных нюансов.
  • NLP позволяет чат-ботам читать и интерпретировать сленг, изучать сокращения и понимать различные эмоции с помощью анализа настроений, как и люди.

Помогите сотрудникам сосредоточиться на критически важных задачах

Когда организации развертывают чат-боты на основе NLP, например, в отделе кадров или службе технической поддержки, они помогают сократить количество повторяющихся задач/коммуникаций. Это позволяет сотрудникам этих отделов сосредоточиться на более важной деятельности.

Повышение удовлетворенности клиентов

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

Исследования и анализ рынка

Одни только социальные сети могут предоставить или создать значительное количество разностороннего и неструктурированного контента. НЛП помогает в кадрировании и интерпретации неструктурированного контента. Вы можете быстро понять значение или концепцию, лежащую в основе отзывов клиентов, входных данных, комментариев или запросов. Вы можете понять, как пользователь относится к вашим услугам или бренду, не спрашивая его напрямую.

Случай использования: машинный перевод

Машинный перевод, также известный как «роботизированный перевод», представляет собой процесс, в котором компьютерная программа переводит текст с одного языка на другой без вмешательства человека. Машинный перевод на самом базовом уровне представляет собой простую замену атомарных слов одного языка словами другого.

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

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

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

Статистический машинный перевод

Статистический машинный перевод (SMT) работает, ссылаясь на статистические модели, основанные на анализе огромных объемов двуязычной информации. Он предполагает определение отношения между словом исходного языка и словом целевого языка. Google Translate — отличный тому пример.

Машинный перевод на основе правил

Машинный перевод на основе правил (RBMT) переводит основы грамматических правил. Чтобы построить переведенное предложение, необходимо провести грамматическую оценку исходного и целевого языков. Однако RBMT требует обширного редактирования, а его сильная зависимость от словарей предполагает, что мастерство достигается только после длительного периода времени.

Гибридный машинный перевод

Гибридный машинный перевод (HMT) — это гибрид RBMT и SMT, как следует из названия. Он использует память переводов, что делает его, несомненно, более успешным с точки зрения качества. Тем не менее, HMT имеет ряд недостатков, наиболее существенным из которых является необходимость обширного редактирования, а также использование людей-переводчиков.

Нейронный машинный перевод

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

Использование Kubeflow для ускорения НЛП до производства

Чтобы довести вариант использования NLP до производства, требуется масса ручной работы, которую должны выполнить различные специалисты по данным, системные специалисты, специалисты по безопасности и инженеры по данным. В одном исследовании было обнаружено, что одной модели конвейера ASR требуется около 6 месяцев, прежде чем ее можно будет развернуть в рабочей среде! Способ сократить время, необходимое для запуска NLP в производство, лучше всего решить путем внедрения MLOps, что является причудливым способом сказать машинное обучение поверх DevOps.

MLOps представляет автоматизацию между ноутбуками ML с конвейерами DevOps. Платформа MLOps решает сложную задачу интеграции нескольких инструментов, устраняя взаимозависимости на разных этапах разработки и развертывания. Например, Github, Github Actions, Jenkins, инструменты мониторинга и т. д. Это могут быть инструменты, с которыми специалисты по данным часто совершенно незнакомы. Итак, как специалисты по обработке данных MLOps могут решить эту операционную задачу? Возможны различные варианты, но если для организации важно следующее:

  • Переносимость:напишите один раз, воспроизведите и запустите везде
  • Микросервисы. Рабочие процессы часто должны взаимодействовать с несколькими сервисами.
  • Масштабирование. Быстрое уменьшение может быть столь же важным, как и увеличение масштаба.

…тогда Kubeflow, работающий поверх Kubernetes, является очевидным выбором. Kubeflow — это платформа с открытым исходным кодом для обучения и обслуживания масштабируемых моделей машинного обучения.

Kubeflow предлагает функцию Запуски, которая помогает подключить Jupyter Notebook, содержащий конвейерные сценарии моделей на естественном языке и сценарии создания моделей, с Kubeflow Pipelines. После подключения рабочий процесс преобразуется в формат YAML и готов к развертыванию. Теперь специалистам по данным становится намного проще быстро развертывать модели НЛП. Когда Kubeflow сочетается с надстройкой Kale, специалисты по данным могут легко настроить несколько гиперпараметров, чтобы в конечном итоге обслуживалась модель с наибольшей точностью (с учетом требований). Кроме того, Kubeflow предлагает встроенные утилиты для мониторинга выходных данных, что еще больше снижает нагрузку на специалистов по данным.

Ниже приведен пример рабочего процесса машинного обучения, выполняемого внутри Kubeflow.

Заключение

Конечная цель любой организации, использующей обработку естественного языка (NLP), состоит в том, чтобы их языковые модели успешно работали в производстве и приносили пользу бизнесу. Однако перед развертыванием модели в рабочей среде необходимо выполнить множество шагов, включая загрузку данных, проверку, разделение, обработку, разработку функций, обучение и проверку модели, настройку гиперпараметров и обслуживание модели. Кроме того, даже несмотря на то, что ваши входные данные могут со временем дрейфовать, модели НЛП могут потребовать большего наблюдения, чем традиционные приложения. Ручное перестроение моделей и наборов данных требует времени и чревато ошибками.

Kubeflow может легко решить такие проблемы и проблемы, как:

  • Развертывание и управление крупномасштабной системой НЛП
  • Эксперименты с обучением модели НЛП
  • Сквозные гибридные и мультиоблачные рабочие нагрузки NLP
  • Настройка гиперпараметров модели во время обучения
  • Непрерывная интеграция и развертывание (CI/CD) для конвейеров NLP

Чтобы узнать больше о kubeflow и более упрощенной версии kubeflow, то есть MiniKF от Arrikto. Обратитесь к- Рохит Гумаре [Инженер-программист — речь]