toolkitbox

~/ / Bài viết về AI / LLM cục bộ trên VPS / LLM chạy cục bộ trên VPS cần bao nhiêu bộ nhớ? Tệp mô hình cộng KV cache

LLM chạy cục bộ trên VPS cần bao nhiêu bộ nhớ? Tệp mô hình cộng KV cache

Trước khi thuê máy chủ để chạy một mô hình cục bộ, bạn cần biết nó tốn bao nhiêu bộ nhớ. Câu trả lời gồm hai phần: bản thân mô hình, và một bộ nhớ đệm tăng theo độ dài cuộc hội thoại và số yêu cầu được xử lý cùng lúc. Bài viết này tổng hợp những gì thư viện Ollama, Ollama FAQ và các tệp cấu hình mô hình chính thức nói, tính bộ nhớ đệm cho sáu mô hình phổ biến, và để bạn tự thử với số liệu của mình.

Đăng: · 5 phút đọc · Dữ liệu mô hình được đối chiếu với các nguồn chính thức vào 2026-10-26. Kích thước và giá trị mặc định có thể thay đổi, vì vậy hãy kiểm tra lại trước khi chọn gói.

Hai thứ chiếm bộ nhớ

Thứ nhất là trọng số của mô hình, chiếm lượng bộ nhớ xấp xỉ dung lượng tệp tải về. Thứ hai là KV cache, nơi lưu các key và value mà mô hình đã tính cho phần văn bản nằm trong ngữ cảnh. Ollama FAQ nêu rằng lượng RAM cần thiết tăng theo OLLAMA_NUM_PARALLEL nhân với OLLAMA_CONTEXT_LENGTH.

Kích thước của bộ nhớ đệm có thể tính từ cấu hình của mô hình: 2 × số lớp × số KV heads × head dimension × số byte mỗi giá trị cho ra số byte của một token, rồi nhân với độ dài ngữ cảnh và số yêu cầu song song. Ở f16, mỗi giá trị chiếm 2 byte. Với Qwen3 8B, có 36 lớp, 8 KV heads và head dimension là 128, một token chiếm 2 × 36 × 8 × 128 × 2 = 147,456 byte. Ở 4,096 token đó là 576 MiB, và ở 32,768 token là 4,608 MiB. Công thức này là phép tính của chúng tôi từ các giá trị cấu hình, không phải con số do Ollama công bố.

Các nguồn chính thức nói gì về từng mô hình

Dung lượng tải về và phương pháp lượng tử hóa là những giá trị mà thư viện Ollama hiển thị cho từng tag, và cả sáu tag dưới đây đều dùng lượng tử hóa Q4_K_M. Số lớp, số KV heads và head dimension lấy từ config.json của từng mô hình trên Hugging Face.

Mô hìnhDung lượng tải về (GB)Số lớpKV headsHead dimension
Qwen3 0.6B0.523288128
Qwen3 1.7B1.4288128
Qwen3 4B2.5368128
Qwen3 8B5.2368128
Qwen3 14B9.3408128
Mistral 7B (v0.3)4.4328128

Cấu hình của Mistral 7B không ghi head dimension, nên giá trị này là kích thước ẩn chia cho số attention head, 4096 ÷ 32 = 128. Tag Qwen3 4B trong thư viện Ollama ghi cửa sổ ngữ cảnh 256K. Các bản phát hành 2507 của Qwen3 4B trên Hugging Face có cùng số lớp, KV heads và head dimension với bản gốc.

Điều đó có nghĩa gì với bộ nhớ

Dùng công thức ở trên, bảng này cho thấy bộ nhớ đệm của từng mô hình ở hai độ dài ngữ cảnh, cùng tổng ước tính ở 4,096 token. Tổng này gồm trọng số, bộ nhớ đệm ở f16 cho một yêu cầu tại một thời điểm, và phần dự trữ 1 GiB cho hệ điều hành và các dịch vụ khác. Cột cuối là dung lượng bộ nhớ phổ biến nhỏ nhất đủ chứa.

Mô hìnhKV cache ở 4,096 token (MiB)KV cache ở 32,768 token (MiB)Tổng ước tính ở 4,096 token (GiB)Dung lượng bộ nhớ phổ biến nhỏ nhất (GiB)
Qwen3 0.6B44835841.922
Qwen3 1.7B44835842.744
Qwen3 4B57646083.894
Qwen3 8B57646086.418
Qwen3 14B640512010.2912
Mistral 7B (v0.3)51240965.608

Đây là ước tính, không phải số đo thực tế. Một mô hình chỉ vừa đủ ở 4,096 token sẽ không còn vừa khi bạn tăng độ dài ngữ cảnh: ở 32,768 token, riêng KV cache của Qwen3 8B đã là 4,608 MiB.

Ngữ cảnh dài hơn, nhiều yêu cầu song song hơn

  • Ollama FAQ nêu rằng lượng RAM cần thiết tăng theo OLLAMA_NUM_PARALLEL nhân với OLLAMA_CONTEXT_LENGTH, và đưa ra một ví dụ: ngữ cảnh 2K với 4 yêu cầu song song cho ra ngữ cảnh 8K và cần thêm bộ nhớ.
  • OLLAMA_NUM_PARALLEL được ghi trong tài liệu với giá trị mặc định là 1, nên máy chủ một người dùng bắt đầu ở mức một yêu cầu tại một thời điểm.
  • FAQ cũng nêu rằng lượng tử hóa key-value cache bằng q8_0 dùng xấp xỉ một nửa bộ nhớ so với f16, và q4_0 xấp xỉ một phần tư. Khi đó bộ nhớ đệm co lại còn khoảng 288 MiB với Qwen3 8B ở 4,096 token và q8_0, theo tỷ lệ trong FAQ.
  • Trang về độ dài ngữ cảnh trong tài liệu Ollama nói rằng độ dài ngữ cảnh lớn hơn làm tăng bộ nhớ mà một mô hình cần, và bạn có thể xem cột PROCESSOR của ollama ps để biết một mô hình có bị chuyển sang CPU hay không.

Thử với số liệu của bạn

Công cụ tính bên dưới dùng cùng công thức và cùng dữ liệu. Hãy chọn một mô hình hoặc nhập mô hình của riêng bạn, đặt độ dài ngữ cảnh, số yêu cầu song song, loại cache và phần dự trữ, rồi nhập dung lượng bộ nhớ của gói bạn đang xem để biết ước tính có vừa hay không.

Dùng thử: Local LLM Memory Estimator

Mô hình

Tag Ollama qwen3:8b, lượng tử hóa Q4_K_M, dung lượng tải xuống 5.2 GB.

Ước tính

Trọng số mô hình
4.84 GiB
KV cache
0.56 GiB
Dự trữ
1.00 GiB
Tổng
6.41 GiB (6.88 GB)
Dung lượng bộ nhớ phổ biến nhỏ nhất chứa vừa
8 GiB

Đây là một ước tính. Nó không bao gồm các bộ đệm tính toán của runtime, và giả định mọi lớp có cùng hình dạng KV. Hãy đo một lần chạy thật trước khi chọn gói.

Dữ liệu mô hình được kiểm tra ngày 2026-10-26.

Nguồn: Ollama library · Cấu hình mô hình (config.json) · Ollama FAQ

Mọi thứ chạy trong trình duyệt của bạn. Không có gì được tải lên.

Trước khi chọn gói

  • Ước tính này không tính bộ nhớ làm việc riêng của runtime cho các compute buffer. Gợi ý của chúng tôi: hãy chạy mô hình trên một máy chủ thử, theo dõi mức dùng bộ nhớ với độ dài ngữ cảnh bạn định dùng, và chừa lại một khoảng dự phòng.
  • 1 GB là 1,000,000,000 byte còn 1 GiB là 1,073,741,824 byte. "GB" của nhà cung cấp có thể mang nghĩa nào cũng được, nên hãy kiểm tra cách nhà cung cấp của bạn tính trước khi so sánh.
  • Bộ nhớ không phải giới hạn duy nhất. Các tệp mô hình trong bảng cũng cần dung lượng đĩa, và các tài liệu chúng tôi đã kiểm tra không đưa ra số liệu tốc độ nào cho chế độ chỉ chạy bằng CPU.
  • Nếu một mô hình chỉ vừa khít, hãy chọn cỡ lớn hơn kế tiếp hoặc một mô hình nhỏ hơn, thay vì giảm độ dài ngữ cảnh cho đến khi nó chạy được.

Nguồn

Đọc tiếp