TECHDEV · Công cụ open-source
ggufit
Hầu hết mọi người tải model về trước rồi để câu failed to allocate 3412 MiB làm phép tính VRAM giùm. ggufit hỏi câu đó trước khi bạn tải: nó đọc header GGUF thật — số tham số, kiểu lượng tử hoá, bố cục layer — rồi cộng trọng số, KV cache và chi phí runtime để so với card của bạn:
curl -O https://raw.githubusercontent.com/techdevfun/ggufit/main/ggufit.py
python3 ggufit.py ~/models/llama-3.1-8b-q4_k_m.gguf --gpu "RTX 4060"Một file duy nhất, chỉ dùng thư viện chuẩn của Python 3.8+. Nó chỉ đọc header của file — chạy tức thì ngay cả với file 40 GB — và hoàn toàn offline. Không trình duyệt, không nhập tham số thủ công, không upload gì đi đâu.
Python 3.8+ · Không phụ thuộc thư viện · MIT
Demo: kết quả một lần chạy thật
Kết quả thật từ README của ggufit:
Model: llama-3.1-8b-q4_k_m.gguf
params: 8.00B quant: Q4_K_M
layers: 32 ctx: 4096
VRAM breakdown:
weights: 4.19 GB
KV cache: 0.50 GB (0.12 GB / 1k tokens)
logits: 1.96 GB
overhead: 0.61 GB (runtime estimate)
total: 7.26 GB
GPU: NVIDIA GeForce RTX 4060
total: 8.00 GB usable: ~7.40 GB (after driver/OS reserve)
Verdict: TIGHT — only 0.14 GB headroom; one Chrome tab away from OOMKết quả được sao chép chính xác từ README của ggufit.
Bài toán nó giải quyết
Quy trình thông thường bị ngược: tải model, nhìn thanh tiến trình, để failed to allocate 3412 MiB làm toán giùm. Hai con số người ta hay quên là KV cache (nó tăng theo độ dài context — context 32k trên model 8B tốn ngang trọng số) và việc card 8 GB của bạn không hề có 8 GB trống (driver, display server, OS ăn bớt trước).
Từ README của ggufit (mục "The problem it solves").
Cài đặt
Không có gì để cài. ggufit.py là một file, chỉ dùng thư viện chuẩn, Python 3.8+.
# cách 1: chỉ tải file
curl -O https://raw.githubusercontent.com/techdevfun/ggufit/main/ggufit.py
# cách 2: clone
git clone https://github.com/techdevfun/ggufit.gitLệnh sao chép chính xác từ README của ggufit (mục "Install").
Sử dụng
# a file you already have — reads only the header, instant even on 40 GB files
python3 ggufit.py model.gguf --gpu "RTX 4060"
# a file you DON'T have yet — the "should I even download this?" question
python3 ggufit.py --params 8B --quant q4_k_m --gpu "RTX 4060"
# longer context changes everything
python3 ggufit.py --params 8B --quant q4_k_m --ctx 32768 --gpu "RTX 4060"
# verdict against every card in the database
python3 ggufit.py --params 8B --quant q4_k_m --table
# your card isn't listed? give usable VRAM directly
python3 ggufit.py model.gguf --vram 10
# multiple cards at once
python3 ggufit.py model.gguf --gpu "4060" --gpu "M4"
# machine-readable, for scripts and CI
python3 ggufit.py model.gguf --gpu "RTX 4090" --json
# list the GPU database
python3 ggufit.py --list-gpusKhi model không vừa, bạn nhận được bước tiếp theo cụ thể thay vì một cái nhún vai:
Verdict: WON'T FIT — short by 3.36 GB
try: shorten context to ~5160 tokens (7.39 GB total)
try: offload ~80% of layers to CPU/RAM (keep ~6 of 32 on GPU)Mã thoát thân thiện với script: 0 = vừa (hoặc lệnh thông tin), 2 = không vừa, 1 = lỗi. Ghép nó ngay trước lệnh inference để lần chạy chắc chắn hỏng không bao giờ bắt đầu:
python3 ggufit.py model.gguf --gpu "RTX 4060" --json > /dev/null && llama-cli -m model.ggufLệnh và mã thoát sao chép chính xác từ README của ggufit (mục "Usage").
Cách tính
total = weights + KV cache + logits buffer + runtime overhead
weights = sum over tensors of (params × bits-per-weight / 8), read from the file
KV cache = 2 × layers × kv_heads × head_dim × context × 2 bytes (fp16)
logits = vocab_size × hidden × 4 bytes
overhead = ~0.4 GB CUDA/Metal context + ~5% compute buffers
usable = card VRAM − reserve (driver/display/OS; larger haircut on unified memory)Công thức sao chép chính xác từ README của ggufit (mục "How the math works").
Lưu ý trung thực, nói thẳng từ đầu
- Trọng số là số ĐO được (từ bảng tensor của chính file). Mọi thứ còn lại là ước lượng có cơ sở — con số thực tế thay đổi theo inference engine, flash attention và batch size. Hãy giữ biên an toàn.
- Kiểu lượng tử hoá IQ/TQ dùng số bit-trên-trọng số trung bình; file imatrix theo từng tensor sẽ chênh lệch nhẹ. Báo cáo có ghi rõ khi điều đó xảy ra.
- Cơ sở dữ liệu GPU dùng VRAM khả dụng ước tính thận trọng, không phải con số in trên hộp. Nếu setup của bạn khác, tuỳ chọn
--vramsẽ ghi đè.
Các lưu ý sao chép chính xác từ README của ggufit (mục "Honest caveats, up front").
Vì sao là CLI mà không phải website
Các web calculator vẫn có và vẫn tốt. Công cụ này sinh ra cho terminal: không trình duyệt, không nhập tham số thủ công, không upload gì đi đâu. Nó đọc file đang nằm trên đĩa của bạn và trả lời trong vài mili giây — điều đó khiến nó dùng được bên trong script: như một bước kiểm tra trước khi tải, một cổng CI, hay một chốt chặn trước llama-server.
Từ README của ggufit (mục "Why a CLI and not a website").
Ví dụ
examples/ có một script demo và output đã chụp lại:
cd examples && sh run-demo.sh # compare with expected-output.txtmake_sample.py tạo một GGUF tổng hợp nhỏ để bạn thử chế độ file mà không cần tải model thật.
Từ README của ggufit (mục "Examples").
Lộ trình — chưa có gì được phát hành
- Hỗ trợ header Safetensors (cùng câu hỏi, định dạng khác)
--kv-dtype(KV cache lượng tử hoá làm đổi hẳn phép tính)- Ước lượng MoE-aware (tham số active vs. tổng tham số)
- Tự phát hiện GPU của máy khi có thể (phần khó là giữ nguyên không phụ thuộc thư viện ngoài)
- Đầu vào concurrency cho ước lượng KV (request song song mới là thứ làm OOM server, không phải một đoạn chat đơn — gợi ý từ một độc giả, tháng 10/2026)
Lộ trình sao chép từ README của ggufit; đến 2026-10-30 chưa có mục nào được phát hành.
Giấy phép
MIT — xem LICENSE trong repo.
Công cụ liên quan
Các công cụ mã nguồn mở khác của TECHDEV: sessguard, runverdict, gheist-guard, vetgate, context-diet, ci-failure-detective, agent-seatbelt, devsecops-os, env-doctor, skill-audit, logtrim, testguard, breakcheck, keymap, memgraph, leaseguard, factfence, jsonfold
Đóng góp ý kiến
Bình chọn cho công cụ này, đề xuất tính năng, hoặc thảo luận với các vận hành khác trên bảng cộng đồng.