Перейти к основному контенту

Самоконтролируемое обучение: как модели учатся без разметки данных

Самоконтролируемое обучение учит модели извлекать надзор из неразмеченных текстов, изображений, аудио и видео, используя контрастивное обучение, маскирование и авторегрессию для построения представлений, лежащих в основе современных языковых, зрительных и мультимодальных моделей.
Обновлено 9 сент. 2026 г.  · 14 мин читать

Изучить с помощью AI

ChatGPTClaudePerplexity

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

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

Самоконтролируемое обучение не требует шага разметки. Оно превращает саму структуру данных в обучающую информацию. Вместо того чтобы платить людям за описание содержимого изображения или смысла предложения, вы задаёте задачу, на которую данные уже могут ответить сами, — например, скрываете слово и предлагаете модели угадать его по окружающим словам.

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

Что такое самоконтролируемое обучение?

Самоконтролируемое обучение — это способ обучать модели без предварительной ручной разметки данных.

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

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

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

Как работает самоконтролируемое обучение?

Процесс следует повторяемому шаблону вне зависимости от типа данных. Шаги такие:

  1. Начните с неразмеченных данных: Текст, изображения, аудио, видео — не важно, главное, чтобы их было много.
  2. Создайте учебную задачу из самих данных: Это называется претекстной задачей. Это не та задача, которая вам действительно нужна; это искусственная проблема, призванная заставить модель выучить что-то полезное. Пример — скрыть слово и предсказать его.
  3. Обучите модель решать эту задачу: Модель делает предположение, сверяет его с реальным значением и корректируется.
  4. Выучите полезные представления: Решая претекстную задачу, модель формирует внутреннее понимание структуры данных — грамматики, контекста, форм и закономерностей.
  5. Адаптируйте эти представления к конечным задачам: Когда модель выучила хорошие представления, направьте их на задачу, которую вы и хотели решить. Это конечная (downstream) задача.

Претекстная задача — лишь тренировка. Никто не развёртывает модель ради угадывания скрытых слов; ценность в представлениях, которые она выучивает по дороге и переносит на реальные задачи.

Сравнение самоконтролируемого обучения с другими методами

Проще всего понять самоконтролируемое обучение через пересечения и отличия от других парадигм обучения.

Самоконтролируемое vs контролируемое обучение

Контролируемому обучению нужен размеченный пример для каждого входа, например изображение с меткой «собака» или отзыв с меткой «негативный». Эти метки кто-то должен создать вручную — это затраты, время и ограничение на реальный объём данных для обучения.

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

Самоконтролируемое vs неконтролируемое обучение

Оба метода работают с неразмеченными данными, поэтому их часто путают. Разница — в цели обучения.

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

Самоконтролируемое vs частично контролируемое обучение

Частично контролируемое обучение намеренно смешивает небольшой размеченный датасет с большим неразмеченным, используя их вместе для улучшения модели.

Самоконтролируемое предобучение вообще не требует меток для старта. Оно может полностью предобучаться на неразмеченных данных, а затем при желании перейти к размеченному датасету для тонкой настройки. Если метки и появляются, то уже после предобучения.

  Нужны ли метки Источник обучающего сигнала Типичное применение
Контролируемое Да, для каждого примера Метки, созданные людьми Обучение модели напрямую на целевой задаче
Неконтролируемое Нет Структура в данных (кластеры, паттерны) Группировка, снижение размерности
Частично контролируемое Частично, вместе с неразмеченными данными Размеченные примеры плюс паттерны в неразмеченных данных Повышение точности при нехватке разметки
Самоконтролируемое Нет, на этапе предобучения Претекстная задача, построенная из самих данных Предобучение перед тонкой настройкой под конечную задачу

Сравнение самоконтролируемого обучения с другими методами

Виды самоконтролируемого обучения

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

Контрастивное обучение

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

Две аугментированные версии одного изображения считаются связанными. Изображение и его подпись — тоже связанные. SimCLR применяет эту идею в рамках одной модальности, сравнивая разные кропы или преобразования одного изображения. CLIP применяет её между модальностями, выравнивая изображения с описывающим их текстом.

Маскирование (masked modeling)

Маскирование скрывает часть входа и обучает модель её восстановлению. Это та же идея с «пробелом в предложении», только шире.

В языке это проявляется как маскирование токенов — скрываются несколько слов в предложении, и модель предсказывает их по остальному контексту. В зрении это маскирование фрагментов изображения с требованием восстановить недостающие пиксели или их скрытое представление.

Авторегрессивное обучение

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

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

Самодистилляция

Самодистилляция обучает модель, используя её собственные предсказания в качестве цели, а не фиксированный ответ, скрытый в данных.

Обычно запускают две версии одной сети — «студент» и «учитель» — на разных представлениях одного и того же входа. Студент учится совпадать с выходом учителя, а учитель обновляется как медленно изменяющееся среднее ученика. DINO и BYOL — показательные подходы. Отрицательные примеры или маскировка входа не нужны: модель извлекает надзор из согласованности между разными видами представления.

Самоконтролируемое обучение в больших языковых моделях

Самоконтроль — это весь этап предобучения для больших языковых моделей. Каждая крупная LLM, которой вы пользовались, освоила структуру языка, факты и шаблоны рассуждений без единой человеческой метки — исключительно решая самоконтролируемые претекстные задачи на сыром тексте.

Предсказание следующего токена

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

Если прогнать это по триллионам токенов с веб‑страниц и репозиториев кода, модель по пути формирует рабочие представления грамматики, фактов и даже шаблонов рассуждений. Это тот же авторегрессивный объектив, просто в большом масштабе.

Маскирование в языковом моделировании

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

Благодаря двустороннему контексту такие модели хорошо понимают задачи вроде классификации и ответа на вопросы, хотя не генерируют текст так же, как модели с предсказанием следующего токена.

Обучение на больших текстовых корпусах

Без объёма это не работает. Для предобучения собирают данные с веб‑страниц, книг, репозиториев кода и форумов, фильтруют и дедуплицируют их в корпусы с миллиардами или триллионами токенов. Чем корпус больше и разнообразнее, тем более общими становятся итоговые представления.

Предобучение — это то место, где работает самоконтроль, но это не финальный этап. Тонкая настройка на человеческих инструкциях учит следовать указаниям, а методы предпочтений, такие как RLHF или DPO, используют ранжированные человеческие предпочтения для формирования ответов. Оба эти этапа требуют разметки. Самоконтролируемое предобучение — единственный этап, где метки не нужны.

Самоконтролируемое обучение в компьютерном зрении

Компьютерное зрение — идеальная область с хронической нехваткой разметки. Ограничивающие рамки и маски сегментации делать намного дольше, чем просто поставить метку к тексту, поэтому самоконтролируемые методы особенно ценны здесь.

Контрастивное обучение изображений реализует ту же идею «сблизить‑оттолкнуть»: берутся две аугментированные версии одного фото (кроп или отражение), модель учат распознавать их как связанные, а остальные изображения в батче — как несвязанные. SimCLR — известный пример подхода для изображений.

Маскирование изображений переносит идею «заполнить пропуск» из языка на пиксели. Скрываются патчи изображения, и модель обучают восстанавливать пропущенное содержимое — в виде сырых пикселей или выученного признакового представления. Такой объектив лежит в основе MAE (Masked Autoencoders).

Выравнивание изображений и текста обучает модель сопоставлять изображения с описывающими их подписями, сближая совпадающие пары в общем эмбеддинговом пространстве и раздвигая несовпадающие. CLIP — самый известный пример. В результате модели поддерживают классификацию без примеров (zero-shot) — они распознают категории, на которых их явно не обучали, просто сравнивая изображение с текстовым описанием.

За пределами текста и изображений

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

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

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

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

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

Как используют самоконтролируемые модели в конечных задачах

Предобучение даёт модель, хорошо решающую претекстную задачу. Это никого само по себе не интересует — важно то, что вы делаете дальше.

Тонкая настройка

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

Линейное зондирование

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

Извлечение признаков

Извлечение признаков работает так же, как линейное зондирование, только без линейного слоя. Вы берёте замороженные представления и подаёте их в любой конечный алгоритм. Задача предобученной модели — генерировать хорошие эмбеддинги, а дальше — как вы решите.

Zero-shot и few-shot использование

Иногда представления достаточно хороши, чтобы обходиться без дообучения вообще. CLIP делает это, внедряя изображение и набор кандидатных текстовых меток в одно пространство и выбирая метку, ближайшую к изображению. Few-shot обучение добавляет к этому небольшое число размеченных примеров, чего часто достаточно, поскольку представления уже несут основную структуру, нужную модели.

Самоконтролируемое обучение даёт многократно используемые представления. Вы один раз предобучаете, а затем сколько угодно раз настраиваете, зондируете, извлекаете признаки или задаёте запросы той же «сердцевине» под разные конечные задачи. Большая часть дорогой работы выполняется один раз на этапе предобучения, а не для каждой задачи отдельно.

Самоконтролируемое обучение на Python

Ниже — лёгкий пример с предобученной моделью, а не системой самоконтролируемого обучения «с нуля», чтобы показать сам рабочий процесс.

all-MiniLM-L6-v2, доступная через пакет sentence-transformers, была предобучена с целью маскированного языкового моделирования, а затем дополнительно обучена контрастивной целью на парных предложениях. Самоконтролируемая часть уже проделана за вас — вы просто используете полученные представления на практике.

Для начала установите зависимости:

pip install sentence-transformers scikit-learn

Теперь перейдём к коду:

from sentence_transformers import SentenceTransformer
from sklearn.linear_model import LogisticRegression

# Create unlabeled data
support_tickets = [
    "My order arrived damaged and I need a replacement.",
    "The app crashes every time I try to upload a photo.",
    "I love how fast the checkout process is now.",
    "Can you tell me when my refund will be processed?",
    "The new dashboard layout is so much easier to use.",
    "I can't log in, it keeps saying my password is wrong.",
]

# Load a model pretrained with a self-supervised objective
model = SentenceTransformer("all-MiniLM-L6-v2")

# Obtain learned representations
embeddings = model.encode(support_tickets)
print(embeddings.shape)

Форма эмбеддингов

Форма эмбеддингов

Метод .encode() прогоняет каждый тикет через предобученную модель и возвращает плотный вектор, отражающий его смысл. Дальше для конечной задачи достаточно горстки размеченных примеров, поскольку эмбеддинги уже несут основную структуру:

# Use the representations for a downstream task, 1 = complaint, 0 = positive feedback
labels = [1, 1, 0, 1, 0, 1]

clf = LogisticRegression()
clf.fit(embeddings, labels)

new_ticket = ["The delivery was late and no one responded to my email."]
new_embedding = model.encode(new_ticket)
print(clf.predict(new_embedding))

Предсказание логистической регрессии

Предсказание логистической регрессии

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

Преимущества и ограничения самоконтролируемого обучения

Рассмотрим плюсы и минусы самоконтролируемого обучения.

Преимущества

  1. Снижает зависимость от ручной разметки: Претекстная задача генерирует цели сама, поэтому бюджет на разметку больше не ограничивает объём данных для обучения
  2. Позволяет использовать очень большие датасеты: Коллекции текста и аудио в интернет‑масштабе становятся пригодны для обучения, а не только небольшие размеченные подмножества
  3. Дает переносимые представления: Одной предобученной моделью можно поддержать тонкую настройку, линейное зондирование, извлечение признаков и zero-shot использование в нескольких конечных задачах
  4. Открывает путь к крупномасштабному предобучению: Это то, что вообще сделало возможными современные базовые модели.

Ограничения

  1. Значительные требования к вычислениям: Предобучение на данных интернет‑масштаба требует серьёзного железа и времени, недоступных большинству отдельных команд
  2. Дизайн претекстной задачи критичен: Неудачно выбранная претекстная задача даёт представления, плохо переносящиеся на другие задачи, сколько бы данных вы ни использовали
  3. Представления могут наследовать предвзятости: Любые паттерны, пробелы и перекосы в обучающих данных отражаются в представлениях, так как на этапе предобучения их никто не фильтрует
  4. Высокие результаты на предобучении не гарантируют успех «внизу»: Модель, отлично решающая свою претекстную задачу, всё равно может уступать на конкретной конечной задаче, для которой её напрямую не оптимизировали

Почему самоконтролируемое обучение важно для современной ИИ

Самоконтролируемое обучение — причина, по которой вообще возможны базовые модели.

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

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

Заключение

Самоконтролируемое обучение берёт надзор из структуры неразмеченных данных, а не из написанных человеком меток. Типичный шаблон — скрыть слово или предсказать следующий токен. Данные отвечают на собственные вопросы, а модель учится, пытаясь попасть в ответ.

Основные подходы строятся вокруг этой идеи по‑разному. Контрастивное обучение сближает связанные примеры и раздвигает несвязанные. Маскирование скрывает часть входа и учит модель её восстанавливать. Авторегрессивное обучение предсказывает следующий элемент последовательности по предыдущим. Механика различается, но общий принцип — позволить структуре данных самой давать обучающий сигнал — один и тот же.

Именно поэтому самоконтроль лежит в основе большинства языковых, зрительных и мультимодальных моделей, которые вы уже используете. Предсказание следующего токена предобучает нынешние LLM, контрастивные и маскированные цели — модели зрения, а выравнивание изображение‑текст — мультимодальные модели, связывающие их вместе.

Если хотите научиться создавать LLM с нуля, запишитесь на наш трек Developing Large Language Models и посмотрите в деле PyTorch, Hugging Face и современные техники НЛП.

FAQs

Что такое самоконтролируемое обучение?

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

Чем самоконтролируемое обучение отличается от неконтролируемого?

Оба подходят к неразмеченным данным, но по-разному. Неконтролируемое обучение ищет структуру без конкретной цели предсказания, например группирует похожих клиентов. Самоконтролируемое обучение строит явную задачу предсказания из самих данных и обучает модель её решать.

Почему самоконтролируемое обучение важно для современной ИИ?

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

В чём разница между претекстной и конечной задачей?

Претекстная задача — это искусственная проблема, решаемая на предобучении, например предсказание скрытого слова. Это не та задача, которая вам действительно нужна — она лишь заставляет модель выучить полезные представления. Конечная (downstream) задача — это реальная проблема, к которой вы позже применяете эти представления, например классификация или поиск.

Может ли самоконтролируемое обучение работать вообще без разметки?

Да, само предобучение не требует никаких меток. Когда модель выучила представления, некоторые способы использования, например zero-shot классификация в CLIP, также не требуют меток. Другие — тонкая настройка или few-shot — подключают немного разметки уже на этом позднем этапе.

Темы
Машинное обучение

Учитесь с DataCamp

Course

Обучение с учителем с помощью scikit-learn

4 ч
300.7K
Развивайте навыки машинного обучения с scikit-learn в Python. Используйте реальные наборы данных в этом интерактивном курсе и научитесь делать точные прогнозы!
ПодробнееRight Arrow
Начать Курс
Смотрите большеRight Arrow