1. ทำไมต้อง Ollama (ไม่ใช้ OpenAI API)
- Data sovereignty: prompt + output ไม่ออกจาก server
- PDPA compliance: ไม่ส่งข้อมูลข้ามชายแดน
- ไม่มี per-token cost: จ่ายค่า hardware ครั้งเดียว
- ไม่ขึ้นกับ rate limit: ใช้เต็มกำลัง server
- Offline capable: internet ล่มยังทำงานได้
2. Hardware Requirement
ขึ้นกับขนาด model ที่เลือก:
- Model 3B (เช่น qwen3:3b): RAM 8GB · CPU-only ได้ · ตอบใน 10-20 วินาที
- Model 7B-12B (gemma3:12b, llama3:8b): RAM 16GB+ · GPU แนะนำ (RTX 4060 ขึ้นไป) · ตอบใน 2-5 วินาที
- Model 70B: RAM 64GB+ · GPU 40GB VRAM (A100/H100) · สำหรับ enterprise
แนะนำ: เริ่มที่ gemma3:4b บน CPU ก่อนเพื่อทดสอบ · พอมั่นใจค่อยอัพ hardware
3. ติดตั้ง Ollama บน Ubuntu 22.04/24.04
# Install (one-liner)
curl -fsSL https://ollama.com/install.sh | sh
# Start service
sudo systemctl enable ollama
sudo systemctl start ollama
# Verify
ollama --version
curl http://localhost:11434/api/tags
โดย default Ollama ฟัง 127.0.0.1:11434 — ถ้าต้องการให้ server อื่นเรียกใช้ ต้องแก้ config
4. เปิดให้ LAN เรียกใช้ (optional)
sudo systemctl edit ollama
เพิ่ม:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
sudo systemctl daemon-reload
sudo systemctl restart ollama
sudo ufw allow from 10.0.0.0/8 to any port 11434
⚠️ อย่าเปิดออก public internet · ให้ limit เฉพาะ LAN/VPN เท่านั้น
5. Download Model
# เหมาะกับ CPU / ทดสอบ
ollama pull qwen3:4b
ollama pull gemma3:4b
# เหมาะกับ GPU
ollama pull gemma3:12b
ollama pull llama3.1:8b
# ดู models ที่มี
ollama list
Model จะ cache ที่ ~/.ollama/models/ — ใช้พื้นที่ 2-15GB/model
6. ทดสอบ Chat
ollama run gemma3:4b
>>> สวัสดี ช่วยเขียน bash script เช็ค disk space ให้หน่อย
หรือผ่าน API:
curl http://localhost:11434/api/generate -d '{
"model": "gemma3:4b",
"prompt": "เช็ค disk เครื่อง Linux ใช้คำสั่งอะไร",
"stream": false
}'
7. เลือก Model ไหนดีสำหรับ Sysadmin
จากประสบการณ์จริงใน ServerAI Manager:
- gemma3:12b — เข้าใจภาษาไทยดีที่สุด · เหมาะงาน sysadmin · ต้องการ GPU
- qwen3:4b — เร็วสุดบน CPU · ภาษาไทยได้ · ต้อง set
think: falseให้ตอบ JSON - llama3.1:8b — เก่ง code / English · ภาษาไทยพอใช้
- deepseek-r1 — reasoning เก่ง · แต่ช้ากว่า · เหมาะงานวิเคราะห์
8. Integrate กับ Application
Ollama เข้ากันกับ OpenAI SDK — ใช้ code เดิมได้:
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama" # ใส่อะไรก็ได้
)
response = client.chat.completions.create(
model="gemma3:12b",
messages=[{"role": "user", "content": "Hello"}]
)
9. Performance Tuning
- OLLAMA_NUM_PARALLEL=4 — รองรับ request พร้อมกัน 4 ตัว
- OLLAMA_MAX_LOADED_MODELS=2 — load หลาย model พร้อมกัน
- OLLAMA_KEEP_ALIVE=30m — เก็บ model ใน RAM 30 นาที (เร็วขึ้น)
- OLLAMA_FLASH_ATTENTION=1 — เร็วขึ้น 20-30% สำหรับ GPU
10. Monitoring
# GPU usage
nvidia-smi
# Ollama logs
sudo journalctl -u ollama -f
# Active requests
curl http://localhost:11434/api/ps