Yolo 비전 선전
선전
지금 참여하기
용어집

다양한 수프

Model Soups가 Ultralytics YOLO 가중치를 평균화하여 정확도와 견고성을 어떻게 향상시키는지 알아보세요. 지연 시간을 늘리지 않고 성능을 높이는 방법을 배워보세요.

모델 수프(Model Soups)는 동일한 사전 학습된 기본 모델을 서로 다른 하이퍼파라미터로 미세 조정하여 얻은 여러 신경망의 가중치를 평균화하여, 더 견고한 단일 모델을 생성하는 기계 학습 기법을 말합니다. 이 접근 방식을 통해 개발자는 추론 시 계산 비용을 늘리지 않고도 전체적인 정확도와 일반화 능력을 향상시킬 수 있습니다.

모델을 미세 조정할 때, 실무자들은 일반적으로 광범위한 하이퍼파라미터 튜닝 스윕을 수행하여 성능이 가장 우수한 구성을 찾습니다. 전통적으로 가장 우수한 단일 모델을 선택하고 나머지는 버립니다. 그러나 '모델 수프(model soup)'를 생성하면 스윕 과정에서 모든 모델이 학습한 다양한 특징을 활용할 수 있습니다. 모델 가중치를 직접 평균화하여 생성된 네트워크는 종종 단일 최우수 모델보다 우수한 성능을 보이며, 과적합을 최소화하면서 각 모델의 장점을 효과적으로 결합합니다. 이 과정은 매우 효율적이며 Ultralytics 같은 협업 환경 내에서 손쉽게 관리할 수 있습니다.

실제 애플리케이션

모델 수프는 계산 자원이 제한적이지만 높은 정확도와 견고성이 요구되는 상황에서 매우 효과적이다.

  • 자율주행차의 비전 기술: 자율주행차에 물체 탐지 시스템을 적용할 때, 모델은 다양한 조명 및 기상 조건에서도 일반화 능력을 발휘해야 합니다. 엔지니어들은 다양한 데이터 증강 기법과 학습률을 적용해 훈련된 여러 모델을 평균화함으로써, 낮은 추론 지연 시간을 유지하면서도 매우 견고한 ‘모델 믹스’를 생성합니다. 이를 통해 자율 주행에 필수적인 실시간 처리 속도가 저하되지 않도록 보장합니다.
  • 모바일 의료 진단: 초기 피부 질환 선별 검사를 위해 스마트폰에서 이미지 분류 작업을 수행하는 것과 같은 엣지 AI 애플리케이션의 경우, 연산 능력이 극히 제한적입니다. ‘모델 수프(Model Soup)’는 임상적 신뢰성을 확보하는 데 필요한 정확도를 높여주면서도, 배터리 소모를 최소화하고 클라우드 연결 없이도 최종 모델의 용량이 모바일 엣지 기기에 손쉽게 탑재될 수 있도록 보장합니다.

관련 개념 차별화

딥러닝 최적화의 광범위한 분야를 탐구하려면, 모델 수프(Model Soups)를 유사한 기법들과 명확히 구분하는 것이 중요합니다:

  • 모델 앙상블: 앙상블링은 여러 독립적인 모델의 예측값 (출력)을 결합하는 기법입니다. 이는 정확도를 높여주지만, 추론 단계에서 모든 모델을 실행해야 하므로 계산 비용이 기하급수적으로 증가합니다. 반면 모델 수프는 추론 전에 가중치를 평균화하여, 단일 모델을 사용할 때와 동일한 계산 비용을 유지합니다.
  • 모델 병합: 이는 완전히 다른 작업이나 데이터셋으로 훈련된 모델들을 결합하는 것을 포괄적으로 지칭하는 용어입니다. 모델 수프(Model Soups)는 병합의 특정 하위 유형으로, 모든 모델이 정확히 동일한 사전 훈련된 기본 아키텍처에서 파생되었으며 동일한 목표 작업에 대해 미세 조정된 것을 말합니다.

구현 예시

일관된 모델 수프를 생성하려면 여러 개의 훈련된 모델에 대한 PyTorch 사전(dictionary) 에 접근하여 해당 텐서들의 수학적 평균을 구해야 합니다. 아래는 PyTorch 기본으로 지원하는 Ultralytics 워크플로를 사용하여 이를 구현하는 방법을 보여주는 간결한 예시입니다.

import torch

# Load the PyTorch state dictionaries from two fine-tuned YOLO26 models
model1 = torch.load("yolo26_run1.pt")["model"].state_dict()
model2 = torch.load("yolo26_run2.pt")["model"].state_dict()

# Create a uniform model soup by averaging the model weights
soup_dict = {key: (model1[key] + model2[key]) / 2.0 for key in model1.keys()}

# The resulting soup_dict can now be loaded into a new YOLO26 instance

이 기술을 활용하면 컴퓨터 비전 실무자들은 최신 엣지 우선 AI 아키텍처에 필요한 배포 속도를 저해하지 않으면서도 제로샷 학습 능력과 전반적인 견고성 같은 성능 지표를 손쉽게 향상시킬 수 있습니다.

함께 AI의 미래를 만들어 갑시다!

미래의 머신러닝 여정을 시작하세요