Обработка естественного языка

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
 
(6 промежуточных версий не показаны.)
Строка 1: Строка 1:
 +
{{well|Статья написана с использованием LLM ''ChatGPT-5.5'' и проверена участником [[Участник:Artem Abdulmanov|Artem Abdulmanov]] 18:40, 17 июля 2026 (MSD)
 +
Промпт приводится полностью в [[Обсуждение:Обработка естественного языка]]}}
 +
{{TOCright}}
-
'''Обработка естественного языка''' (Natural language processing, NLP) — междисциплинарная область, находящаяся на стыке компьютерных наук, искусственного интеллекта и математической лингвистики. Её цель — наделить компьютеры способностью понимать, интерпретировать и генерировать человеческий язык так, чтобы это было полезно для решения прикладных задач.
+
== Введение ==
-
Сегодня технологии NLP прочно вошли в повседневную жизнь: от голосовых помощников и чат-ботов до машинного перевода и систем фильтрации спама. За кажущейся простотой этих сервисов стоит сложный конвейер обработки текста, сочетающий лингвистические знания с мощью статистических моделей и нейронных сетей. В данной статье рассматриваются эволюция подходов к NLP, ключевые методы анализа текста и вызовы, стоящие перед областью.
+
'''Обработка естественного языка''' (англ. ''Natural Language Processing, NLP'') — область [[искусственный интеллект|искусственного интеллекта]], [[машинное обучение|машинного обучения]] и компьютерной [[лингвистика|лингвистики]], изучающая методы автоматического анализа, понимания, преобразования и генерации текстов и речи на естественных языках. Центральная задача обработки естественного языка состоит в построении вычислительных моделей, которые способны сопоставлять языковую форму с её смыслом, контекстом, намерением автора и требуемым действием системы.
-
== Эволюция подходов ==
+
Формально текст часто рассматривается как последовательность дискретных единиц — [[токен|токенов]] <tex>x_{1:T}=(x_1,\ldots,x_T)</tex>, принадлежащих словарю <tex>\mathcal V</tex>. Модель с параметрами <tex>\theta</tex> должна оценивать распределения вида <tex>p_\theta(y\mid x_{1:T})</tex> для предсказания метки <tex>y</tex>, ответа, перевода, следующего токена или иной целевой структуры. В отличие от задач, где исходные признаки заданы численно, естественный язык дискретен, неоднозначен, контекстно зависим и содержит сложные явления: синонимию, омонимию, эллипсис, анафору, имплицитные знания и прагматику.
-
Историю развития NLP можно представить как последовательную смену трёх основных парадигм.
+
-
=== Символьный подход (1950-е — начало 1990-х) ===
+
К типичным задачам обработки естественного языка относятся [[классификация текста]], [[анализ тональности]], [[извлечение именованных сущностей]], [[синтаксический анализ]], [[семантический анализ]], [[машинный перевод]], [[автоматическое реферирование]], [[вопросно-ответная система|вопросно-ответные системы]], поиск по смыслу, [[диалоговый агент|диалоговые агенты]] и [[языковая модель|языковое моделирование]]. Современные системы обработки естественного языка опираются на [[искусственная нейронная сеть|искусственные нейронные сети]], [[Обучаемая векторизация данных|векторные представления]], [[Механизм внимания|механизм внимания]] и архитектуру [[Трансформер |трансформера]], что позволяет обучать модели на больших корпусах и переносить знания между задачами.
-
Ранние системы NLP строились на основе явно задаваемых правил, создаваемых лингвистами и программистами вручную. Задача заключалась в том, чтобы формализовать грамматику языка в виде набора правил, по которым компьютер мог бы анализировать текст. Классическими примерами таких систем являются '''ELIZA''' (имитация психотерапевта) и '''SHRDLU''', работавший в ограниченном «мире кубиков».
+
-
Основным ограничением этого подхода была «хрупкость»: для каждого нового случая или исключения требовалось добавлять правила, что делало системы сложными в разработке и поддержке. Кроме того, они плохо справлялись с незнакомыми словами или грамматическими конструкциями.
+
== Мотивировка и историческая справка ==
-
=== Статистический подход (1990-е — 2010-е) ===
+
Потребность в обработке естественного языка возникла одновременно с развитием вычислительной техники. Уже в 1950-х годах пионеры компьютерной лингвистики, включая [[Уоррен Уивер|Уоррена Уивера]] и [[Артур Самуэль|Артура Самуэля]], осознали, что компьютеры можно обучить обрабатывать и анализировать текст. В этот период доминировал символьный подход: использовались [[регулярные выражения]], конечные автоматы, словари, экспертные правила и формальные грамматики. [[Теория порождающих грамматик]] [[Ноам Хомский|Ноама Хомского]], предложенная в конце 1950-х годов, оказала огромное влияние на представления о синтаксисе и формальной структуре языка.
-
Переломным моментом стало внедрение методов машинного обучения, которые позволили системам «обучаться» на больших массивах текстов — корпусах. Вместо ручного описания правил исследователи начали разрабатывать вероятностные модели, автоматически извлекающие статистические закономерности из данных.
+
-
Ключевую роль сыграли '''скрытые марковские модели''' ({{lang-en|Hidden Markov Models}}, HMM) и '''условные случайные поля''' ({{lang-en|Conditional Random Fields}}, CRF), активно применявшиеся для частеречной разметки и распознавания именованных сущностей. Статистические методы оказались устойчивее к шуму и вариативности языка, хотя требовали больших размеченных датасетов.
+
Ранние системы машинного перевода, разработанные в 1950-1960-х годах под эгидой программы [[ARPA]], использовали словари и морфосинтаксические правила. Однако первые попытки на автоматический перевод с русского на английский показали, что простой подход замены слов неэффективен. Проблема была признана столь сложной, что в 1966 году был выпущен отчёт [[ALPAC]] (Automatic Language Processing Advisory Committee), который значительно сокращает финансирование NLP на десятилетие.
-
=== Нейросетевой подход (современность) ===
+
В 1960-х–1980годах развивались методы синтаксического разбора, включая алгоритмы Кока–Янгера–Касами и Эрли, а также фреймворки типа семантических сетей и логических представлений. Система [[ELIZA]], разработанная Джозефом Вайценбаумом в 1960-х, демонстрировала, что даже поверхностные шаблоны и простая подстановка текста могут создавать иллюзию понимания и диалога, хотя она и не обладала настоящим семантическим пониманием.
-
С 2010годов доминирующей парадигмой стали нейронные сети. Использование '''векторных представлений слов''' (word embeddings), таких как Word2Vec, позволило моделировать семантические отношения между словами, а архитектуры на основе внимания (attention), в частности '''трансформеры''', произвели революцию в NLP.
+
-
Модели на основе трансформеров — '''BERT''' и '''GPT''' — способны обрабатывать контекст с обеих сторон от слова, что даёт высокое качество в задачах машинного перевода, вопросно-ответных систем и генерации текста. Этот подход сместил фокус с разработки признаков вручную (feature engineering) на обучение глубоких представлений языка из больших объёмов неразмеченных данных.
+
Символьные подходы были интерпретируемыми, но плохо масштабировались: для каждого языка, домена и жанра требовалось вручную описывать большое количество исключений и лингвистических правил. С ростом доступных текстовых корпусов и вычислительных ресурсов, начиная с 1980-х годов, в обработке естественного языка всё более прочно утверждался статистический подход. Появились [[скрытая марковская модель|скрытые марковские модели]] для [[морфологический анализ|морфологического анализа]] и [[разметка частей речи|разметки частей речи]], вероятностные контекстно-свободные грамматики, [[Байесовская сеть|байесовские сети]] и методы максимального правдоподобия. [[n-граммная модель|n-граммные языковые модели]] обеспечивали хорошее масштабирование на больших текстах, хотя и не могли моделировать дальние зависимости.
-
== Основные этапы и методы обработки текста ==
+
Параллельно развивались информационно-поисковые методы: [[TF-IDF]], косинусное сходство документов, инвертированные индексы. Статистический машинный перевод на основе выравнивания фраз (phrase-based SMT) показал, что можно автоматически обучать модели перевода по двуязычным параллельным корпусам, хотя качество оставалось далеким от человеческого.
-
Перед применением сложных моделей текст проходит через этапы предобработки, преобразующие неструктурированный текст в формат, пригодный для анализа.
+
-
=== Токенизация ===
+
Важный переход произошёл с открытием распределительной семантики. Идея «слово известно по его окружению» (дистрибютивная гипотеза, предложенная Харрисом в 1954 году, но широко применённая только спустя десятилетия) привела к методам [[латентно-семантический анализ|латентно-семантического анализа]] (LSA) и впоследствии к нейронным моделям [[Word2Vec]] (Мikolov et al., 2013), [[GloVe]] и [[fastText]]. В таких моделях слово <tex>w</tex> получает плотный вектор <tex>v_w\in\mathbb R^d</tex>, а семантическая близость измеряется геометрически. Word2Vec показал, что компактные [[векторное представление слова|векторные представления]] можно эффективно обучать на больших корпусах и использовать как признаки для широкого круга задач <ref>Mikolov T. et al., 2013</ref>. Это открыло эпоху глубокого обучения в обработке естественного языка.
-
Первый и фундаментальный шаг — разбиение текста на минимальные значимые единицы — '''токены'''. В качестве токенов обычно выступают слова, но иногда и предложения или отдельные символы. Сложность заключается в корректной обработке знаков препинания, сокращений и межсловных дефисов.
+
-
=== Нормализация: стемминг и лемматизация ===
+
В 2010-е годы произошёл быстрый переход к глубоким последовательностным моделям. [[Рекуррентная нейронная сеть|Рекуррентные нейронные сети]], особенно [[LSTM]] и [[GRU]], позволили обрабатывать последовательности переменной длины и сохранять информацию на больших расстояниях благодаря механизму вентилей. Архитектура кодировщик-декодировщик (encoder-decoder), предложенная Сутскевером, Виецеля и Чо, позволила применять [[рекуррентная нейронная сеть|RNN]] к задачам трансформации последовательностей, таким как [[машинный перевод]].
-
В естественном языке одно слово может встречаться в разных грамматических формах. Для уменьшения словарного разнообразия применяются два основных подхода:
+
-
* '''Стемминг''' — эвристический алгоритм, «отрезающий» суффиксы и окончания, оставляя основу (стем). Например, слова «бегал», «бежать», «бегун» сводятся к основе «бег». Метод быстр, но часто ошибается.
+
-
* '''Лемматизация''' — более сложная процедура, приводящая слово к словарной форме — '''лемме''' (для существительных — именительный падеж, для глаголов — инфинитив). В отличие от стемминга, лемматизация использует морфологический анализ и учитывает часть речи, что даёт более точные результаты.
+
-
=== Удаление стоп-слов ===
+
Решающий прорыв произошёл введением [[Механизм внимания|механизма внимания]]. Бахданау и соавторы (2014) показали, что модель-декодер может селективно фокусироваться на разных частях входной последовательности на каждом шаге, резко улучшив качество машинного перевода. Однако [[рекуррентная нейронная сеть|RNN]]-подход остаётся процедурным: обработка последовательности требует последовательных шагов, что плохо параллелизуется на современном GPU-оборудовании.
-
'''Стоп-слова''' — слова, не несущие значимой смысловой нагрузки (предлоги, союзы, частицы). В русском языке к ним относятся «и», «в», «на», «но» и другие. Их удаление позволяет сократить размерность пространства признаков и сфокусироваться на значимых терминах.
+
-
=== Векторизация: от текста к числам ===
+
В 2017 году статья Vaswani et al. «Attention Is All You Need» представила архитектуру [[Трансформер |трансформера]], которая полностью заменила рекуррентность на механизм самовнимания и полносвязные слои. Трансформер обрабатывает всю последовательность параллельно, благодаря чему хорошо масштабируется на [[GPU]] и [[TPU]]. Это стало основой для почти всех современных успехов в обработке естественного языка <ref>Vaswani A. et al., 2017</ref>.
-
Поскольку модели машинного обучения работают с числами, текст необходимо преобразовать в числовой вектор. Существует несколько подходов.
+
-
* '''Мешок слов''' ({{lang-en|Bag-of-Words}}, BoW) — создаётся вектор размерности, равной размеру словаря; в каждой позиции записывается частота встречаемости соответствующего слова в документе. Простота метода оборачивается его главным недостатком: полной потерей порядка слов.
+
После появления [[BERT]] (Devlin et al., 2019) и [[GPT]] (Radford et al., 2018) произошла парадигма-шифт к предобучению больших моделей на общих текстовых корпусах и последующему дообучению под конкретные задачи. [[BERT]] ввёл эффективную схему маскированного [[языковая модель|языкового моделирования]] для двунаправленного кодировщика <ref>Devlin J. et al., 2019</ref>, позволяя модели видеть как левый, так и правый контекст одновременно. Семейство [[GPT]] показало масштабируемость авторегрессионных декодеров и возможность решения задач по инструкции без классического обучения на размеченной выборке <ref>Brown T. B. et al., 2020</ref>.
-
* '''TF-IDF''' ({{lang-en|Term Frequency-Inverse Document Frequency}}) — усовершенствованный метод, взвешивающий важность слова в документе относительно всего корпуса. Мера '''TF''' (частота термина) показывает, как часто слово встречается в конкретном документе, а '''IDF''' (обратная частота документа) уменьшает вес слов, встречающихся во всех документах корпуса. Вычисление TF-IDF:
+
-
<tex> \text{TF-IDF}(t, d, D) = \text{TF}(t, d) \cdot \text{IDF}(t, D) </tex>
+
В 2020-х годах произошло экспоненциальное увеличение масштаба моделей: от [[BERT]] с 340 млн параметров к [[GPT-3]] с 175 млрд параметров, [[Chinchilla]], [[PaLM]] и [[GPT-4]]. Работа Hoffmann et al. показала оптимальный баланс между размером модели и количеством токенов обучающих данных. Одновременно развивались методы эффективной адаптации больших моделей под новые задачи без полного переобучения: [[LoRA]], [[QLoRA]], адаптеры, [[prompt engineering]] и few-shot learning.
-
<tex> \text{IDF}(t, D) = \log \frac{N}{|\{d \in D : t \in d\}|} </tex>
+
В современный период обработка естественного языка всё чаще объединяется с поиском ([[RAG]]), базами знаний, мультимодальными входами (текст + изображения в [[CLIP]], [[DALL-E]], [[GPT-4V]]), инструментальным выполнением действий и принципами конституционного обучения. Растут требования к безопасности, надёжности, интерпретируемости и соответствию правовым ограничениям, таким как защита персональных данных и борьба с дискриминацией в моделях.
-
где <tex> t </tex> — термин (слово), <tex> d </tex> — документ, <tex> D </tex> — корпус документов, <tex> N </tex> — общее количество документов в корпусе.
+
== Основные задачи обработки естественного языка ==
-
== Ключевые задачи NLP ==
+
Обработка естественного языка охватывает широкий спектр задач, которые можно разделить на несколько категорий по уровню анализа и целям.
-
На основе обработанных и векторизованных текстов решается широкий спектр прикладных задач.
+
-
=== Распознавание именованных сущностей (NER) ===
+
; Задачи уровня токенов и слов.
-
Задача выделения в тексте именованных сущностей ({{lang-en|Named Entity Recognition}}, NER) заключается в поиске и классификации слов, обозначающих объекты реального мира — людей, организации, географические названия, даты. Например, в предложении «Станкевич Андрей Сергеевич стал лауреатом премии IBM» система NER выделит «Станкевич Андрей Сергеевич» как '''личность''', а «IBM» — как '''компанию'''.
+
-
=== Анализ тональности (Sentiment Analysis) ===
+
* '''[[Морфологический анализ]].''' Определение морфологических свойств слова: части речи, падежа, числа, времени, вида и т.д. Особенно важна для синтетических языков с богатой морфологией (русский, финский, турецкий), менее актуальна для аналитических языков (английский, китайский).
-
Анализ тональности — задача определения эмоциональной окраски текста. Система классифицирует текст как положительный, отрицательный или нейтральный. Технология применяется для анализа отзывов о продуктах, мониторинга социальных сетей и оценки общественного мнения.
+
-
=== Частеречная разметка (POS-тэгирование) ===
+
* '''[[Лемматизация]].''' Приведение слова к его базовой форме (лемме). Например, слова «читал», «читать», «читают» лемматизируются в «читать». Используется в информационном поиске и документировании.
-
'''POS-тэгирование''' ({{lang-en|Part-of-Speech tagging}}) — присвоение каждому слову грамматического тега, указывающего на часть речи (существительное, глагол, прилагательное) и, возможно, дополнительные характеристики (число, падеж, время). Это важная промежуточная задача, помогающая снять неоднозначность. Для её решения часто используются вероятностные методы, в частности '''условные случайные поля''' (CRF).
+
-
=== Использование N-граммных моделей ===
+
* '''[[Стемминг]].''' Приведение слова к его корню путём удаления суффиксов и префиксов. Проще лемматизации, но менее точно. Алгоритмы Porter Stemmer для английского языка широко распространены.
-
'''N-грамма''' — последовательность из <tex> n </tex> подряд идущих элементов текста (слов или символов). Модели на основе N-грамм позволяют оценить вероятность появления последовательности слов. Они лежат в основе систем автодополнения и проверки орфографии. N-граммы также используются для сравнения схожести документов в задачах обнаружения плагиата.
+
-
== Современные вызовы и этические аспекты ==
+
* '''[[Разметка частей речи]].''' Присвоение каждому слову метки части речи (существительное, глагол, прилагательное, предлог и т.д.). Часто решается с помощью [[скрытая марковская модель|скрытых марковских моделей]], [[условное случайное поле|условных случайных полей]] или [[Трансформер|трансформеров]].
-
Несмотря на впечатляющие успехи, NLP сталкивается с серьёзными вызовами.
+
-
* '''Галлюцинации''' ({{lang-en|hallucinations}}). Современные генеративные модели (LLM) могут порождать грамматически правильные и убедительные тексты, содержащие ложные факты. Проблема особенно критична в медицине, юриспруденции и образовании.
+
* '''[[Извлечение именованных сущностей]].''' Выделение и классификация именованных сущностей (названия людей, мест, организаций, продуктов). Часто решается как задача [[последовательное мечение|последовательного мечения]] (sequence labeling) с использованием BIO-схемы разметки.
-
* '''Предвзятость''' ({{lang-en|bias}}). Модели обучаются на данных, созданных людьми, и наследуют существующие в обществе стереотипы и предубеждения. Борьба с предвзятостью алгоритмов — одна из ключевых задач этичного ИИ.
+
-
* '''Конфиденциальность'''. При работе с чувствительными данными (например, медицинскими записями) существует риск утечек информации, который не до конца решён даже с помощью современных методов, таких как генерация с дополнением извлечением (RAG).
+
-
Обработка естественного языка — динамично развивающаяся область, которая уже сегодня меняет взаимодействие с информацией. Дальнейшее развитие определяется поиском баланса между мощью моделей и их безопасностью, интерпретируемостью и справедливостью.
+
; Задачи синтаксического анализа.
-
== Список литературы ==
+
* '''[[Синтаксический анализ]].''' Определение грамматической структуры предложения. Включает построение дерева зависимостей (dependency tree), где каждое слово связано со своим главным словом, или дерева составляющих (constituency tree), представляющего иерархическую структуру фраз. Решается с помощью алгоритмов типа перехода (transition-based) или графовых (graph-based) методов.
-
# Университет ИТМО. Обработка естественного языка [Электронный ресурс]. — URL: http://neerc.ifmo.ru/wiki/index.php?title=Обработка_естественного_языка (дата обращения: 17.07.2026).
+
 
-
# University of Pennsylvania. Natural Language Processing [Электронный ресурс]. — URL: https://highlights.cis.upenn.edu/natural-language-processing/ (дата обращения: 17.07.2026).
+
* '''[[Разрешение анафоры]].''' Определение того, на какую сущность в тексте ссылается местоимение или дефинитный артикль. Например, в предложении «Мария встретила Джона, и он улыбнулся», нужно понять, что «он» относится к Джону. Решается с помощью методов графовых нейронных сетей и кандидатского ранжирования.
-
# MachineLearning.ru. Математические методы анализа текстов (ВМиК МГУ) / 2017 [Электронный ресурс]. — URL: http://www.machinelearning.ru/wiki/index.php?title=Математические_методы_анализа_текстов_(ВМиК_МГУ)_/_2017 (дата обращения: 17.07.2026).
+
 
-
# Рудак Л.В., Зори С.А. Обработка текста методами естественного языка // Информатика и кибернетика. — 2024. — № 3 (37). — Донецк: ДонНТУ.
+
; Задачи семантического анализа.
-
# Витебский государственный технологический университет. Лабораторная работа «Обработка естественного языка» [Электронный ресурс]. — URL: https://it.vstu.by/courses/information_systems/Development_and_optimization_of_intellectual_information_systems/practice/natural_language_processing/ (дата обращения: 17.07.2026).
+
 
-
# Wikipedia. Natural language processing [Электронный ресурс]. — URL: https://en.wikipedia.org/wiki/Natural_language_processing (дата обращения: 17.07.2026).
+
* '''[[Анализ тональности]]''' (sentiment analysis). Определение эмоционального подтекста текста: позитивное, негативное или нейтральное отношение. Может выполняться на уровне документа, предложения или аспекта (aspect-based sentiment analysis). Широко используется для анализа отзывов, комментариев в социальных сетях и репутационного мониторинга.
-
# Rajawat G.S., Vaishnav N., Shekhawat P., Jain V. Natural language processing: A survey of techniques, tools, and applications // AIP Conference Proceedings. — 2026. — Vol. 3439. — P. 040015.
+
 
-
# Microsoft Learn. Текст и естественный язык [Электронный ресурс]. — URL: https://learn.microsoft.com/ru-ru/training/modules/get-started-ai-fundamentals/5-natural-language-processing (дата обращения: 17.07.2026).
+
* '''[[Классификация текста]]''' (text classification). Отнесение текста к одной или нескольким категориям. Примеры: классификация новостей по темам, фильтрация спама, определение языка документа, классификация по жанру. Решается с помощью [[логистическая регрессия|логистической регрессии]], [[метод опорных векторов|SVM]], [[случайный лес|случайных лесов]] и [[Трансформер |трансформеров]].
 +
 
 +
* '''[[Поиск по смыслу]]''' (semantic similarity). Определение семантической близости между двумя текстами. Используется в информационном поиске, дедупликации документов, рекомендательных системах. Решается с помощью обучения общих представлений через контрастные функции потерь.
 +
 
 +
* '''[[Информационный поиск]]''' (information retrieval). Поиск релевантных документов в большой коллекции по запросу. Классические методы основаны на [[TF-IDF]] и косинусном сходстве; современные системы используют [[BERT]] и другие модели для семантического поиска.
 +
 
 +
; Задачи преобразования текста.
 +
 
 +
* '''[[Машинный перевод]].''' Автоматический перевод текста с одного языка на другой. Исторически использовались статистические подходы (SMT), в настоящее время [[Трансформер |трансформеры]] и [[Механизм внимания|механизм внимания]] дают качество близкое к профессиональному. Стандартные метрики: [[BLEU]], [[METEOR]], [[chrF]].
 +
 
 +
* '''Автоматическое реферирование''' (automatic summarization). Создание сжатого пересказа текста, сохраняющего ключевую информацию. Может быть экстрактивным (выбор ключевых фраз из исходного текста) или абстрактивным (генерация нового текста). Метрики: [[ROUGE]], [[METEOR]].
 +
 
 +
* '''[[Исправление ошибок]].''' Автоматическое исправление орфографических и грамматических ошибок в тексте. Современные модели основаны на [[Трансформер |трансформерах]] и способны исправлять сложные ошибки в контексте.
 +
 
 +
* '''Парафразирование''' (paraphrasing). Переформулировка текста с сохранением смысла. Используется в генерации вариантов текстов, увеличении обучающей выборки, улучшении разнообразия ответов в диалоговых системах.
 +
 
 +
; Задачи вопросно-ответного взаимодействия.
 +
 
 +
* '''[[Вопросно-ответная система]]''' (question answering, QA). Поиск ответа на вопрос в текстовом контексте или ответ на базе знаний. Может быть открытого типа (нет готового контекста) или закрытого (ответ в документе). Наборы данных: SQuAD, Natural Questions, MS MARCO.
 +
 
 +
* '''[[Информационное извлечение]]''' (information extraction). Выделение структурированной информации из неструктурированного текста. Может включать извлечение отношений между сущностями, событий, фактов, параметров (например, цены и рейтинги из описания товара).
 +
 
 +
; Задачи диалога и генерации.
 +
 
 +
* '''Диалоговые системы''' (dialogue systems). Системы, способные поддерживать диалог с пользователем. Включают task-oriented диалоговые системы (бронирование, поддержка клиентов) и open-domain чат-боты (общее общение). Современные системы основаны на больших языковых моделях.
 +
 
 +
* '''[[Языковая модель|Языковое моделирование]]''' (language modeling). Предсказание следующего токена по предыдущему контексту. Основа для генерации текста, автодополнения и многих других задач. Метрика: [[перплексия]].
 +
 
 +
* '''[[Текстогенерация]]''' (text generation). Генерация нового текста, отвечающего определённым критериям. Примеры: генерация описания изображения, генерация кода, творческое письмо. Решается с помощью [[Трансформер |декодеров трансформера]] и различных стратегий декодирования.
 +
 
 +
; Задачи многоязычного анализа.
 +
 
 +
* '''[[Машинный перевод]]''' (уже упоминалась выше).
 +
 
 +
* '''[[Определение языка]]''' (language identification). Автоматическое определение того, на каком языке написан текст. Обычно решается как многоклассовая классификация.
 +
 
 +
* '''Кроссязычный перенос знаний''' (cross-lingual transfer). Использование моделей, обученных на одном языке, для задач на другом языке. Особенно важно для низкоресурсных языков. Мультиязычные модели типа [[multilingual BERT|mBERT]] и [[XLM-R]] обучаются на текстах многих языков одновременно.
 +
 
 +
; Задачи интеграции знаний.
 +
 
 +
* '''Связь с базами знаний.''' Связывание упомянутых в тексте сущностей с записями в структурированных базах знаний (например, Wikidata). Решается с помощью методов эмбеддирования сущностей и ранжирования кандидатов.
 +
 
 +
* '''[[RAG]]''' (retrieval-augmented generation). Объединение поиска документов с генерацией ответа. Модель сначала извлекает релевантные документы из большой коллекции, а затем генерирует ответ с учётом найденного контекста.
 +
 
 +
; Многомодальные задачи.
 +
 
 +
* '''Визуальное вопросно-ответное взаимодействие''' (visual question answering, VQA). Ответ на вопросы о содержимом изображения.
 +
 
 +
* '''Описание изображения''' (image captioning). Автоматическое создание текстового описания изображения.
 +
 
 +
* '''Совместное обучение текста и изображений.''' Модели типа [[CLIP]], [[ALIGN]], которые учат совместное представление текста и изображений для поиска и классификации.
 +
 
 +
== Математический аппарат и Архитектура ==
 +
 
 +
; Представление текста и токенизация.
 +
 
 +
Пусть <tex>s</tex> — исходная строка, а <tex>\tau</tex> — [[Токенизация (NLP)|токенизатор]]. Токенизация отображает строку в последовательность индексов словаря:
 +
 
 +
::<tex>\tau(s)=x_{1:T},\qquad x_t\in\mathcal V.</tex>
 +
 
 +
В классической постановке токеном может быть слово, символ или морфема. В современных [[Трансформер |трансформерах]] обычно применяются подсловные токенизаторы: [[Byte Pair Encoding]], [[WordPiece]] или [[SentencePiece]]. Они уменьшают проблему OOV, поскольку редкое слово раскладывается на более частые подсловные элементы. После токенизации индекс <tex>x_t</tex> кодируется one-hot-вектором <tex>e_{x_t}</tex>, который умножается на матрицу эмбеддингов <tex>E</tex>:
 +
 
 +
::<tex>h_t^{(0)}=E^\top e_{x_t}+p_t,\qquad E\in\mathbb R^{|\mathcal V|\times d}.</tex>
 +
 
 +
Здесь <tex>h_t^{(0)}</tex> начальное скрытое представление токена, <tex>d</tex> — размерность эмбеддинга, а <tex>p_t</tex> — позиционное представление, необходимое для учёта порядка токенов.
 +
 
 +
; Мешок слов, TF-IDF и n-граммные модели.
 +
 
 +
Классическая модель мешка слов игнорирует порядок токенов и представляет документ как вектор частот. Для слова <tex>w</tex>, документа <tex>r</tex> и корпуса <tex>D</tex> вес [[TF-IDF]] обычно записывается как
 +
 
 +
::<tex>\operatorname{tfidf}(w,r)=\operatorname{tf}(w,r)\log\frac{|D|}{1+\operatorname{df}(w)}.</tex>
 +
 
 +
Здесь <tex>\operatorname{tf}(w,r)</tex> — частота слова <tex>w</tex> в документе <tex>r</tex>, а <tex>\operatorname{df}(w)</tex> — число документов, содержащих это слово. Такой подход хорошо работает в [[информационный поиск|информационном поиске]] и [[линейный классификатор|линейной классификации]], но не моделирует дальние зависимости и смысловую многозначность.
 +
 
 +
В <tex>n</tex>-граммной [[языковая модель|языковой модели]] вероятность следующего токена приближается вероятностью, зависящей только от конечного контекста длины <tex>n-1</tex>:
 +
 
 +
::<tex>p(x_t\mid x_{<t})\approx p(x_t\mid x_{t-n+1},\ldots,x_{t-1}).</tex>
 +
 
 +
При сглаживании Лапласа для истории <tex>h</tex>, следующего слова <tex>w</tex>, счётчика <tex>c(h,w)</tex> и параметра <tex>\alpha</tex> получается оценка
 +
 
 +
::<tex>\hat p(w\mid h)=\frac{c(h,w)+\alpha}{c(h)+\alpha|\mathcal V|}.</tex>
 +
 
 +
Эти модели интерпретируемы и быстры, но страдают от разреженности: число возможных контекстов растёт экспоненциально с увеличением <tex>n</tex>.
 +
 
 +
; Распределительная семантика и Word2Vec.
 +
 
 +
В распределительных моделях каждому слову соответствует плотный вектор. В задаче [[Skip-Gram]] с negative sampling модель максимизирует близость целевого слова <tex>w</tex> и контекстного слова <tex>c</tex>, одновременно отталкивая случайные отрицательные контексты <tex>\tilde c_j</tex>:
 +
 
 +
::<tex>\mathcal L_{\mathrm{SGNS}}=-\log\sigma(u_w^\top v_c)-\sum_{j=1}^{m}\mathbb E_{\tilde c_j\sim P_n}\log\sigma(-u_w^\top v_{\tilde c_j}).</tex>
 +
 
 +
Здесь <tex>u_w</tex> и <tex>v_c</tex> обучаемые [[вектор|векторы]], <tex>m</tex> — число отрицательных примеров, <tex>P_n</tex> — шумовое распределение, а <tex>\sigma</tex> — [[логистическая функция]]. Близость векторов часто измеряется косинусной мерой:
 +
 
 +
::<tex>\operatorname{cos}(a,b)=\frac{a^\top b}{\|a\|_2\|b\|_2}.</tex>
 +
 
 +
Главное ограничение статических эмбеддингов состоит в том, что слово имеет один вектор независимо от контекста. Например, слово «ключ» в значениях «ключ от двери» и «ключ к задаче» требует разных представлений. Контекстные эмбеддинги, такие как [[ELMo]] и [[BERT]], решают эту проблему путём вычисления представления слова на основе окружающего контекста.
 +
 
 +
; Последовательностные нейронные модели.
 +
 
 +
[[Рекуррентная нейронная сеть]] обрабатывает последовательность слева направо и обновляет скрытое состояние <tex>h_t</tex> по предыдущему состоянию <tex>h_{t-1}</tex> и текущему токену <tex>x_t</tex>:
 +
 
 +
::<tex>h_t=\phi(W_x e_{x_t}+W_hh_{t-1}+b),\qquad \hat y=\operatorname{softmax}(W_oh_T+b_o).</tex>
 +
 
 +
Такие модели естественно подходят для последовательностей переменной длины, но плохо параллелизуются и испытывают трудности с дальними зависимостями. [[LSTM]] и [[GRU]] частично решают проблему затухающих [[градиент|градиентов]] с помощью вентилей, однако для очень длинных контекстов они уступают [[Трансформер |трансформерам]].
 +
 
 +
; Самовнимание и трансформер.
 +
 
 +
В [[Трансформер |трансформере]] входная матрица скрытых состояний <tex>H\in\mathbb R^{T\times d_{\mathrm{model}}}</tex> преобразуется в матрицы запросов <tex>Q</tex>, ключей <tex>K</tex> и значений <tex>V</tex>:
 +
 
 +
::<tex>Q=HW_Q,\qquad K=HW_K,\qquad V=HW_V.</tex>
 +
 
 +
[[Механизм внимания|Механизм scaled dot-product attention]] вычисляет веса взаимодействия всех токенов друг с другом:
 +
 
 +
::<tex>\operatorname{Attention}(Q,K,V)=\operatorname{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V.</tex>
 +
 
 +
Деление на <tex>\sqrt{d_k}</tex> стабилизирует масштаб скалярных произведений. В многоголовом внимании используется несколько независимых проекций, что позволяет разным головам моделировать разные типы зависимостей:
 +
 
 +
::<tex>\operatorname{head}_i=\operatorname{Attention}(HW_i^Q,HW_i^K,HW_i^V),\qquad \operatorname{MHA}(H)=\operatorname{Concat}(\operatorname{head}_1,\ldots,\operatorname{head}_m)W^O.</tex>
 +
 
 +
Каждый блок [[Трансформер |трансформера]] также включает остаточные связи, нормализацию слоёв и позиционно-независимую полносвязную сеть:
 +
 
 +
::<tex>\tilde H=\operatorname{LayerNorm}(H+\operatorname{MHA}(H)),\qquad H'=\operatorname{LayerNorm}(\tilde H+\operatorname{FFN}(\tilde H)).</tex>
 +
 
 +
::<tex>\operatorname{FFN}(h)=\sigma(hW_1+b_1)W_2+b_2.</tex>
 +
 
 +
Для авторегрессионной генерации используется каузальная маска, запрещающая позиции <tex>i</tex> смотреть на будущие позиции <tex>j</tex>:
 +
 
 +
::<tex>A_{ij}=-\infty\quad\text{при}\quad j>i.</tex>
 +
 
 +
Именно самовнимание делает [[Трансформер |трансформер]] универсальной архитектурой для кодировщиков, декодировщиков и кодировщик-декодировщик моделей. [[Кодировщик|Кодировщики]], такие как [[BERT]] и [[RoBERTa]], особенно полезны для понимания текста; [[Декодировщик|декодировщики]], такие как [[GPT]] и [[GPT-2]], — для генерации; модели типа [[T5]] и [[BART]] удобны для перевода, реферирования и преобразования текста в текст.
 +
 
 +
; Функции потерь.
 +
 
 +
Для классификации с <tex>C</tex> классами обычно используется [[кросс-энтропия]]:
 +
 
 +
::<tex>\mathcal L_{\mathrm{CE}}(\theta)=-\frac{1}{N}\sum_{i=1}^{N}\sum_{c=1}^{C}y_{ic}\log \hat y_{ic}.</tex>
 +
 
 +
В авторегрессионном [[языковая модель|языковом моделировании]] модель предсказывает следующий токен по предыдущим:
 +
 
 +
::<tex>\mathcal L_{\mathrm{CLM}}(\theta)=-\sum_{t=1}^{T}\log p_\theta(x_t\mid x_{<t}).</tex>
 +
 
 +
В маскированном [[языковая модель|языковом моделировании]], применяемом в [[BERT]]-подобных кодировщиках, восстанавливаются токены из множества масок <tex>M</tex>:
 +
 
 +
::<tex>\mathcal L_{\mathrm{MLM}}(\theta)=-\sum_{t\in M}\log p_\theta(x_t\mid x_{\setminus M}).</tex>
 +
 
 +
Для задач преобразования последовательности <tex>x_{1:T_x}</tex> в последовательность <tex>y_{1:T_y}</tex> используется условная отрицательная логарифмическая правдоподобность:
 +
 
 +
::<tex>\mathcal L_{\mathrm{seq2seq}}(\theta)=-\sum_{t=1}^{T_y}\log p_\theta(y_t\mid y_{<t},x_{1:T_x}).</tex>
 +
 
 +
; Метрики качества.
 +
 
 +
Для [[классификация|классификации]] применяются accuracy, macro-averaging, micro-averaging и <tex>F_1</tex>-мера:
 +
 
 +
::<tex>F_1=2\frac{\operatorname{precision}\cdot\operatorname{recall}}{\operatorname{precision}+\operatorname{recall}}.</tex>
 +
 
 +
Для [[языковая модель|языкового моделирования]] стандартной метрикой является [[перплексия]]:
 +
 
 +
::<tex>\operatorname{PPL}=\exp\left(-\frac{1}{T}\sum_{t=1}^{T}\log p_\theta(x_t\mid x_{<t})\right).</tex>
 +
 
 +
Чем ниже <tex>\operatorname{PPL}</tex>, тем выше средняя вероятность правильных токенов, хотя низкая перплексияне гарантирует фактическую полезность ответа.
 +
 
 +
Для [[машинный перевод|машинного перевода]] часто используется [[BLEU]] — геометрическое среднее модифицированных точностей по <tex>n</tex>-граммам с штрафом за слишком короткий перевод:
 +
 
 +
::<tex>\operatorname{BLEU}=\operatorname{BP}\cdot\exp\left(\sum_{n=1}^{N}w_n\log p_n\right),\qquad \operatorname{BP}=\begin{cases}1,& l_{\mathrm{cand}}>l_{\mathrm{ref}},\\ \exp(1-l_{\mathrm{ref}}/l_{\mathrm{cand}}),& l_{\mathrm{cand}}\le l_{\mathrm{ref}}.\end{cases}</tex>
 +
 
 +
Для реферирования используется [[ROUGE]], измеряющая покрытие эталонных <tex>N</tex>-грамм:
 +
 
 +
::<tex>\operatorname{ROUGE}\text{-}N=\frac{\sum_{s\in S_{\mathrm{ref}}}\sum_{g\in G_N(s)}\min(C_{\mathrm{cand}}(g),C_{\mathrm{ref}}(g))}{\sum_{s\in S_{\mathrm{ref}}}\sum_{g\in G_N(s)}C_{\mathrm{ref}}(g)}.</tex>
 +
 
 +
Для вопросно-ответных систем используются точные совпадения (exact match) и F1-мера, основанная на перекрытии токенов между предсказанным и эталонным ответом. Автоматические метрики удобны для массового сравнения моделей, но в задачах генерации их необходимо дополнять человеческой оценкой, проверкой фактической корректности, устойчивости и безопасности.
 +
 
 +
 
 +
== Схема обучения и рекомендации ==
 +
 
 +
Полный NLP-пайплайн обычно включает сбор данных, очистку, разбиение на выборки, токенизацию, обучение или адаптацию модели, валидацию, анализ ошибок, деплой и мониторинг. На каждом этапе возможны ошибки, которые существенно искажают итоговую оценку качества.
 +
 
 +
* '''Разбиение данных.''' Нельзя допускать утечку между train, validation и test. Для новостных, юридических и медицинских корпусов особенно опасны дубликаты, пересечения авторов, цитируемые фрагменты и временная утечка. Если будущие документы отличаются от прошлых, предпочтительно временное разбиение.
 +
 
 +
* '''Очистка и нормализация.''' Необходимо сохранять те элементы текста, которые несут сигнал для задачи. Например, пунктуация и регистр могут быть важны для [[анализ тональности|анализа тональности]], а удаление чисел может ухудшить [[информационное извлечение|извлечение фактов]].
 +
 
 +
* '''Токенизация и OOV.''' Подсловные методы уменьшают число неизвестных токенов, но могут дробить редкие имена и термины на длинные цепочки. Для доменных задач полезны адаптация [[Токенизация (NLP)|токенизатора]], добавление специальных токенов и продолжение предобучения на доменном корпусе.
 +
 
 +
* '''Контекстное окно.''' Модель с максимальной длиной <tex>L</tex> не видит токены за пределами окна. Простая обрезка может удалить ключевой контекст. Для длинных документов применяются скользящие окна, иерархические модели, [[retrieval-augmented generation|retrieval-подходы]] и архитектуры с разреженным вниманием.
 +
 
 +
* '''Дисбаланс классов.''' В задачах [[классификация|классификации]] редкие классы требуют стратифицированного разбиения, взвешенной функции потерь, переоценки порога решения и анализа macro-метрик.
 +
 
 +
* '''Катастрофическое забывание.''' При агрессивном дообучении большая модель может потерять общие знания. Рекомендуются малая скорость обучения <tex>\eta</tex>, ранняя остановка, заморозка части слоёв, адаптеры, [[LoRA]] и регуляризация.
 +
 
 +
* '''Оценка генерации.''' Для реферирования, диалога и вопросно-ответных систем недостаточно [[BLEU]] или [[ROUGE]]. Нужно оценивать фактическую точность, полноту, токсичность, следование инструкции, устойчивость к подсказкам и воспроизводимость.
 +
 
 +
* '''Хранение и обслуживание моделей.''' Необходимо отслеживать версии моделей, их производительность на разных наборах данных, дрейф дистрибуции, скорость инференса и энергопотребление. Используются инструменты типа [[MLflow]], [[Weights & Biases]], [[DVC]] для версионирования и мониторинга.
 +
 
 +
Оптимизация [[Трансформер |трансформеров]] обычно выполняется вариантом [[Adam|AdamW]] с раздельным weight decay:
 +
 
 +
::<tex>\theta_{t+1}=\theta_t-\eta\frac{\hat m_t}{\sqrt{\hat v_t}+\epsilon}-\eta\lambda\theta_t.</tex>
 +
 
 +
Здесь <tex>\theta_t</tex> параметры на шаге <tex>t</tex>, <tex>\hat m_t</tex> и <tex>\hat v_t</tex> — скорректированные оценки первого и второго моментов [[градиент|градиента]], <tex>\eta</tex> — скорость обучения, <tex>\epsilon</tex> — стабилизирующая константа, а <tex>\lambda</tex> — коэффициент weight decay. На практике важны [[scheduler]] с warmup, [[gradient clipping]] и смешанная точность (mixed precision). Ограничение нормы [[градиент|градиента]] <tex>g</tex> порогом <tex>\gamma</tex> можно записать так:
 +
 
 +
::<tex>g\leftarrow g\cdot\min\left(1,\frac{\gamma}{\|g\|_2}\right).</tex>
 +
 
 +
Для адаптации больших моделей часто применяются методы [[PEFT]]. В [[LoRA]] вместо полного изменения матрицы <tex>W</tex> обучается низкоранговая поправка:
 +
 
 +
::<tex>W'=W+\Delta W,\qquad \Delta W=\frac{\alpha}{r}BA,\qquad A\in\mathbb R^{r\times d_{\mathrm{in}}},\quad B\in\mathbb R^{d_{\mathrm{out}}\times r}.</tex>
 +
 
 +
Здесь <tex>r</tex> — ранг адаптации, а <tex>\alpha</tex> — масштабирующий коэффициент. [[LoRA]] резко уменьшает число обучаемых параметров, что особенно важно при дообучении больших языковых моделей на ограниченных GPU-ресурсах.
 +
 
 +
При генерации текста выбор следующего токена определяется распределением <tex>p_\theta(x_t\mid x_{<t})</tex>. Температурное масштабирование изменяет энтропию распределения:
 +
 
 +
::<tex>p_i^{(\tau)}=\frac{\exp(z_i/\tau)}{\sum_j\exp(z_j/\tau)}.</tex>
 +
 
 +
Малая температура <tex>\tau</tex> делает ответы более детерминированными, большая — более разнообразными. Кроме greedy decoding и beam search используются sampling, top-<tex>k</tex> и nucleus sampling с порогом <tex>p</tex>. Для прикладных систем параметры декодирования следует подбирать не только по автоматическим метрикам, но и по требованиям к точности, стилю и безопасности.
 +
 
 +
== Современные подходы и State-of-the-Art (SOTA) ==
 +
 
 +
Современное состояние обработки естественного языка определяется большими языковыми моделями (LLM), предобученными на огромных текстовых корпусах. Типичная [[LLM]] является декодерным [[Трансформер |трансформером]], обученным минимизировать авторегрессионную потерю <tex>\mathcal L_{\mathrm{CLM}}</tex>. С увеличением числа параметров, объёма данных и вычислений модели приобретают способность к few-shot и zero-shot обобщению, следованию инструкциям, программированию, рассуждению по цепочке (chain-of-thought) и использованию внешних инструментов.
 +
 
 +
Значимые работы последних лет включают:
 +
 
 +
* '''[[GPT]] и его семейство.''' [[GPT]] (Radford et al., 2018), [[GPT-2]], [[GPT-3]], [[GPT-3.5]], [[GPT-4]] представляют собой авторегрессионные модели, обученные в режиме next-token prediction. [[GPT-3]] с 175 млрд параметров продемонстрировал неожиданно сильные few-shot способности благодаря масштабу. [[GPT-4]] добавил мультимодальность и улучшения в рассуждении.
 +
 
 +
* '''[[BERT]] и энкодеры.''' [[BERT]] (Devlin et al., 2019), [[RoBERTa]], [[ELECTRA]] показали, что предобучение на маскированном языковом моделировании создаёт мощные двунаправленные кодировщики, полезные для классификации и таких задач, как [[извлечение именованных сущностей]]. Эти модели обычно имеют 100М-350М параметров и хорошо перепираются на GPU среднего размера.
 +
 
 +
* '''Семейство T5.''' [[T5]] (Raffel et al., 2020) показал, что единая архитектура трансформера типа «кодировщик-декодировщик» может решать широкий спектр NLP-задач, включая [[классификация текста|классификацию]], вопросно-ответное взаимодействие, реферирование и [[машинный перевод]]. Все задачи формулируются как преобразование текста в текст (text-to-text).
 +
 
 +
* '''Многоязычные модели.''' [[mBERT]] (multilingual BERT), [[XLM-R]], [[mT5]], [[mBART]] обучаются на текстах множества языков одновременно и демонстрируют сильный кроссязычный перенос, что особенно важно для низкоресурсных языков.
 +
 
 +
* '''Специализированные модели.''' Помимо универсальных моделей развиваются модели, обученные на специфических доменах и задачах: [[SciBERT]] для научных текстов, [[ClimateBERT]] для климатических документов, медицинские BERT, финансовые BERT, правовые модели типа [[LawBERT]].
 +
 
 +
При этом SOTA в обработке естественного языка не сводится к максимальному числу параметров. Для [[классификация|классификации]] и [[извлечение именованных сущностей|извлечения сущностей]] компактный кодировщик на десятки миллионов параметров может быть быстрее, дешевле и стабильнее крупной генеративной модели. Например, модель порядка <tex>10^7</tex> параметров может быть достаточна для простого [[анализ тональности|анализа тональности]], тогда как модель порядка <tex>8\cdot10^7</tex> параметров обычно лучше переносит контекст и редкие формулировки, но требует больше памяти и времени инференса. Для сложных задач рассуждения, многошагового диалога и генерации кода преимущество получают модели с существенно большим масштабом и инструкционным дообучением.
 +
 
 +
Одно из центральных направлений — [[RAG|Retrieval-Augmented Generation (RAG)]]. В RAG входной запрос <tex>x</tex> сначала используется для поиска релевантных документов в коллекции <tex>\mathcal D</tex>:
 +
 
 +
::<tex>\mathcal D_k(x)=\operatorname{TopK}_{d\in\mathcal D}\operatorname{sim}(q(x),e(d)).</tex>
 +
 
 +
Затем генератор строит ответ <tex>y</tex> с учётом найденного контекста:
 +
 
 +
::<tex>p(y\mid x)\approx\sum_{d\in\mathcal D_k(x)}p_\eta(d\mid x)p_\theta(y\mid x,d).</tex>
 +
 
 +
[[RAG]] уменьшает число фактических ошибок, позволяет обновлять знания без полного переобучения модели и делает ответы проверяемыми через ссылки на источники. Однако качество RAG-системы зависит не только от генератора, но и от разбиения документов на фрагменты, эмбеддингов, индекса, ранжирования, дедупликации и защиты от нерелевантного контекста.
 +
 
 +
Актуальные бенчмарки включают:
 +
 
 +
* '''GLUE и SuperGLUE''' — наборы задач для оценки понимания языка, включающие классификацию текста, похожесть фраз, вывод на естественном языке.
 +
* '''SQuAD и Natural Questions''' — для вопросно-ответных систем.
 +
* '''WMT''' — для [[машинный перевод|машинного перевода]].
 +
* '''MMLU (Massive Multitask Language Understanding)''' — многопредметная проверка знаний, содержащая вопросы по 57 дисциплинам.
 +
* '''Big-Bench и HELM (Holistic Evaluation of Language Models)''' — комплексная оценка LLM на множестве задач и свойств.
 +
* '''XTREME и XNLI''' — для многоязычного переноса и перекрёстного языкового взаимодействия.
 +
* '''Russian SuperGLUE, RuSentiment, RuCoLA, Taiga, Lenta, RuBQ''' — для русскоязычных задач.
 +
 
 +
При интерпретации результатов важно учитывать загрязнение тестов обучающими данными, различия в [[prompt engineering|промптах]], размер контекстного окна, стоимость инференса и дисперсию оценок.
 +
 
 +
В прикладном SOTA широко используются:
 +
 
 +
* '''Инструкционное дообучение''' (instruction tuning) — дообучение на примерах вида (инструкция, ввод, ожидаемый вывод) для повышения способности следовать указаниям.
 +
* '''RLHF''' (Reinforcement Learning from Human Feedback) обучение с подкреплением на основе человеческих предпочтений, используется в ChatGPT и других моделях.
 +
* '''DPO''' (Direct Preference Optimization) прямая оптимизация на предпочтениях без явного обучения модели вознаграждения.
 +
* '''Конституционное обучение''' — использование набора конституционных принципов для улучшения качества и безопасности.
 +
* '''[[QLoRA]]''' квантизованная версия [[LoRA]], позволяющая дообучение больших моделей на более скромном оборудовании.
 +
* '''Адаптеры''' — небольшие параметрические модули, вставляемые в слои больших моделей для адаптации под новые задачи.
 +
* '''Дистилляция''' (distillation) — перенос знаний от большой модели к компактной, что уменьшает время инференса.
 +
* '''Квантизация''' — представление весов моделей с меньшей точностью (int8, fp16) для ускорения и экономии памяти.
 +
* '''Mixture of Experts (MoE)''' — архитектура, где разные эксперты обрабатывают разные части входа, позволяя масштабировать ёмкость без пропорционального роста вычислений.
 +
* '''Длинноконтекстные трансформеры''' — архитектуры типа [[Longformer]], [[BigBird]], [[ALiBi]], которые эффективно обрабатывают тысячи или десятки тысяч токенов, критичны для обработки полных документов и кодовых файлов.
 +
* '''Мультимодальные расширения''' интеграция текста с изображениями ([[CLIP]], [[ALIGN]]), аудио ([[Whisper]]), видео.
 +
 
 +
Всё более важными становятся не только точность (accuracy) и [[перплексия]], но и надёжность, калибровка уверенности модели, устойчивость к adversarial-промптам, приватность данных, воспроизводимость результатов, соответствие правовым ограничениям (GDPR, защита авторского права), прозрачность работы моделей и минимизация экологических выбросов при обучении и инференсе.
 +
 
 +
== См. также ==
 +
 
 +
* [[Машинное обучение]]
 +
* [[Глубокое обучение]]
 +
* [[Языковая модель]]
 +
* [[Токенизация]]
 +
* [[Векторное представление слова]]
 +
* [[Рекуррентная нейронная сеть]]
 +
* [[Машинный перевод]]
 +
* [[Классификация текста]]
 +
* [[Анализ тональности]]
 +
* [[Извлечение именованных сущностей]]
 +
* [[Синтаксический анализ]]
 +
* [[Семантический анализ]]
 +
* [[Информационный поиск]]
 +
* [[Вопросно-ответная система]]
 +
* [[Морфологический анализ]]
 +
* [[Лемматизация]]
 +
* [[Стемминг]]
 +
* [[Информационное извлечение]]
 +
* [[LoRA]]
 +
* [[Prompt engineering]]
 +
* [[BLEU]]
 +
* [[ROUGE]]
 +
* [[Перплексия]]
 +
 
 +
 
 +
== Примечания ==
 +
<references />
 +
 
 +
== Литература ==
 +
 
 +
{{статья | автор = Mikolov T., Chen K., Corrado G., Dean J. | заглавие = Efficient Estimation of Word Representations in Vector Space | издание = arXiv | год = 2013 | страницы = 1-12 }}
 +
 
 +
{{статья | автор = Vaswani A., Shazeer N., Parmar N., Uszkoreit J., Jones L., Gomez A. N., Kaiser L., Polosukhin I. | заглавие = Attention Is All You Need | издание = Advances in Neural Information Processing Systems | год = 2017 | страницы = 5998-6008 }}
 +
 
 +
{{статья | автор = Devlin J., Chang M.-W., Lee K., Toutanova K. | заглавие = BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding | издание = Proceedings of NAACL-HLT | год = 2019 | страницы = 4171-4186 }}
 +
 
 +
{{статья | автор = Brown T. B., Mann B., Ryder N., Subbiah M., Kaplan J. et al. | заглавие = Language Models are Few-Shot Learners | издание = Advances in Neural Information Processing Systems | год = 2020 | страницы = 1877-1901 }}
 +
 
 +
{{книга | автор = Jurafsky D., Martin J. H. | заглавие = Speech and Language Processing | место = Stanford | издательство = Stanford University | год = 2024 }}
 +
 
 +
[[Категория:Машинное обучение]]
 +
[[Категория:Искусственные нейронные сети]]
 +
[[Категория:Обработка естественного языка]]

Текущая версия

Статья написана с использованием LLM ChatGPT-5.5 и проверена участником Artem Abdulmanov 18:40, 17 июля 2026 (MSD)

Промпт приводится полностью в Обсуждение:Обработка естественного языка


Содержание

Введение

Обработка естественного языка (англ. Natural Language Processing, NLP) — область искусственного интеллекта, машинного обучения и компьютерной лингвистики, изучающая методы автоматического анализа, понимания, преобразования и генерации текстов и речи на естественных языках. Центральная задача обработки естественного языка состоит в построении вычислительных моделей, которые способны сопоставлять языковую форму с её смыслом, контекстом, намерением автора и требуемым действием системы.

Формально текст часто рассматривается как последовательность дискретных единиц — токенов x_{1:T}=(x_1,\ldots,x_T), принадлежащих словарю \mathcal V. Модель с параметрами \theta должна оценивать распределения вида p_\theta(y\mid x_{1:T}) для предсказания метки y, ответа, перевода, следующего токена или иной целевой структуры. В отличие от задач, где исходные признаки заданы численно, естественный язык дискретен, неоднозначен, контекстно зависим и содержит сложные явления: синонимию, омонимию, эллипсис, анафору, имплицитные знания и прагматику.

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

Мотивировка и историческая справка

Потребность в обработке естественного языка возникла одновременно с развитием вычислительной техники. Уже в 1950-х годах пионеры компьютерной лингвистики, включая Уоррена Уивера и Артура Самуэля, осознали, что компьютеры можно обучить обрабатывать и анализировать текст. В этот период доминировал символьный подход: использовались регулярные выражения, конечные автоматы, словари, экспертные правила и формальные грамматики. Теория порождающих грамматик Ноама Хомского, предложенная в конце 1950-х годов, оказала огромное влияние на представления о синтаксисе и формальной структуре языка.

Ранние системы машинного перевода, разработанные в 1950-1960-х годах под эгидой программы ARPA, использовали словари и морфосинтаксические правила. Однако первые попытки на автоматический перевод с русского на английский показали, что простой подход замены слов неэффективен. Проблема была признана столь сложной, что в 1966 году был выпущен отчёт ALPAC (Automatic Language Processing Advisory Committee), который значительно сокращает финансирование NLP на десятилетие.

В 1960-х–1980-х годах развивались методы синтаксического разбора, включая алгоритмы Кока–Янгера–Касами и Эрли, а также фреймворки типа семантических сетей и логических представлений. Система ELIZA, разработанная Джозефом Вайценбаумом в 1960-х, демонстрировала, что даже поверхностные шаблоны и простая подстановка текста могут создавать иллюзию понимания и диалога, хотя она и не обладала настоящим семантическим пониманием.

Символьные подходы были интерпретируемыми, но плохо масштабировались: для каждого языка, домена и жанра требовалось вручную описывать большое количество исключений и лингвистических правил. С ростом доступных текстовых корпусов и вычислительных ресурсов, начиная с 1980-х годов, в обработке естественного языка всё более прочно утверждался статистический подход. Появились скрытые марковские модели для морфологического анализа и разметки частей речи, вероятностные контекстно-свободные грамматики, байесовские сети и методы максимального правдоподобия. n-граммные языковые модели обеспечивали хорошее масштабирование на больших текстах, хотя и не могли моделировать дальние зависимости.

Параллельно развивались информационно-поисковые методы: TF-IDF, косинусное сходство документов, инвертированные индексы. Статистический машинный перевод на основе выравнивания фраз (phrase-based SMT) показал, что можно автоматически обучать модели перевода по двуязычным параллельным корпусам, хотя качество оставалось далеким от человеческого.

Важный переход произошёл с открытием распределительной семантики. Идея «слово известно по его окружению» (дистрибютивная гипотеза, предложенная Харрисом в 1954 году, но широко применённая только спустя десятилетия) привела к методам латентно-семантического анализа (LSA) и впоследствии к нейронным моделям Word2Vec (Мikolov et al., 2013), GloVe и fastText. В таких моделях слово w получает плотный вектор v_w\in\mathbb R^d, а семантическая близость измеряется геометрически. Word2Vec показал, что компактные векторные представления можно эффективно обучать на больших корпусах и использовать как признаки для широкого круга задач [1]. Это открыло эпоху глубокого обучения в обработке естественного языка.

В 2010-е годы произошёл быстрый переход к глубоким последовательностным моделям. Рекуррентные нейронные сети, особенно LSTM и GRU, позволили обрабатывать последовательности переменной длины и сохранять информацию на больших расстояниях благодаря механизму вентилей. Архитектура кодировщик-декодировщик (encoder-decoder), предложенная Сутскевером, Виецеля и Чо, позволила применять RNN к задачам трансформации последовательностей, таким как машинный перевод.

Решающий прорыв произошёл введением механизма внимания. Бахданау и соавторы (2014) показали, что модель-декодер может селективно фокусироваться на разных частях входной последовательности на каждом шаге, резко улучшив качество машинного перевода. Однако RNN-подход остаётся процедурным: обработка последовательности требует последовательных шагов, что плохо параллелизуется на современном GPU-оборудовании.

В 2017 году статья Vaswani et al. «Attention Is All You Need» представила архитектуру трансформера, которая полностью заменила рекуррентность на механизм самовнимания и полносвязные слои. Трансформер обрабатывает всю последовательность параллельно, благодаря чему хорошо масштабируется на GPU и TPU. Это стало основой для почти всех современных успехов в обработке естественного языка [1].

После появления BERT (Devlin et al., 2019) и GPT (Radford et al., 2018) произошла парадигма-шифт к предобучению больших моделей на общих текстовых корпусах и последующему дообучению под конкретные задачи. BERT ввёл эффективную схему маскированного языкового моделирования для двунаправленного кодировщика [1], позволяя модели видеть как левый, так и правый контекст одновременно. Семейство GPT показало масштабируемость авторегрессионных декодеров и возможность решения задач по инструкции без классического обучения на размеченной выборке [1].

В 2020-х годах произошло экспоненциальное увеличение масштаба моделей: от BERT с 340 млн параметров к GPT-3 с 175 млрд параметров, Chinchilla, PaLM и GPT-4. Работа Hoffmann et al. показала оптимальный баланс между размером модели и количеством токенов обучающих данных. Одновременно развивались методы эффективной адаптации больших моделей под новые задачи без полного переобучения: LoRA, QLoRA, адаптеры, prompt engineering и few-shot learning.

В современный период обработка естественного языка всё чаще объединяется с поиском (RAG), базами знаний, мультимодальными входами (текст + изображения в CLIP, DALL-E, GPT-4V), инструментальным выполнением действий и принципами конституционного обучения. Растут требования к безопасности, надёжности, интерпретируемости и соответствию правовым ограничениям, таким как защита персональных данных и борьба с дискриминацией в моделях.

Основные задачи обработки естественного языка

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

Задачи уровня токенов и слов.
  • Морфологический анализ. Определение морфологических свойств слова: части речи, падежа, числа, времени, вида и т.д. Особенно важна для синтетических языков с богатой морфологией (русский, финский, турецкий), менее актуальна для аналитических языков (английский, китайский).
  • Лемматизация. Приведение слова к его базовой форме (лемме). Например, слова «читал», «читать», «читают» лемматизируются в «читать». Используется в информационном поиске и документировании.
  • Стемминг. Приведение слова к его корню путём удаления суффиксов и префиксов. Проще лемматизации, но менее точно. Алгоритмы Porter Stemmer для английского языка широко распространены.
Задачи синтаксического анализа.
  • Синтаксический анализ. Определение грамматической структуры предложения. Включает построение дерева зависимостей (dependency tree), где каждое слово связано со своим главным словом, или дерева составляющих (constituency tree), представляющего иерархическую структуру фраз. Решается с помощью алгоритмов типа перехода (transition-based) или графовых (graph-based) методов.
  • Разрешение анафоры. Определение того, на какую сущность в тексте ссылается местоимение или дефинитный артикль. Например, в предложении «Мария встретила Джона, и он улыбнулся», нужно понять, что «он» относится к Джону. Решается с помощью методов графовых нейронных сетей и кандидатского ранжирования.
Задачи семантического анализа.
  • Анализ тональности (sentiment analysis). Определение эмоционального подтекста текста: позитивное, негативное или нейтральное отношение. Может выполняться на уровне документа, предложения или аспекта (aspect-based sentiment analysis). Широко используется для анализа отзывов, комментариев в социальных сетях и репутационного мониторинга.
  • Поиск по смыслу (semantic similarity). Определение семантической близости между двумя текстами. Используется в информационном поиске, дедупликации документов, рекомендательных системах. Решается с помощью обучения общих представлений через контрастные функции потерь.
  • Информационный поиск (information retrieval). Поиск релевантных документов в большой коллекции по запросу. Классические методы основаны на TF-IDF и косинусном сходстве; современные системы используют BERT и другие модели для семантического поиска.
Задачи преобразования текста.
  • Автоматическое реферирование (automatic summarization). Создание сжатого пересказа текста, сохраняющего ключевую информацию. Может быть экстрактивным (выбор ключевых фраз из исходного текста) или абстрактивным (генерация нового текста). Метрики: ROUGE, METEOR.
  • Исправление ошибок. Автоматическое исправление орфографических и грамматических ошибок в тексте. Современные модели основаны на трансформерах и способны исправлять сложные ошибки в контексте.
  • Парафразирование (paraphrasing). Переформулировка текста с сохранением смысла. Используется в генерации вариантов текстов, увеличении обучающей выборки, улучшении разнообразия ответов в диалоговых системах.
Задачи вопросно-ответного взаимодействия.
  • Вопросно-ответная система (question answering, QA). Поиск ответа на вопрос в текстовом контексте или ответ на базе знаний. Может быть открытого типа (нет готового контекста) или закрытого (ответ в документе). Наборы данных: SQuAD, Natural Questions, MS MARCO.
  • Информационное извлечение (information extraction). Выделение структурированной информации из неструктурированного текста. Может включать извлечение отношений между сущностями, событий, фактов, параметров (например, цены и рейтинги из описания товара).
Задачи диалога и генерации.
  • Диалоговые системы (dialogue systems). Системы, способные поддерживать диалог с пользователем. Включают task-oriented диалоговые системы (бронирование, поддержка клиентов) и open-domain чат-боты (общее общение). Современные системы основаны на больших языковых моделях.
  • Языковое моделирование (language modeling). Предсказание следующего токена по предыдущему контексту. Основа для генерации текста, автодополнения и многих других задач. Метрика: перплексия.
  • Текстогенерация (text generation). Генерация нового текста, отвечающего определённым критериям. Примеры: генерация описания изображения, генерация кода, творческое письмо. Решается с помощью декодеров трансформера и различных стратегий декодирования.
Задачи многоязычного анализа.
  • Определение языка (language identification). Автоматическое определение того, на каком языке написан текст. Обычно решается как многоклассовая классификация.
  • Кроссязычный перенос знаний (cross-lingual transfer). Использование моделей, обученных на одном языке, для задач на другом языке. Особенно важно для низкоресурсных языков. Мультиязычные модели типа mBERT и XLM-R обучаются на текстах многих языков одновременно.
Задачи интеграции знаний.
  • Связь с базами знаний. Связывание упомянутых в тексте сущностей с записями в структурированных базах знаний (например, Wikidata). Решается с помощью методов эмбеддирования сущностей и ранжирования кандидатов.
  • RAG (retrieval-augmented generation). Объединение поиска документов с генерацией ответа. Модель сначала извлекает релевантные документы из большой коллекции, а затем генерирует ответ с учётом найденного контекста.
Многомодальные задачи.
  • Визуальное вопросно-ответное взаимодействие (visual question answering, VQA). Ответ на вопросы о содержимом изображения.
  • Описание изображения (image captioning). Автоматическое создание текстового описания изображения.
  • Совместное обучение текста и изображений. Модели типа CLIP, ALIGN, которые учат совместное представление текста и изображений для поиска и классификации.

Математический аппарат и Архитектура

Представление текста и токенизация.

Пусть s — исходная строка, а \tauтокенизатор. Токенизация отображает строку в последовательность индексов словаря:

\tau(s)=x_{1:T},\qquad x_t\in\mathcal V.

В классической постановке токеном может быть слово, символ или морфема. В современных трансформерах обычно применяются подсловные токенизаторы: Byte Pair Encoding, WordPiece или SentencePiece. Они уменьшают проблему OOV, поскольку редкое слово раскладывается на более частые подсловные элементы. После токенизации индекс x_t кодируется one-hot-вектором e_{x_t}, который умножается на матрицу эмбеддингов E:

h_t^{(0)}=E^\top e_{x_t}+p_t,\qquad E\in\mathbb R^{|\mathcal V|\times d}.

Здесь h_t^{(0)} — начальное скрытое представление токена, d — размерность эмбеддинга, а p_t — позиционное представление, необходимое для учёта порядка токенов.

Мешок слов, TF-IDF и n-граммные модели.

Классическая модель мешка слов игнорирует порядок токенов и представляет документ как вектор частот. Для слова w, документа r и корпуса D вес TF-IDF обычно записывается как

\operatorname{tfidf}(w,r)=\operatorname{tf}(w,r)\log\frac{|D|}{1+\operatorname{df}(w)}.

Здесь \operatorname{tf}(w,r) — частота слова w в документе r, а \operatorname{df}(w) — число документов, содержащих это слово. Такой подход хорошо работает в информационном поиске и линейной классификации, но не моделирует дальние зависимости и смысловую многозначность.

В n-граммной языковой модели вероятность следующего токена приближается вероятностью, зависящей только от конечного контекста длины n-1:

p(x_t\mid x_{<t})\approx p(x_t\mid x_{t-n+1},\ldots,x_{t-1}).

При сглаживании Лапласа для истории h, следующего слова w, счётчика c(h,w) и параметра \alpha получается оценка

\hat p(w\mid h)=\frac{c(h,w)+\alpha}{c(h)+\alpha|\mathcal V|}.

Эти модели интерпретируемы и быстры, но страдают от разреженности: число возможных контекстов растёт экспоненциально с увеличением n.

Распределительная семантика и Word2Vec.

В распределительных моделях каждому слову соответствует плотный вектор. В задаче Skip-Gram с negative sampling модель максимизирует близость целевого слова w и контекстного слова c, одновременно отталкивая случайные отрицательные контексты \tilde c_j:

\mathcal L_{\mathrm{SGNS}}=-\log\sigma(u_w^\top v_c)-\sum_{j=1}^{m}\mathbb E_{\tilde c_j\sim P_n}\log\sigma(-u_w^\top v_{\tilde c_j}).

Здесь u_w и v_c — обучаемые векторы, m — число отрицательных примеров, P_n — шумовое распределение, а \sigmaлогистическая функция. Близость векторов часто измеряется косинусной мерой:

\operatorname{cos}(a,b)=\frac{a^\top b}{\|a\|_2\|b\|_2}.

Главное ограничение статических эмбеддингов состоит в том, что слово имеет один вектор независимо от контекста. Например, слово «ключ» в значениях «ключ от двери» и «ключ к задаче» требует разных представлений. Контекстные эмбеддинги, такие как ELMo и BERT, решают эту проблему путём вычисления представления слова на основе окружающего контекста.

Последовательностные нейронные модели.

Рекуррентная нейронная сеть обрабатывает последовательность слева направо и обновляет скрытое состояние h_t по предыдущему состоянию h_{t-1} и текущему токену x_t:

h_t=\phi(W_x e_{x_t}+W_hh_{t-1}+b),\qquad \hat y=\operatorname{softmax}(W_oh_T+b_o).

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

Самовнимание и трансформер.

В трансформере входная матрица скрытых состояний H\in\mathbb R^{T\times d_{\mathrm{model}}} преобразуется в матрицы запросов Q, ключей K и значений V:

Q=HW_Q,\qquad K=HW_K,\qquad V=HW_V.

Механизм scaled dot-product attention вычисляет веса взаимодействия всех токенов друг с другом:

\operatorname{Attention}(Q,K,V)=\operatorname{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V.

Деление на \sqrt{d_k} стабилизирует масштаб скалярных произведений. В многоголовом внимании используется несколько независимых проекций, что позволяет разным головам моделировать разные типы зависимостей:

\operatorname{head}_i=\operatorname{Attention}(HW_i^Q,HW_i^K,HW_i^V),\qquad \operatorname{MHA}(H)=\operatorname{Concat}(\operatorname{head}_1,\ldots,\operatorname{head}_m)W^O.

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

\tilde H=\operatorname{LayerNorm}(H+\operatorname{MHA}(H)),\qquad H'=\operatorname{LayerNorm}(\tilde H+\operatorname{FFN}(\tilde H)).
\operatorname{FFN}(h)=\sigma(hW_1+b_1)W_2+b_2.

Для авторегрессионной генерации используется каузальная маска, запрещающая позиции i смотреть на будущие позиции j:

A_{ij}=-\infty\quad\text{при}\quad j>i.

Именно самовнимание делает трансформер универсальной архитектурой для кодировщиков, декодировщиков и кодировщик-декодировщик моделей. Кодировщики, такие как BERT и RoBERTa, особенно полезны для понимания текста; декодировщики, такие как GPT и GPT-2, — для генерации; модели типа T5 и BART удобны для перевода, реферирования и преобразования текста в текст.

Функции потерь.

Для классификации с C классами обычно используется кросс-энтропия:

\mathcal L_{\mathrm{CE}}(\theta)=-\frac{1}{N}\sum_{i=1}^{N}\sum_{c=1}^{C}y_{ic}\log \hat y_{ic}.

В авторегрессионном языковом моделировании модель предсказывает следующий токен по предыдущим:

\mathcal L_{\mathrm{CLM}}(\theta)=-\sum_{t=1}^{T}\log p_\theta(x_t\mid x_{<t}).

В маскированном языковом моделировании, применяемом в BERT-подобных кодировщиках, восстанавливаются токены из множества масок M:

\mathcal L_{\mathrm{MLM}}(\theta)=-\sum_{t\in M}\log p_\theta(x_t\mid x_{\setminus M}).

Для задач преобразования последовательности x_{1:T_x} в последовательность y_{1:T_y} используется условная отрицательная логарифмическая правдоподобность:

\mathcal L_{\mathrm{seq2seq}}(\theta)=-\sum_{t=1}^{T_y}\log p_\theta(y_t\mid y_{<t},x_{1:T_x}).
Метрики качества.

Для классификации применяются accuracy, macro-averaging, micro-averaging и F_1-мера:

F_1=2\frac{\operatorname{precision}\cdot\operatorname{recall}}{\operatorname{precision}+\operatorname{recall}}.

Для языкового моделирования стандартной метрикой является перплексия:

\operatorname{PPL}=\exp\left(-\frac{1}{T}\sum_{t=1}^{T}\log p_\theta(x_t\mid x_{<t})\right).

Чем ниже \operatorname{PPL}, тем выше средняя вероятность правильных токенов, хотя низкая перплексияне гарантирует фактическую полезность ответа.

Для машинного перевода часто используется BLEU — геометрическое среднее модифицированных точностей по n-граммам с штрафом за слишком короткий перевод:

\operatorname{BLEU}=\operatorname{BP}\cdot\exp\left(\sum_{n=1}^{N}w_n\log p_n\right),\qquad \operatorname{BP}=\begin{cases}1,& l_{\mathrm{cand}}>l_{\mathrm{ref}},\\ \exp(1-l_{\mathrm{ref}}/l_{\mathrm{cand}}),& l_{\mathrm{cand}}\le l_{\mathrm{ref}}.\end{cases}

Для реферирования используется ROUGE, измеряющая покрытие эталонных N-грамм:

\operatorname{ROUGE}\text{-}N=\frac{\sum_{s\in S_{\mathrm{ref}}}\sum_{g\in G_N(s)}\min(C_{\mathrm{cand}}(g),C_{\mathrm{ref}}(g))}{\sum_{s\in S_{\mathrm{ref}}}\sum_{g\in G_N(s)}C_{\mathrm{ref}}(g)}.

Для вопросно-ответных систем используются точные совпадения (exact match) и F1-мера, основанная на перекрытии токенов между предсказанным и эталонным ответом. Автоматические метрики удобны для массового сравнения моделей, но в задачах генерации их необходимо дополнять человеческой оценкой, проверкой фактической корректности, устойчивости и безопасности.


Схема обучения и рекомендации

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

  • Разбиение данных. Нельзя допускать утечку между train, validation и test. Для новостных, юридических и медицинских корпусов особенно опасны дубликаты, пересечения авторов, цитируемые фрагменты и временная утечка. Если будущие документы отличаются от прошлых, предпочтительно временное разбиение.
  • Очистка и нормализация. Необходимо сохранять те элементы текста, которые несут сигнал для задачи. Например, пунктуация и регистр могут быть важны для анализа тональности, а удаление чисел может ухудшить извлечение фактов.
  • Токенизация и OOV. Подсловные методы уменьшают число неизвестных токенов, но могут дробить редкие имена и термины на длинные цепочки. Для доменных задач полезны адаптация токенизатора, добавление специальных токенов и продолжение предобучения на доменном корпусе.
  • Контекстное окно. Модель с максимальной длиной L не видит токены за пределами окна. Простая обрезка может удалить ключевой контекст. Для длинных документов применяются скользящие окна, иерархические модели, retrieval-подходы и архитектуры с разреженным вниманием.
  • Дисбаланс классов. В задачах классификации редкие классы требуют стратифицированного разбиения, взвешенной функции потерь, переоценки порога решения и анализа macro-метрик.
  • Катастрофическое забывание. При агрессивном дообучении большая модель может потерять общие знания. Рекомендуются малая скорость обучения \eta, ранняя остановка, заморозка части слоёв, адаптеры, LoRA и регуляризация.
  • Оценка генерации. Для реферирования, диалога и вопросно-ответных систем недостаточно BLEU или ROUGE. Нужно оценивать фактическую точность, полноту, токсичность, следование инструкции, устойчивость к подсказкам и воспроизводимость.
  • Хранение и обслуживание моделей. Необходимо отслеживать версии моделей, их производительность на разных наборах данных, дрейф дистрибуции, скорость инференса и энергопотребление. Используются инструменты типа MLflow, Weights & Biases, DVC для версионирования и мониторинга.

Оптимизация трансформеров обычно выполняется вариантом AdamW с раздельным weight decay:

\theta_{t+1}=\theta_t-\eta\frac{\hat m_t}{\sqrt{\hat v_t}+\epsilon}-\eta\lambda\theta_t.

Здесь \theta_t — параметры на шаге t, \hat m_t и \hat v_t — скорректированные оценки первого и второго моментов градиента, \eta — скорость обучения, \epsilon — стабилизирующая константа, а \lambda — коэффициент weight decay. На практике важны scheduler с warmup, gradient clipping и смешанная точность (mixed precision). Ограничение нормы градиента g порогом \gamma можно записать так:

g\leftarrow g\cdot\min\left(1,\frac{\gamma}{\|g\|_2}\right).

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

W'=W+\Delta W,\qquad \Delta W=\frac{\alpha}{r}BA,\qquad A\in\mathbb R^{r\times d_{\mathrm{in}}},\quad B\in\mathbb R^{d_{\mathrm{out}}\times r}.

Здесь r — ранг адаптации, а \alpha — масштабирующий коэффициент. LoRA резко уменьшает число обучаемых параметров, что особенно важно при дообучении больших языковых моделей на ограниченных GPU-ресурсах.

При генерации текста выбор следующего токена определяется распределением p_\theta(x_t\mid x_{<t}). Температурное масштабирование изменяет энтропию распределения:

p_i^{(\tau)}=\frac{\exp(z_i/\tau)}{\sum_j\exp(z_j/\tau)}.

Малая температура \tau делает ответы более детерминированными, большая — более разнообразными. Кроме greedy decoding и beam search используются sampling, top-k и nucleus sampling с порогом p. Для прикладных систем параметры декодирования следует подбирать не только по автоматическим метрикам, но и по требованиям к точности, стилю и безопасности.

Современные подходы и State-of-the-Art (SOTA)

Современное состояние обработки естественного языка определяется большими языковыми моделями (LLM), предобученными на огромных текстовых корпусах. Типичная LLM является декодерным трансформером, обученным минимизировать авторегрессионную потерю \mathcal L_{\mathrm{CLM}}. С увеличением числа параметров, объёма данных и вычислений модели приобретают способность к few-shot и zero-shot обобщению, следованию инструкциям, программированию, рассуждению по цепочке (chain-of-thought) и использованию внешних инструментов.

Значимые работы последних лет включают:

  • GPT и его семейство. GPT (Radford et al., 2018), GPT-2, GPT-3, GPT-3.5, GPT-4 представляют собой авторегрессионные модели, обученные в режиме next-token prediction. GPT-3 с 175 млрд параметров продемонстрировал неожиданно сильные few-shot способности благодаря масштабу. GPT-4 добавил мультимодальность и улучшения в рассуждении.
  • BERT и энкодеры. BERT (Devlin et al., 2019), RoBERTa, ELECTRA показали, что предобучение на маскированном языковом моделировании создаёт мощные двунаправленные кодировщики, полезные для классификации и таких задач, как извлечение именованных сущностей. Эти модели обычно имеют 100М-350М параметров и хорошо перепираются на GPU среднего размера.
  • Семейство T5. T5 (Raffel et al., 2020) показал, что единая архитектура трансформера типа «кодировщик-декодировщик» может решать широкий спектр NLP-задач, включая классификацию, вопросно-ответное взаимодействие, реферирование и машинный перевод. Все задачи формулируются как преобразование текста в текст (text-to-text).
  • Многоязычные модели. mBERT (multilingual BERT), XLM-R, mT5, mBART обучаются на текстах множества языков одновременно и демонстрируют сильный кроссязычный перенос, что особенно важно для низкоресурсных языков.
  • Специализированные модели. Помимо универсальных моделей развиваются модели, обученные на специфических доменах и задачах: SciBERT для научных текстов, ClimateBERT для климатических документов, медицинские BERT, финансовые BERT, правовые модели типа LawBERT.

При этом SOTA в обработке естественного языка не сводится к максимальному числу параметров. Для классификации и извлечения сущностей компактный кодировщик на десятки миллионов параметров может быть быстрее, дешевле и стабильнее крупной генеративной модели. Например, модель порядка 10^7 параметров может быть достаточна для простого анализа тональности, тогда как модель порядка 8\cdot10^7 параметров обычно лучше переносит контекст и редкие формулировки, но требует больше памяти и времени инференса. Для сложных задач рассуждения, многошагового диалога и генерации кода преимущество получают модели с существенно большим масштабом и инструкционным дообучением.

Одно из центральных направлений — Retrieval-Augmented Generation (RAG). В RAG входной запрос x сначала используется для поиска релевантных документов в коллекции \mathcal D:

\mathcal D_k(x)=\operatorname{TopK}_{d\in\mathcal D}\operatorname{sim}(q(x),e(d)).

Затем генератор строит ответ y с учётом найденного контекста:

p(y\mid x)\approx\sum_{d\in\mathcal D_k(x)}p_\eta(d\mid x)p_\theta(y\mid x,d).

RAG уменьшает число фактических ошибок, позволяет обновлять знания без полного переобучения модели и делает ответы проверяемыми через ссылки на источники. Однако качество RAG-системы зависит не только от генератора, но и от разбиения документов на фрагменты, эмбеддингов, индекса, ранжирования, дедупликации и защиты от нерелевантного контекста.

Актуальные бенчмарки включают:

  • GLUE и SuperGLUE — наборы задач для оценки понимания языка, включающие классификацию текста, похожесть фраз, вывод на естественном языке.
  • SQuAD и Natural Questions — для вопросно-ответных систем.
  • WMT — для машинного перевода.
  • MMLU (Massive Multitask Language Understanding) — многопредметная проверка знаний, содержащая вопросы по 57 дисциплинам.
  • Big-Bench и HELM (Holistic Evaluation of Language Models) — комплексная оценка LLM на множестве задач и свойств.
  • XTREME и XNLI — для многоязычного переноса и перекрёстного языкового взаимодействия.
  • Russian SuperGLUE, RuSentiment, RuCoLA, Taiga, Lenta, RuBQ — для русскоязычных задач.

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

В прикладном SOTA широко используются:

  • Инструкционное дообучение (instruction tuning) — дообучение на примерах вида (инструкция, ввод, ожидаемый вывод) для повышения способности следовать указаниям.
  • RLHF (Reinforcement Learning from Human Feedback) — обучение с подкреплением на основе человеческих предпочтений, используется в ChatGPT и других моделях.
  • DPO (Direct Preference Optimization) — прямая оптимизация на предпочтениях без явного обучения модели вознаграждения.
  • Конституционное обучение — использование набора конституционных принципов для улучшения качества и безопасности.
  • QLoRA — квантизованная версия LoRA, позволяющая дообучение больших моделей на более скромном оборудовании.
  • Адаптеры — небольшие параметрические модули, вставляемые в слои больших моделей для адаптации под новые задачи.
  • Дистилляция (distillation) — перенос знаний от большой модели к компактной, что уменьшает время инференса.
  • Квантизация — представление весов моделей с меньшей точностью (int8, fp16) для ускорения и экономии памяти.
  • Mixture of Experts (MoE) — архитектура, где разные эксперты обрабатывают разные части входа, позволяя масштабировать ёмкость без пропорционального роста вычислений.
  • Длинноконтекстные трансформеры — архитектуры типа Longformer, BigBird, ALiBi, которые эффективно обрабатывают тысячи или десятки тысяч токенов, критичны для обработки полных документов и кодовых файлов.
  • Мультимодальные расширения — интеграция текста с изображениями (CLIP, ALIGN), аудио (Whisper), видео.

Всё более важными становятся не только точность (accuracy) и перплексия, но и надёжность, калибровка уверенности модели, устойчивость к adversarial-промптам, приватность данных, воспроизводимость результатов, соответствие правовым ограничениям (GDPR, защита авторского права), прозрачность работы моделей и минимизация экологических выбросов при обучении и инференсе.

См. также


Примечания


Литература

Mikolov T., Chen K., Corrado G., Dean J. Efficient Estimation of Word Representations in Vector Space // arXiv. — 2013. — С. 1-12.

Vaswani A., Shazeer N., Parmar N., Uszkoreit J., Jones L., Gomez A. N., Kaiser L., Polosukhin I. Attention Is All You Need // Advances in Neural Information Processing Systems. — 2017. — С. 5998-6008.

Devlin J., Chang M.-W., Lee K., Toutanova K. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding // Proceedings of NAACL-HLT. — 2019. — С. 4171-4186.

Brown T. B., Mann B., Ryder N., Subbiah M., Kaplan J. et al. Language Models are Few-Shot Learners // Advances in Neural Information Processing Systems. — 2020. — С. 1877-1901.

Jurafsky D., Martin J. H. Speech and Language Processing. — Stanford: Stanford University, 2024.

Личные инструменты