NLP: от TF-IDF до LLM — AI на vc.ru

Продвинутое понимание обработки естественного языка. Частотные формулы → векторы → трансформеры → большие языковые модели.

NLP: от TF-IDF до LLM

За последние 15+ лет обработка естественного языка изменилась сильнее, чем за предыдущие пятьдесят. Мы прошли путь от подсчёта частот слов до моделей, которые пишут код, ведут диалог и решают задачи по описанию.

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

Что разберём по шагам

  • TF-IDF — как оценить важность слова в документе и почему этого мало
  • Word Embeddings — слова как векторы и первые семантические аналогии
  • RNN и LSTM — учёт порядка слов и проблема длинных зависимостей
  • Transformer — почему «внимание» заменило рекурсию и как это масштабируется
  • BERT и GPT — зачем делят на энкодеры (понимание) и декодеры (генерация)
  • LLM — как масштаб даёт эмерджентные способности и когда что применять

TF-IDF: классика поиска

NLP: от TF-IDF до LLM

Как устроено

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

TF-IDF(t, d, D) = TF(t, d) × log(|D| / число док. с t)

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

Минусы: порядок слов не учитывается — «не люблю банки» и «банки не любят» для TF-IDF могут быть похожи. Разные формы одного слова (бегу, бежать) считаются разными токенами. Смысл и контекст не моделируются.

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

Word Embeddings: слова как векторы

NLP: от TF-IDF до LLM

Вместо «мешка слов» и частот — непрерывные векторы фиксированной размерности. Идея: близкие по смыслу слова должны быть близки в пространстве. Это уже не просто статистика, а представление семантики.

Word2Vec и GloVe

Word2Vec учит векторы без явной разметки: по контексту предсказываем слово или наоборот. CBOW — по окну слов вокруг угадываем центральное; Skip-gram — по слову предсказываем соседей. Обучение на огромных корпусах даёт знаменитые аналогии: «король − мужчина + женщина ≈ королева».

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

Размерность обычно 50–300 — удобно для классификаторов и быстрого семантического поиска. Но у каждого слова один вектор на всё: многозначность (полисемия) не учитывается — «ключ» от двери и «ключ» в музыке представлены одинаково.

Итог: большой шаг к смыслу, но контекст и порядок по-прежнему слабо задействованы.

RNN и LSTM: последовательность и память

NLP: от TF-IDF до LLM

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

RNN и проблема длинных зависимостей

Рекуррентная сеть обрабатывает текст по шагам: на каждом шаге есть скрытое состояние h_t, зависящее от текущего входа x_t и предыдущего состояния h_{t-1}. Теоретически в h может «жить» память обо всём предыдущем тексте.

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

LSTM (Long Short-Term Memory) вводит ячейку памяти и ворота: забывания, входа и выхода. Сеть явно решает, что забыть и что запомнить, и лучше сохраняет долгую зависимость. LSTM долго были основой для генерации и перевода.

Минус: последовательная обработка плохо параллелится на GPU, обучение медленное. Следующий шаг — отказаться от рекурсии и перейти на внимание.

Transformer: внимание без рекурсии

NLP: от TF-IDF до LLM

«Attention is All You Need» убрала рекурсию и заменила её механизмом внимания: каждая позиция в последовательности может «смотреть» на любую другую. Все позиции обрабатываются параллельно — это дало огромный выигрыш в масштабируемости и качестве.

Как устроено внимание

Из входа получаем три матрицы: запросы Q, ключи K и значения V (линейные проекции). Скалярное произведение Q и K даёт «схожесть» каждой позиции с каждой; после softmax получаем веса внимания. По этим весам усредняются V — в итоге каждый токен получает контекст от всех остальных.

Attention(Q,K,V) = softmax(QK^T / √d_k) × V

Делитель √d_k стабилизирует градиенты. Multi-Head Attention — несколько таких голов с разными проекциями; модель может одновременно учитывать разные типы связей (например, синтаксис и кореференцию). Результаты голов конкатенируются и проходят линейный слой.

Архитектура: энкодер — стопка блоков (self-attention + feed-forward, нормализация, остатки); декодер — стопка блоков с masked self-attention (не видит будущие токены), cross-attention на выход энкодера и feed-forward. Маскирование в декодере нужно для авторегрессивной генерации.

Transformer стал общей основой и для BERT (только энкодер), и для GPT (только декодер), и для гибридов.

BERT и энкодеры: понимание текста

NLP: от TF-IDF до LLM

BERT использует только энкодер трансформера и обучается без явной разметки на двух задачах: предсказание замаскированных токенов по контексту и предсказание того, идёт ли одно предложение за другим. В результате получаем контекстные представления для каждой позиции — одно и то же слово в разных контекстах даёт разные векторы.

Обучение и выход

MLM (Masked Language Model): случайно маскируем часть токенов (например, 15%) и учим модель предсказывать их по окружающему контексту. NSP (Next Sentence Prediction): подаём пару предложений и учим предсказывать, действительно ли B идёт после A. Обе задачи не требуют ручной разметки — можно учиться на любом текстовом корпусе.

На выходе — вектор для каждой позиции в последовательности. Токен [CLS] в начале часто используют как общее представление предложения для классификации; можно усреднять по позициям или брать эмбеддинги для поиска (запрос и документ кодируем и сравниваем по косинусу или скалярному произведению).

Где применяют: классификация текста (тональность, темы, интент), семантический поиск и ранжирование, извлечение сущностей (NER), ответы на вопросы (в паре с головой), эмбеддинги для кластеризации и рекомендаций. BERT и аналоги не предназначены для длинной генерации — они «понимают», но не «сочиняют» по токенам.

Итог: для задач понимания и поиска энкодеры до сих пор часто выгоднее или дополняют LLM (например, быстрый поиск по своим данным через BERT-эмбеддинги).

GPT и декодеры: генерация текста

NLP: от TF-IDF до LLM

В GPT используется только декодер трансформера с masked self-attention: модель не видит будущие токены. Обучение — классическое language modeling: предсказание следующего токена по всем предыдущим на огромных текстовых корпусах. Генерация — авторегрессия: по уже сгенерированным токенам предсказываем следующий, пока не получим конец или стоп-токен.

С ростом модели и объёма данных появились эмерджентные способности: few-shot и zero-shot выполнение задач без явного дообучения под каждую. GPT-3 показал, что масштаб сам по себе даёт универсальность. Дальше — мультимодальность (текст + изображение в GPT-4V и аналогах), инструктивное обучение (InstructGPT и далее) и RLHF (обучение с подкреплением по откликам человека) для «полезного» и безопасного поведения.

Декодеры стали основой для диалоговых систем, генерации кода, суммаризации, перевода «в стиле», написания текстов по описанию. Ограничение — длина контекста и стоимость инференса; для многих задач «понимания» (поиск, классификация) легковесный BERT или эмбеддинги от LLM часто достаточны и дешевле.

Итог: для генерации и сложных инструкций — декодеры и LLM; для понимания и поиска — можно комбинировать с энкодерами и более лёгкими моделями.

Большие языковые модели (LLM)

NLP: от TF-IDF до LLM

Свойства

Large Language Model — модель с десятками или сотнями миллиардов параметров, дообученная на огромных текстовых (и часто мультимодальных) данных. Обычно архитектура — трансформер-декодер или гибрид. Масштаб даёт эмерджентное поведение: следование инструкциям, рассуждения, генерация кода без явного обучения под каждую задачу.

Контекстное окно — десятки и сотни тысяч токенов позволяют подавать длинные документы и длинные диалоги. От этого зависят RAG-сценарии и «память» ассистента.

Интерфейс — текстовый ввод/вывод; поведение задаётся промптами и системными инструкциями. Prompt engineering и выбор формата сильно влияют на результат.

Дообучение и выравнивание — после предобучения на тексте идут fine-tuning на инструкциях и RLHF (обучение с подкреплением по оценкам человека), чтобы модель была полезной и безопасной.

Когда что использовать: для понимания, поиска и классификации часто достаточно BERT или эмбеддингов от LLM — быстрее и дешевле. Для генерации, диалога и сложных инструкций — полноценная LLM. Для самого простого и дёшевого базового уровня — TF-IDF или легковесные эмбеддинги.

Семейства: GPT, Claude, LLaMA/Mistral/Qwen (открытые), Gemini — у каждого свой фокус по контексту, мультимодальности и экосистеме.

Сводная схема: от TF-IDF до LLM

Краткая шпаргалка: какой подход что моделирует и для каких задач уместен. Выбор уровня абстракции — часть проектирования продукта: переплачивать за LLM там, где хватает BERT или TF-IDF, не имеет смысла; и наоборот — для диалога и сложной генерации «маленькие» модели быстро упираются в потолок.

1. TF-IDF — моделируем важность слова в документе. Подходит для поиска и простой классификации.

2. Word2Vec, GloVe — семантика слова в виде одного вектора. Удобно для аналогий и семантического поиска.

3. RNN, LSTM — порядок слов и короткая память. Исторически использовались для ранней генерации и классификации последовательностей.

4. Transformer — контекст и зависимости через механизм внимания. Универсальная основа для энкодеров и декодеров.

5. BERT и энкодеры — контекстное представление текста для каждой позиции. Задачи: NER, поиск, классификация, эмбеддинги.

6. GPT и декодеры — предсказание следующего токена. Основа для генерации, диалога, суммаризации.

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

NLP: от TF-IDF до LLM

Путь от TF-IDF до LLM — это переход от частот и «мешка слов» к векторам и смыслу; от одного вектора на слово к контекстным представлениям (BERT); от последовательной обработки (RNN/LSTM) к параллельному вниманию (Transformer); от задач «понять текст» к задачам «понять и сгенерировать» (GPT, LLM).

Продвинутое понимание NLP сегодня — это в том числе умение выбирать уровень: когда достаточно TF-IDF или легких эмбеддингов, когда нужен BERT-подобный энкодер, а когда — полноценная LLM с промптами и тонкой настройкой под задачу.