Узнайте, как алгоритм Task Arithmetic использует обновления весов для корректировки поведения модели. Научитесь объединять задачи или удалять признаки в Ultralytics без полного переобучения.
Арифметика задач — это передовой метод машинного обучения, заключающийся в изменении поведения предварительно обученных нейронных сетей путем сложения или вычитания определённых обновлений весов. Вместо того чтобы заново обучать модель с нуля, специалисты могут выделить выученные различия между базовой моделью и доработанной моделью. Эти различия, по сути, представляют собой направленные обновления, которые отражают конкретную способность или поведение. Применяя к этим обновлениям базовые математические операции, такие как сложение и вычитание, разработчики могут динамически редактировать системы глубокого обучения. Эта парадигма приобрела значительную популярность в недавних исследованиях arXiv по арифметике задач, предлагая легкий и вычислительно эффективный метод адаптации крупномасштабных моделей к новым требованиям.
В основе этой техники лежит вычисление разницы в весах модели между базовой предварительно обученной моделью и версией, прошедшей тонкое настройку на конкретном наборе данных. Эта изолированная разница становится локализованным представлением нового навыка. Путем непосредственного манипулирования словарями PyTorch или использования методологийTensorFlow инженеры могут масштабировать и комбинировать эти разницы в весах. Например, вычитание определенного обновления веса может заставить модель «забыть» выученное поведение — концепция, которая активно изучается в Anthropic по безопасности моделей.
Арифметика задач открывает доступ к ряду высокоэффективных рабочих процессов в современных конвейерах компьютерного зрения и обработки естественного языка :
При работе с архивами IEEE Xplore или цифровой библиотекой ACM легко спутать арифметику задач со сродными методологиями:
Применение этих стратегий оптимизации моделей на практике требует тщательного управления внутренним состоянием модели. Ниже приведен пример вычисления и применения обновления с помощью 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 предоставляет оптимизированную среду для контроля за обучением в облаке и беспроблемным развертыванием, что делает управление итерационным совершенствованием моделей гораздо более эффективным.
Начните свой путь в будущее машинного обучения