Khám phá cách Model Soups cải thiện độ chính xác và độ bền bằng cách tính trung bình trọng số của các thành phần. Ultralytics YOLO các mô hình. Tìm hiểu cách nâng cao hiệu suất mà không làm tăng độ trễ.
Model Soups đề cập đến một kỹ thuật học máy trong đó trọng số của nhiều mạng nơ-ron, được tinh chỉnh từ cùng một mô hình cơ sở được huấn luyện trước bằng cách sử dụng các siêu tham số khác nhau, được tính trung bình để tạo ra một mô hình duy nhất, mạnh mẽ hơn. Cách tiếp cận này cho phép các nhà phát triển cải thiện độ chính xác và khả năng khái quát hóa tổng thể mà không làm tăng chi phí tính toán trong quá trình suy luận.
Khi tinh chỉnh mô hình, các chuyên gia thường thực hiện một loạt các thao tác điều chỉnh siêu tham số để tìm ra cấu hình hoạt động tốt nhất. Theo truyền thống, mô hình tốt nhất duy nhất được chọn và các mô hình còn lại bị loại bỏ. Tuy nhiên, việc tạo ra một "mớ hỗn độn mô hình" tận dụng các đặc điểm đa dạng được học bởi tất cả các mô hình trong quá trình điều chỉnh. Bằng cách trực tiếp tính trung bình trọng số của các mô hình , mạng lưới kết quả thường hoạt động tốt hơn mô hình tốt nhất duy nhất, kết hợp hiệu quả các điểm mạnh của chúng đồng thời giảm thiểu hiện tượng quá khớp . Quá trình này rất hiệu quả và có thể dễ dàng quản lý trong các môi trường cộng tác như Nền tảng Ultralytics .
Mô hình "súp" rất hiệu quả trong các trường hợp tài nguyên tính toán bị hạn chế, nhưng độ chính xác và độ bền cao lại được yêu cầu.
Để định hướng trong lĩnh vực tối ưu hóa học sâu , điều quan trọng là phải phân biệt Model Soups với các kỹ thuật tương tự:
Việc tạo ra một tập hợp mô hình đồng nhất bao gồm việc truy cập vào từ điển trạng thái PyTorch của nhiều mô hình đã được huấn luyện và tính trung bình toán học các tensor của chúng. Dưới đây là một ví dụ ngắn gọn về cách thực hiện điều này bằng cách sử dụng quy trình làm việc Ultralytics YOLO26 được hỗ trợ trực tiếp bởi khung PyTorch .
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
Bằng cách tận dụng kỹ thuật này, các chuyên gia về thị giác máy tính có thể dễ dàng nâng cao các chỉ số hiệu suất như khả năng học không cần dữ liệu huấn luyện (zero-shot learning) và độ ổn định tổng thể mà không làm giảm tốc độ triển khai cần thiết cho các kiến trúc AI hiện đại, ưu tiên xử lý dữ liệu tại biên.
Bắt đầu hành trình của bạn với tương lai của học máy