Tích hợp liên tục (CI)
Cải thiện quy trình làm việc AI/ML với Tích hợp liên tục. Tự động hóa thử nghiệm, cải thiện chất lượng mã và hợp lý hóa quá trình phát triển mô hình một cách dễ dàng.
Tích hợp Liên tục (CI) là một phương pháp phát triển phần mềm, trong đó các nhà phát triển thường xuyên hợp nhất các thay đổi mã của họ vào một kho lưu trữ trung tâm, sau đó tự động hóa các bản dựng và kiểm thử. 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 phát triển. Trong bối cảnh Trí tuệ Nhân tạo (AI) và Học máy (ML) , CI mở rộng ra ngoài các kiểm tra mã truyền thống để bao gồm việc xác thực dữ liệu, mô hình và hiệu suất đường ống tổng thể, tạo thành một thành phần quan trọng của Hoạt động Học máy (MLOps) .
Các nguyên tắc chính của tích hợp liên tục
Quy trình CI được xây dựng trên nền tảng tự động hóa và lặp lại thường xuyên. Các nhà phát triển đẩy những thay đổi nhỏ, thường xuyên lên kho lưu trữ dùng chung bằng hệ thống kiểm soát phiên bản như Git . Mỗi lần đẩy sẽ kích hoạt một quy trình làm việc tự động, hay còn gọi là pipeline, thực hiện một số bước chính:
- Tự động biên dịch: Hệ thống tự động biên dịch mã để đảm bảo tích hợp chính xác. Đối với các dự án ML, điều này có thể bao gồm việc thiết lập môi trường bằng các công cụ chứa như Docker .
- Kiểm thử tự động: Một bộ kiểm thử được chạy để xác thực các thay đổi mới. Bao gồm kiểm thử đơn vị cho logic mã, kiểm thử tích hợp cho tương tác thành phần và kiểm thử chuyên biệt cho ML, chẳng hạn như xác thực dữ liệu và đánh giá mô hình .
- Vòng phản hồi nhanh: Nếu bất kỳ bước nào trong quy trình phát triển gặp sự cố, nhóm phát triển sẽ được thông báo ngay lập tức. Điều này cho phép họ giải quyết vấn đề nhanh chóng trước khi chúng trở nên phức tạp hơn và được tích hợp vào cơ sở mã chính.
CI cho máy học (CI4ML)
Việc áp dụng CI vào các dự án Học máy đặt ra những thách thức đặc thù. Không chỉ đơn thuần là mã nguồn, hệ thống ML còn liên quan đến dữ liệu và các mô hình đã được huấn luyện, vốn cũng phải được kiểm tra phiên bản và xác thực. Một quy trình CI hiệu quả cho một dự án ML, chẳng hạn như dự án liên quan đến mô hình YOLO của Ultralytics , bao gồm các bước bổ sung:
- Xác thực dữ liệu: Tự động kiểm tra tính chính xác, tuân thủ lược đồ và sai lệch tiềm ẩn của dữ liệu mới. Các công cụ như Great Expectations có thể được sử dụng cho mục đích này.
- Kiểm thử Mô hình: Chạy thử nghiệm để kiểm tra sự suy giảm hiệu suất. Việc này bao gồm việc so sánh các số liệu hiệu suất của mô hình mới với phiên bản cơ sở trên tập dữ liệu xác thực được chuẩn hóa.
- Xác thực Quy trình Đào tạo: Đảm bảo quy trình đào tạo mô hình có thể tái tạo và hiệu quả. Điều này có thể được quản lý bằng các nền tảng như Ultralytics HUB , giúp hợp lý hóa quy trình quản lý tập dữ liệu và đào tạo.
Ứng dụng trong thế giới thực
- Phát triển Lái xe Tự động: Một nhóm làm việc trên mô hình phát hiện vật thể cho xe tự hành sử dụng một quy trình CI. Khi nhà phát triển gửi mã để cải thiện khả năng phát hiện người đi bộ vào ban đêm của mô hình, quy trình sẽ tự động kích hoạt. Quy trình này chạy các bài kiểm tra đơn vị, huấn luyện lại phiên bản nhẹ của mô hình YOLO11 trên một tập dữ liệu kiểm tra và đánh giá mAP của nó. Nếu độ chính xác không giảm và tất cả các bài kiểm tra đều vượt qua, thay đổi sẽ được chấp thuận để hợp nhất. Các công cụ CI phổ biến như GitHub Actions hoặc Jenkins thường được sử dụng để tự động hóa các quy trình làm việc này.
- Phân tích Hình ảnh Y tế: Trong một hệ thống được thiết kế để phát hiện khối u trong hình ảnh y tế , nhà khoa học dữ liệu có thể thêm dữ liệu tăng cường mới để cải thiện độ tin cậy. Quy trình CI xác thực định dạng và phân phối dữ liệu mới. Sau đó, nó kích hoạt một lần chạy xác thực bằng mô hình được đào tạo trước để đảm bảo các dự đoán của mô hình trên "tập dữ liệu vàng" luôn nhất quán, ngăn ngừa các hành vi bất ngờ trong quá trình sản xuất. Quy trình này giúp duy trì các tiêu chuẩn cao về độ tin cậy, yếu tố then chốt đối với AI trong chăm sóc sức khỏe .
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 và kiểm tra tự động các thay đổi mã. Đầu ra là một bản dựng đã được xác thực, sẵn sàng cho giai đoạn tiếp theo. Ultralytics sử dụng CI để kiểm tra tất cả các yêu cầu kéo trước khi hợp nhất chúng.
- Phân phối Liên tục (CD): Mở rộng CI bằng cách tự động chuẩn bị mọi thay đổi đã được xác thực để phát hành lên môi trường dàn dựng hoặc sản xuất. Tuy nhiên, việc triển khai mô hình cuối cùng lên sản xuất cần được phê duyệt thủ công. Phương pháp này được trình bày chi tiết trong các hướng dẫn từ các nguồn như Atlassian .
- Triển khai Liên tục (CD): Tiến xa hơn một bước bằng cách tự động triển khai mọi thay đổi đã được xác thực trực tiếp lên môi trường sản xuất mà không cần bất kỳ sự can thiệp nào của con người. Đây là mức độ tự động hóa cao nhất trong vòng đời phát hành phần mềm.
Cùng với nhau, các hoạt động CI và CD là nền tảng cho chiến lược MLOps mạnh mẽ, nhằm mục đích thống nhất quá trình phát triển và vận hành các hệ thống học máy, từ thử nghiệm ban đầu đến triển khai và giám sát mô hình liên tục.