Обработка естественного языка (NLP)
Natural Language Processing (NLP, обработка естественного языка) — область искусственного интеллекта, которая исследует способы научить компьютеры лучше понимать человеческий язык. NLP охватывает не только распознавание слов, но и глубокое понимание контекста, эмоциональной тональности и намерения пользователя.
Например, если задать вопрос в старых версиях популярных поисковых систем «почему по утрам у меня лицо как у хомяка?», то в выдаче будет что-нибудь про хомяков. Однако современные версии легко поймут, что пользователь ищет причину отеков лица по утрам, а грызуны тут ни при чем.
Как компьютеры учились понимать людей
Впервые задачу обучить машину обрабатывать естественный язык поставили в 1954 году в Джорджтаунском университете. Эксперимент представлял собой попытку перевода 60 предложений с русского языка на английский. Авторы утверждали, что сделают это возможным за 3–5 лет, однако задача оказалась слишком амбициозной: даже через 10 лет они не получили впечатляющих результатов.
В 1966 году была создана ELIZA — программа, которая имитировала психотерапевта. Она реагировала на ключевые слова (грустно, ненавижу, люблю, мать, отец и т. д.) и выдавала фразы, поддерживающие диалог, например, спрашивала о причине грусти. ELIZA действовала по простому алгоритму и по-настоящему ничего не понимала, однако сильно полюбилась участникам эксперимента.
В 1970-е и начале 1980-х исследователи пытались перейти от поверхностных шаблонов к более глубокому пониманию: семантике, референции, разрешению неоднозначности и т. д. Появились первые чат-боты, однако они опирались на ручные правила — масштабировать это было почти невозможно. К концу 1980-х начался переход к статистическим методам и первым алгоритмам машинного обучения, что резко ускорило прогресс.
Тем не менее даже в 2000-х машины все еще делали едва читаемый перевод, а поисковые системы требовали точные, почти машинные формулировки. Настоящий перелом случился в 2010-х с появлением глубокого машинного обучения и нейронных сетей. Модели начали обучаться на гигантских массивах информации и сегодня ведут диалог почти неотличимо от человека, поддерживают выбранный тон общения и даже пытаются шутить.
Основные задачи NLP
Модели с высокой точностью обработки естественного языка стали доступны нам сравнительно недавно, потому что их обучение и работа требуют огромных вычислительных мощностей. Чтобы модель могла понимать естественный язык на уровне человека, важно научить ее выполнять как минимум следующие задачи:
- Токенизация и сегментация — текст разбивается на базовые элементы (токены), с которыми моделям удобнее работать. Сначала — на абзацы и предложения, потом — на слова и знаки препинания. Если слова длинные и сложные, они также могут быть разбиты на подслова или морфемы.
- Автоматическая морфологическая разметка (POS-tagging) — определение частей речи и грамматических характеристик слов с приписыванием им соответствующих тегов. Это помогает понять структуру предложения и является шагом на пути к пониманию его смысла.
- Синтаксический анализ — разбор связи слов друг с другом, определение субъектов, предикатов, объектов и их взаимосвязей в предложении.
- Семантический анализ — выявление смысла. Модель подбирает нужные значения для многозначных слов, считывает контекст.
- Извлечение именованных сущностей (Named Entity Recognition, NER) — распознавание имен собственных, дат, названий городов, валют и т. д.
- Анализ тональности — выявление настроения, с которым описываются те или иные вещи или явления. Продвинутые модели могут улавливать даже степень тональности, например, очень негативная или слегка негативная.
- Машинный перевод — перевод предложений с одного языка на другой. Раньше модели ориентировались только на правила языков, но теперь обучаются на миллиардах примеров, чтобы их перевод был неотличим от человеческого. Однако сложности с культурными отсылками, юмором и многозначными словами по-прежнему возникают.
- Генерация текста — модель отвечает пользователю в произвольной форме или в нужном стиле и с заданным объемом текста. В современных моделях ответ строится уже не на поиске по ключевым словам, а на обработке смысла задачи.
- Суммаризация — генерация краткого содержания заданного текста. Бывает экстрактивная (берутся самые важные предложения без изменений) и абстрактная (пересказ своими словами). Например, анализ всех отзывов, чтобы сделать по ним выводы о товаре.
Методы и технологии NLP
Подходы к обучению моделей обрабатывать человеческий язык эволюционировали с 1960-х годов. Рассмотрим основные из них в хронологическом порядке:
-
На основе правил — человек вручную пишет правила грамматики, словари и другие лингвистические ресурсы и контролирует результат. Очень трудоемкие и плохо масштабируемые методы, поэтому сейчас почти неактуальны.
-
Статистические — используют статистику для определения вероятности появления слов или словосочетаний, распознавания слов, семантических связей, определения грамматических правил. В настоящее время используются в основном в гибридных системах обучения.
-
Рекуррентные нейронные сети — модель читает слова по очереди и сохраняет информацию о предыдущих токенах, чтобы предсказать следующее слово, обучаясь на ошибках. Цикл может повторяться миллионы раз, пока модель не достигнет приемлемого уровня ошибки. Сегодня такие методы почти не используются из-за долгого обучения и неэффективной работы с длинными текстами.
-
Transformer-based (глубокое обучение на архитектуре Transformer) — модель обрабатывает весь текст одновременно и для каждого слова выявляет связь с другими словами. Обучение сначала проходит на гигантских наборах данных, а затем модель доучивается на конкретной задаче. Метод принес огромный скачок в качестве NLP, однако требует очень много GPU и времени на первое обучение. Остается основным подходом и лежит в основе почти всех LLM.
Обычно дополнительно расширяется правилами для проверки результата и внешними источниками знаний — базами данных и корпоративными документами (RAG, генерация с дополнительным поиском).
Обширных данных зачастую все равно недостаточно для того, чтобы ответы модели перестали выглядеть слишком машинными и содержать фактические ошибки. Поэтому модели улучшают с помощью оценок и системы наград. Бывают следующие способы улучшения:
-
Обучение с подкреплением на основе отзывов людей (RLHF) — модель дает несколько ответов на вопрос, а человек выбирает лучший. Это дорого и долго, поэтому сегодня применяется в основном для моделей узкой направленности, например юридической или медицинской тематики.
-
Обучение с подкреплением на основе отзывов модели (RLAIF) — вместо людей используется другая, зачастую более продвинутая модель. В последние годы этот способ получил широкое распространение.
-
Самоулучшение — модель сама оценивает свои ответы по четким критериям. Улучшение проходит в несколько итераций: выявляются сильные и слабые стороны лучшего ответа, генерируется новая пара и снова происходит оценка. Это самый дешевый и быстрый способ, однако он не будет работать с моделями с низким качеством ответов и систематическими ошибками — такие модели неспособны себя проверить.
Данные для NLP
Успехи передовых моделей достигаются не только за счет умных методов обучения, но и за счет качественных текстовых данных. В зависимости от этапа обучения используются два типа данных:
- Неразмеченные данные — это большие массивы необработанной информации. Например, статьи из Википедии, книги, новости, научные работы. Используются для предобучения, на котором модель учится понимать язык в целом.
- Размеченные датасеты — подготовленные для конкретных задач вопросы и ответы. К ним относятся поделенные на позитивные и негативные комментарии, примеры суммаризации текстов и другое.
При выборе данных для обучения важно запомнить простое правило: качество данных важнее архитектуры модели и объема вычислений. Миллиард чистых, разнообразных и хорошо написанных предложений лучше, чем 10 миллиардов предложений с повторами, опечатками и лишними словесными конструкциями. Модель легко запоминает проблемные данные и будет использовать их в ответах.
С какими проблемами можно столкнуться при выборе данных:
- Авторские права — нельзя законно скачать миллион случайных книг.
- Персональные данные — многие данные попадают под законы о защите персональных данных и могут привести к юридическим последствиям.
- Дубликаты и ошибки — чем больше массив данных, тем больше в нем дубликатов и ошибок.
- Сложность обучения на других языках — обучить модель на английском языке проще, чем на любом другом.
- Стоимость разметки — создание размеченных датасетов может быть дорогостоящим.
- Предвзятость — полностью исключить предвзятость во всех вопросах невозможно.
Общие тенденции и направления развития NLP
Сфера искусственного интеллекта и обработки естественного языка развивается с огромной скоростью, и наверняка предсказать что-то крайне сложно. Однако некоторые тенденции видны уже сейчас, и главная из них — смещение фокуса от размера и количества параметров моделей к длинным цепочкам рассуждений. Разберем по пунктам основные направления развития:
-
Метод Inference-time scaling (масштабирование по времени вывода)
Вместо того чтобы делать модель больше и дороже, разработчики заставляют ее строить длинные пошаговые цепочки рассуждений. Это может увеличить время ответов, однако такой подход требует меньше энергии и делает модели дешевле, но не ухудшает их качество.
-
Маленькие, но умные модели для мобильных устройств
Небольшие модели (1–9 миллиардов параметров) уже почти не уступают крупным моделям с сотнями миллиардов или триллионами параметров, однако легко помещаются на смартфоне и не требуют доступа к интернету. Ожидается, что в новых линейках мобильных устройств их наличие станет нормой.
-
Мультимодальность — не фича, а стандарт
Модели, которые умеют работать одновременно с текстом, аудио и видео, перестают быть уникальными. Получить содержание видео или инструкцию по починке по фото поломки — уже норма для ведущих моделей.
-
Длинный контекст и поиск по документам
Контекст размером от 200 тысяч до миллиона токенов становится нормой. Это позволяет дополнять модели огромным количеством своих данных, чтобы они лучше работали с вашей спецификой, выявляли связи между данными и проверяли фактическую точность.
-
Развитие AI-агентов
Модели перестают быть обычными чат-ботами и становятся полноценными помощниками. Например, они могут:
- делать заметки в календаре;
- проверять почту и отвечать на нее;
- работать с системами непрерывной интеграции
; - писать и отлаживать код
.
Также быстро развиваются мультиагентные системы, когда модели распределяют между собой разные функции. Теперь это уже не эксперименты, а реальные бизнес-решения.
-
Специализированные модели
Широкое распространение получают модели, ориентированные на конкретные профессии. Например:
- Медицина: анализ и обобщение историй болезней, диагностика патологий.
- Разработка: написание и отладка кода, генерация тестов, рефакторинг.
- Юриспруденция: анализ договоров на риски, поиск прецедентов, составление документов.
- Финансы: анализ отчетности, прогноз движения акций, аудит расходов.
Инструменты и библиотеки для NLP
Обработку естественного языка сегодня невозможно представить без дополнительных инструментов для ускорения и автоматизации. Рассмотрим несколько популярных инструментов:
- Hugging Face Transformers
— унифицированный интерфейс доступа к передовым LLM для задач обработки естественного языка. - spaCy
— быстрая и удобная библиотека для токенизации, синтаксического и морфологического анализа, распознавания именованных сущностей и ключевых слов. - Natural Language Toolkit
(NLTK) — инструмент для обучения и экспериментов с NLP. Популярен в университетах. - PyTorch
, TensorFlow , Keras — фреймворки для глубокого обучения, применяемые в различных задачах NLP. Часто используются для работы с мобильными устройствами. - Stanford CoreNLP
— инструмент для детальной обработки естественного языка от Стэнфордского университета. Стандарт для научных исследований.
Инструменты для работы с NLP от Yandex Cloud
Yandex Cloud предоставляет множество бизнес-решений для самых разных задач, связанных с искусственным интеллектом и обработкой естественного языка:
-
Yandex AI Studio
— платформа для создания и внедрения ИИ-решений. Предлагает следующие компоненты:- Agent Atelier — среда для создания ИИ-агентов. Подробнее см. в документации
. - Model Gallery — коллекция готовых моделей для любых задач. Подробнее см. в документации
. - AI Search — инструмент для поиска и генеративных ответов по вашей базе знаний и управляемого поиска по интернету — без самостоятельной сборки пайплайна. Подробнее см. в документации
. - AI Speech — объединяет технологии распознавания и синтеза речи, инструменты для создания голосовых агентов и постобработки результатов распознавания на базе SpeechKit. Подробнее см. в документации
.
- Agent Atelier — среда для создания ИИ-агентов. Подробнее см. в документации
-
Yandex Translate — сервис для интеграции алгоритмов Яндекс Переводчика в пользовательские приложения или веб-проекты. Подробнее см. в документации.
-
Yandex DataSphere — полноценный инструмент для разработки и эксплуатации собственных моделей, а также дообучения фундаментальных моделей. Подробнее см. в документации.