Практикум по цели обучения и оценке

Как сравнивать потери и перплексию

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

База → проверка обучения и оценки65 минут5 модулей10 вопросов
После курса

Что вы сможете сделать

  1. Объяснять цель предсказания следующего токена и проверять соответствие выходной позиции целевой метке.
  2. Различать исходные оценки классов, маску внимания и метки, исключённые из потерь.
  3. Вычислять среднюю отрицательную логарифмическую вероятность и перплексию по учитываемым целям.
  4. Проверять условия сравнения перплексии и отделять её от фактической точности ответа.
  5. Проверять независимость теста от обучения и отличать найденное пересечение от доказанного запоминания.
Модуль 1 из 5

Поставьте два отчёта рядом

Сравнение имеет смысл, только если отчёты оценивают одни и те же цели по одному протоколу.

  • В задаче предсказания следующего токена вероятность последовательности — произведение вероятностей токенов при предыдущем контексте. Повышению этого произведения соответствует минимизация отрицательной суммы логарифмов вероятностей.

    Проверить тезис: Обучение модели 12

  • Отрицательная логарифмическая вероятность (NLL) одной цели равна −ln p, где p — назначенная ей вероятность. Перед расчётом определите целевые позиции и контекст, доступный при каждом предсказании.

    Проверить тезис: Обучение модели 12 · Самовнимание 02 · Кросс-энтропия 01

  • Синтетический пример оценки двух фиксированных вариантов, не потерь обучения разных запусков: один и тот же текст, токенизатор, контекст и протокол оценки; одинаковые четыре цели после сдвига, пять исключённых меток, натуральные логарифмы и равный вес целей. У A сумма отрицательных логарифмов вероятностей (NLL)=6, среднее 6/4=1,5; у B сумма=8, среднее 8/4=2. Ошибочный отчёт делит потери B на все девять позиций и получает 8/9≈0,89, поэтому объявляет B лучше. При правильном знаменателе эта победа исчезает: на этом наборе средняя NLL A ниже.

    Проверить тезис: Кросс-энтропия 01 03

Модуль 2 из 5

Проверьте сдвиг и знаменатель

Сначала найдите цели после сдвига, затем исключите метки и посчитайте знаменатель.

  • Логиты — исходные оценки возможных токенов до преобразования в вероятности. В GPT2LMHeadModel Transformers 4.44.2 при input_ids=labels=[A,B,C] в потери входят пары A→B и B→C. Модель исключает выход последней позиции и первую целевую метку. Чтобы включить C→D тем же способом, передайте [A,B,C,D] как вход и как labels: D автоматически не добавляется. DataCollatorForLanguageModeling при mlm=False копирует входные идентификаторы в метки, но не сдвигает их. Повторный сдвиг при подготовке меток нарушит пары.

    Проверить тезис: Кросс-энтропия 02

  • Причинная маска закрывает будущие позиции. Вместе со сдвигом это означает: выход A предсказывает B, не видя B. Маска ограничивает контекст внимания, но не определяет, какие цели входят в среднюю потерю.

    Проверить тезис: Самовнимание 02 · Кросс-энтропия 05

Модуль 3 из 5

Проверьте расчёт потерь

Логиты, маска внимания и целевые метки отвечают за разные части расчёта.

  • CrossEntropyLoss PyTorch 2.9 принимает логиты и целевые индексы. Без весов классов и сглаживания, при reduction=mean, она усредняет −ln p правильного класса по учитываемым целям.

    Проверить тезис: Кросс-энтропия 01 04

  • CrossEntropyLoss сама получает логарифмы вероятностей из логитов. Готовые вероятности вместо логитов меняют расчёт. NLLLoss, напротив, принимает уже логарифмы вероятностей.

    Проверить тезис: Кросс-энтропия 04

  • В рассмотренном GPT2LMHeadModel attention_mask задаёт видимость позиций. Цель исключается из CrossEntropyLoss по значению ignore_index в её метке; маска внимания не заменяет это значение.

    Проверить тезис: Кросс-энтропия 05

  • Сумма NLL равна 6 для трёх целей с одинаковым весом: среднее 6/3=2. Ещё три исключённые метки не увеличивают знаменатель.

    Проверить тезис: Кросс-энтропия 03

Модуль 4 из 5

Пересчитайте перплексию

Перплексия переводит среднюю NLL в другую шкалу, сохраняя зависимость от протокола оценки.

  • Для обычной средней NLL с натуральными логарифмами и одинаковым весом целей перплексия равна exp(NLL). Нельзя автоматически брать экспоненту любой величины, названной «потерей».

    Проверить тезис: Перплексия языковой модели 01

  • Для двух целей с одинаковым весом и вероятностями 1/2 и 1/8 средняя NLL равна (ln 2+ln 8)/2=ln 4. Перплексия равна 4.

    Проверить тезис: Перплексия языковой модели 02

  • Учебный пример для GPT2LMHeadModel Transformers 4.44.2: 12 токенов, длина окна 8, шаг 4. Метки копируют вход; −100 исключает повторные цели. В первом окне сдвиг оставляет 7 целей. Во втором первые 4 метки уже исключены: сдвиг удаляет исключённую метку, остаются 4 цели. При условных средних NLL 1 и 3 общая NLL=(7×1+4×3)/11=19/11; простое среднее окон 2 неверно.

    Проверить тезис: Перплексия языковой модели 03 06 · Кросс-энтропия 02

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

    Проверить тезис: Перплексия языковой модели 04

  • Запишите длину и шаг окон, правила обработки специальных токенов, заполнителей и масок. Так можно восстановить доступный контекст и набор целей.

    Проверить тезис: Перплексия языковой модели 05

  • Каждую цель учитывайте один раз. Число целей определяйте после сдвига и исключения меток, а не по длине окна. Окна без целей пропускайте до расчёта среднего. При нулевом общем числе целей средняя NLL и перплексия не определены.

    Проверить тезис: Перплексия языковой модели 06

  • Меньшая перплексия не подтверждает истинность отдельного ответа. Для этого отдельно сверяют утверждения с источниками; метрика токенных вероятностей такой проверки не выполняет.

    Проверить тезис: Перплексия языковой модели 07

Модуль 5 из 5

Проверьте пересечения с обучающими данными

Правильный расчёт метрики ещё не показывает, что тест независим от обучения.

  • Если задания или их варианты попали в обучение, результат может отражать знакомство с тестом. Но совпавший исходный текст — ещё не найденная пара вопрос/ответ: сначала установите, что именно встретилось в корпусе.

    Проверить тезис: Загрязнение тестовых данных 01 02

  • Учебный пример: обе модели решали одни и те же 12 заданий. У A 10 верных ответов, у B — 9. Точный поиск в доступном обучающем корпусе A отметил четыре задания; на них у A 4 верных ответа, у B — 3. На остальных восьми у обеих по 6 верных ответов. Полная оценка: A — 10/12≈83,3%, B — 9/12=75%; после исключения одной и той же четвёрки у обеих 6/8=75%. Причина исходного различия не установлена. Пример вымышленный; состав обучения B неизвестен.

    Проверить тезис: Загрязнение тестовых данных 07 05

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

    Проверить тезис: Загрязнение тестовых данных 03 04 06

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

    Проверить тезис: Загрязнение тестовых данных 05 06

Финишная прямая

Проверьте инженерное мышление

Вопросы проверяют не память на аббревиатуры, а умение не делать лишних выводов.

01В отчёте по последовательности A, B, C автор предлагает максимизировать сумму условных вероятностей токенов. Какую величину следует оптимизировать в авторегрессионной задаче?
02При проверке GPT2LMHeadModel Transformers 4.44.2 ревьюер видит исходные вход A, B, C и метки A, B, C без заполнителей. Автор предлагает вручную сдвинуть метки перед передачей. Какие пары участвуют после внутреннего сдвига модели, если сохранить исходные вход и метки?
03В синтетическом отчёте A сумма NLL равна 6 по четырём учитываемым целям, B — 8 по тем же целям. После сдвига у обоих исключены ещё пять меток. Отчёт делит потери B на все девять позиций и объявляет B лучше. Какова средняя NLL B по учитываемым целям?
04В отчёте для GPT2LMHeadModel Transformers 4.44.2 автор обнулил attention_mask на заполнителях и считает, что тем самым исключил цели из CrossEntropyLoss. Что нужно проверить в целевых метках?
05В отдельной проверке отчёта вероятности двух правильных целевых токенов равны 1/2 и 1/8. Цели имеют одинаковый вес, логарифм натуральный. Какова перплексия?
06Для объединения окон отчёт усреднил средние значения окон напрямую: в X две учитываемые цели со средней NLL 1, в Y — шесть со средней NLL 3. Все цели имеют одинаковый вес. Какова средняя NLL по восьми целям?
07Ревьюер сравнивает два отчёта одной модели, но в них разные токенизаторы и окна. Что сделать до выбора лучшего результата?
08В отчёте на одном тексте, с тем же токенизатором и по одному протоколу у модели A ниже перплексия, чем у B. Коллега заключил, что у A меньше фактических ошибок. Какой вывод действительно следует из сравнения?
09В новом учебном отчёте обе модели решали одни и те же 20 заданий. У A 17 верных ответов, у B — 15. После исключения одних и тех же пяти заданий у A остаётся 12 верных, у B — 11. Сколько верных было на исключённой группе? Выберите пару (A; B).
10Вернитесь к истории с 12 заданиями: точный поиск в доступной части обучения A отметил четыре задания. Какой отчёт соответствует объёму этой проверки?
Проверяемая база

Источники курса

Полные сведения о первоисточниках приведены один раз для всего курса. Под тезисами — ссылки на соответствующие утверждения Архивариума.

  • Первичная публикация

    Improving Language Understanding by Generative Pre-Training

    Alec Radford, Karthik Narasimhan, Tim Salimans, Ilya Sutskever; OpenAI · 2018; §§3.1–3.2, equations 1–5; §4.1 Model specifications; PDF pp. 3, 5

    §3.1, формулы 1–2 описывают авторегрессионную цель обучения. §3.2 относится к конкретному дообучению на размеченных данных; его нельзя переносить на все современные схемы дообучения. 26.10.2026 сверён §4.1: GPT-1 использует decoder-only Transformer с masked self-attention.

    Открыть первоисточник
  • Первичная публикация

    Attention Is All You Need

    Ashish Vaswani и соавторы · arXiv:1706.03762v5, 6 декабря 2017; §§3.1–3.5

    Прочитаны §§2, 3.1–3.2.3 и 4 (15.10.2026); 26.10.2026 дополнительно сверены §§3.3 и 3.5 для position-wise FFN и позиционного кодирования. Формулы и маска сверены с публикационным PDF NeurIPS 2017, с. 3–5.

    Открыть первоисточник
  • Официальная документация

    CrossEntropyLoss

    PyTorch Contributors · PyTorch 2.9; indexed targets, ignore_index, weight and reduction semantics

    Общая формула использована для определения кросс-энтропии. Примеры средней NLL по токенам ограничены индексными целями, weight=None, label_smoothing=0 и reduction=mean. Функция принимает логиты; иные веса и цели требуют другого расчёта.

    Открыть первоисточник
  • Официальная документация

    Transformers v4.44.2: GPT-2 model implementation

    Hugging Face · Transformers v4.44.2; GPT2LMHeadModel.forward, lines 1308–1348

    Код v4.44.2 прочитан локально, не исполнен. Утверждение о сдвиге ограничено GPT2LMHeadModel этой версии: исключаются вектор логитов последней позиции и первая целевая метка, затем вызывается CrossEntropyLoss.

    Открыть первоисточник
  • Официальная документация

    Transformers v4.44.2: data collators

    Hugging Face · Transformers v4.44.2; DataCollatorForLanguageModeling, lines 803–825

    При mlm=False DataCollatorForLanguageModeling копирует input_ids в labels, а метки с pad_token_id заменяет на −100. Сдвиг выполняет модель. Если заполнителю и концу последовательности назначен один ID, метки исключаются по этому ID.

    Открыть первоисточник
  • Официальная документация

    Perplexity of fixed-length models

    Hugging Face · Transformers 4.44.2; Perplexity; Calculating PPL with fixed-length models

    Прочитаны определение, токенизация, ограничения контекста и рецепт окон. Именно v4.44.2 усредняет средние окон с одинаковым весом, а комментарий trg_len−1 неверен для перекрытия, когда первая метка уже исключена. Эти части рецепта не используются как точный расчёт NLL по токенам.

    Открыть первоисточник
  • Первичная публикация

    Rethinking Benchmark and Contamination for Language Models with Rephrased Samples

    Shuo Yang et al., UC Berkeley / Shanghai Jiao Tong University · arXiv:2311.04850v2, 11.11.2023; sections 2, 5.1–5.2, tables 5–6

    В исследованных MMLU и HumanEval показан пропуск перефразировок при поиске совпадающих цепочек слов. Эти результаты не устанавливают частоту пропусков для других моделей и наборов данных.

    Открыть первоисточник
  • Первичная публикация

    Language Models are Few-Shot Learners

    OpenAI · arXiv:2005.14165v4, 22.07.2020; section 4 and Appendix C

    Раздел 4 различает исходный контекст и пару вопрос/ответ; приложение C описывает поиск совпадений. Удаление найденных примеров меняет состав оценки. Это исследование GPT-3, не проверка современных моделей.

    Открыть первоисточник
Подтвердите действие