NLP-инженер (от англ. natural language processing) — специалист, который обладает компетенциями в сферах прикладной математики, лингвистики и разработки программного обеспечения.
Вместе с командой системы управления репутацией и анализа медиа «СКАН-Интерфакс» разобрались, что это за профессия, какими навыками нужно обладать для старта и что нужно изучить, чтобы претендовать на должность NLP-инженера.
Кто такой NLP-инженер и чем он занимается в компании
Как технический специалист NLP-инженер отвечает за расширение возможностей бизнеса при обработке информации на естественных языках. Он реализует наукоёмкие правила и алгоритмы и применяет инструменты машинного обучения (англ. ― machine learning, ML).
Кроме того, NLP-инженер решает задачи по анализу и извлечению информации из текстов, в том числе методами ML. Однако его задачи могут не ограничиваться только сферой машинного обучения, так как некоторые из них требуют углублённых знаний математики, лингвистики и теории алгоритмов.
Ну и конечно же, NLP-инженер должен быть неплохим программистом. Чтобы анализировать и извлекать данные из текстов, необходимо не только отвечать на множество инженерных вызовов, но и уметь правильно готовить такие данные.
В 2017 году в области искусственного интеллекта и машинного обучения произошла революция. Появилась нейросетевая архитектура «трансформер». Она позволила добиться невероятных результатов в решении задач автоматизированной обработки текстовых данных.
NLP-инженеры получили в свои руки инструменты, которые в короткие сроки значительно повысили качество анализа неструктурированной информации.
Взаимосвязь математики и лингвистики
В профессии NLP-инженера математика и лингвистика не могут существовать друг без друга. Эти две противоположные науки связаны через необходимость создания математической модели естественного языка.
Современные компьютеры способны понимать только числа и логические операции. Для обработки текстов требуется описать лингвистические закономерности и правила на понятном машине языке. Многие задачи невозможно решить, опираясь только на знания математики и программирования. Разработчик обязан владеть предметной областью, с которой работает — лингвистикой.
Если математик-лингвист не понимает русский язык, то он не сможет написать правило, которое будет действовать на обработку падежей в тексте.
Старт в профессии: где учиться и куда пойти работать
В российских университетах много программ бакалавриата и магистратуры в различных отраслях Data Science. В МГУ имени М.В. Ломоносова на механико-математическом и филологическом факультете есть:
- «Фундаментальная и прикладная лингвистика»;
- «Математика»;
- «Прикладная математика и информатика»;
- «Фундаментальная информатика и информационные технологии»;
- «Математика и компьютерные науки»;
В ВШЭ — «Прикладной анализ данных и искусственный интеллект», «Компьютерные науки и анализ данных», «Компьютерные системы и сети».
В МГТУ имени Н.Э. Баумана — «Информатика, искусственный интеллект и системы управления», «Системы обработки информации и управления», «Фундаментальная и компьютерная лингвистика» и другие.
Чтобы определиться с направлением обучения, необходимо определиться с областью интересов:
- Если цель ― самостоятельно изобрести инновационные технологии в ИИ, нужна профильная математика с углублённым изучением Data Science и Deep Learning.
- Если стремиться к решению прикладных и бизнес-задач и использовать уже существующие решения, то предпочтение стоит отдать разработке программного обеспечения и ML-инфраструктуры.
К промышленным языкам разработки относятся C++, C# и Java. Область знаний — разработка распределённых систем. Средства MLOps — инфраструктура для автоматизации работы с машинным обучением: MLFlow и AirFlow.
Но и в первом, и во втором случае необходимо хорошо знать и чувствовать русский язык. Качество работы логических правил, алгоритмов и моделей машинного обучения невозможно оценить без базовых знаний в области лингвистики. Специалисту важно понимать природу данных, с которыми он работает.
Любой естественный язык, в том числе русский, непрерывно развивается: появляются новые слова и понятия, устойчивые словосочетания, меняется информационный фон, — и многие, ранее важные контексты становятся статистически незначимыми. Из-за этого необходимо постоянно адаптировать лингвистическую логику, алгоритмы и статистические модели к изменчивости языка.
Помимо грамотности, важно ориентироваться в соответствующем бизнес-контексте и понимать, что и как оценивать. Само понятие качества решения задачи не всегда ограничивается только точностью и полнотой. Можно оценивать ещё ресурсоёмкость и скорость работы, а для этого уже нужны инженерные знания.
Важно понимать, что не все компании готовы брать к себе специалистов без практического опыта. Например, «СКАН-Интерфакс» — большой и логически нагруженный проект со сложной инженерной структурой и высоким порогом входа. Поэтому при найме разработчиков в компании ориентируются как на их теоретическую базу, так и на практический бэкграунд. В более выигрышном положении оказывается тот, кто ранее был связан с обработкой текстов.
При этом в команду с радостью берут студентов вузов в отдел лингвистической обработки — они работают над качеством разметки текстов. Там студенты учатся специальности и осваивают инструменты.
Личные качества и профессиональные навыки, которые нужны NLP-инженеру
Профильные навыки, без которых специалист не сможет выполнять поставленные задачи:
- Знание профильной математической базы.
- Базовое понимание русского языка (морфология, семантика, падежи).
- Знание программирования на уровне middle и выше.
- Знание Python, в особенности для NLP-инженера.
- Умение находить самое простое решение — оно всегда лучшее.
- Понимание алгоритмов машинного обучения: нейронные сети, алгоритмы кластеризации, логистическая регрессия.
- Знание промышленных языков разработки: C++, C#, Java.
Личные качества позволяют эффективно выполнять рабочие задачи и продвигаться вверх по карьерной лестнице. Самые основные из них:
- умение работать с людьми;
- лидерские качества;
- внимательность;
- желание углублять знания в разных областях IT;
- стрессоустойчивость: работа не из простых;
- ответственный подход к работе.
Повышение компетенции — один из ключевых моментов в работе IT-специалистов. У NLP-специалистов это происходит в процессе работы.
Для достижения результатов необходимо осваивать новые инструменты и улучшать уже существующие алгоритмы и правила. Специалисты повышают квалификацию непрерывно. Для реализации новых функций и решения задач нужны знания в смежных областях. А это приводит к вертикальному и горизонтальному карьерному росту.
Уровень заработной платы NLP-инженера напрямую зависит от опыта работы и от специализации: чем уже профиль, тем выше востребованность сотрудника.
- Освоите один из самых универсальных языков программирования
- Добавите в портфолио три полностью работоспособных проекта
- Получите опыт работы в команде — выполните совместный проект с одногруппниками
Работа NLP-инженера на практике
NLP-инженеры могут поделить свою работу на две сферы:
- плановые задачи по разработке и поддержке существующих функций системы;
- факультативные исследовательские задачи: разработка стратегии улучшения бизнес-процессов, проверка аналитических гипотез, поиск новых подходов к решению разных задач.
В «СКАН-Интерфаксе» работа специалистов делится на два блока.
Первый блок — это поддержка логического ядра системы. «СКАН» исторически построен на системе логических правил, оперирующих моделями естественных языков. Правила и языковые модели описаны на высокоуровневом промышленном языке программирования и позволяют извлекать из текстовых документов те знания, которые компания предоставляет клиентам.
Есть задача определения прямой речи. Прямая речь в «СКАНе» — не только прямая, но и косвенная, то есть всё, что может считаться «голосом компании». Для определения прямой речи на основе анализа корпуса новостных текстов описано множество паттернов. Они содержат различные части речи и конструкции, которые могут быть семантически интерпретированы как речевые маркеры: сообщил, сказал, заявил, по сообщению, по информации, согласно исследованию.
Для определения границ прямой речи необходима точная работа синтаксического анализатора. Помимо непосредственно определения прямой речи и её границ требуется произвести ещё ряд специализированных действий над сущностями, которые являются авторами прямой речи. Например, снять с них тональность — если организация является автором исследования, в рамках которого делается негативный вывод, то на эту компанию не должен ставиться негатив, даже контекстный. Всё это требует разработки специальной логики и инструментов работы с лингвистическими моделями документов.
Второй блок — применение искусственного интеллекта для решения бизнес-задач. Инженеры отвечают за разработку новых подсистем, использующих как нейросетевые технологии Deep Learning, так и алгоритмы классического машинного обучения от сбора и анализа тестовых данных до проверки гипотез и поставки обученных моделей в промышленную эксплуатацию.
Для повышения точности связывания именованных сущностей из текста с организациями из базы данных «СПАРК» специалистам «СКАНа» необходимо было реализовать механизм классификации контекстов упоминания этих сущностей по видам экономической деятельности в соответствии с ОКВЭД.
***
Если в тексте упоминается некая компания ООО «Рога и Копыта» в следующем контексте: «За прошлый год ООО „Рога и Копыта“ закупило 200 единиц сельскохозяйственной техники, поэтому в этом году полностью готово к началу посевной кампании», — то система должна по этому предложению определить, что эта компания, скорее всего, соответствует коду 01 ОКВЭД, а именно «Растениеводство и животноводство, охота и предоставление соответствующих услуг в этих областях».
***
Это позволило бы системе в дальнейшем при решении задачи связывания сущностей — идентификации по «СПАРК» — отсеять варианты с неподходящим кодом экономической деятельности.
Что в «СКАНе» сделали для решения этой задачи:
Для каждого кода ОКВЭД верхнего уровня собрали новостные документы с упоминаниями компаний, у которых в уставных документах указан соответствующий вид экономической деятельности как основной.
Из этих документов собрали контексты упоминания организаций: 1–2 предложения до упоминания и 1–2 предложения — после упоминания.
На основе выделенных контекстов составили словари ключевых слов для каждого из видов экономической деятельности.
Взвесили их с помощью TF-IDF — статистической меры, которая используется для оценки важности слова для какого-либо документа относительно других документов.
Для каждого вида экономической деятельности обучили модель SVM-классификатора методом ONE-vs-ALL.
Откорректировали параметры классификаторов для достижения требуемой точности 95%.
Реализовали REST-сервис, использующий обученные модели для multilabel-классификации контекстов.
Захостили сервис в k8s и реализовали его вызов в пайплайне обработки документа.
SVM или метод опорных векторов — линейный алгоритм, который используется в задачах классификации и регрессии.
REST — архитектурный стиль взаимодействия компонентов распределённого приложения в сети.
K8S или Kubernetes — платформа с открытым исходным кодом, которая автоматизирует операции с контейнеризированными приложениями.
Для оценки качества решения задач NLP-инженеры используют множество показателей. Основные — точность и полнота. Вычисляют их на основе специально подготовленной выборки данных.
Допустим, специалисту нужно провести классификацию новостей и разделить их на технические — сводки финансовых рынков — и нетехнические. Как он будет действовать:
- соберёт новости с упоминаниями акций, котировок, тикеров;
- разметит эту выборку вручную: пометит документы, которые точно являются техническими, и те, что ими не являются;
- разделит полученную выборку на две части: обучающую и тестовую в соотношении 70 на 30;
- обучит модель на обучающей выборке, протестирует на тестовой;
- посмотрит на показатели качества и проведёт кросс-валидацию;
- проведёт экспертное тестирование на промышленных данных;
- сделает выводы.
Почему за NLP-инженерами будущее сервисов информационного поиска
Бизнесу, связанному с обработкой текстовой информации, особенно нужны такие специалисты: требуется постоянно адаптироваться к изменчивости естественных языков и информационного фона. Поэтому инженерные усилия концентрируются на создании максимально универсальных технологических решений, а они зачастую представляют собой симбиоз различных технологий. Специалисты, которые ими владеют, будут всегда востребованы.
Мнение автора и редакции может не совпадать. Хотите написать колонку для Нетологии? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.