Skip to content
Back to skills

Llama Cpp Quantization

ASecurity

llama.cpp GGUF/GGML quantization patterns for local LLM inference. Quantization levels (Q4_K_M, Q8_0, F16), CPU/GPU offloading, context window sizing, and embedding extraction via llama.cpp HTTP server. Sources: ggerganov/llama.cpp (MIT).

  • 10 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 9, 2026
ai-agentsjavascriptpythongojavabashtestingapi

Works with

  • cli
  • api

Security analysis

A96/100
  • mediumUses curl or wget to download content

Pro shows the line behind each finding and how to fix it

Scanned September 9, 2026

npx -y skills add yanacuti1121/Yana-AI --skill llama-cpp-quantization --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Llama Cpp Quantization?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Llama Cpp Quantization
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/yanacuti1121-llama-cpp-quantization/badge)](https://www.skillsdirectory.com/skills/yanacuti1121-llama-cpp-quantization)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: llama-cpp-quantization
description: llama.cpp GGUF/GGML quantization patterns for local LLM inference. Quantization levels (Q4_K_M, Q8_0, F16), CPU/GPU offloading, context window sizing, and embedding extraction via llama.cpp HTTP server. Sources: ggerganov/llama.cpp (MIT).
origin: yana-ai — synthesized from ggerganov/llama.cpp (MIT)
license: Apache-2.0
version: 1.0.0
compatibility: yana-ai >= 1.3.51
---

# /llama-cpp-quantization

## When to Use

- Run open-source LLMs locally without GPU (CPU inference via GGUF)
- Choose quantization level based on quality/memory tradeoff
- Embed llama.cpp HTTP server for OpenAI-compatible local API
- Extract embeddings from local model for [[in-memory-vector-storage]]

## Do NOT use for

- Cloud LLM APIs (Anthropic/OpenAI — use [[http-client-auth-patterns]])
- Production GPU clusters (use [[vllm-paged-attention]] or [[tgi-streaming-inference]])

---

## Quantization level guide

```
Format      Bits  Size(7B)  Quality  Use case
──────────────────────────────────────────────
Q2_K        2.6   2.8 GB    poor     emergency low-RAM only
Q4_K_S      4.4   4.1 GB    ok       minimum usable
Q4_K_M      4.8   4.5 GB    good     ← default recommendation
Q5_K_M      5.7   5.3 GB    great    if RAM allows
Q8_0        8.0   7.2 GB    near-lossless  pre-production
F16        16.0  13.5 GB    lossless  fine-tuning only

Rule: Q4_K_M for dev/testing, Q8_0 for production inference gates
```

---

## Start llama.cpp HTTP server

```bash
# Download GGUF model
curl -L -o models/mistral-7b-q4.gguf \
  "https://huggingface.co/TheBloke/Mistral-7B-v0.1-GGUF/resolve/main/mistral-7b-v0.1.Q4_K_M.gguf"

# Start server (OpenAI-compatible API)
./llama-server \
  --model    models/mistral-7b-q4.gguf \
  --ctx-size 4096       \   # context window (tokens)
  --n-gpu-layers 35     \   # layers on GPU (0 = CPU-only)
  --threads  8          \   # CPU threads
  --port     8080       \
  --host     0.0.0.0    \
  --parallel 4              # concurrent request slots
```

---

## OpenAI-compatible client call

```javascript
import OpenAI from 'openai'

const client = new OpenAI({
  baseURL: 'http://localhost:8080/v1',
  apiKey:  'not-needed',   // llama.cpp ignores this
})

const completion = await client.chat.completions.create({
  model:      'local',
  messages:   [{ role: 'user', content: 'What is 2+2?' }],
  max_tokens: 256,
  temperature: 0.1,
  stream:     true,
})

for await (const chunk of completion) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? '')
}
```

---

## Quantize a model yourself

```bash
# Convert HuggingFace model → GGUF
python3 convert_hf_to_gguf.py \
  --outfile models/my-model-f16.gguf \
  --model   /path/to/hf-model

# Quantize F16 → Q4_K_M
./quantize \
  models/my-model-f16.gguf \
  models/my-model-q4km.gguf \
  Q4_K_M
```

---

## Extract embeddings

```bash
# GET /embedding (llama.cpp server endpoint)
curl -s http://localhost:8080/embedding \
  -H "Content-Type: application/json" \
  -d '{"content": "agent identity for vector search"}' \
  | jq '.embedding | length'   # → 4096 (model dim)
```

---

## Anti-Fake-Pass Checklist

```
❌ ctx-size > model's trained max → gibberish past context boundary (check model card)
❌ n-gpu-layers too high → VRAM OOM; start at 0 and increment until it fits
❌ Q2_K for code tasks → quality too low; code fails to compile, logic errors
❌ --parallel > available RAM/VRAM → OOM on concurrent requests
❌ F16 for CPU inference → 2× slower than Q8_0 with same quality; use Q8_0
❌ Not setting --threads to nproc → defaults to 1 thread, 10× slower
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.