Что такое языковая модель?

«Что такое языковая модель?» — вопрос из категории NLP и трансформеры, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Языковая модель — это вероятностная модель, которая предсказывает следующее слово (или токен) в последовательности на основе предыдущих. Современные языковые модели, такие как основанные на архитектуре Transformer, обучаются на огромных текстовых корпусах и способны генерировать связный текст, выполнять перевод, отвечать на вопросы и многое другое.

Техническая суть:

  • Задача: Оценить вероятность последовательности слов: P(w_t | w_1, w_2, ..., w_{t-1}).
  • Архитектура: Исторически использовались n-граммы и RNN/LSTM. Сейчас доминируют Transformer-модели (например, GPT, BERT, T5), которые используют механизм внимания для учета контекста любой длины.
  • Обучение: Самообучение (self-supervised learning) на задачах вроде предсказания замаскированного токена (MLM для BERT) или следующего токена (авторегрессия для GPT).

Пример использования предобученной модели GPT-2 для генерации текста:

from transformers import pipeline
generator = pipeline('text-generation', model='gpt2')
generated_text = generator("The future of AI is", max_length=50, num_return_sequences=1)
print(generated_text[0]['generated_text'])

Применение: Машинный перевод, чат-боты, суммаризация, исправление грамматики, генерация кода.