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 OOM

Kế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.git

Lệ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-gpus

Khi 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.gguf

Lệ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

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.txt

make_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

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.