Hướng dẫn phần cứng

Bạn cần bao nhiêu VRAM cho Local LLM?

Hướng dẫn ưu tiên phần cứng về yêu cầu VRAM cho local LLM, bao gồm trọng số model, lượng tử hóa, KV cache, độ dài ngữ cảnh, runtime overhead và các phân khúc GPU thực tế.

Câu trả lời ngắn: VRAM phụ thuộc vào kích thước model, lượng tử hóa và ngữ cảnh

Không có một con số VRAM duy nhất phù hợp cho mọi local LLM. Yêu cầu thực tế là tổng của trọng số model, KV cache, runtime overhead và biên an toàn. Một model Q4 nhỏ có thể chạy trên phần cứng khiêm tốn, trong khi một model Q8 lớn hơn với ngữ cảnh dài có thể cần nhiều bộ nhớ hơn đáng kể. Đây là lý do hai người dùng cùng một GPU có thể nhận kết quả khác nhau nếu một người muốn chat ngắn còn người kia muốn lập trình ngữ cảnh dài hoặc RAG.

Theo nguyên tắc thực tế, 6GB là mức nhập môn, 8GB dùng được cho model nhỏ, 12GB là baseline desktop thoải mái hơn, 16GB cho khoảng trống tốt hơn, 24GB là phân khúc tiêu dùng mạnh, và 48GB trở lên mở đường cho model lớn hơn cũng như mức lượng tử hóa cao hơn. Unified memory của Apple Silicon là một danh mục riêng vì CPU và GPU chia sẻ cùng một vùng nhớ, nhưng nó vẫn cần chỗ cho macOS, ứng dụng và runtime overhead.

Trọng số model thường chiếm phần lớn ngân sách bộ nhớ

Phần lớn nhất của ngân sách bộ nhớ thường là trọng số model. Trọng số FP16 có kích thước lớn, trong khi tệp GGUF đã lượng tử hóa giảm kích thước bằng cách lưu trọng số với ít bit hơn. Một model 7B ở Q4 có thể vừa trong ít bộ nhớ hơn nhiều so với cùng model ở FP16 hoặc Q8. Đây là lý do lượng tử hóa là trung tâm của đề xuất Local LLM: nó thay đổi những gì thực tế có thể chạy trên GPU tiêu dùng.

Tuy nhiên, chỉ kích thước tệp là chưa đủ. Một số model có kiến trúc khác nhau, hành vi tham số hoạt động của MoE, thiết lập tokenizer và mặc định ngữ cảnh khác nhau. Một tệp model có vẻ vừa trên giấy vẫn có thể chật khi runtime dự trữ bộ nhớ. Đề xuất nên bao gồm một biên an toàn thận trọng thay vì xem kích thước tệp là toàn bộ yêu cầu.

KV cache tăng theo độ dài ngữ cảnh

KV cache là bộ nhớ dùng để lưu thông tin attention cho các token đã được xử lý. Nó tăng theo độ dài ngữ cảnh, thiết lập batch, số layer, hidden size và chi tiết triển khai. Đây là lý do một model hoạt động ở ngữ cảnh 4K có thể trở nên không ổn định hoặc chậm ở ngữ cảnh 16K, 32K hoặc cao hơn. Ngữ cảnh dài không miễn phí chỉ vì model card quảng cáo như vậy.

Với người dùng, điều này nghĩa là mục tiêu VRAM phù hợp phụ thuộc vào workload. Chat đơn giản có thể giữ ngữ cảnh ở mức vừa phải. Lập trình trên nhiều tệp, tóm tắt tài liệu dài và RAG có thể đẩy yêu cầu bộ nhớ lên cao hơn. Nếu ngữ cảnh dài là ưu tiên, một model nhỏ hơn hoặc được lượng tử hóa mạnh hơn có thể phù hợp hơn một model lớn tiêu thụ gần hết VRAM chỉ bằng trọng số.

Các phân khúc GPU thực tế cho local LLM

Ở mức 6GB, hãy kỳ vọng model nhỏ và ngữ cảnh thận trọng. Ở mức 8GB, các model 3B đến 7B Q4 trở nên thực tế, nhưng khoảng trống bị giới hạn. Ở mức 12GB, nhiều model 7B và một số model 14B đã lượng tử hóa trở nên thực tế hơn. Ở mức 16GB, các model tương tự có thể dùng lượng tử hóa tốt hơn hoặc nhiều ngữ cảnh hơn. Ở mức 24GB, các model 14B mạnh và một số model đã lượng tử hóa lớn hơn trở nên thực tế cho sử dụng hằng ngày. Ở mức 48GB trở lên, các thử nghiệm local lớn hơn trở nên dễ dàng hơn nhiều.

Các phân khúc này không phải lời hứa. Tốc độ phụ thuộc vào băng thông bộ nhớ, GPU backend, CPU, RAM, driver và công cụ suy luận. Hỗ trợ NVIDIA CUDA thường rộng nhất trong các công cụ suy luận local. AMD có thể hoạt động tốt trong các stack được hỗ trợ nhưng có thể cần chú ý hơn đến khả năng tương thích backend. Apple Silicon có thể dùng unified memory hiệu quả, nhưng ngân sách model dùng được vẫn thấp hơn dung lượng RAM ghi trên thông số vì hệ thống chia sẻ bộ nhớ đó.

Khi offload một phần có ích và khi nó gây hại

Nếu một model không vừa hoàn toàn trong VRAM, một số công cụ có thể offload một phần model sang bộ nhớ CPU. Điều này có thể giúp model nạp được, nhưng thường làm giảm tốc độ vì dữ liệu phải di chuyển giữa GPU và bộ nhớ hệ thống. Trên GPU rời, PCIe và băng thông bộ nhớ CPU có thể trở thành nút thắt. Trên Mac dùng unified memory, mức phạt là khác, nhưng băng thông bộ nhớ và áp lực hệ thống vẫn quan trọng.

Offload một phần nên được trình bày trung thực. Nó có thể hữu ích để thử nghiệm, thỉnh thoảng tạo câu trả lời dài hoặc kiểm tra một model lớn hơn, nhưng không nên là đề xuất mặc định cho người dùng bình thường kỳ vọng tốc độ tương tác. Local LLM nên ưu tiên đề xuất chạy hoàn toàn trên GPU khi có thể và gắn nhãn offload một phần riêng khi model về mặt kỹ thuật có thể chạy nhưng kém thoải mái hơn.

FAQ

8GB VRAM có đủ cho local LLM không? Có, với các model nhỏ và được lượng tử hóa cẩn thận. Nó không đủ cho mọi model, và ngữ cảnh dài sẽ làm giảm phạm vi dùng được.

12GB VRAM có đủ không? Đây là điểm khởi đầu hợp lý cho nhiều model 7B và một số model 14B đã lượng tử hóa, đặc biệt với thiết lập cân bằng.

Nhiều VRAM hơn có luôn đồng nghĩa câu trả lời tốt hơn không? Không phải lúc nào. Nhiều VRAM mở rộng tập ứng viên, nhưng chất lượng model, tinh chỉnh, lượng tử hóa và use case vẫn quyết định đề xuất tốt nhất.

Làm sao tôi ước tính cấu hình của mình? Nhập VRAM, RAM, hệ điều hành và use case của bạn vào Local LLM. Công cụ áp dụng các quy tắc về kích thước model, lượng tử hóa, KV cache và biên an toàn cho dữ liệu model hiện tại.

Quay lại công cụ Local LLM