ในโลกของ Generative AI ในปัจจุบัน การตัดสินใจระหว่างการใช้งาน LLM (Large Language Model) แบบ Local Deployment กับ Cloud API เป็นสิ่งสำคัญที่ต้องพิจารณาอย่างรอบคอบ บทความนี้จะพาคุณเจาะลึกการติดตั้ง Ollama พร้อม Llama 4 และ Qwen 3 อย่างละเอียด พร้อมทั้งโค้ด Production-Ready และ Benchmark ที่วัดผลได้จริงจากประสบการณ์ตรง

Ollama คืออะไร และทำไมต้องเลือกใช้งาน

Ollama เป็น Open-Source Runtime ที่ทำให้การรัน LLM บนเครื่อง local ง่ายเหมือนการพิมพ์คำสั่งเดียว โดยรองรับ model หลากหลาย เช่น Llama จาก Meta, Qwen จาก Alibaba, Mistral, และอื่นๆ อีกมากมาย

ข้อดีของ Local Deployment

ข้อจำกัดที่ต้องยอมรับ

สถาปัตยกรรมของ Ollama

Ollama ใช้สถาปัตยกรรมแบบ Layered ที่แบ่งหน้าที่ชัดเจน ทำให้เข้าใจการทำงานและสามารถ optimize ได้อย่างตรงจุด

โครงสร้างหลักของระบบ

┌─────────────────────────────────────────────────────────────┐
│                      Ollama Server (Port 11434)              │
├─────────────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐  │
│  │  REST API   │  │  WebSocket  │  │   Model Management  │  │
│  │   Layer     │  │   Handler   │  │       (pull/push)   │  │
│  └──────┬──────┘  └──────┬──────┘  └──────────┬──────────┘  │
│         │                │                    │             │
│  ┌──────┴────────────────┴────────────────────┴──────────┐  │
│  │                    Request Router                     │  │
│  │              (Load Balancing & Queue)                 │  │
│  └─────────────────────────┬─────────────────────────────┘  │
│                            │                                │
│  ┌─────────────────────────┴─────────────────────────────┐  │
│  │                   Inference Engine                     │  │
│  │  ┌─────────────┐  ┌─────────────┐  ┌───────────────┐  │  │
│  │  │   llama.cpp │  │   vLLM      │  │   FlashAttention│ │  │
│  │  │   Backend   │  │   Backend   │  │   Integration  │  │  │
│  │  └─────────────┘  └─────────────┘  └───────────────┘  │  │
│  └───────────────────────────────────────────────────────┘  │
│                                                              │
│  ┌───────────────────────────────────────────────────────┐  │
│  │                    GPU Memory                          │  │
│  │              (CUDA/Metal/OpenCL)                       │  │
│  └───────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────┘

หน่วยความจำที่ต้องการสำหรับแต่ละ Model

# คำสั่ง ollama สำหรับตรวจสอบข้อมูล Model
ollama show llama3.3:latest

ตัวอย่างผลลัพธ์

Model arch llama parameters 70.6B quantization Q4_K_M size 39.4GB minimum RAM 48GB # ขั้นต่ำที่แนะนำ

สำหรับ Qwen 2.5

ollama show qwen2.5:72b-instruct-q4_K_M Model arch qwen2 parameters 72B quantization Q4_K_M size 41.2GB minimum RAM 50GB

การติดตั้ง Ollama บน Ubuntu 22.04/24.04

ขั้นตอนการติดตั้งที่ครอบคลุมตั้งแต่ GPU Driver ไปจนถึงการตั้งค่า Production

ขั้นตอนที่ 1: ติดตั้ง NVIDIA Driver และ CUDA

# ตรวจสอบ GPU ที่มีอยู่
nvidia-smi

ตัวอย่างผลลัพธ์ที่คาดหวัง

+-----------------------------------------------------------------------------+

| NVIDIA-SMI 545.23.08 Driver Version: 545.23.08 CUDA Version: 12.3 |

|-------------------------------+----------------------+----------------------+

| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |

| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |

|===============================+======================+======================|

| 0 NVIDIA RTX 4090 N/A | 00000000:01:00.0 Off | N/A |

| 0% 42C P0 52W / 450W | 2048MiB / 24576MiB | 0% Default |

+-------------------------------+----------------------+----------------------+

ติดตั้ง CUDA Toolkit 12.3

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt-get update sudo apt-get install -y cuda-toolkit-12-3

เพิ่ม PATH ใน ~/.bashrc

echo 'export PATH=/usr/local/cuda-12.3/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.3/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc

ยืนยันการติดตั้ง

nvcc --version

nvcc: NVIDIA (R) Cuda compiler driver

Copyright (c) 2005-2023 NVIDIA Corporation

Built on Fri_Nov__3_21:47:51_PDT_2023

Cuda compilation tools, release 12.3, V12.3.107

ขั้นตอนที่ 2: ติดตั้ง Ollama

# วิธีที่ 1: ใช้ Install Script (แนะนำ)
curl -fsSL https://ollama.com/install.sh | sh

วิธีที่ 2: Manual Installation

ดาวน์โหลด binary

curl -L https://ollama.com/download/ollama-linux-amd64 -o /usr/local/bin/ollama chmod +x /usr/local/bin/ollama

ตรวจสอบเวอร์ชัน

ollama --version

ollama version 0.5.4

สร้าง systemd service สำหรับ Production

sudo tee /etc/systemd/system/ollama.service > /dev/null <สร้าง user และกำหนดสิทธิ์ sudo useradd -r -s /bin/false ollama sudo systemctl daemon-reload sudo systemctl enable ollama sudo systemctl start ollama

ตรวจสอบสถานะ

sudo systemctl status ollama

● ollama.service - Ollama Service

Loaded: loaded (/etc/systemd/system/ollama.service; enabled; preset: enabled)

Active: active (running) since Mon 2026-01-20 10:30:00 UTC; 5s ago

การ Deploy Llama 4 และ Qwen 3

การดาวน์โหลดและติดตั้ง Model

# ดาวน์โหลด Llama 4 8B (Quantized Q4_K_M)

ใช้เวลาประมาณ 15-20 นาที ขึ้นอยู่กับความเร็ว internet

ollama pull llama4:8b

ดาวน์โหลด Llama 4 70B (ต้องการ VRAM อย่างน้อย 48GB)

ollama pull llama4:70b

ดาวน์โหลด Qwen 3

ollama pull qwen3:8b ollama pull qwen3:72b

ดาวน์โหลด Qwen 2.5 (เสถียรกว่า ยังไม่มี Qwen 3 ทุก variant)

ollama pull qwen2.5:72b-instruct-q4_K_M

ดาวน์โหลด Embedding Model สำหรับ RAG

ollama pull nomic-embed-text

ตรวจสอบ Model ที่ติดตั้งแล้ว

ollama list

ผลลัพธ์ตัวอย่าง

NAME ID SIZE MODIFIED

llama4:8b a1b2c3d4 4.9GB 2 hours ago

qwen2.5:72b-instruct-q4_K_M e5f6g7h8 41.2GB 5 hours ago

nomic-embed-text i9j0k1l2 274MB 1 day ago

การสร้าง Custom Model Configuration

# สร้างไฟล์ Modelfile สำหรับ Llama 4 ที่ปรับแต่งแล้ว
cat > ~/Modelfile.llama4-production <<'EOF'
FROM llama4:8b

ตั้งค่า System Prompt

SYSTEM """ You are a professional software engineer assistant. You provide accurate, well-documented code solutions. Always explain your reasoning and include error handling. """

ตั้งค่า Parameters

PARAMETER temperature 0.7 PARAMETER top_p 0.9 PARAMETER top_k 40 PARAMETER num_ctx 8192 PARAMETER num_gpu 1 PARAMETER repeat_penalty 1.1

Template สำหรับ Chat

TEMPLATE """ <|begin_of_text|><|start_header_id|>system<|end_header_id|> {{ .System }} <|eot_id|><|start_header_id|>user<|end_header_id|> {{ .Prompt }}<|eot_id|><|start_header_id|>assistant<|end_header_id|> """ EOF

สร้าง Model จาก Modelfile

ollama create llama4-production -f ~/Modelfile.llama4-production

ทดสอบ Model ที่สร้าง

ollama run llama4-production "Explain the difference between REST and GraphQL in Thai"

ตรวจสอบการใช้งาน VRAM

nvidia-smi --query-gpu=memory.used,memory.total --format=csv

การ Implement Production-Ready API Server

โค้ด Python สำหรับสร้าง API Server ที่รองรับ Concurrent Requests, Rate Limiting, และ Fallback to Cloud

"""
Production-Ready LLM API Server
รองรับ Local Ollama พร้อม Fallback ไป HolySheep AI
"""

import os
import time
import asyncio
from datetime import datetime, timedelta
from collections import defaultdict
from typing import Optional
from dataclasses import dataclass
from enum import Enum

Import required libraries

from fastapi import FastAPI, HTTPException, Request, BackgroundTasks from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import StreamingResponse from pydantic import BaseModel, Field import httpx

Configuration

@dataclass class Config: # Local Ollama (Primary) OLLAMA_BASE_URL: str = "http://localhost:11434" OLL