Task Vectors
Узнай, как «векторы задач» (task vectors) обеспечивают эффективное объединение моделей и управление поведением. Открой для себя, как манипулировать весами Ultralytics YOLO26 для многозадачности с нулевым обучением.
Векторы задач представляют собой конкретные изменения, внесенные в веса нейронной сети в процессе дообучения (fine-tuning) для достижения новых возможностей. Вычитая параметры базовой фундаментальной модели из параметров дообученной модели, исследователи могут выделить направленный вектор в пространстве весов, который инкапсулирует выученное поведение для этой конкретной задачи. Такой подход позволяет тебе применять простые арифметические операции над параметрами модели, чтобы управлять, модифицировать или объединять поведение моделей без необходимости в дополнительных вычислительных ресурсах для обучения.
Чем векторы задач отличаются от трансферного обучения
В то время как концепция трансферного обучения предполагает последовательное обучение модели на новом наборе данных для адаптации существующих знаний, векторы задач работают непосредственно со структурными весами модели после завершения обучения. Вместо повторного вычисления градиентов для изучения новой области, интерполяция в пространстве весов с использованием векторов задач позволяет тебе линейно комбинировать разности весов от нескольких независимо обученных моделей. Это открывает возможности для zero-shot объединения моделей, позволяя одной модели наследовать несколько возможностей одновременно без типичных вычислительных затрат во время обучения.
Реальные применения
Способность алгебраически манипулировать моделями глубокого обучения привела к появлению ряда эффективных приложений в современных AI-конвейерах:
- Объединение многозадачных моделей: Ты можешь объединить вектор задачи, оптимизированный для обнаружения объектов, с другим, обученным для сегментации изображений. При применении к базовой модели Ultralytics YOLO26 это создает архитектуру двойного назначения, которая отлично справляется с обеими задачами одновременно, сохраняя сильные стороны каждого исходного дообучения.
- Машинное «разучивание» и безопасность ИИ: Если модель демонстрирует предвзятые или опасные результаты, ты можешь вычислить вектор задачи, представляющий это конкретное нежелательное поведение. Вычитая этот вектор из весов модели, ты можешь эффективно «стереть» это поведение, внося значительный вклад в улучшение стандартов безопасности ИИ и надежной этики ИИ.
- Адаптация к домену в компьютерном зрении: При адаптации моделей для конкретных условий — например, при переходе от дневного к ночному инференсу в реальном времени — векторы задач позволяют тебе масштабировать величину адаптации. Применение части вектора (например, с коэффициентом масштабирования 0.5) может дать сбалансированную модель, которая хорошо работает в обоих доменах.
Работа с векторами задач в PyTorch
Создание и применение вектора задачи требует доступа к словарю состояний PyTorch и манипуляций с ним. Следующий пример демонстрирует, как извлечь вектор задачи из дообученной модели YOLO26 и применить его обратно к базовой модели с заданным коэффициентом масштабирования.
from ultralytics import YOLO
# Load the state dictionaries for the base and fine-tuned models
base_weights = YOLO("yolo26n.pt").model.state_dict()
tuned_weights = YOLO("yolo26n-custom.pt").model.state_dict()
# Calculate the task vector (tuned weights minus base weights)
task_vector = {k: tuned_weights[k] - base_weights[k] for k in base_weights.keys()}
# Apply the task vector to the base model using a 0.5 scaling factor
for k in base_weights.keys():
base_weights[k] += 0.5 * task_vector[k]Будущее манипуляции весами
По мере того как архитектуры, такие как большие языковые модели и массивные трансформеры для компьютерного зрения, увеличиваются по количеству параметров, их переобучение для каждого незначительного изменения становится экономически нецелесообразным. Векторы задач предоставляют математически элегантную альтернативу для оптимизации моделей после обучения. Делясь легкими векторами задач вместо целых многогигабайтных моделей, ИИ-сообщество может ускорить open-source сотрудничество в сфере ИИ. Как только твои кастомные векторы задач будут доработаны, использование платформы Ultralytics упростит последующие процессы развертывания модели и мониторинга, гарантируя, что твои оптимизированные веса будут напрямую переведены в готовые к работе эндпоинты.






