Tích hợp liên tục (CI) là một hoạt động cơ bản trong phát triển phần mềm hiện đại và ngày càng trở nên quan trọng trong các lĩnh vực Trí tuệ nhân tạo (AI) và Học máy (ML) . Nó liên quan đến việc thường xuyên hợp nhất các thay đổi mã từ nhiều người đóng góp vào một kho lưu trữ trung tâm, sau đó các bản dựng và thử nghiệm tự động được chạy. Mục tiêu chính của CI là phát hiện sớm các vấn đề tích hợp, cải thiện chất lượng mã và hợp lý hóa quy trình làm việc phát triển. Vòng phản hồi nhanh và tự động hóa này đặc biệt có lợi cho các dự án phức tạp, chẳng hạn như các dự án liên quan đến việc đào tạo và triển khai các mô hình Ultralytics YOLO cho các tác vụ thị giác máy tính .
Tại sao tích hợp liên tục lại quan trọng trong AI/ML?
Bản chất lặp đi lặp lại của quá trình phát triển AI/ML, bao gồm các thử nghiệm với dữ liệu, mô hình và tham số (như điều chỉnh siêu tham số và tăng cường dữ liệu ), khiến CI trở nên đặc biệt có giá trị. Việc tích hợp CI cung cấp phản hồi nhanh chóng về các thay đổi, đảm bảo rằng mã mới tích hợp chính xác với cơ sở mã hiện có và hiệu suất mô hình không bị suy giảm đột ngột. Các lợi ích chính bao gồm:
- Phát hiện lỗi sớm: Các thử nghiệm tự động phát hiện lỗi nhanh chóng sau khi các thay đổi mã được hợp nhất, giúp giảm chi phí và công sức sửa lỗi sau này.
- Cải thiện chất lượng mã: Kiểm tra và tích hợp nhất quán khuyến khích các phương pháp mã hóa tốt hơn và cơ sở mã có thể bảo trì. Các công cụ như linter và trình phân tích tĩnh thường là một phần của quy trình CI.
- Chu kỳ phát triển nhanh hơn: Tự động hóa giúp giảm công sức thử nghiệm thủ công và cho phép các nhà phát triển tập trung vào việc xây dựng các tính năng.
- Hiệu suất mô hình nhất quán: Các đường ống CI có thể bao gồm các bước để đánh giá độ chính xác , độ chính xác , độ thu hồi và các số liệu liên quan khác của mô hình, ngăn ngừa hồi quy. Điều này thường liên quan đến việc kiểm tra các số liệu như điểm F1 hoặc Độ chính xác trung bình (mAP) .
- Tăng cường cộng tác: Tích hợp thường xuyên giúp giảm thiểu xung đột khi hợp nhất và giúp nhóm làm việc trên cơ sở mã được cập nhật.
CI hoạt động như thế nào trong các dự án AI/ML
Trong một dự án AI/ML điển hình sử dụng CI, quy trình thường bắt đầu khi nhà phát triển cam kết thay đổi mã (bao gồm các tập lệnh mô hình, tệp cấu hình hoặc thậm chí các bước xử lý dữ liệu mới) vào hệ thống kiểm soát phiên bản dùng chung như Git . Cam kết này tự động kích hoạt một đường ống CI, thường được quản lý bởi các nền tảng như Jenkins , GitLab CI/CD hoặc GitHub Actions . Đường ống thường thực hiện một số bước:
- Xây dựng: Biên dịch mã và xây dựng các thành phần cần thiết (ví dụ: hình ảnh Docker).
- Kiểm thử đơn vị: Chạy các thử nghiệm nhỏ, riêng biệt trên từng thành phần mã.
- Kiểm thử tích hợp: Kiểm thử sự tương tác giữa các bộ phận khác nhau của hệ thống.
- Xác thực mô hình: Chạy các thử nghiệm cụ thể cho mô hình ML, chẳng hạn như kiểm tra tính toàn vẹn của dữ liệu, xác thực kiến trúc mô hình hoặc chạy suy luận trên một tập dữ liệu thử nghiệm nhỏ.
- Kiểm tra hiệu suất: Đánh giá các số liệu hiệu suất của mô hình ( mAP , độ chính xác , độ trễ ) so với các điểm chuẩn được xác định trước hoặc các phiên bản trước đó. Điều này có thể liên quan đến các chế độ đánh giá chuẩn .
- Báo cáo: Thông báo cho nhóm về kết quả xây dựng và thử nghiệm, thường tích hợp với các công cụ truyền thông như Slack .
Ultralytics sử dụng CI rộng rãi; bạn có thể tìm hiểu thêm về quy trình của chúng tôi trong Hướng dẫn CI Ultralytics .
Ứng dụng thực tế của tích hợp liên tục trong AI/ML
Tích hợp liên tục được sử dụng trong nhiều ứng dụng AI/ML thực tế để nâng cao hiệu quả và độ tin cậy.
- Phát triển hệ thống phát hiện đối tượng: Một công ty phát triển hệ thống phát hiện đối tượng , có thể sử dụng Ultralytics YOLO11 , có thể sử dụng CI để tự động kiểm tra các thay đổi mã mới. Mỗi lần xác nhận có thể kích hoạt một đường ống đào tạo lại hoặc xác thực mô hình trên một tập hợp con dữ liệu (như COCO128 ), chạy các đánh giá để kiểm tra tốc độ mAP và suy luận, và đảm bảo các thay đổi không ảnh hưởng tiêu cực đến hiệu suất trước khi hợp nhất. Điều này giúp duy trì chất lượng mô hình cho các ứng dụng trong AI hoặc bảo mật ô tô.
- Tinh chỉnh mô hình xử lý ngôn ngữ tự nhiên (NLP): Một nhóm làm việc trên mô hình phân tích tình cảm sử dụng các kỹ thuật NLP có thể triển khai CI. Mỗi bản cập nhật mã (ví dụ: tinh chỉnh trích xuất tính năng hoặc kiến trúc mô hình) sẽ tự động kích hoạt các bài kiểm tra. Các bài kiểm tra này có thể chạy mô hình đã cập nhật trên một tập dữ liệu xác thực, so sánh độ chính xác phân loại tình cảm và điểm F1 của mô hình với kết quả cơ sở. Điều này đảm bảo hiệu quả của mô hình được theo dõi và cải thiện liên tục.
Tích hợp liên tục so với Phân phối/Triển khai liên tục (CD)
Mặc dù có liên quan chặt chẽ, CI khác với Phân phối liên tục và Triển khai liên tục (CD).
- Tích hợp liên tục (CI): Tập trung vào việc tích hợp thường xuyên các thay đổi mã và tự động kiểm tra chúng. Đầu ra là bản dựng đã được xác thực, sẵn sàng cho các bước tiếp theo.
- Phân phối liên tục (CD): Mở rộng CI bằng cách tự động chuẩn bị các thay đổi mã đã xác thực để phát hành vào môi trường dàn dựng hoặc sản xuất. Việc triển khai vào sản xuất thường được kích hoạt thủ công. Bạn có thể đọc thêm về sự khác biệt trong hướng dẫn Atlassian này.
- Triển khai liên tục (CD): Tiến thêm một bước nữa bằng cách tự động triển khai mọi thay đổi đã được xác thực trực tiếp vào sản xuất mà không cần can thiệp thủ công.
Thực hành CI và CD là các thành phần cốt lõi của Hoạt động học máy (MLOps) , nhằm mục đích hợp lý hóa toàn bộ vòng đời học máy từ phát triển đến triển khai và giám sát . Các nền tảng như Ultralytics HUB có thể giúp quản lý các phần của vòng đời này, bao gồm đào tạo và triển khai mô hình.