작업 기반 연산이 가중치 업데이트를 활용해 모델의 동작을 어떻게 조정하는지 알아보세요. Ultralytics 전체 재훈련 없이 작업을 병합하거나 특징을 제거하는 방법을 배워보세요.
작업 산술(Task arithmetic)은 사전 훈련된 신경망의 가중치 업데이트를 더하거나 뺌으로써 그 동작을 수정하는 고급 기계 학습 기법입니다. 실무자들은 모델을 처음부터 완전히 다시 훈련하는 대신, 기본 모델과 미세 조정된 모델 간의 학습된 차이점을 분리해 낼 수 있습니다. 이러한 차이점은 본질적으로 특정 기능이나 동작을 담고 있는 방향성 업데이트입니다. 개발자는 이러한 업데이트에 덧셈이나 뺄셈과 같은 기본적인 수학적 연산을 적용함으로써 딥러닝 시스템을 동적으로 수정할 수 있습니다. 이 패러다임은 최근 arXiv의 태스크 산술 관련 연구에서 큰 주목을 받으며, 대규모 모델을 새로운 요구 사항에 적응시키기 위한 가볍고 연산 효율적인 방법을 제시하고 있습니다.
이 기법의 핵심은 사전 훈련된 기본 모델과 특정 데이터셋을 통해 미세 조정을 거친 모델 간의 가중치 차이를 계산하는 데 있습니다. 이렇게 분리된 차이는 새로운 능력의 국소적 표현이 됩니다. 엔지니어들은 PyTorch 사전(state dictionaries)을직접 조작하거나 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 클라우드 훈련 및 원활한 배포를 감독할 수 있는 간소화된 환경을 제공하여, 반복적인 모델 개선 작업을 훨씬 더 효율적으로 관리할 수 있게 해줍니다.
미래의 머신러닝 여정을 시작하세요