Task Arithmetic
Открой для себя, как задача арифметики использует обновления весов для изменения поведения модели. Научись объединять задачи или разучивать признаки в Ultralytics YOLO26 без полного переобучения.
Арифметика задач — это продвинутый метод машинного обучения, который включает изменение поведения предварительно обученных нейронных сетей путем сложения или вычитания конкретных обновлений весов. Вместо полноценного переобучения модели с нуля ты можешь изолировать выученные различия между базовой моделью и дообученной моделью. Эти различия по сути являются направленными обновлениями, которые инкапсулируют определенную способность или поведение. Применяя базовые математические операции, такие как сложение и вычитание, к этим обновлениям, ты можешь динамически редактировать системы глубокого обучения. Эта парадигма получила значительное распространение в недавних исследованиях на arXiv по арифметике задач, предлагая легкий и вычислительно эффективный метод адаптации крупномасштабных моделей к новым требованиям.
Link to this sectionКак работает эта концепция#
Основа этого метода опирается на вычисление разницы в весах модели между базовой предварительно обученной моделью и версией, прошедшей дообучение на конкретном наборе данных. Эта изолированная разница становится локализованным представлением нового навыка. Непосредственно манипулируя словарями состояний PyTorch или используя методологии обучения TensorFlow, ты можешь масштабировать и комбинировать эти весовые различия. Например, вычитание определенного обновления весов может заставить модель «забыть» выученное поведение — концепция, широко исследуемая в работах Anthropic по безопасности моделей.
Link to this sectionРеальные приложения#
Арифметика задач открывает несколько высокоэффективных рабочих процессов в современных конвейерах компьютерного зрения и обработки естественного языка:
- Объединение многозадачных возможностей: Ты можешь обучить базовую модель Ultralytics YOLO26 на двух отдельных наборах данных независимо — один для специализированного обнаружения объектов, а другой для классификации изображений. Вычисляя разницу весов для обеих задач и добавляя их обратно к базовой модели, ты получишь сеть, способную выполнять обе задачи одновременно без риска катастрофического забывания.
- Целевое «забывание» для безопасности ИИ: Если модель компьютерного зрения непреднамеренно выучила предвзятые признаки из данных обучения, ты можешь дообучить копию на предвзятых данных, извлечь конкретные различия весов и вычесть их из исходной модели. Как отмечается в различных открытиях Google DeepMind, это эффективно стирает нежелательное поведение, сохраняя общие возможности искусственного интеллекта модели.
Link to this sectionРазграничение связанных понятий#
Изучая архивы IEEE Xplore или цифровую библиотеку ACM, легко перепутать арифметику задач с похожими методологиями:
- Векторы задач: Это фактические математические тензоры (вычисленные различия весов), используемые во время арифметического процесса. Арифметика задач — это общая структура сложения или вычитания этих векторов.
- Объединение моделей: Это более широкий термин для комбинирования нескольких моделей. Хотя арифметика является одним из способов объединения моделей, объединение также может включать сложные маршрутизирующие сети или ансамблирование.
- Перенос обучения: Согласно концепциям трансферного обучения Wikipedia, это включает использование знаний из одной задачи в качестве отправной точки для другой, что обычно требует дополнительных циклов обучения. Арифметика задач изменяет поведение исключительно посредством прямых вычислений весов без дополнительных циклов обучения.
Link to this sectionРеализация арифметических операций#
Применение этих стратегий оптимизации моделей на практике требует тщательного управления внутренним состоянием модели. Ниже представлен пример вычисления и применения обновления с помощью PyTorch — техники, часто обсуждаемой в недавних статьях по компьютерному зрению.
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Для команд, управляющих сложными конвейерами разметки данных и несколькими версиями дообученных моделей, Ultralytics Platform предоставляет оптимизированную среду для контроля облачного обучения и бесшовного развертывания, делая управление итеративными улучшениями моделей намного эффективнее.






