Task Arithmetic
Открой для себя, как задача арифметики использует обновления весов для изменения поведения модели. Научись объединять задачи или разучивать признаки в Ultralytics YOLO26 без полного переобучения.
Task arithmetic — это передовой подход machine learning, который заключается в изменении поведения предобученных нейронных сетей путем добавления или вычитания определенных обновлений весов. Вместо полноценного дообучения модели с нуля ты можешь выделить изученные различия между базовой моделью и дообученной версией. Эти различия представляют собой по сути направленные обновления, которые инкапсулируют определенную способность или поведение. Применяя к этим обновлениям базовые математические операции вроде сложения и вычитания, разработчики могут динамически редактировать системы deep learning. Эта парадигма получила широкое распространение в недавних arXiv research on task arithmetic, предлагая легковесный и эффективный с точки зрения вычислений метод адаптации крупномасштабных моделей под новые требования.
Как работает эта концепция#
В основе этого метода лежит расчет разницы в model weights между базовой предобученной моделью и версией, прошедшей fine-tuning на определенном наборе данных. Эта выделенная разница становится локализованным представлением нового навыка. Напрямую manipulating PyTorch state dictionaries или используя TensorFlow training methodologies, инженеры могут масштабировать и комбинировать эти разницы весов. Например, вычитание конкретного обновления весов может заставить модель «забыть» выученное поведение — концепция, подробно исследуемая в Anthropic research on model safety.
Реальные приложения#
Task arithmetic открывает возможности для нескольких высокоэффективных рабочих процессов в современных пайплайнах computer vision и обработки естественного языка:
- Multi-Task Capability Merging: Инженеры могут независимо друг от друга обучить базовую модель Ultralytics YOLO26 на двух разных наборах данных: один для специализированного object detection, а другой для image classification. Вычислив разницу весов для обеих задач и добавив их обратно к базовой модели, полученная сеть может выполнять обе задачи одновременно без ущерба от катастрофического забывания.
- Targeted Unlearning for AI Safety: Если модель компьютерного зрения непреднамеренно усваивает предвзятые признаки из обучающих данных, исследователи могут дообучить копию на предвзятых данных, извлечь конкретные различия весов и вычесть их из исходной модели. Как отмечается в различных Google DeepMind discoveries, это эффективно стирает нежелательное поведение, сохраняя при этом общие artificial intelligence capabilities модели.
Разграничение связанных понятий#
Изучая IEEE Xplore archives или ACM digital library, легко перепутать task arithmetic со смежными методологиями:
- Task Vectors: Это актуальные математические тензоры (вычисленные разницы весов), используемые во время арифметического процесса. Task arithmetic — это общий фреймворк добавления или вычитания этих векторов.
- Model Merging: Это более широкий термин для объединения нескольких моделей. Хотя арифметика — лишь один из способов слияния моделей, слияние также может включать сложные маршрутизирующие сети или ансамблирование.
- Transfer Learning: Согласно Wikipedia transfer learning concepts, это предполагает использование знаний из одной задачи в качестве отправной точки для другой, что обычно требует дополнительных циклов обучения. Task arithmetic модифицирует поведение исключительно за счет прямых вычислений весов без дополнительных циклов обучения.
Реализация арифметических операций#
Применение этих model optimization strategies на практике требует тщательного управления внутренним состоянием модели. Ниже приведен пример вычисления и применения обновления с использованием PyTorch — метод, часто обсуждаемый в recent computer vision papers.
import torch
# Load the state dictionaries of the pre-trained base and fine-tuned models
base_weights = torch.load("yolo26_base.pt")
tuned_weights = torch.load("yolo26_tuned.pt")
# Calculate the task vector and add it back to the base model with a scaling factor
scaling_factor = 0.5
for key in base_weights.keys():
task_vector = tuned_weights[key] - base_weights[key]
base_weights[key] += scaling_factor * task_vectorДля команд, управляющих сложными конвейерами data annotation и несколькими версиями дообученных моделей, Ultralytics Platform предоставляет оптимизированную среду для контроля облачного обучения и бесшовного развертывания, что делает управление итеративными улучшениями моделей намного эффективнее.






