Task Vectors
Вектор задачи — это разница между весами дообученной и базовой моделей. Он представляет отдельный навык, который можно добавить, удалить или объединить с другими. Рассматриваются сценарии использования.
Векторы задач отражают конкретные изменения весов нейронной сети, внесенные при дообучении для получения новой способности. Вычитая параметры базовой фундаментальной модели из параметров дообученной модели, исследователи могут выделить направленный вектор в пространстве весов, который кодирует поведение, выученное для конкретной задачи. Этот подход позволяет разработчикам применять простые арифметические операции над параметрами модели, чтобы управлять поведением модели, изменять его или объединять разные варианты без дополнительных вычислений на обучение.
Чем векторы задач отличаются от трансферного обучения#
При трансферном обучении модель последовательно обучают на новом наборе данных, чтобы адаптировать уже имеющиеся знания. Векторы задач же применяются непосредственно к структурным весам модели после обучения. Вместо повторного обучения градиентов для освоения новой предметной области специалисты могут использовать интерполяцию в пространстве весов и линейно объединять разности весов нескольких независимо обученных моделей. Это позволяет выполнять объединение моделей в режиме zero-shot, чтобы одна модель одновременно получала несколько возможностей без обычных вычислительных затрат на обучение.
Примеры применения в реальных условиях#
Возможность алгебраически изменять модели глубокого обучения привела к появлению нескольких перспективных способов применения в современных конвейерах ИИ:
- Объединение моделей для нескольких задач: Инженеры могут объединять векторы задач, полученные при дообучении одной и той же базовой модели, например двух моделей обнаружения объектов, обученных на разных наборах данных. Векторы задач можно объединять только для одинаковых архитектур, поэтому дообученную модель обнаружения объектов нельзя объединить с моделью сегментации изображений. Применение этого метода к базовой модели Ultralytics YOLO26 позволяет создать единую модель, которая наследует сильные стороны каждого исходного варианта.
- Забывание данных моделью и безопасность ИИ: если модель выдаёт предвзятые или опасные ответы, исследователи могут вычислить вектор задачи, описывающий это нежелательное поведение. Вычитая этот вектор из весов модели, можно фактически «стереть» такое поведение и значительно повысить безопасность ИИ и соответствие стандартам этики ИИ.
- Адаптация к предметной области в компьютерном зрении: при адаптации моделей к определённым условиям — например, при переходе от дневного к ночному инференсу в реальном времени — векторы задач позволяют пользователям менять степень адаптации. Применение части вектора (например, с коэффициентом масштабирования 0.5) позволяет получить сбалансированную модель, которая хорошо работает в обеих областях.
Работа с векторами задач в PyTorch#
Для создания и применения вектора задачи нужен доступ к словарю состояний PyTorch и возможность изменять его. В примере ниже показано, как извлечь вектор задачи из дообученной модели Ultralytics YOLO26 и применить его к базовой модели с заданным коэффициентом масштабирования.
from ultralytics import YOLO
# Загружаем словари состояний базовой и дообученной моделей
base_weights = YOLO("yolo26n.pt").model.state_dict()
tuned_weights = YOLO("yolo26n-custom.pt").model.state_dict()
# Вычислить вектор задачи (веса после дообучения минус базовые веса), пропуская целочисленные буферы
task_vector = {k: tuned_weights[k] - base_weights[k] for k in base_weights if base_weights[k].is_floating_point()}
# Применяем вектор задачи к базовой модели с коэффициентом масштабирования 0.5
for k, delta in task_vector.items():
base_weights[k] += 0.5 * deltaБудущее работы с весами#
По мере увеличения числа параметров в архитектурах, таких как большие языковые модели и крупные визуальные трансформеры, переобучать их при каждом незначительном изменении становится экономически нецелесообразно. Векторы задач предлагают элегантный с математической точки зрения способ оптимизации моделей после обучения. Передавая компактные векторы задач вместо целых моделей размером в несколько гигабайт, сообщество ИИ может ускорить совместную разработку ИИ с открытым исходным кодом. Когда пользовательские векторы задач будут готовы, платформа Ultralytics упростит последующие процессы развёртывания модели и мониторинга, помогая напрямую преобразовать оптимизированные веса в готовые к использованию в производственной среде конечные точки.










