Задача, данные, модель, функция потерь
Из чего состоит любая задача машинного обучения — данные, модель, функция потерь и оптимизация, виды обучения, train/val/test — и где всё это живёт внутри LLM.
Зачем это нужно
Заголовок раздела «Зачем это нужно»Откройте техотчёт (технический отчёт — статью, где компания описывает, как обучала модель) любой китайской модели — DeepSeek-V3, Qwen3, Kimi K2. Вы увидите слова «данные для обучения», «функция потерь», «валидационный loss», «обучение с подкреплением», «held-out» (отложенные данные, которых модель не видела при обучении). Это словарь машинное обучениемашинное обучениеEN machine learning (ML), и большая языковая модельбольшая языковая модель (БЯМ, LLM)EN large language model (LLM)В китайском «большая модель» («да мосин») — разговорное общее название для LLM и вообще foundation models. — просто очень большой частный случай ML. Без этого словаря статьи читаются как шифровка.
В уроке 0.0.1 вы видели ML «с высоты птичьего полёта». Теперь разберём его устройство по деталям. Вся математика, которая понадобится, уже была в ступени 1, и на каждое понятие будет ссылка на урок, где оно введено.
Хорошая новость: словарь небольшой. Любая задача — от прогноза цены квартиры до обучения DeepSeek-R1 — собирается из одних и тех же четырёх кирпичей. Разберём их, а потом увидим, что три этапа создания чат-модели соответствуют трём видам обучения, которые вы сегодня изучите.
Программа против обучения
Заголовок раздела «Программа против обучения»В обычном программировании человек пишет правила: «если в письме есть слово “выигрыш” и ссылка — это спам». Такие правила быстро ломаются. Спамеры пишут «выuгрыш» латинской «u», а честные письма о лотерее попадают в спам.
Машинное обучение переворачивает схему. Мы не пишем правила, а показываем примеры с ответами: тысячи писем с пометками «спам» или «не спам». Алгоритм сам подбирает правило, которое лучше всего согласуется с примерами.
| Классическое программирование | Машинное обучение | |
|---|---|---|
| Вход | правила + данные | данные + ответы |
| Выход | ответы | правила (обученная модель) |
| Кто пишет правило | программист | алгоритм обучения |
Классическое определение дал Том Митчелл (1997): программа учится на опыте E относительно задачи T и меры качества P, если её качество на T, измеренное P, растёт с опытом E. Для спам-фильтра T — сортировать письма, P — доля верных решений, E — размеченный архив писем.
Четыре кирпича любой задачи
Заголовок раздела «Четыре кирпича любой задачи»Учебник «Погружение в глубокое обучение» (d2l-zh) начинает именно с этого списка. В любой задаче ML есть:
- Данные — примеры, на которых учимся.
- Модель — семейство функций с настраиваемыми параметрамипараметрEN parameter .
- Функция потерь (функция потерьфункция потерьEN loss function) — число, которое говорит, насколько модель ошибается.
- Алгоритм оптимизации — способ найти , при которых потери минимальны.
Сначала обозначения. («тета») — общее имя для всех настраиваемых чисел модели сразу: у прямой это пара , у LLM — миллиарды весов. — ответ модели с параметрами на вход . Его обозначают («игрек с крышкой»), а правильный ответ — просто .
Формально: есть набор данных, датасетнабор данных, датасетEN dataset — набор из пар «вход — правильный ответ», модель и потери («эль») — ошибка на одном примере. Обучение — это поиск
Прочитаем по частям (урок 1.0.3). Для каждого кандидата прогоняем через модель все примеров, считаем ошибку на каждом и усредняем ( — это просто среднее). устроен как из урока 1.0.3, только ищет минимум: «тот , при котором это среднее минимально». Звёздочка в означает «лучший».
Пример. Пусть ошибка на примере — квадрат разности , а настоящие цены трёх квартир — 10, 10 и 12 млн ₽.
| Кандидат | Предсказания | Квадраты ошибок | Среднее |
|---|---|---|---|
| 9, 11, 14 | 1, 1, 4 | 2 | |
| 10, 11, 12 | 0, 1, 0 | 0.33 |
У среднее меньше, значит, он лучше. Обучение — это поиск такого кандидата, лучше которого нет.
Формула обучения выше называется минимизация эмпирического рискаминимизация эмпирического рискаEN empirical risk minimization (ERM)Подбор параметров, минимизирующих средний loss на обучающей выборке. В учебнике Ли Хана — «стратегия», одна из трёх составляющих метода. (ERM): средняя ошибка на имеющихся примерах — «эмпирический риск». Запомните её: дальше в курсе меняются только (от прямой до трансформера) и .
| Кирпич | Цена квартиры | Языковая модель (Qwen, DeepSeek) |
|---|---|---|
| Данные | тысячи квартир: площадь, район → цена | триллионы токенов текста и кода (у DeepSeek-V3 — 14.8T) |
| Модель | , 2 параметра | трансформер, миллиарды параметров |
| Потери | среднеквадратичная ошибка | cross-entropy следующего токена |
| Оптимизация | формула или градиентный спуск | AdamW (у Kimi K2 — MuonClip) |
Данные: объекты, признаки, метки
Заголовок раздела «Данные: объекты, признаки, метки»Каждый пример (объект) описывается набором признаковпризнакEN featureОдно измеримое свойство объекта, вход модели. «Feature engineering» — конструирование признаков. — вектором , то есть списком из чисел (урок 1.1.1; запись — из урока 1.0.3). У квартиры, например, : площадь, этаж, год постройки — . То, что нужно предсказать, называется меткой или целевой переменнойметка, целевая переменная, таргетEN label / target : здесь это цена.
Вот четыре строки из знаменитого датасета про арбузы из китайского учебника — «Арбузной книги» Чжоу Чжихуа (подробнее — в блоке «Китайский угол» ниже). Задача: по внешнему виду понять, хороший ли арбуз.
| № | окраска | хвостик | звук при стуке | узор | хороший? |
|---|---|---|---|---|---|
| 1 | зелёная | скрученный | гулкий | чёткий | да |
| 2 | тёмная | скрученный | глухой | чёткий | да |
| 10 | зелёная | прямой | звонкий | чёткий | нет |
| 11 | светлая | прямой | звонкий | размытый | нет |
Признаки бывают разными:
- Числовые — площадь 54 м², возраст 31 год. Подаются в модель как есть (часто после нормализации, урок 2.2.1).
- Категориальные — окраска «зелёная / тёмная / светлая». Модель умеет работать только с числами, а «зелёная» не число. Поэтому категории кодируют, например, через one-hot кодированиеone-hot кодирование (унитарный код)EN one-hot encodingВектор длины V из нулей с единицей в позиции номера токена. Все one-hot векторы попарно ортогональны. (урок 1.0.3): заводят по позиции на каждый вариант и ставят 1 на месте нужного. «Зелёная» → , «тёмная» → , «светлая» → . Просто пронумеровать цвета 1, 2, 3 хуже: модель решит, что «светлая» втрое больше «зелёной».
- Сырые сигналы — пиксели, звук, текст. Цветная картинка 200×200 — это чисел. Текст сначала режут на токены и превращают в векторы (ступень 4).
Глубокое обучение ценно тем, что умеет само извлекать полезные признаки из сырых сигналов. В классическом ML признаки придумывает человек: это называется feature engineering — «инженерия признаков» (китайский термин значит то же самое).
Модель — не одна функция, а семейство функций, из которого обучение выбирает лучшую. «Все прямые » — семейство с двумя параметрами. «Все трансформеры с такой-то архитектурой» — семейство с сотнями миллиардов параметров. Выбирая семейство, вы заранее решаете, какие закономерности модель вообще способна выразить. Прямая никогда не опишет синусоиду, сколько её ни учи. В «Арбузной книге» это называют пространством гипотез.
Функция потерь
Заголовок раздела «Функция потерь»Потери переводят «насколько модель неправа» в одно число. Для чисел обычно берут квадрат ошибки , усреднённый по примерам — среднеквадратичная ошибкасреднеквадратичная ошибка (MSE)EN mean squared error (MSE)Корень из MSE — RMSE (root mean squared error), измеряется в тех же единицах, что и целевая переменная.. Для классов естественная мера — доля ошибок, но у неё есть беда: она ступенчатая. Немного сдвинули параметры — доля ошибок не изменилась, производная равна нулю, градиентному спуску не за что зацепиться. Поэтому оптимизируют гладкую замену — перекрёстная энтропияперекрёстная энтропияEN cross-entropy из урока 1.3, а долю ошибок считают как метрику. Почему метрика и loss — разные вещи, подробно разберём в уроке 2.2.3.
Оптимизация
Заголовок раздела «Оптимизация»Когда данные, модель и потери заданы, остаётся найти минимум. Иногда хватает формулы (линейная регрессия, урок 2.2.1). Иногда можно просто перебрать варианты — так мы сделаем в практике ниже. В нейросетях почти всегда работает градиентный спускградиентный спускEN gradient descent и его потомки из урока 1.4.1: много раз немного сдвигаем параметры в ту сторону, где потери убывают.
Виды обучения
Заголовок раздела «Виды обучения»С учителем: регрессия и классификация
Заголовок раздела «С учителем: регрессия и классификация»В обучении с учителемобучение с учителемEN supervised learningДля каждого примера известен правильный ответ (метка). SFT в LLM — тоже обучение с учителем. у каждого примера есть правильный ответ. Два главных типа задач:
- регрессиярегрессияEN regressionЗадача предсказания числа (цены, температуры, времени). — предсказать число: цену квартиры, спрос на завтра, время доставки.
- классификацияклассификацияEN classificationЗадача выбора одного класса из конечного набора. Предсказание следующего токена — классификация на V классов. — выбрать класс из конечного набора: спам или нет, какая цифра на картинке, на каком языке написан текст.
Классификация бывает бинарной (два класса), многоклассовой (один из многих) и многометочной (несколько меток сразу: у статьи могут быть теги «LLM» и «Китай» одновременно).
Предсказание следующего токена — это многоклассовая классификация, просто классов очень много. У Qwen3 словарь около 152 тысяч токенов. Каждый шаг генерации — выбор одного из 152 тысяч классов.
Без учителя
Заголовок раздела «Без учителя»В обучении без учителяобучение без учителяEN unsupervised learningМеток нет; ищем структуру в данных — кластеры, главные направления, плотность. меток нет. Мы ищем структуру: группы похожих объектов (кластеризация), главные направления изменчивости (снижение размерности), необычные точки (поиск аномалий). Например, сгруппировать клиентов банка по поведению, не зная заранее, какие группы существуют. Этому посвящён урок 2.3.2.
Самообучение
Заголовок раздела «Самообучение»Для LLM особенно важен промежуточный случай — самообучениесамообучение, самоконтролируемое обучениеEN self-supervised learningМетки берутся из самих данных (например, следующий токен текста). Так идёт предобучение LLM. (self-supervised). Меток от людей нет, но они «бесплатно» извлекаются из самих данных. Берём предложение «Карп прыгает через врата», закрываем последнее слово — и получаем пример с правильным ответом «врата». Каждый токен текста — метка для предыдущих.
Так устроено предобучение, претрейнпредобучение, претрейнEN pretraining. Никто не размечал 14.8 триллиона токенов DeepSeek-V3 вручную. Модель училась предсказывать продолжение реального текста. Именно поэтому предобучение масштабируется: в интернете гигантский запас «размеченных» данных.
С подкреплением
Заголовок раздела «С подкреплением»В обучение с подкреплениемобучение с подкреплениемEN reinforcement learning (RL) нет правильных ответов для каждого шага. Агент (программа, которая принимает решения) действует в среде (игра, симулятор, диалог с человеком) и получает награду: +1 за победу в партии, 0 за поражение. Учиться трудно: награда приходит с опозданием, и непонятно, какой из сотни ходов был решающим. Зато так можно обучаться там, где «правильный ответ» человек не знает, но может проверить результат.
Самый громкий пример последних лет — DeepSeek-R1-Zero. Базовую модель учили решать задачи с проверяемым ответом и давали награду по простым правилам: ответ верный и формат соблюдён. Никаких образцов рассуждений не было, а длинные рассуждения с самопроверкой появились сами. Подробно — на ступени 6.
| Вид обучения | Что есть в данных | Сигнал для обучения | Пример в LLM |
|---|---|---|---|
| С учителем | пары (x, y) от людей | ошибка относительно y | SFT: «вопрос → эталонный ответ» |
| Без учителя | только x | внутренняя структура | кластеризация эмбеддингов, дедупликация корпуса |
| Самообучение | только x, метки извлекаем из x | ошибка предсказания скрытой части | предобучение: следующий токен |
| С подкреплением | среда и награда | награда за последовательность действий | RLHF, GRPO, R1-Zero |
Расшифровка правой колонки. SFTобучение с учителем на инструкциях (SFT)EN supervised fine-tuning (SFT) (supervised fine-tuning) — дообучение готовой модели на парах «запрос → образцовый ответ», написанных людьми. RLHFобучение с подкреплением на основе отзывов людей (RLHF)EN reinforcement learning from human feedback (RLHF) — обучение с подкреплением, где награду выставляет модель, обученная на оценках людей. GRPOGRPO (групповая относительная оптимизация политики)EN Group Relative Policy Optimization (GRPO)PPO без критика: на промпт генерируется группа из G ответов, преимущество — (r − среднее) / std по группе. DeepSeekMath, 2024. — алгоритм RL от DeepSeek. Эмбеддинг — вектор чисел, которым модель представляет текст (урок 1.1.1), а дедупликация — удаление повторов из корпуса (так называют весь набор обучающих текстов). Все эти слова ещё вернутся со своими уроками.
flowchart LR A["Сырой текст<br/>триллионы токенов"] --> B["Предобучение<br/>самообучение"] B --> C["Базовая модель"] C --> D["SFT<br/>обучение с учителем"] D --> E["RLHF / GRPO<br/>обучение с подкреплением"] E --> F["Чат-модель<br/>DeepSeek, Qwen, Kimi"]
Train, validation, test
Заголовок раздела «Train, validation, test»Модель с достаточным числом параметров может просто запомнить обучающие примеры. Таблица «вопрос → ответ» имеет нулевую ошибку на этих примерах и бесполезна на любых других. Поэтому качество всегда проверяют на данных, которых модель не видела. Вот аналогия со школой:
- Обучающая выборкаобучающая выборка (train)EN training set (train) — задачник с ответами. По нему подбирают параметры.
- Валидационная выборкавалидационная выборка (val, dev)EN validation setНужна для выбора гиперпараметров и ранней остановки. Тест при этом не трогаем. (val, dev) — пробник. По нему выбирают гиперпараметрыгиперпараметрEN hyperparameterНастройка, которую не учат градиентом, а выбирают по валидации — степень полинома, λ, learning rate, число слоёв. (настройки, которые не подбираются обучением: степень полинома, скорость обучения, число слоёв) и архитектуру, решают, когда остановить обучение.
- Тестовая выборкатестовая выборка (test)EN test setСмотрим на неё один раз — в самом конце, чтобы честно оценить качество. (test) — настоящий экзамен. На неё смотрят один раз, в конце.
Практические правила:
- Перемешивайте данные перед разбиением. Если файл отсортирован по дате или классу, первые 80% будут непохожи на последние 20%.
- Временные ряды делите по времени. Временной ряд — данные, упорядоченные по времени: продажи по дням, курс валюты по часам. Учимся на прошлом, проверяем на будущем, иначе модель «подглядывает» в будущее.
- Группы держите целиком. Если у одного пациента 10 снимков, все 10 должны оказаться в одной выборке.
- Пропорции. На тысячах примеров обычно делят 60/20/20 или 80/10/10. На миллионах хватает 1% на валидацию и тест — 10 000 примеров уже дают точную оценку.
- Всегда стройте базовое решение, бейзлайнбазовое решение, бейзлайнEN baselineПростейшая модель (среднее, самый частый класс), с которой сравнивают всё остальное.: предсказывайте среднее или самый частый класс. Модель, которая не обыгрывает бейзлайн, ничему не научилась.
У LLM та же логика. Валидационный loss считают на отложенном тексте, которого не было в обучении. Роль теста играют бенчмарки, и у них есть своя беда: их задачи могут случайно попасть в обучающий корпус. Это одна из форм утечки данных — следующий урок.
Краткая история ИИ: от перцептрона до DeepSeek
Заголовок раздела «Краткая история ИИ: от перцептрона до DeepSeek»В уроке 0.0 вы видели карту местности. Теперь посмотрим на историю глазами инженера: каждый поворот менял один из четырёх кирпичей.
| Год | Событие | Что изменилось |
|---|---|---|
| 1943 | Маккалок и Питтс — математическая модель нейрона | идея модели |
| 1956 | Дартмутский семинар закрепляет термин «искусственный интеллект» | рождение области |
| 1958 | перцептронперцептронEN perceptronМодель Фрэнка Розенблатта (1958) — линейный классификатор с пороговой активацией, предок нейросетей. Фрэнка Розенблатта — первая обучаемая нейросеть | модель + алгоритм обучения |
| 1965–1968 | Алексей Ивахненко и Валентин Лапа (Киев): многослойные модели, которые строят и обучают слой за слоем, — метод группового учёта аргументов (МГУА) | ранние глубокие модели |
| 1969 | Минский и Пейперт «Перцептроны»: однослойная сеть не решает XOR (задачу «ответ 1, если ровно один из двух входов равен 1»). Интерес к нейросетям падает, в 1970-х наступает первая «зима ИИ» | пределы модели |
| 1980-е | Экспертные системы: правила пишут люди. Бум, потом вторая «зима» | правила вместо обучения |
| 1986 | Румельхарт, Хинтон, Уильямс популяризируют backprop — обратное распространение ошибки, быстрый способ посчитать градиенты всех весов сети по цепному правилу (урок 1.2.2, ступень 3) | алгоритм для многослойных сетей |
| 1995 | Метод опорных векторов (Кортес и Вапник) на теории Вапника — Червоненкиса | теория обобщения |
| 1997 | Deep Blue обыгрывает Каспарова; появляется LSTM — нейросеть для последовательностей (урок 3.4.3) | шахматы взяты перебором, а не обучением |
| 2009 | ImageNet (Фей-Фей Ли): миллионы размеченных картинок | данные |
| 2012 | AlexNet на двух GPU: ошибка top-5 около 15% против 26% у второго места (top-5: модель называет 5 вариантов, ошибка — если верного среди них нет) | вычисления + модель |
| 2015 | ResNet (Microsoft Research Asia, Пекин): сеть из 152 слоёв | модель |
| 2016 | AlphaGo побеждает Ли Седоля 4:1 | обучение с подкреплением |
| 2017 | Трансформер — «Attention Is All You Need» | модель |
| 2020 | GPT-3: 175 млрд параметров, самообучение на огромном корпусе | масштаб |
| 2022 | ChatGPT (30 ноября): SFT + RLHF поверх GPT | дообучение под человека |
| 2023 | В Китае «война ста моделей» | экосистема |
| 2024–2025 | DeepSeek-V3 (декабрь 2024) и R1 (январь 2025) с открытыми весами; R1 сразу вышла под лицензией MIT | эффективность + RL |
Закономерность видна по правой колонке. Прорывы происходили, когда одновременно росли данные и вычисления и появлялась модель, способная их переварить. Четыре кирпича при этом не менялись с 1958 года: у перцептрона Розенблатта тоже были данные, модель, ошибка и правило обновления весов.
Практика
Заголовок раздела «Практика»Первый конвейер ML за 30 строк
Заголовок раздела «Первый конвейер ML за 30 строк»Соберём все кирпичи вместе на NumPy: данные о квартирах, разбиение, бейзлайн, модель и оценку. Данные мы сгенерируем сами по правилу «цена = 0.15 · площадь + 2 млн ₽ + шум». Мы это правило знаем, а модель — нет: ей достанутся только пары «площадь → цена», и правило она должна восстановить.
Запускать код можно в Jupyter или сохранить в файл и выполнить python имя_файла.py в окружении курса
(урок 0.1.2). Все функции NumPy отсюда — default_rng, uniform,
normal, permutation, срезы — были в модуле 0.3. Новая только np.polyfit: готовая функция, которая подбирает
прямую по точкам. Что именно она делает внутри, вы узнаете в уроке 2.2.1.
import numpy as np
rng = np.random.default_rng(0) # генератор случайных чисел с сидом 0 (урок 0.3.3)
# 1. Данные: площадь квартиры (м²) → цена (млн ₽)n = 200area = rng.uniform(25, 120, size=n) # признак x: 200 площадей от 25 до 120 м²price = 0.15 * area + 2.0 + rng.normal(0, 1.5, size=n) # цель y: правило + шум (std = 1.5 млн ₽)
# 2. Разбиение train / val / test = 60 / 20 / 20 (перемешиваем!)idx = rng.permutation(n) # номера 0..199 в случайном порядкеtr, va, te = idx[:120], idx[120:160], idx[160:] # первые 120 номеров — train, 40 — val, 40 — test
def mse(y, y_hat): """Среднеквадратичная ошибка: среднее от (правда − предсказание)².""" return float(np.mean((y - y_hat) ** 2))
# 3. Бейзлайн: всегда предсказываем среднюю цену из trainbaseline = price[tr].mean()
# 4. Модель y = w·x + b. «Обучение» = подбор w, b, минимизирующих MSE на train.# np.polyfit(x, y, deg=1) находит лучшую прямую и возвращает её наклон w и сдвиг b.w, b = np.polyfit(area[tr], price[tr], deg=1)
print(f"обучили: w = {w:.3f} млн ₽ за м², b = {b:.2f} млн ₽")for name, part in [("train", tr), ("val", va), ("test", te)]: # оцениваем на каждой из трёх частей print(f"{name:5s} бейзлайн MSE = {mse(price[part], baseline):6.2f} " # :6.2f — 6 символов, 2 знака f"линейная MSE = {mse(price[part], w * area[part] + b):5.2f}")print(f"прогноз для 60 м²: {w * 60 + b:.1f} млн ₽")Ожидаемый вывод:
обучили: w = 0.149 млн ₽ за м², b = 2.14 млн ₽train бейзлайн MSE = 20.81 линейная MSE = 2.06val бейзлайн MSE = 15.18 линейная MSE = 2.82test бейзлайн MSE = 22.25 линейная MSE = 2.88прогноз для 60 м²: 11.0 млн ₽Что здесь видно:
- Модель почти точно нашла истинные параметры: вместо 0.15 и вместо 2.
- MSE модели в 5–10 раз меньше, чем у бейзлайна. Значит, она действительно чему-то научилась.
- На новых данных в среднем нельзя опуститься ниже ≈ 2.25: это дисперсия шума (дисперсия — квадрат стандартного отклонения, урок 0.3.2). Шум не зависит от площади, его не предскажет никакая модель. Об этом пределе — в следующем уроке.
- Ошибка на train (2.06) ниже, чем на val и test (2.8–2.9). Хочется сказать «модель подстроилась под train», но проверим: истинная прямая даёт на тех же трёх частях 2.06, 2.83 и 2.86 — почти то же самое. Значит, разрыв здесь почти целиком случайный: шум у 40 квартир val и test просто оказался крупнее среднего. Оценка ошибки по 40 примерам сама «гуляет» примерно на ±0.5. Вывод на будущее: маленькая валидация шумит, и в следующем уроке мы научимся с этим бороться (кросс-валидация).
Обучение как поиск
Заголовок раздела «Обучение как поиск»Обучение не обязано быть градиентным спуском. Вот классификатор спелых арбузов с одним параметром — порогом частоты звука при постукивании (спелый звучит глуше). Обучение — честный перебор порогов на train.
import random
random.seed(42)# Признак: частота звука при постукивании (Гц). Метка: 1 — спелый, 0 — нет.# random.gauss(среднее, std) — случайное число из «колокола» (урок 1.3.1):# спелые звучат в среднем на 160 Гц, неспелые — на 220 Гц.ripe = [(random.gauss(160, 20), 1) for _ in range(100)] # 100 пар (частота, метка 1)unripe = [(random.gauss(220, 25), 0) for _ in range(100)] # 100 пар (частота, метка 0)data = ripe + unriperandom.shuffle(data) # перемешиваем, иначе train был бы почти из одних спелыхtrain, test = data[:150], data[150:] # 150 арбузов на обучение, 50 на проверку
def predict(x, t): # модель с одним параметром t: «спелый, если звук ниже t» return 1 if x < t else 0
def error_rate(t, part): # функция потерь: доля ошибок (0-1 loss) # predict(...) != y даёт True/False; sum считает True как 1, то есть число ошибок return sum(predict(x, t) != y for x, y in part) / len(part)
# «Обучение» = перебор: ищем t, при котором ошибок на train меньше всего.# min(..., key=...) — из урока 0.2.2: перебирает t = 100, 101, ..., 300# и возвращает тот, у которого error_rate(t, train) наименьшая.best_t = min(range(100, 301), key=lambda t: error_rate(t, train))print(f"лучший порог t = {best_t} Гц")print(f"ошибка на train: {error_rate(best_t, train):.1%}") # :.1% — в процентах с одним знакомprint(f"ошибка на test: {error_rate(best_t, test):.1%}")лучший порог t = 185 Гцошибка на train: 5.3%ошибка на test: 8.0%Все четыре кирпича на месте: данные (150 арбузов), модель (порог ), потери (доля ошибок), алгоритм (перебор 201 варианта). Перебор работает для одного параметра, но для миллиарда параметров нужен градиент. Поэтому в нейросетях и оптимизируют гладкую cross-entropy, а не ступенчатую долю ошибок.
Проверь себя
Заголовок раздела «Проверь себя»- Любая задача ML — это данные, модель, функция потерь и оптимизация. Обучение — минимизация среднего loss на train (ERM).
- С учителем (регрессия, классификация), без учителя, самообучение, с подкреплением. Конвейер LLM использует три из них: претрейн → SFT → RL.
- Предсказание следующего токена — классификация на огромное число классов: у Qwen3 их ~152 тысячи.
- Данные делят на train / validation / test; по тесту ничего не выбирают. Всегда сравнивайте модель с бейзлайном.
- История ИИ — это рост данных и вычислений плюс модели, способные их использовать. Четыре кирпича не менялись с 1958 года.
Дальше: почему модель, идеально выучившая train, может провалиться на новых данных, — переобучение, компромисс смещения и разброса, регуляризация и утечки данных.