LLM Quantization GGUF
LLM Quantization GGUF Citizen Developer llama.cpp Ollama LM Studio Local AI FP16 INT8 INT4 RAM Laptop GPU Hugging Face
| Quantization | Bits | RAM (7B) | Quality | Speed |
|---|---|---|---|---|
| FP32 | 32 | 28GB | 100% | ช้า |
| FP16 | 16 | 14GB | 99.9% | ปานกลาง |
| Q8_0 | 8 | 7GB | 99% | เร็ว |
| Q5_K_M | 5 | 5GB | 97% | เร็ว |
| Q4_K_M | 4 | 4GB | 95% | เร็วมาก |
| Q3_K_M | 3 | 3.5GB | 90% | เร็วมาก |
| Q2_K | 2 | 2.5GB | 80% | เร็วที่สุด |
Local LLM Setup
# === Local LLM Setup Guide ===
# Method 1: Ollama (Easiest)
# Install: https://ollama.ai
# curl -fsSL https://ollama.ai/install.sh | sh
#
# Run a model:
# ollama run llama3 # Llama 3 8B (4.7GB)
# ollama run mistral # Mistral 7B (4.1GB)
# ollama run codellama # Code Llama 7B (3.8GB)
# ollama run phi3 # Phi-3 Mini (2.3GB)
# ollama run gemma2 # Gemma 2 9B (5.4GB)
#
# API Server (for integration):
# curl http://localhost:11434/api/generate -d '{
# "model": "llama3",
# "prompt": "Explain Docker in simple terms"
# }'
# Method 2: llama.cpp (Advanced, GPU acceleration)
# git clone https://github.com/ggerganov/llama.cpp
# cd llama.cpp
# make -j$(nproc) LLAMA_CUDA=1 # With CUDA GPU
# # or: make -j$(nproc) LLAMA_METAL=1 # macOS Metal
#
# # Download GGUF model from Hugging Face
# # https://huggingface.co/TheBloke
# ./llama-cli -m models/llama-3-8b-Q4_K_M.gguf \
# -p "Explain Kubernetes:" \
# -n 512 -ngl 35 # 35 layers on GPU
# Method 3: Python with llama-cpp-python
# pip install llama-cpp-python
# from llama_cpp import Llama
# llm = Llama(model_path="models/llama-3-8b-Q4_K_M.gguf",
# n_gpu_layers=35, n_ctx=4096)
# output = llm("Explain Docker:", max_tokens=512)
# print(output['choices'][0]['text'])
from dataclasses import dataclass
@dataclass
class SetupMethod:
method: str
difficulty: str
gpu_support: str
features: str
best_for: str
methods = [
SetupMethod("Ollama",
"ง่ายมาก (1 คำสั่ง)",
"Auto-detect CUDA Metal",
"CLI + API Server + Model Library + Pull อัตโนมัติ",
"Citizen Developer เริ่มต้น ใช้งานเร็ว"),
SetupMethod("LM Studio",
"ง่าย (GUI)",
"CUDA Metal Vulkan",
"GUI Chat + Model Browser + API Server + Parameter Tuning",
"ไม่ชอบ Command Line ต้องการ GUI"),
SetupMethod("llama.cpp",
"ปานกลาง (Compile)",
"CUDA Metal Vulkan OpenCL",
"เร็วที่สุด + Quantize เอง + Full Control",
"Advanced User ต้องการ Performance สูงสุด"),
SetupMethod("GPT4All",
"ง่าย (GUI)",
"CUDA Metal",
"GUI + หลาย Model + Local Document Chat",
"ต้องการ Chat กับ Document (RAG)"),
SetupMethod("Python (llama-cpp-python)",
"ปานกลาง (Code)",
"CUDA Metal",
"Python API + Integration กับ App + LangChain",
"Developer สร้าง App ที่ใช้ LLM"),
]
print("=== Setup Methods ===")
for m in methods:
print(f"\n [{m.method}] Difficulty: {m.difficulty}")
print(f" GPU: {m.gpu_support}")
print(f" Features: {m.features}")
print(f" Best for: {m.best_for}")
Model Selection
# === Choosing the Right Model ===
@dataclass
class ModelRecommendation:
model: str
size: str
ram_needed: str
strength: str
use_case: str
ollama_cmd: str
models = [
ModelRecommendation("Llama 3 8B",
"4.7GB (Q4_K_M)",
"8GB RAM",
"General Purpose ดีที่สุดในขนาด 8B",
"Chat, Q&A, Writing, Analysis",
"ollama run llama3"),
ModelRecommendation("Mistral 7B",
"4.1GB (Q4_K_M)",
"8GB RAM",
"เร็ว Instruction Following ดี",
"Chat, Code, Translation",
"ollama run mistral"),
ModelRecommendation("Code Llama 7B",
"3.8GB (Q4_K_M)",
"8GB RAM",
"เขียน Code ดีมาก หลายภาษา",
"Code Generation, Debug, Explain Code",
"ollama run codellama"),
ModelRecommendation("Phi-3 Mini 3.8B",
"2.3GB (Q4_K_M)",
"4GB RAM",
"เล็กมาก รันบน RAM น้อยได้",
"Simple Chat, Q&A (RAM จำกัด)",
"ollama run phi3"),
ModelRecommendation("Gemma 2 9B",
"5.4GB (Q4_K_M)",
"8GB RAM",
"จาก Google คุณภาพดีมาก",
"Chat, Writing, Analysis",
"ollama run gemma2"),
ModelRecommendation("Llama 3 70B",
"40GB (Q4_K_M)",
"48GB RAM",
"คุณภาพใกล้ GPT-4 มาก",
"Complex Reasoning, Analysis (ต้อง RAM เยอะ)",
"ollama run llama3:70b"),
]
print("=== Model Recommendations ===")
for m in models:
print(f"\n [{m.model}] Size: {m.size}")
print(f" RAM: {m.ram_needed}")
print(f" Strength: {m.strength}")
print(f" Use: {m.use_case}")
print(f" Command: {m.ollama_cmd}")
Use Cases
# === Citizen Developer Use Cases ===
@dataclass
class UseCase:
use_case: str
description: str
model: str
tools: str
privacy: str
cases = [
UseCase("RAG Document Chat",
"Chat กับ Document ภายใน PDF Word ถามตอบจากข้อมูลบริษัท",
"Llama 3 8B + Embedding Model",
"Ollama + LangChain + ChromaDB",
"ข้อมูลอยู่ Local 100% ไม่ส่งไป Cloud"),
UseCase("Code Assistant",
"ช่วยเขียน Code Debug Explain Code Review",
"Code Llama 7B หรือ Llama 3 8B",
"Ollama + Continue.dev (VS Code Extension)",
"Source Code ไม่ออกไปข้างนอก"),
UseCase("Translation",
"แปลเอกสาร Email บทความ หลายภาษา",
"Llama 3 8B หรือ Mistral 7B",
"Ollama API + Python Script",
"เอกสาร Confidential แปลได้ปลอดภัย"),
UseCase("Content Creation",
"เขียน Blog Social Media Marketing Copy Draft",
"Llama 3 8B หรือ Gemma 2 9B",
"LM Studio Chat / Ollama",
"Content Strategy ไม่รั่วไหล"),
UseCase("Data Analysis",
"ถาม LLM วิเคราะห์ CSV Excel สร้าง SQL Query",
"Llama 3 8B + Code Llama",
"Ollama + Open Interpreter / LangChain",
"ข้อมูลธุรกิจอยู่ Local ปลอดภัย"),
]
print("=== Use Cases ===")
for c in cases:
print(f"\n [{c.use_case}]")
print(f" Desc: {c.description}")
print(f" Model: {c.model}")
print(f" Tools: {c.tools}")
print(f" Privacy: {c.privacy}")
เคล็ดลับ
- Q4_K_M: ใช้ Q4_K_M สมดุลที่สุดระหว่างขนาดและคุณภาพ
- Ollama: เริ่มต้นด้วย Ollama ง่ายที่สุด 1 คำสั่งรันได้
- RAM: RAM 8GB รันได้ 7B Model, 16GB รันได้ 13B Model
- GPU: มี GPU จะเร็วขึ้น 5-10x แต่ไม่มีก็รันได้ (CPU)
- Privacy: ข้อมูล Sensitive ใช้ Local LLM ปลอดภัยกว่า Cloud
Quantization คืออะไร
ลดขนาด Model FP32 FP16 INT8 INT4 ใช้ RAM น้อยลง รันเร็วขึ้น รันบน Laptop ได้ คุณภาพลดเล็กน้อย Q4_K_M สมดุลที่สุด
GGUF คืออะไร
File Format Quantized Model llama.cpp Georgi Gerganov รวมทุกอย่างไฟล์เดียว Weights Tokenizer Metadata Hugging Face Q2-Q8 FP16
รัน LLM บน Local อย่างไร
Ollama 1 คำสั่ง LM Studio GUI llama.cpp Compile GPT4All Python llama-cpp-python RAM 8GB+ ไม่ต้อง GPU Windows macOS Linux
Citizen Developer ใช้ทำอะไรได้
RAG Document Chat Code Assistant Translation Content Creation Data Analysis Automation Privacy Local ข้อมูลไม่ออก LangChain ChromaDB
สรุป
LLM Quantization GGUF Ollama llama.cpp Q4_K_M Local AI Privacy Citizen Developer RAG Code Assistant Translation Content Data Analysis
