Model Merging
모델 병합이 여러 사전 학습 모델을 하나로 결합하는 방법을 알아봅니다. 추가 지연 시간 없이 Ultralytics YOLO26 가중치를 융합하여 성능을 향상하는 방법을 살펴봅니다.
모델 병합은 기계 학습 (ML)에서 여러 사전 학습 모델의 학습된 파라미터(가중치)를 하나의 통합 모델로 결합하는 혁신적인 기법입니다. 기존의 다중 모델 설정과 달리, 모델 병합은 파라미터 공간에서 모델 가중치를 직접 융합합니다. 이를 통해 여러 모델을 동시에 실행하는 데 따르는 메모리 및 연산 비용 없이, 서로 다른 작업이나 데이터셋에 대해 미세 조정된 여러 모델의 전문 지식을 결합할 수 있습니다.
가중치에 직접 연산을 적용하면 모델 병합은 단일 네트워크의 아키텍처 규모를 유지합니다. 이는 추론 지연 시간을 줄이고 메모리를 절약하는 것이 중요한 엣지 디바이스에 고급 컴퓨터 비전 (CV) 파이프라인을 배포할 때 특히 유용합니다.
모델 병합의 구분#
모델 병합을 모델 앙상블 및 전이 학습과 같은 관련 개념과 구분하는 것이 좋습니다.
- 모델 병합과 모델 앙상블 비교: 모델 앙상블은 개별 네트워크를 분리된 상태로 유지하고, 추론 시 각각을 실행한 후 출력을 평균냅니다. 이를 통해 정확도는 향상되지만 연산 오버헤드가 배가됩니다. 모델 병합은 추론 전에 실제 가중치를 결합하므로, 추가적인 런타임 연산이 필요 없는 단일 모델이 생성됩니다.
- 모델 병합과 전이 학습 비교: 전이 학습은 기반 모델을 가져와 새로운 데이터셋으로 추가 학습하는 과정입니다. 모델 병합에는 추가적인 미세 조정이 필요하지 않으며, 이미 학습된 모델을 수학적 연산으로 융합합니다.
일반적인 기법#
연구자들은 네트워크의 기본 역량을 손상하지 않고 가중치를 효과적으로 결합하기 위한 여러 방법을 개발했으며, 이는 최근 arXiv의 학술 연구에서 다루어졌습니다.
- 가중치 평균: 동일한 아키텍처를 공유하는 여러 모델의 가중치 평균을 구하는 가장 간단한 방법입니다.
- 작업 산술: "작업 벡터"(미세 조정된 모델과 기반 모델 간의 차이)를 더하거나 빼서 특정 동작을 결합하거나 제거하는 기법입니다.
- TIES 병합: 중복 값을 제거하고 모델 간 일관된 부호를 선택하여 파라미터 간섭을 해결하며, 다양한 작업에서 성능을 유지하는 고급 접근 방식입니다.
실제 적용 사례#
모델 병합은 처음부터 다시 학습하지 않고 일반화된 시스템을 구축하는 데 매우 효과적입니다.
- 자율주행 차량: 자율주행 자동차는 Ultralytics YOLO26 기반 모델을 사용할 수 있습니다. 엔지니어는 한 모델 버전을 독립적으로 학습하여 미세한 보행자 움직임을 감지하고, 다른 모델 버전을 학습하여 복잡한 도로 표지판을 읽도록 할 수 있습니다. 이 두 모델을 병합하면 추론 시간이 두 배로 늘어나지 않으면서 두 작업을 동시에 처리하는 고성능 단일 검출기가 생성됩니다.
- 의료 분야의 AI: 의료 영상 분야에서는 엄격한 데이터 개인정보 보호법으로 인해 서로 다른 연구 병원이 특화된 로컬 데이터셋(예: 하나는 MRI 스캔용, 다른 하나는 CT 스캔용)으로 모델을 미세 조정할 수 있습니다. 모델을 안전하게 병합하면 연구자들은 다양한 데이터 분포의 이점을 활용하는 종합 진단 도구를 구축할 수 있습니다.
예제: 간단한 가중치 평균#
PyTorch를 사용하면 기본적인 모델 병합을 쉽게 수행할 수 있습니다. 다음 예제에서는 구조가 동일한 두 모델의 state dictionary를 평균내는 방법을 보여줍니다.
import torch
# Load the weights (state dicts) from two identical architectures
weights_a = torch.load("yolo26_task1.pt")["model"].state_dict()
weights_b = torch.load("yolo26_task2.pt")["model"].state_dict()
# Perform simple weight averaging
merged_weights = {k: (weights_a[k] + weights_b[k]) / 2.0 for k in weights_a.keys()}
# Save the newly merged model weights
torch.save({"model": merged_weights}, "yolo26_merged.pt")데이터셋 어노테이션, 학습 및 배포의 복잡한 워크플로를 간소화하려는 팀을 위해 Ultralytics Platform은 엔드투엔드 비전 AI 프로젝트를 손쉽게 관리할 수 있는 직관적인 인터페이스를 제공합니다.









