NLP: от TF-IDF до LLM

Продвинутое понимание обработки естественного языка

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

Введение

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

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

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

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

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

TF-IDF (Term Frequency – Inverse Document Frequency) — способ оценить «важность» слова в документе относительно всей коллекции. Основа классического поиска и простой текстовой классификации.

Как устроено

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

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

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

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

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

TF-IDF

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

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

Word2Vec (2013) и GloVe (2014)

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

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

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

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

Word Embeddings

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

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

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

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

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

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

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

RNN LSTM

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

Статья «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 (только декодер), и для гибридов.

Transformer

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

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

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

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

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

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

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

BERT: только энкодер

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

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

От GPT-2 до GPT-4

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

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

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

GPT: только декодер

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

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

Что важно на практике

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

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

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

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

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

LLM

Сводная схема: от 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 — масштаб плюс инструкции и длинный контекст. Универсальные ассистенты, генерация кода, анализ, творческие задачи.

Roadmap

Заключение

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

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

Спасибо за внимание. Вопросы — в комментарии или в личку.

1 / 11