Основы NLP

  • Какие ограничения у attention? Сложность — O(n²), способы ускорения, flash-attention
  • Расскажите про трансформер: как он устроен и что внутри происходит
  • Что обучается в трансформере?
  • В чём смысл attention-слоя, формула, разница между query, key и value
  • Как рассчитывается TF-IDF?
  • Расскажите про LoRA (Low-Rank Adaptation)

Работа с текстами

  • Какие способы подачи текста в модель существуют?
  • Как разбивать текст на чанки?
  • Какие алгоритмы поиска использовать (например, ANN + косинусная близость)?
  • Что делать с текстом перед токенизацией (очистка, регистр)?
  • Что такое лемматизация? Чем отличается от стемминга?
  • Чем отличается токенизация от векторизации?
  • Как векторизовать текст помимо эмбеддингов (TF-IDF, BM25, bag of words, Word2Vec)?
  • Что такое TF-IDF? Расшифруй и объясни формулу.
  • Чем BM25 отличается от TF-IDF?
  • Какой размерности получается вектор TF-IDF для одного текста?
  • В чём разница между BM25-поиском и поиском по эмбеддингам? Когда BM25 не справится?
  • В чём разница между Bi-encoder и Cross-encoder?
  • Что такое NER? Какие задачи решает?
  • Когда TF-IDF может оказаться лучше BERT?

Токенайзер

  • Что такое n-grams, лемматизация, стемминг и очистка данных?
  • Что такое токенизация и какие виды токенайзеров существуют?
  • Как работает токенайзер?
  • Какие этапы в работе токенайзера есть?
  • Что такое нормализация и pre tokenize в токенайзере?
  • Как работает и обучается BPE?
  • Как работает и обучается WordPiece?
  • Как работает и обучается Unigram?
  • Что такое позиционное кодирование? Какие виды знаешь?
  • Как дообучить токенайзер, если мы хотим расширить словарь?
  • Какие способы токенизации существуют (по словам, по подсловам, по символам, BPE, WordPiece)?
  • На каком этапе появляется словарь? Как с ним работает токенизатор?
  • Что делать, если у BERT низкая плотность токенизации (1 токен ≈ 1 символ)?
  • Как расширить токенизатор, добавив дополнительные токены?
  • Как инициализировать новые эмбеддинги после расширения (среднее существующих, случайные, среднее склеивающихся токенов)?
  • Можно ли обучать только embedding-слой, заморозив остальные?
  • Какой токенизатор используется в BERT?

Метрики и анализ моделей NLP

  • Какие метрики классификации существуют? Формулы Precision, Recall, F1, макро- и микро-усреднение
  • Как строится ROC-AUC и какой результат будет для случайных данных?
  • Какие метрики устойчивы к дисбалансу классов?

Задачи для LLM

  • Как заставить LLM выполнять любую задачу, допустим задачу классификации?
    • Пример: задать правильный промпт (“Есть ли мат в данном предложении {предложение}? Ответь да или нет”)
  • Как можно заставить модель генерировать по шаблону текст?
    • Задать промпт с правилом
    • Поиграться с параметрами top_k и temperature
    • Во время генерации подсунуть токены модели (например, “json generation: {”)
  • Как оценить уверенность модели в своём ответе (лосс-функция, распределение логитов)?
  • Как построить классификацию на 80+ классов через LLM без дообучения?
  • Как подбирать few-shot примеры, когда классов много? Как добиться равномерного покрытия классов?
  • Почему нельзя просто увеличить число few-shot примеров до 50–100?
  • Когда LLM-классификация выигрывает у дообученного BERT? Как размер размеченного датасета влияет на выбор?

Оптимизация и обучение LLM

  • Как дообучать большие модели (LoRA)?
  • Как дообучать BERT на доменных данных?
  • Что такое прогрев нейросети?
  • Почему PyTorch стали чаще использовать, чем TensorFlow? В чём его главное преимущество?
  • Как устроен граф вычислений в PyTorch?
  • Что эффективнее на GPU — динамический или статический граф?
  • Что нужно архитектурно изменить, чтобы дообучить BERT с MLM-головой под классификацию?
  • Как использование маскирования (masking) при расчёте функции потерь в SFT влияет на процесс обучения на инструктивных наборах данных?
  • Какое явление наиболее вероятно при использовании слишком высокого learning rate на этапе SFT для модели, которая уже прошла качественный pre-training?
  • В чём заключается основное отличие задачи SFT от задачи Continuous Pre-training (дообучение на сыром тексте)?
  • Как использовать разметку от LLM для последующего обучения энкодерной модели?

Теория и архитектуры NLP

  • Что такое RNN и какие её варианты существуют?
  • Что такое Transformer?
  • Как работает attention?
  • Что такое positional encoding в трансформерах?
  • Что такое perplexity?
  • Из каких двух больших блоков состоит трансформер?
  • Какие модели энкодерные, декодерные, полные трансформеры (BERT, GPT, T5)?
  • На каких двух задачах обучали BERT (MLM + NSP)?
  • Чем GPT отличается от BERT с точки зрения генерации?
  • В чём преимущества архитектуры Transformer?
  • В чём заключается ключевое отличие механизма Disentangled Attention в модели DeBERTa от стандартного Self-Attention в BERT?
  • В методе ELECTRA используется задача Replaced Token Detection (RTD). Почему обучение дискриминатора в ELECTRA считается более эффективным, чем MLM в BERT при том же объёме данных?
  • При использовании SimCSE (Unsupervised) для обучения Bi-Encoder, как формируются положительные пары (positive pairs) для Contrastive Loss?
  • В RoBERTa было предложено Dynamic Masking вместо Static Masking. В чём технически заключается эта разница?

Задачи с текстом

  • Как распараллелить обработку миллиарда событий с BERT, чтобы уложиться хотя бы в час?
  • Как построить классификатор для модерации или цензурирования текста?
  • Как сопоставить пользовательский поисковый запрос с объектами в большой базе?
  • Какую модель выбрать для классификации большой товарной номенклатуры?
  • Как BERT может сопоставлять пользовательский запрос с товаром?
  • Как организовать поиск при наличии опечаток в запросе?