Vấn đề bộ nhớ AI cục bộ
Chạy các Mô hình Ngôn ngữ Lớn (LLM) khổng lồ tại nhà là mục tiêu cuối cùng của nhiều người yêu công nghệ. Chúng ta muốn có sự riêng tư tuyệt đối và tự do thử nghiệm mà không phải trả 20 USD mỗi tháng cho các gói thuê bao. Tuy nhiên, giấc mơ này thường bị đình trệ khi bạn cố gắng tải một mô hình có hơn 8 tỷ tham số. Bạn sẽ gặp lỗi ‘Out of Memory’ (OOM) đáng sợ hoặc chứng kiến hệ thống vật lộn để cho ra một từ mỗi năm giây.
Hãy nghĩ về phần cứng bạn đang sở hữu. Bạn có thể có một PC chơi game với RTX 3060 (12GB VRAM), một MacBook Air với 16GB RAM và một chiếc laptop văn phòng cũ. Riêng lẻ, không máy nào trong số này có thể chạy được mô hình Llama 3 70B. Yêu cầu về bộ nhớ là quá lớn. Sự phân mảnh sức mạnh này là rào cản lớn nhất để tiến xa hơn các mô hình ‘đồ chơi’ cơ bản trong một home lab.
Tại sao VRAM của bạn là không đủ
Hiệu suất của một LLM dựa trên hai yếu tố: sức mạnh xử lý (FLOPs) và dung lượng bộ nhớ. Trong khi tốc độ GPU quyết định tốc độ xuất hiện của từ ngữ, thì dung lượng bộ nhớ quyết định liệu mô hình có thể khởi chạy hay không. Một mô hình tham số 70B, ngay cả khi được nén bằng phương pháp định lượng (quantization) 4-bit, vẫn cần khoảng 40GB VRAM để chạy mượt mà.
Hầu hết các GPU tiêu dùng chỉ dừng lại ở mức 8GB hoặc 12GB. Ngay cả khi bạn có một chiếc Mac cao cấp với Unified Memory, bạn có thể vẫn không có đủ 64GB hoặc 128GB cần thiết cho các mô hình mã nguồn mở lớn nhất. Vấn đề không phải là thiếu tổng sức mạnh trong nhà bạn. Vấn đề là sức mạnh đó bị chia nhỏ ở các thiết bị khác nhau. Chúng ta cần một cách để thu hẹp khoảng cách này và chia sẻ tải trọng.
Exo: Thu hẹp khoảng cách phần cứng
Exo là một dự án mã nguồn mở được thiết kế để phá vỡ những rào cản đó. Thay vì ép một mô hình phải nằm gọn trong một card đồ họa, Exo tạo ra một cụm ngang hàng (P2P). Nó tự động tìm các thiết bị khác trong mạng của bạn và chia nhỏ các lớp (layers) của mô hình giữa chúng.
Hãy tưởng tượng việc kết nối một chiếc Mac 16GB và một PC 12GB. Exo coi chúng như một nguồn tài nguyên 28GB duy nhất. Nó xử lý công việc nặng nhọc là phân vùng mô hình và quản lý luồng dữ liệu giữa các nút (nodes). Sau đó, nó cung cấp một API endpoint duy nhất hoạt động chính xác như của OpenAI. Điều này biến một bộ sưu tập các máy tính cũ thành một hệ thống có khả năng vượt xa bất kỳ thành phần riêng lẻ nào.
Làm chủ thiết lập này là một kỹ năng quan trọng cho home lab hiện đại. Nó giúp chúng ta thoát khỏi vòng lặp ‘mua GPU mới’ và cho phép xây dựng các hệ thống có thể mở rộng từ phần cứng chúng ta đã sở hữu.
Thiết lập cụm máy tính của bạn
Điều kiện tiên quyết
Đảm bảo tất cả các thiết bị của bạn nằm trong cùng một mạng trước khi bắt đầu. Sử dụng cáp Ethernet nếu có thể. Mặc dù Exo hoạt động qua Wi-Fi, nhưng độ trễ khi di chuyển dữ liệu giữa các lớp sẽ làm chậm tốc độ tạo văn bản. Bạn sẽ cần Python 3.10 hoặc mới hơn trên mọi máy trong cụm.
1. Cài đặt
Bạn phải cài đặt Exo trên mọi thiết bị bạn định sử dụng. Mặc dù kiến trúc là P2P, nút này sẽ đóng vai trò là cổng API chính của bạn. Mở terminal và chạy các lệnh sau:
git clone https://github.com/exo-explore/exo.git
cd exo
pip install -e .
Exo rất thông minh về phần cứng. Trên macOS, nó tự động sử dụng Metal để tăng tốc. Trên Windows hoặc Linux, hãy đảm bảo bạn đã cài đặt bộ công cụ CUDA để Exo có thể khai thác các nhân GPU Nvidia của bạn.
2. Khởi chạy nút chính (Primary Node)
Bắt đầu bằng cách chọn máy mạnh nhất của bạn để làm điểm truy cập chính. Mặc dù kiến trúc là P2P, nút này sẽ đóng vai trò là cổng API chính của bạn. Chạy lệnh này:
exo
Exo sẽ bắt đầu quét mạng nội bộ để tìm các thiết bị ngang hàng. Nếu bạn muốn chạy thẳng một mô hình cụ thể, bạn có thể chạy:
exo run llama-3-70b
3. Kết nối các nút phụ (Worker Nodes)
Bây giờ, hãy chuyển sang các thiết bị khác—như chiếc Mac mini trong góc hoặc máy chủ Linux cũ của bạn. Chạy cùng một lệnh exo. Vì Exo sử dụng mạng không cấu hình (zero-configuration networking), các nút sẽ tìm thấy nhau trong vài giây.
Terminal chính của bạn sẽ cập nhật để hiển thị bộ nhớ tổng hợp. Nhìn thấy 8GB, 16GB và 12GB hợp nhất thành một khối 36GB duy nhất là một cảm giác tuyệt vời. Nó xác nhận rằng siêu máy tính phân tán của bạn đã trực tuyến.
Chạy các mô hình phân tán
Khi các nút đã được liên kết, Exo phân vùng mô hình dựa trên bộ nhớ của từng máy. Đối với mô hình Llama 3 70B, nó có thể đặt 25 lớp đầu tiên trên máy tính để bàn, 30 lớp tiếp theo trên Mac và các lớp cuối cùng trên laptop của bạn.
# Chạy lệnh này trên bất kỳ nút nào để bắt đầu mô hình
exo run llama-3.1-70b
Phần mềm tải các trọng số (weights) một lần và lưu vào bộ nhớ đệm. Sau khi mô hình được tải, Exo lưu trữ một API tương thích với OpenAI tại http://localhost:1234/v1. Bạn có thể cắm địa chỉ này vào các ứng dụng như Open WebUI, LM Studio hoặc AnythingLLM và bắt đầu trò chuyện ngay lập tức.
Mẹo tối ưu hóa
Xây dựng một cụm từ các thành phần không đồng nhất có thể gặp khó khăn. Dưới đây là ba điều cần lưu ý:
- Độ trễ mạng: Nếu bạn thấy có sự chậm trễ lớn trước khi từ đầu tiên xuất hiện, hãy kiểm tra kết nối của mình. Một nút duy nhất trên tín hiệu Wi-Fi yếu sẽ làm chậm toàn bộ cụm. Sử dụng
pingđể đảm bảo độ trễ giữa các nút dưới 2-3ms. - Mắt xích yếu nhất: Exo cân bằng tải, nhưng một chiếc laptop chỉ có CPU rất chậm có thể trở thành nút thắt cổ chai. Nếu tốc độ tạo văn bản của bạn giảm đáng kể, hãy thử loại bỏ máy cũ nhất để xem cụm có hoạt động tốt hơn nếu không có nó hay không.
- Cài đặt tường lửa: Một số tường lửa của hệ điều hành chặn giao tiếp P2P. Nếu các nút không thể nhìn thấy nhau, hãy đảm bảo các cổng được liệt kê trong nhật ký khởi động của Exo đã được mở trong mạng nội bộ của bạn.
Tương lai của AI tại gia
Suy luận phân tán có nghĩa là chúng ta không còn bị mắc kẹt bởi giới hạn VRAM của một GPU tiêu dùng duy nhất. Chúng ta đang bước vào một kỷ nguyên mà home lab là một cụm thực thụ thay vì chỉ là một máy chủ dưới bàn làm việc. Bằng cách sử dụng Exo, bạn có thể chạy các mô hình tiên tiến như Llama 3 70B hoặc Mixtral 8x7B mà trước đây chỉ dành cho những người dùng có GPU A100 cấp doanh nghiệp.
Đây mới chỉ là sự bắt đầu. Khi bạn thêm nhiều nút hơn, AI cục bộ của bạn sẽ trở nên mạnh mẽ hơn. Cuối cùng, bạn có thể chạy các agent phức tạp và các tác vụ suy luận sâu ngay trong phòng khách bằng phần cứng bạn đã có sẵn.

