Tại sao Kubernetes chính là nền tảng dành cho Generative AI?

Kubernetes (K8s) không còn là một công cụ chỉ để chạy các workload như ứng dụng web hay microservices, nó chính là nền tảng lý tưởng để hỗ trợ toàn bộ vòng đời của các workload lớn về Trí tuệ nhân tạo (AI) và Học máy (ML), chẳng hạn như các Mô hình ngôn ngữ lớn (LLMs).

Vào năm 2021, một báo cáo từ Run:ai đã cho thấy rằng 42% số người được hỏi cho biết họ đã sử dụng Kubernetes cho các quy trình công việc AI/ML. Năm ngoái Red Hat cho biết con số đó đã tăng lên 65% và trong năm nay dự kiến nó ​​sẽ còn cao hơn nữa.

Việc áp dụng rộng rãi này trải dài khắp các ngành: từ các công ty tiên tiến, sáng tạo như OpenAI, đến các nhà cung cấp AI cloud như CoreWeave, cho đến các thương hiệu lớn đã có uy tín như Shell và Spotify. Tất cả các tổ chức này đều dựa vào K8s để hỗ trợ các workload phân tán AI/ML của họ.

Trong bài đăng này, chúng ta sẽ khám phá lý do tại sao Kubernetes hỗ trợ nghiên cứu và kỹ thuật AI/ML một cách độc đáo ở từng giai đoạn của vòng đời.

Giới thiệu

Kubernetes nổi tiếng nhất là một nền tảng hiệu quả cao để quản lý và điều phối container trong môi trường điện toán phân tán (Distributed Computing). Ban đầu nó được Google phát triển như một dự án open-source để quản lý các ứng dụng nội bộ của họ. Kể từ đó, nó đã trở thành tiêu chuẩn thực tế để triển khai, mở rộng quy mô và quản lý các ứng dụng container hoá (containerized) trong các môi trường khác nhau.

Nhưng gần đây hơn, Kubernetes đã được chứng minh là cực kỳ hữu ích cho một loạt trường hợp sử dụng mới: Nó đã được tận dụng bởi các tổ chức đang tìm cách phát triển, đào tạo và triển khai các LLM một cách hiệu quả.

Sự hỗ trợ toàn diện của nó trong suốt toàn bộ vòng đời của các LLM mang lại nhiều lợi thế, loại bỏ nhu cầu tích hợp framework phức tạp trên các stack công nghệ khác nhau và nó có thể được sử dụng ở từng giai đoạn của vòng đời LLM, từ đào tạo trước đến triển khai cho đến thử nghiệm và xây dựng ứng dụng.

Model Pre-training

Trong giai đoạn đào tạo trước mô hình (model pre-training), Kubernetes cung cấp một nền tảng vững chắc khi mang lại khả năng mở rộng và sự linh hoạt khó có thể so sánh.

Khả năng tự động tăng và giảm quy mô dựa trên nhu cầu tài nguyên này là một trong những lợi thế lớn nhất, đặc biệt là đối với các workload AI/ML đòi hỏi sức mạnh tính toán lớn. K8s đạt được điều này bằng cách tự động hóa vòng đời của các pod, nếu một pod có lỗi, nó sẽ tự động chấm dứt và khởi động lại. Nói cách khác, nó tự phục hồi (self-healing).

Kubernetes cũng cho phép mở rộng quy mô động (dynamic scaling) bằng cách dễ dàng thêm hoặc bớt các pod và các node khi cần, đáp ứng các nhu cầu workload ngày càng tăng. Cách tiếp cận hạ tầng khai báo (declarative infrastructure) của nó cho phép người dùng truyền đạt các yêu cầu của họ, đơn giản hóa quy trình quản lý.

Đây là những tính năng phát triển mạnh mẽ không sẵn có khi sử dụng các công cụ khác như Slurm. Điều này có nghĩa là bạn có thể có thông lượng cao hơn và đào tạo các mô hình hiệu quả hơn mà không cần xử lý thủ công với các hạn chế về hạ tầng.

Các công cụ như Jupyter notebooks và VS Code là cần thiết để thử nghiệm với các LLM và kỹ thuật prompt engineering, đồng thời tính trừu tượng hóa mạng của K8s cho phép các nhà khoa học dữ liệu tạo môi trường phát triển rất dễ dàng, hoàn chỉnh với các kết nối với các công cụ này. Hơn nữa, cấu hình quản lý và port forwarding được tự động hóa, giúp đơn giản hóa việc cung cấp không gian làm việc cho người dùng cuối và quản lý môi trường cũng như kết nối mạng cho quản trị viên cluster.

Model Fine-Tuning

Mặc dù K8s có tất cả các công cụ cần thiết để phát triển LLM, nhưng hiện tại, nhiều doanh nghiệp không xây dựng chúng từ đầu mà sử dụng các mô hình hiện có, tùy biến và tinh chỉnh chúng cho phù hợp với bối cảnh cụ thể của họ. Trong trường hợp này, khi bạn muốn tinh chỉnh với một mô hình hiện có, K8s cũng rất lý tưởng vì nó rất linh động. Không giống như Slurm, K8s có thể xử lý đồng thời nhiều workload, giúp quá trình đào tạo hiệu quả hơn nhiều.

Một lợi thế khác là xung quanh hệ sinh thái phong phú của các công cụ – tích hợp với K8s dành cho việc đào tạo các mô hình. Kubeflow (với các operator cho Pytorch, Tensorflow và MPI), KubeRay operator và MLflow là một số ví dụ.

Model Deployment

Khi nói đến việc tự triển khai LLM hoặc các dịch vụ mô hình dành cho suy luận, Kubernetes cung cấp một quy trình đơn giản hóa: Bạn chỉ cần một endpoint để trình bày cho các nhà khoa học dữ liệu. Networking stack đơn giản hóa việc xuất bản các mô hình ra thế giới bên ngoài, giúp chúng dễ dàng được tiêu thụ.

K8s cung cấp bộ công cụ toàn diện và hệ sinh thái phong phú để triển khai mô hình với các bộ cân bằng tải, bộ điều khiển xâm nhập, chính sách mạng,… Điều này tạo điều kiện thuận lợi cho việc triển khai liền mạch các endpoint LLM và tích hợp chúng vào các dịch vụ và ứng dụng.

Việc trừu tượng hóa cơ sở hạ tầng hợp lý hóa hơn nữa quy trình triển khai, đảm bảo khả năng mở rộng và khả năng tự động mở rộng. K8s trừu tượng hóa tất cả cơ sở hạ tầng cơ bản, chuẩn hóa thành một API chung để quản lý các container, vì vậy, bạn có thể sử dụng cùng các công cụ và quy trình bất kể workload của bạn đang chạy ở đâu. Điều này giúp đơn giản hóa rất nhiều việc quản lý và giám sát đối với môi trường sản xuất.

Prompt Engineering

Và những lợi thế không chỉ kết thúc ở đó. Khi bạn đã triển khai mô hình LLM của mình, Kubernetes cung cấp trải nghiệm người dùng nâng cao khi xây dựng ứng dụng hoặc cho phép người dùng thử nghiệm các mô hình. Ví dụ: hosting ứng dụng trên các nền tảng như Gradio hoặc Streamlit gần như dễ dàng với Kubernetes vì ​​có toàn bộ bộ công cụ dành riêng cho việc này. Điều này giúp đơn giản hóa quy trình triển khai, trong khi các endpoint dịch vụ và khả năng tự động scaling đảm bảo quá trình thử nghiệm diễn ra suôn sẻ và có thể mở rộng.

Bảo mật

Và trong mọi giai đoạn, Kubernetes có khả năng bảo mật mạnh mẽ để giữ an toàn cho dữ liệu và IP của bạn. Ví dụ: Kiểm soát truy cập dựa trên vai trò (RBAC), cho phép kiểm soát truy cập chi tiết, cấp các đặc quyền thích hợp cho người dùng hoặc tài khoản dịch vụ, Pod Security Contexts cho phép bạn đặt các thuộc tính bảo mật ở cấp độ pod, giảm bề mặt tấn công trong cluster. Các tính năng này đảm bảo một môi trường an toàn cho những container, model và dataset trong suốt vòng đời AI/ML. Đọc thêm về bảo mật môi trường AI/ML trên Kubernetes tại đây.

Câu chuyện thành công trong thế giới thực

Nó không chỉ là lý thuyết – những công ty tiên tiến nhất đang vận hành toàn bộ vòng đời LLM của họ trên Kubernetes, bao gồm các công ty công nghệ hàng đầu hoạt động trên quy mô lớn (như OpenAI), cũng như các nhà cung cấp AI cloud mới (Core Weave, Lambda cloud).

Ví dụ, cluster của OpenAI bao gồm hơn 7.500 node, hỗ trợ các LLM và workload ML phân tán. Bất chấp các lựa chọn thay thế như Slurm, K8s mang đến cho họ trải nghiệm thuận lợi hơn dành cho developer và tích hợp cloud-native. Nó cũng cung cấp tính linh hoạt và dễ dàng triển khai container, quản lý các node không đồng nhất và xử lý các yếu tố hạ tầng động.

‍ “Các nhóm nghiên cứu giờ đây có thể tận dụng lợi thế của các framework mà chúng tôi đã xây dựng trên Kubernetes, giúp dễ dàng khởi chạy các thử nghiệm, mở rộng chúng lên gấp 10 hoặc 50 lần và tốn ít công sức để quản lý.” – Christopher Berner, Trưởng phòng Cơ sở hạ tầng tại OpenAI

Chạy Kubernetes trên các trung tâm dữ liệu khác nhau của Azure, OpenAI được hưởng lợi từ các bộ giao tiếp MPI trên toàn cluster cho phép thực hiện các job song song và vận hành batch trên các node. Kubernetes đóng vai trò là một hệ thống lập lịch batch và bộ tự động scale của nó đảm bảo khả năng mở rộng quy mô động, giảm chi phí node nhàn rỗi trong khi vẫn duy trì độ trễ thấp. Thêm vào đó nó rất nhanh. Các nhà nghiên cứu làm việc trên các hệ thống đào tạo phân tán có thể quay vòng và mở rộng quy mô thử nghiệm trong vài ngày thay vì vài tháng.

Bằng cách áp dụng Kubernetes, OpenAI có được tính di động nâng cao, cho phép dễ dàng di chuyển các thử nghiệm nghiên cứu giữa các cluster. API nhất quán do Kubernetes cung cấp giúp đơn giản hóa quy trình này. Hơn nữa, OpenAI có thể tận dụng các trung tâm dữ liệu của riêng họ kết hợp với Azure, giúp tiết kiệm chi phí và tăng tính khả dụng.

Nhưng bạn không cần phải là một công ty có cùng quy mô với OpenAI để được hưởng lợi: Kubernetes đã nổi lên như một nền tảng thống trị để xây dựng, đào tạo và triển khai các mô hình ngôn ngữ, cách mạng hóa bối cảnh AI (bạn có thể thấy tác động to lớn của nó với sơ đồ này).

Hosting các workload AI/ML trong Kubernetes mang lại một số lợi thế: khả năng mở rộng, tính linh hoạt, tính trừu tượng của mạng và trải nghiệm người dùng tốt hơn khi thử nghiệm. Với Kubernetes, bạn có thể dễ dàng xây dựng, đào tạo và triển khai những workload AI/ML của mình, sử dụng các công cụ và kỹ thuật tốt nhất cho nhu cầu của bạn.

Theo Run:AI

____
Bài viết liên quan
Góp ý / Liên hệ tác giả