Содержание
  1. Обучение представлений через положительные и отрицательные пары
  2. Откуда берутся пары и аугментации в self-supervised learning
  3. Косинусное сходство на трёх полностью заданных векторах
  4. Ручная triplet loss с margin: хорошие и плохие негативы
  5. False negative на перефразах об отмене подписки
  6. Влияние состава батча и качества разметки на цель обучения
  7. Чем тренировка эмбеддингов отличается от Contrastive CoT в промпте
  8. Как проверить решение о паре до расчёта потери
  9. Частые вопросы
Справочник

Что такое контрастивное обучение: близкие и разные примеры

12 ноября 2026 · 20 минут чтения

Что такое контрастивное обучение: близкие и разные примеры — это метод обучения представлений, при котором модель сближает вектора похожих объектов и разводит вектора непохожих. Похожие объекты образуют положительную пару, разные — отрицательную. Цель — такое смысловое пространство, где расстояние отражает сходство.

Обучение представлений через положительные и отрицательные пары

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

Такой подход относится к обучению представлений. В документации IBM по self-supervised learning описана общая рамка: в предварительной задаче модель учится извлекать осмысленные представления из неразмеченных данных, а затем эти представления подаются на вход прикладной задаче — обучению с учителем или обучению с подкреплением. Контрастивное обучение занимает здесь место одного из способов получить такие представления.

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

Разберём на учебном примере с текстами. Пусть у нас есть три фразы про подписку:

  • «отменить подписку» — якорь;
  • «отказаться от подписки» — положительный пример, тот же смысл;
  • «продлить подписку» — отрицательный пример, противоположное действие.

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

Важно понимать роль отрицательных примеров. Без них модель может найти вырожденное решение: сделать все вектора одинаковыми. Тогда расстояние между любыми двумя объектами равно нулю, и положительные пары формально «сближены». В документации Keras по SimCLR это названо тривиальным вырожденным решением: представления становятся константными и перестают зависеть от входных изображений. Отрицательные примеры не дают модели схлопнуть всё пространство в одну точку.

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

Сравним два режима обучения по нескольким критериям.

Критерий Обучение с учителем Контрастивное обучение
Источник сигнала Метки классов Отношения между примерами
Что нужно на входе Размеченный набор Пары похожих и разных объектов
Целевая функция Предсказание метки Сближение и разведение векторов
Типичная задача Классификация Поиск, кластеризация, эмбеддинги
Риск Переобучение на малой выборке Ложные негативы и вырождение

В таблице колонка «Обучение с учителем» описывает обычную классификацию по меткам, а контрастивная колонка — цель обучения представлений. Это не взаимоисключающие режимы: контрастивные пары тоже можно составлять с помощью меток классов. В self-supervised варианте такие метки могут не использоваться.

Есть и родственный режим. В документации IBM отмечено, что «non-contrastive learning» обозначает метод, близкий к контрастивному обучению: модель тренируется только на положительных парах и минимизирует разницу между их представлениями. Название здесь может ввести в заблуждение, поскольку речь идёт о конкретном родственном методе с собственным способом обучения.

Практический шаг для читателя: прежде чем обучать модель, выпишите, что для вашей задачи означает «похожий объект». Для поиска по документам это может быть вопрос и его перефразировка. Для рекомендаций — два товара одной категории. Для распознавания изображений — два кадра одного объекта. От этого определения зависит вся дальнейшая разметка пар.

Откуда берутся пары и аугментации в self-supervised learning

В варианте с метками классов положительные пары можно составлять из объектов одного класса, отрицательные — из разных. В self-supervised learning обучающий сигнал получают из самих данных. Основной приём — аугментация: из одного примера делают два разных вида, и эти виды объявляют положительной парой.

В блоге Google Research по SimCLR описан порядок работы. Сначала пример случайно берётся из исходного набора данных и преобразуется дважды с помощью комбинации простых аугментаций: случайной обрезки, случайного искажения цвета и размытия по Гауссу. Так получаются два набора соответствующих видов одного и того же объекта. Затем представление изображения вычисляется свёрточной нейросетью на основе архитектуры ResNet. Обновление свёрточной сети и многослойного перцептрона выполняется стохастическим градиентным спуском для минимизации функции потерь контрастивной цели.

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

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

Разберём это на текстовом примере. Для фразы «отменить подписку» аугментациями могут быть:

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

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

Сравним типы аугментаций по назначению.

Модальность Аугментация Что проверяет
Изображение Случайная обрезка Устойчивость к кадрированию
Изображение Искажение цвета Отказ от опоры на гистограмму
Изображение Размытие по Гауссу Устойчивость к деталям
Текст Перефразирование Устойчивость к формулировке
Текст Замена синонима Устойчивость к лексике

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

Здесь есть тонкость. Слишком слабая аугментация даёт почти одинаковые виды, и модель решает задачу по тривиальному признаку. Слишком сильная меняет смысл, и положительная пара перестаёт быть положительной. В документации Keras по SimCLR указано, что главная идея контрастивного обучения — получать представления, инвариантные к аугментациям изображений, в self-supervised режиме. Цель такой инвариантности — сделать представления устойчивыми к допустимым преобразованиям; это не гарантия точного совпадения всех полученных векторов.

Практический порядок действий для текстовой задачи:

  1. Соберите корпус фраз без меток.
  2. Определите список допустимых преобразований, сохраняющих смысл.
  3. Для каждой фразы сгенерируйте один или несколько вариантов.
  4. Объявите пару «исходная — вариант» положительной.
  5. Остальные фразы в батче используйте как отрицательные.
  6. Проверьте, что преобразование не меняет смысл на контрольных примерах.

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

Отдельно стоит сказать о родственных подходах. Не все методы self-supervised learning являются контрастивными. В документации IBM разграничены предварительные задачи и контрастивные методы: SSL — это широкая рамка, внутри которой контрастивное обучение занимает одну из позиций. Понимание этого помогает не смешивать термины при чтении статей.

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

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

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

  • якорь: (1, 0);
  • положительный пример: (0.8, 0.6);
  • отрицательный пример: (0, 1).

Все три вектора имеют единичную длину: у первого длина 1, у второго длина равна корню из суммы квадратов 0.8 и 0.6, то есть 1, у третьего длина 1. Для нормированных векторов косинус равен скалярному произведению.

Считаем косинус якоря и положительного примера: 1 × 0.8 + 0 × 0.6 = 0.8. Считаем косинус якоря и отрицательного примера: 1 × 0 + 0 × 1 = 0. Итого сходство с положительным примером равно 0.8, с отрицательным — 0.

Теперь посмотрим на контроль плохой пары. Пусть отрицательный пример объявлен как (1, 0). Это тот же вектор, что и якорь. Косинус якоря и такого отрицательного примера равен 1 × 1 + 0 × 0 = 1. Сходство максимально, хотя пример помечен как отрицательный.

Сведём значения в таблицу.

Пара Вектор Косинус с якорем
Якорь (1, 0) 1
Положительный (0.8, 0.6) 0.8
Отрицательный (0, 1) 0
Отрицательный (контроль) (1, 0) 1

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

Что это значит практически. Косинусное сходство даёт число от минус единицы до единицы. Значение 1 означает совпадение направления, 0 — ортогональность, минус 1 — противоположные направления. В контрастивном обучении модель стремится поднять косинус положительных пар и снизить косинус отрицательных.

Разберём геометрию на тех же числах. Якорь (1, 0) направлен вдоль первой оси. Положительный пример (0.8, 0.6) отклонён от него на угол, косинус которого 0.8. Отрицательный пример (0, 1) направлен вдоль второй оси, то есть перпендикулярно якорю. Модель хочет, чтобы положительный вектор подтянулся ближе к якорю, а отрицательный остался в стороне.

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

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

Ручная triplet loss с margin: хорошие и плохие негативы

Triplet loss работает с тройкой: якорь, положительный пример, отрицательный пример. Формула: потеря равна максимуму из нуля и выражения cos(anchor, negative) − cos(anchor, positive) + margin. Margin задаёт требуемый зазор между сходством положительной и отрицательной пар.

Продолжим учебный расчёт. Возьмём margin 0.3. Косинус положительного равен 0.8, косинус отрицательного равен 0. Тогда выражение внутри максимума: 0 минус 0.8 плюс 0.3 равно минус 0.5. Максимум из нуля и минус 0.5 равен 0. На этой тройке значение выбранной потери нулевое: зазор уже больше margin. Обновление модели в полном обучении зависит и от остальных примеров и членов функции потерь.

Теперь контроль плохой пары. Отрицательный пример объявлен как (1, 0), его косинус с якорем равен 1. Выражение внутри максимума: 1 минус 0.8 плюс 0.3 равно 0.5. Потеря равна 0.5. Модель получает сигнал развести якорь и этот отрицательный пример.

Сведём оба случая.

Случай Косинус положительного Косинус отрицательного Margin Потеря
Хорошая тройка 0.8 0 0.3 0
Плохая тройка 0.8 1 0.3 0.5

Таблица показывает роль margin. При margin 0.3 модель требует, чтобы сходство с положительным превышало сходство с отрицательным минимум на 0.3. Если это условие выполнено, потеря нулевая. Если нет, потеря растёт.

Теперь о качестве негативов. В блоге Hugging Face по борьбе с ложными негативами описаны сложные негативы: это отрицательные примеры, отобранные за их особую трудность. Примером служит нерелевантный фрагмент, лексически или семантически похожий на запрос, или предложение, отличающееся от якоря лишь небольшим нюансом. Такие примеры дают модели полезный сигнал: они заставляют её различать тонкие оттенки смысла.

Сравним типы негативов.

Тип негатива Свойство Эффект на обучение
Лёгкий Совсем другой объект Слабый сигнал
Сложный Похож, но отличается Сильный сигнал
Ложный Тот же объект Вредный сигнал

Таблица показывает разницу. Лёгкий негатив модель различает без усилий, и потеря быстро становится нулевой. Сложный негатив требует тонкой настройки пространства. Ложный негатив обозначает тот же объект и толкает модель в неверную сторону.

Практический порядок работы с triplet loss:

  1. Соберите тройки «якорь — положительный — отрицательный».
  2. Задайте margin, например 0.3 для учебного расчёта.
  3. Посчитайте косинусы и потерю для каждой тройки.
  4. Отберите тройки с нулевой потерей — они уже решены.
  5. Среди оставшихся найдите сложные негативы.
  6. Проверьте каждую тройку на ложный негатив.

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

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

False negative на перефразах об отмене подписки

Ложный негатив возникает, когда пример помечен как отрицательный, хотя обозначает тот же объект, что и якорь. В блоге Hugging Face это описано так: для данного якоря все положительные примеры из других пар в батче выступают как отрицательные, если предположить их нерелевантность. Это наивное предположение может нарушаться: иногда якорь и другой положительный пример в батче семантически похожи, например два разных вопроса на одну тему или перефразированные предложения. В таких случаях относиться к ним как к отрицательным неверно, и они являются ложными негативами, поскольку их не следует разводить функцией потерь.

Разберём это на учебном примере с подписками. Пусть полная разметка выглядит так:

  • «отменить подписку» и «отказаться от подписки» — положительная пара, одно действие;
  • «продлить подписку» — отрицательный пример, противоположное действие.

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

Разберём причины ошибки в таблице.

Причина Как выглядит Как исправить
Опора на формулировку Разные слова — разные метки Сверить смысл и роль каждой пары
Автоматическая разметка Метка по источнику Проверить источник вручную
Батч без проверки Чужие положительные как негативы Сверить пары внутри батча
Узкое определение Синонимы вне словаря Расширить список синонимов

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

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

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

Практический порядок проверки:

  1. Отсортируйте тройки по значению потери.
  2. Возьмите верхние тройки с наибольшей потерей.
  3. Прочитайте якорь и отрицательный пример.
  4. Задайте вопрос: обозначают ли они один объект.
  5. При совпадении смысла переразметьте пример как положительный.
  6. Повторите проверку после исправления.

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

Влияние состава батча и качества разметки на цель обучения

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

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

Сведём факторы в таблицу.

Фактор Малое значение Большое значение
Размер батча Мало негативов Больше негативов, выше риск ложных
Сила аугментации Тривиальное решение Риск смены смысла
Качество разметки Ложные пары Чистый сигнал
Длина обучения Недотренированность Больше времени и ресурсов

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

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

Практический порядок работы с батчем и разметкой:

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

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

Отдельно стоит сказать о связи состава батча и сложности негативов. Случайные негативы из большого батча чаще оказываются лёгкими: они далеки от якоря по смыслу. Сложные негативы можно добывать автоматически: в сохранённом материале Hugging Face описан отбор существующей поисковой моделью или cross-encoder. Затем нужно проверить, что найденный похожий пример действительно нерелевантен якорю. В блоге Hugging Face сложные негативы описаны как примеры, отобранные за трудность: нерелевантный фрагмент, похожий на запрос лексически или семантически, либо предложение с небольшим отличием от якоря.

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

Чем тренировка эмбеддингов отличается от Contrastive CoT в промпте

Эти два понятия часто путают из-за общего слова «контрастивный». Разберём разницу.

Тренировка эмбеддингов меняет веса модели. Модель учится выдавать вектора, в которых близкие объекты стоят рядом. Это происходит на этапе обучения и требует набора данных, функции потерь и вычислительных ресурсов. После обучения веса зафиксированы, и модель выдаёт представления для новых объектов.

В принятом здесь сравнении Contrastive CoT рассматривается как работа с примерами рассуждений во входном промпте. Изменение такого входа при обычном получении ответа само по себе не выполняет шаг обучения и не меняет веса модели. Это позволяет отделить настройку запроса от дообучения эмбеддингов, не обещая эффекта от количества или разнообразия примеров.

Сравним по критериям.

Критерий Тренировка эмбеддингов Contrastive CoT в промпте
Что меняется Веса модели Текст промпта
Когда происходит Этап обучения Момент запроса
Нужны ли данные Набор пар Примеры в инструкции
Результат Вектора представлений Ответ модели
Обратимость Требует переобучения Меняется правкой промпта

Таблица показывает главное различие. Тренировка эмбеддингов изменяет модель. Contrastive CoT изменяет запрос.

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

Практический порядок выбора:

  1. Определите задачу: нужны вектора для поиска или ответ на запрос.
  2. Для векторов готовьте пары и обучайте модель.
  3. Для ответа на запрос формируйте промпт с примерами.
  4. Проверьте, что примеры в промпте соответствуют задаче и не содержат ошибок в условиях.
  5. Оцените результат на контрольных запросах.
  6. При необходимости переобучите эмбеддинги отдельно.

Шаг четвёртый — проверка входного материала: для каждого примера сопоставьте условие, показанное рассуждение и ожидаемый ответ. Затем оцените ответы модели на контрольных запросах. Само наличие разных рассуждений в тексте ещё не доказывает полезность приёма для вашей задачи.

Отдельно скажем о терминологии. В документации Sentence Transformers отмечено, что дообучение моделей часто заметно улучшает результат на конкретной задаче, поскольку каждая задача требует своего понятия сходства. Это относится к тренировке эмбеддингов. Для Contrastive CoT аналогичное утверждение не работает: там настройка идёт через текст промпта.

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

Как проверить решение о паре до расчёта потери

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

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

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

Частые вопросы

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

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

Откуда берутся положительные и отрицательные пары?

В обучении с учителем пары берутся из меток классов. В self-supervised learning пары создаются аугментацией: из одного примера делают два разных вида и объявляют их положительной парой. Остальные примеры в батче выступают как отрицательные. В блоге Google Research по SimCLR описано, что пример преобразуется дважды комбинацией обрезки, искажения цвета и размытия.

Что такое ложный негатив и чем он вреден?

Ложный негатив — это пример, помеченный как отрицательный, хотя он обозначает тот же объект, что и якорь. В блоге Hugging Face описано, что положительные примеры из других пар в батче выступают как отрицательные, и это предположение может нарушаться для перефразированных предложений. Функция потерь начинает разводить объекты, которые должны стоять рядом, и пространство представлений искажается.

Как считается triplet loss с margin?

Потеря равна максимуму из нуля и выражения cos(anchor, negative) − cos(anchor, positive) + margin. На учебных векторах с косинусами 0.8 и 0 при margin 0.3 потеря равна нулю. Если отрицательный пример совпадает с якорем по направлению и его косинус равен 1, потеря становится 0.5.

Чем тренировка эмбеддингов отличается от Contrastive CoT?

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

Читайте также

3 материала