Khám phá cách các hàm gọi lại tối ưu hóa Ultralytics Khóa đào tạo YOLO26. Học cách triển khai dừng sớm, tạo điểm kiểm tra và ghi nhật ký tùy chỉnh để nâng cao quy trình làm việc AI của bạn.
Trong lĩnh vực kỹ thuật phần mềm và trí tuệ nhân tạo (AI) , hàm gọi lại (callback ) là một đoạn mã có thể thực thi được, được truyền làm đối số cho mã khác, và mã đó sẽ thực thi (gọi lại) đối số vào một thời điểm nhất định. Trong bối cảnh cụ thể của các framework học sâu (DL) , hàm gọi lại là công cụ thiết yếu cho phép các nhà phát triển tùy chỉnh hành vi của vòng lặp huấn luyện mô hình mà không cần sửa đổi mã huấn luyện cốt lõi. Chúng hoạt động như các trình kích hoạt tự động thực hiện các hành động cụ thể ở các giai đoạn khác nhau của quá trình huấn luyện, chẳng hạn như bắt đầu hoặc kết thúc một epoch , một batch huấn luyện hoặc toàn bộ phiên huấn luyện.
Việc huấn luyện một mạng nơ-ron phức tạp có thể mất hàng giờ hoặc thậm chí nhiều ngày. Nếu không có các hàm gọi lại (callback), quá trình huấn luyện về cơ bản là một "hộp đen" hoạt động cho đến khi hoàn thành, thường đòi hỏi sự giám sát thủ công. Các hàm gọi lại mang lại khả năng quan sát và kiểm soát, cho phép hệ thống tự điều chỉnh dựa trên các chỉ số hiệu suất thời gian thực.
Khi sử dụng các thư viện cấp cao như PyTorch hoặc TensorFlow , các hàm gọi lại (callback) cung cấp một cách để chèn logic vào thuật toán tối ưu hóa . Ví dụ, nếu mô hình đang học tốt, hàm gọi lại có thể lưu trạng thái hiện tại; nếu nó ngừng học, hàm gọi lại có thể dừng quá trình để tiết kiệm tài nguyên. Điều này làm cho quy trình làm việc của máy học (ML) hiệu quả và mạnh mẽ hơn.
Các hàm gọi lại rất linh hoạt và có thể được sử dụng cho nhiều nhiệm vụ khác nhau trong quá trình giám sát và tối ưu hóa mô hình .
Cái Ultralytics Thư viện hỗ trợ một hệ thống gọi lại mạnh mẽ, cho phép người dùng can thiệp vào các sự kiện trong quá trình huấn luyện các mô hình như YOLO26 . Điều này đặc biệt hữu ích cho những người dùng quản lý quy trình làm việc trên Nền tảng Ultralytics những người cần ghi nhật ký tùy chỉnh hoặc logic điều khiển.
Dưới đây là một ví dụ ngắn gọn về cách định nghĩa và đăng ký một hàm callback tùy chỉnh để in ra một thông báo vào cuối mỗi chu kỳ huấn luyện bằng cách sử dụng API Python :
from ultralytics import YOLO
# Define a custom callback function
def on_train_epoch_end(trainer):
"""Callback function to execute at the end of each training epoch."""
print(f"Epoch {trainer.epoch + 1} complete. Current Fitness: {trainer.fitness}")
# Load the YOLO26 model (latest generation)
model = YOLO("yolo26n.pt")
# Register the custom callback to the model
model.add_callback("on_train_epoch_end", on_train_epoch_end)
# Train the model with the callback active
model.train(data="coco8.yaml", epochs=3)
Mặc dù có liên quan, nhưng việc phân biệt giữa callback và hook là rất hữu ích. Trong các framework như... PyTorch Các hook thường là các hàm cấp thấp được gắn vào các phép toán tensor cụ thể hoặc các lớp mạng nơ-ron để kiểm tra hoặc sửa đổi gradient và đầu ra trong quá trình truyền tiến hoặc truyền ngược. Ngược lại, các hàm gọi lại (callback) thường là các trừu tượng cấp cao hơn được gắn với các sự kiện của vòng lặp huấn luyện (bắt đầu, kết thúc, xử lý theo lô) chứ không phải là đồ thị tính toán toán học.
Đối với những ai muốn hiểu sâu hơn về cách tối ưu hóa quy trình huấn luyện, việc tìm hiểu về điều chỉnh siêu tham số là bước tiếp theo hợp lý. Thêm vào đó, việc hiểu các tác vụ thị giác máy tính (CV) cơ bản như phát hiện đối tượng và phân đoạn đối tượng sẽ cung cấp bối cảnh về lý do tại sao việc kiểm soát huấn luyện chính xác thông qua các hàm gọi lại là cần thiết. Để quản lý các quy trình này ở cấp doanh nghiệp, Nền tảng Ultralytics cung cấp các giải pháp tích hợp tự động hóa nhiều hành vi dựa trên hàm gọi lại này.