Kembali ke blog

Pemecahan masalahPanduan

LLM lokal kehabisan VRAM? Lihat bobot vs KV cache dengan gputaskman

Temukan apa yang memenuhi memori GPU Anda saat model Ollama atau llama.cpp gagal atau melambat, pengaturan mana yang harus diubah, dan kapan API lebih sederhana.

Oleh CheapTokens TeamDiterbitkan 6 menit baca

Terminal menampilkan memori GPU yang dibagi menjadi bobot, KV cache, dan buffer komputasi
Di halaman ini
  1. Apa yang sebenarnya memenuhi VRAM Anda
  2. Pasang gputaskman dan lihat per proses
  3. Bobot, KV cache, buffer: dari mana angka-angka itu berasal
  4. Tombol mana yang harus diputar
  5. Jika tidak berhasil
  6. Ketika model hosted adalah solusi yang lebih sederhana

Model lokal Anda berjalan baik kemarin, hari ini gagal dimuat atau sangat lambat, dan satu-satunya yang Anda ubah adalah panjang konteks. Penyebab umumnya adalah KV cache, dan alat terminal gratis bernama gputaskman dapat menunjukkannya alih-alih membiarkan Anda menebak.

Monitor GPU biasa memberi tahu seberapa penuh VRAM. Itu "apa", bukan "mengapa". README gputaskman (diperiksa 5 November 2026) menyebut dirinya "htop untuk isi GPU Anda, bukan hanya seberapa penuhnya." Ini adalah proyek eksperimental awal berlisensi MIT, jadi anggap sebagai lensa yang berguna, bukan vonis.

Apa yang sebenarnya memenuhi VRAM Anda#

Bayangkan VRAM sebagai koper. Ada tiga hal yang masuk:

  • Bobot: model itu sendiri. Ukurannya tetap untuk model dan kuantisasi tertentu.
  • KV cache: memori jangka pendek model tentang percakapan Anda. Ia tumbuh seiring konteks bertambah.
  • Buffer komputasi: ruang kerja sementara yang dibutuhkan runtime saat bekerja.

Ketika orang berkata "modelnya tidak muat", sering kali maksudnya bobotnya muat tetapi cache yang Anda minta di atasnya tidak. Perbedaan ini menentukan solusinya, dan justru inilah yang disembunyikan monitor biasa.

Pilih kasus Anda

Apa yang Anda lihat?

Gagal tepat saat dimuat

Bobot saja, atau bobot plus cache untuk panjang konteks Anda, lebih besar dari VRAM bebas. Pilih kuantisasi lebih kecil atau model lebih kecil, atau perpendek konteks.

Dimuat, lalu melambat setelah Anda menaikkan konteks

Kemungkinan besar KV cache membesar dan sebagian pekerjaan tidak lagi muat di VRAM; tampilan per proses dan pembagiannya akan mengonfirmasi. Turunkan panjang konteks dulu; itu tombol termurah.

Dulu berhasil, sekarang gagal

Proses lain mengambil VRAM: game, browser dengan akselerasi perangkat keras, server model kedua. Lihat tampilan per proses sebelum menyentuh model.

Pasang gputaskman dan lihat per proses#

README mencantumkan tiga cara masuk: ZIP Windows portabel, klon yang dijalankan dengan uv run --locked gputaskman, atau pip di dalam lingkungan virtual Python 3.11+. Platform, seperti dijelaskan README:

  • Windows 10/11 64-bit dengan GPU NVIDIA atau AMD (ZIP x64 dan ARM64 di halaman Releases);
  • Linux dan WSL dengan GPU NVIDIA (glibc 2.35+; WSL dapat membaca penghitung host Windows);
  • macOS pada Apple Silicon hanya dari klon sumber, tanpa build portabel.

ZIP Windows tidak ditandatangani. Unduh hanya dari halaman Releases repositori resmi, github.com/shanselman/gputaskman. Salin perintah persis dari README: proyek ini masih muda dan opsi dapat berubah.

Setelah berjalan, dua tampilan penting untuk masalah ini:

  1. Tampilan perangkat: penggunaan VRAM, aktivitas GPU, PCIe, suhu, daya, clock, dan grafik riwayat. Bagus untuk "apakah ada yang melonjak?"
  2. Tampilan proses: memori GPU lokal per proses, RAM sistem yang dapat diakses GPU, aktivitas mesin, dan runtime yang terdeteksi (CUDA, HIP, Vulkan, Direct3D, ggml, ONNX Runtime).

Di tampilan proses, temukan server model Anda (untuk Ollama, runner bawaannya). Lalu periksa sisa daftar. Jika browser atau game memegang beberapa gigabyte, Anda sudah menemukan jawabannya tanpa menyentuh model.

Bobot, KV cache, buffer: dari mana angka-angka itu berasal#

Inspektur model menampilkan arsitektur, kuantisasi, dan ukuran buffer jika tersedia. Satu catatan penting: menurut README, bobot, KV cache, dan buffer komputasi berasal dari log pemuatan runtime ketika logging yang kompatibel diaktifkan. Untuk llama.cpp, jalankan llama-server Anda sendiri dengan logging (--log-file server.log -lv 4; README menyebut level 4 diperlukan untuk ukuran buffer). Untuk Ollama, gputaskman menggunakan server.log Ollama jika tersedia. Jika tidak, nilainya adalah perkiraan dari metadata GGUF dan ukuran konteks, dengan asumsi penempatan gaya llama.cpp. Akuntansi KV per model dalam satu proses belum didukung.

Memulai llama-server dengan file log
Bagaimana gputaskman mendapatkan ukuran buffer dari log alih-alih perkiraan

Jadi baca pembagian hasil perkiraan sebagai "kira-kira", dan pembagian berbasis log sebagai "apa yang dilaporkan runtime". Untuk Ollama, README menyebut runner bawaan terdeteksi, blob GGUF dinamai dari manifes Ollama, dan server.log digunakan jika tersedia. Dukungan LM Studio parsial: model dinamai dari foldernya dan diuji melalui API lokalnya, tetapi ini diuji dengan respons fixture, bukan end to end.

Anda juga dapat menyimpan dua snapshot sebagai JSON dan membandingkannya dengan perintah diff. Itu cara bersih untuk menjawab "apa yang berubah saat saya beralih dari konteks 4K ke 16K?": ambil satu snapshot, ubah pengaturan, muat ulang, ambil snapshot lain.

Cek cepat

Model Anda dimuat tetapi melambat setelah Anda menaikkan panjang konteks. Apa yang harus diperiksa pertama?

Tampilkan jawaban

Jawaban: KV cache

Bobot tidak berubah dengan panjang konteks; KV cache berubah. Menurunkan panjang konteks langsung mengecilkannya.

Tombol mana yang harus diputar#

Membaca pembagiannya memberi Anda keputusan, bukan sekadar gambaran.

Bobot adalah bagian besar. Beralih ke kuantisasi lebih kecil atau model lebih kecil. Ini satu-satunya tuas yang mengecilkan bobot. Jika Anda ingin perhitungan memori di baliknya, lihat Bisakah model 125B berjalan di GPU 16 GB?

KV cache adalah bagian besar. Perpendek konteks. Di Ollama Anda dapat mencobanya langsung di sesi:

text
ollama run <your-model>
>>> /set parameter num_ctx 8192

8192 hanyalah nilai contoh; pilih yang benar-benar dibutuhkan tugas Anda (perintah sesuai dokumentasi Ollama, diperiksa 5 November 2026).

Jika nanti Anda melihat kelambatan aneh pada pemrosesan prompt dengan cache terkuantisasi di llama.cpp, perbaikan untuk KV cache q5_1 ini adalah tujuan berikutnya. Untuk mengetahui apa yang sebenarnya ditampung jendela konteks, baca Apa itu jendela konteks?

Proses lain adalah bagian besar. Tutup, atau jalankan di GPU terintegrasi. Tidak ada yang perlu diubah pada model.

Daftar periksa

Sebelum menyalahkan model

Jika tidak berhasil#

  • Pembagiannya tampak aneh. Periksa apakah itu perkiraan (tidak ada log pemuatan yang kompatibel). Dengan llama.cpp, jalankan llama-server Anda dengan --log-file server.log -lv 4 dan muat ulang model. Dengan Ollama, gputaskman menggunakan server.log jika ada; label perkiraan normal di sana.
  • LM Studio menampilkan lebih sedikit detail. Dukungannya parsial, seperti di atas.
  • Tidak ada GPU NVIDIA atau AMD. Alat ini hanya mencakup beban kerja GPU lokal; beban kerja CPU-only, NPU-only, dan cloud di luar cakupan.
  • macOS. Jalankan dari klon sumber; tidak ada build portabel.

Ketika model hosted adalah solusi yang lebih sederhana#

Katakanlah Anda membutuhkan konteks panjang untuk satu tugas, seperti merangkum dokumen besar, dan GPU Anda hanya muat model dengan konteks pendek. Anda bisa terus menyetel, atau mengeluarkan VRAM dari persamaan. Untuk tugas seperti itu CheapTokens menawarkan DeepSeek-V4-Flash: konteks 380K, hingga 32.768 token keluaran per jawaban, satu harga kapan pun, melalui API yang kompatibel dengan OpenAI. GLM-5.3-Flash memiliki konteks 390K dan hingga 8.192 token keluaran.

Panggilannya adalah format OpenAI biasa (letakkan kunci Anda di variabel lingkungan):

bash
curl https://api.cheaptokens.dev/v1/chat/completions \
  -H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "deepseek-ai/DeepSeek-V4-Flash-0731", "messages": [{"role": "user", "content": "Summarize this document: ..."}]}'

Detail penyiapan ada di dokumentasi. Aturan praktis untuk memutuskan: jika suatu tugas terus membutuhkan lebih banyak konteks atau model lebih besar daripada yang ditampung kartu Anda, dan tampilan proses menunjukkan VRAM Anda sudah banyak terpakai, kirim tugas itu ke API dan pertahankan tugas kecil yang cepat secara lokal. Jalankan DeepSeek secara lokal atau gunakan API? membahas trade-off lebih dalam.

Katakanlah Anda merangkum 100 dokumen besar, masing-masing 60.000 token masukan dan 1.000 token keluaran (jauh di dalam jendela 380K). Berikut biayanya hari ini:

Model Per permintaan 100 permintaan OpenRouter, 100 permintaan
GLM-5.3-Flash $0.0012 $0.124 $0.209
DeepSeek-V4-Flash $0.001 $0.10 $0.434
MiniMax-M2.7 $0.0032 $0.315 $3.78

60.000 token input dan 1.000 token output per permintaan. Harga per 1 juta token adalah harga saat ini dan berubah seiring tarif kami; kolom OpenRouter menunjukkan harga referensi untuk beban kerja yang sama.

Dari angka tersebut, $0.001 per dokumen adalah harga langsung untuk satu panggilan semacam itu, dan secara total, dengan masukan dan keluaran dihitung bersama, hasilnya di bawah OpenRouter.

Kalkulator biaya

Batch Anda sendiri: ubah token dan permintaan

Token input per permintaan: 60.000 · Token output per permintaan: 1.000 · Permintaan per hari: 100

ModelPer hariPer bulan
GLM-5.3-Flash$0.124$3.72
DeepSeek-V4-Flash$0.10$3.00
MiniMax-M2.7$0.315$9.45