Bài học “khối nguyên” cho bộ khung tác tử AI

Đóng gói tác tử AI trên Kubernetes không tự biến nó thành hệ thống phân tán. Bộ khung phải tách vòng lặp, trạng thái và hạ tầng để mở rộng ổn định.

Hạ tầng máy chủ phục vụ tác tử AI trên Kubernetes
Hạ tầng phân tán đặt ra yêu cầu mới cho tác tử AI.

Đóng gói một tác tử rồi triển khai trên Kubernetes không tự biến nó thành hệ thống phân tán. Đó là bài học “khối nguyên” cho bộ khung tác tử AI. McLuckie lập luận rằng một bộ khung theo kiến trúc đám mây nên tách vòng lặp tác tử khỏi hạ tầng và các dịch vụ xung quanh. Ông đề xuất cách tiếp cận này để khắc phục giới hạn của các bộ khung cục bộ khi phục vụ nhiều phiên hoặc chuyển trải nghiệm giữa các thiết bị.

Theo bài viết gốc của The New Stack, Craig McLuckie cho rằng các thành phần bao quanh tác tử thường bị gom vào một bộ khung vận hành cục bộ. Ông là nhà sáng lập kiêm giám đốc điều hành Stacklok. Cách làm đó phù hợp với một lập trình viên dùng máy tính xách tay. Tuy nhiên, nó khó mở rộng tới hàng trăm phiên và khó chuyển trải nghiệm giữa các thiết bị.

Nội dung bài học “khối nguyên” của Kubernetes

McLuckie diễn đạt vấn đề bằng một bài học của Kubernetes: “Đưa một khối nguyên vào bộ chứa không làm nó hết tính khối nguyên.” Nguyên tắc này cũng áp dụng cho tác tử AI. Thay đổi môi trường triển khai không loại bỏ các giới hạn kiến trúc bên trong ứng dụng.

Một tác tử được đóng gói để triển khai trên máy chủ hoặc Kubernetes chưa tự động trở thành một hệ thống phân tán. Toàn bộ hệ thống vẫn mang giới hạn của một ứng dụng cục bộ nếu các thành phần còn gắn chặt với nhau. Các thành phần đó gồm vòng lặp tác tử, trạng thái phiên, quyền, hệ thống tệp và dịch vụ hỗ trợ.

Điều đó giải thích vì sao việc đưa tác tử AI lên Kubernetes không chỉ là bài toán tạo bộ chứa rồi triển khai. Nhóm vận hành còn phải xác định thành phần xử lý suy luận và thành phần giữ trạng thái. Họ cũng phải xác định thành phần kiểm soát quyền truy cập.

Cụm máy chủ minh họa bộ khung tác tử AI phân tán
Bộ khung tác tử cần tách khỏi một máy duy nhất.

Bộ khung tác tử đám mây cần thay đổi gì

Theo đề xuất của McLuckie, bộ khung tác tử đám mây nên tách vòng lặp tác tử khỏi hạ tầng và các dịch vụ xung quanh. Trạng thái, ngữ cảnh, tệp, quyền và tác tử phụ là những thành phần thường được gọi chung là bộ khung. Nguồn không quy định từng thành phần này phải trở thành một dịch vụ độc lập.

Trong lập luận đăng trên trang của CNCF, McLuckie đề xuất một bộ khung tác tử theo kiến trúc đám mây. Đây là một ứng dụng phân tán. Vòng lặp của tác tử được tách khỏi hạ tầng và các dịch vụ xung quanh.

McLuckie đề xuất sự tách biệt này như một hướng xử lý các điểm yếu của bộ khung cục bộ. Mục tiêu là giảm sự phụ thuộc của phiên làm việc vào máy cá nhân và giúp trải nghiệm dễ chuyển hơn giữa ứng dụng khách hoặc thiết bị. Nguồn không đưa ra kết quả triển khai để chứng minh các lợi ích đó đã đạt được.

Với đội kỹ thuật đang xây tác tử AI hỗ trợ lập trình, câu hỏi kiến trúc không dừng ở chất lượng mô hình. Bộ khung còn phải quản lý ngữ cảnh, tệp, tác tử phụ và quyền. Cách quản lý đó phải phục vụ đồng thời nhiều phiên.

Kubernetes không tự giải quyết phần vận hành

Kubernetes cung cấp nền tảng triển khai, nhưng không tự thiết kế cách duy trì phiên hoặc quản lý các dịch vụ quanh tác tử. Nền tảng này cũng không tự phân chia trách nhiệm. Đội phát triển vẫn phải xác định ranh giới giữa vòng lặp tác tử, trạng thái và hạ tầng. Họ cũng phải giao quyền sở hữu rõ ràng cho từng phần.

Nguồn gốc của bài học này nằm ở chính cách các đội sử dụng Kubernetes. Khởi chạy được một cụm là một cột mốc. Tuy nhiên, lần nâng cấp tiếp theo, yêu cầu truy cập hoặc một lần phục hồi thất bại vẫn cần người chịu trách nhiệm rõ ràng. Một cụm khỏe không đồng nghĩa ứng dụng bên trên cũng khỏe.

Điều tương tự xảy ra với bộ khung tác tử. Kubernetes có thể cung cấp nền tảng triển khai, nhưng không tự quyết định cách duy trì phiên hay phân chia trách nhiệm. Nền tảng này cũng không tự tách vòng lặp tác tử khỏi dịch vụ phụ trợ. Đội xây dựng hệ thống vẫn phải thực hiện phần thiết kế đó.

Cách nhìn này cũng phù hợp với vai trò rộng hơn của hạ tầng AI và quy trình vận hành: mô hình chỉ là một thành phần, còn khả năng chạy ổn định phụ thuộc vào cách các lớp xung quanh phối hợp với nhau.

Hiệu quả hạ tầng vẫn phải được đo bằng số liệu

Hiệu quả của hạ tầng AI phải được đánh giá bằng các chỉ số sử dụng tài nguyên và kết quả vận hành. Trường hợp Zhuoyu Technology cho thấy một lớp điều phối chuyên biệt có thể cải thiện đáng kể khả năng phân bổ GPU, nhưng kết quả đó không thể được áp dụng trực tiếp cho mọi bộ khung tác tử.

Theo nghiên cứu tình huống của CNCF về Zhuoyu Technology, công ty công nghệ lái xe tự động Trung Quốc gặp hạn chế về phân bổ và sử dụng tài nguyên với bộ lập lịch Kubernetes mặc định.

Sau khi dùng Koordinator, Zhuoyu Technology nâng tỷ lệ phân bổ GPU lên trên 95%. Mức sử dụng GPU tổng thể cũng tăng lên trên 55%. Koordinator là dự án cấp Sandbox thuộc CNCF dành cho việc lập lịch vi dịch vụ, AI và khối lượng công việc dữ liệu lớn. Nghiên cứu còn ghi nhận các lần chạy thất bại, GPU bị bỏ trống và khó khăn khi lập lịch tác vụ phân tán.

Các con số này không chứng minh một bộ khung tác tử sẽ đạt hiệu quả tương tự. Chúng cho thấy Kubernetes mặc định không phải lúc nào cũng tối ưu cho khối lượng công việc AI, còn lớp điều phối chuyên biệt có thể tạo ra khác biệt trong một môi trường thực tế cụ thể.

Điều các đội phát triển cần rút ra

Đội phát triển không nhất thiết phải chia nhỏ mọi bộ khung tác tử ngay từ đầu. Theo McLuckie, giới hạn của kiến trúc cục bộ bộc lộ khi bộ khung phải phục vụ hàng trăm phiên hoặc chuyển trải nghiệm giữa nhiều thiết bị. Đây là vấn đề mà đề xuất về bộ khung tác tử theo kiến trúc đám mây hướng tới.

Trong đề xuất đó, vòng lặp tác tử được tách khỏi hạ tầng và các dịch vụ xung quanh để trở thành một phần của ứng dụng phân tán. Nguồn xem đây là hướng kiến trúc thay cho bộ khung cục bộ, nhưng không yêu cầu ngữ cảnh, quyền, tệp và trạng thái phiên phải được triển khai thành các dịch vụ độc lập.

Bill Doerrfeld, tác giả bài viết gốc về Kubernetes và tác tử AI
Bill Doerrfeld viết bài phân tích gốc trên The New Stack.

Trước khi mở rộng một tác tử AI, đội phát triển nên rà lại ranh giới giữa vòng lặp tác tử và trạng thái phiên. Họ cũng cần xem xét quyền truy cập cùng hạ tầng vận hành. Nếu các thành phần này vẫn phụ thuộc vào một tiến trình cục bộ, Kubernetes chưa giải quyết được giới hạn kiến trúc.