ทุกครั้งที่ ChatGPT ตอบคำถามหรือ Claude Code แก้ไฟล์ให้ เบื้องหลังคือชิปเร่งการคำนวณอย่าง GPU ที่กำลังทำ inference อยู่ คำนี้โผล่ทั้งในหน้าราคา API ใบเสนอราคาเช่า GPU และประกาศรับสมัครงาน บทความนี้อธิบายตั้งแต่ความหมายไปจนถึงเรื่องเงิน และเป็นจุดเริ่มของหมวด AI Inference
AI Inference คืออะไร
AI inference คือการนำโมเดลที่เทรนเสร็จแล้วมารับข้อมูลใหม่และสร้างผลลัพธ์ เช่น อ่านคำถามแล้วเขียนคำตอบ อ่านภาพแล้วบอกว่าคืออะไร หรืออ่านโค้ดแล้วเสนอวิธีแก้ ระหว่าง inference ค่า weight ของโมเดลไม่เปลี่ยน โมเดลแค่ใช้สิ่งที่เรียนมาแล้ว
เทียบกับคน training คือช่วงที่เรียนหนังสือหลายปี ส่วน inference คือตอนทำงานจริงที่ต้องตอบลูกค้าทีละคน ความรู้ไม่ได้เพิ่มขึ้นระหว่างตอบ แต่ทุกคำตอบใช้แรงและเวลา
สำหรับ LLM คำขอ inference หนึ่งครั้งหน้าตาแบบนี้ ไม่ว่าจะเรียก API ของผู้ให้บริการหรือเซิร์ฟเวอร์ของตัวเอง
curl https://api.example.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "your-model", "messages": [{"role": "user", "content": "สรุปอีเมลนี้ใน 3 บรรทัด"}]}'ฝั่งที่รับคำขอนี้เรียกว่า inference server คือโปรแกรมที่โหลดโมเดลไว้ในหน่วยความจำ GPU รับคำขอผ่าน HTTP จัดคิว รวมหลายคำขอเข้าด้วยกันเป็น batch แล้วส่งคำตอบกลับทีละ token ตัวที่ใช้กันมากคือ vLLM, SGLang, llama.cpp และ Ollama
Training กับ Inference ต่างกันอย่างไร
Training คือการปรับ weight ของโมเดลจากข้อมูลจำนวนมากจนโมเดลทำงานได้ ส่วน inference คือการใช้ weight ชุดนั้นตอบคำขอจริง training ทำเป็นรอบโดยเจ้าของโมเดล ส่วน inference เกิดทุกครั้งที่มีคนใช้ และคนจ่ายคือคนที่ให้บริการแอป
| Training | Inference | |
|---|---|---|
| เป้าหมาย | สอนโมเดลจนได้ weight ที่ใช้งานได้ | ใช้ weight ตอบคำขอจริง |
| เกิดเมื่อไร | เป็นรอบ แต่ละรอบใช้เวลานาน | ทุกคำขอ ตลอดอายุของแอป |
| ข้อมูลที่ใช้ | ชุดข้อมูลขนาดใหญ่มาก | prompt ของแต่ละคำขอ |
| การคำนวณ | คำนวณไปและย้อนกลับเพื่อปรับ weight | คำนวณไปข้างหน้าอย่างเดียว weight ไม่เปลี่ยน |
| ฮาร์ดแวร์ | GPU จำนวนมากต่อเป็นคลัสเตอร์ | ตั้งแต่มือถือ GPU ใบเดียว จนถึงคลัสเตอร์ |
| ตัวชี้วัดหลัก | loss และความแม่นบนชุดทดสอบ | latency, throughput และต้นทุนต่อ token |
สำหรับทีมส่วนใหญ่ในไทย งานจริงแทบทั้งหมดอยู่ฝั่ง inference เราเลือกโมเดลที่มีคนเทรนไว้แล้ว ทั้งโมเดลปิดที่เรียกผ่าน API และโมเดล open-weight ที่ดาวน์โหลดได้ (ดู Open-source LLM คืออะไร เลือกโมเดลไหนดี) แล้วจ่ายค่ารันมันทุกวัน
อธิบายด้วยภาพ
คำขอหนึ่งครั้งผ่านอะไรบ้าง
- 1 รับคำขอตัด prompt เป็น token
- 2 Prefillอ่าน prompt ทั้งก้อนในรอบเดียวเก็บผลไว้ใน KV cache
- 3 Decodeเขียนคำตอบทีละ tokenทุก token อ่าน weight จากหน่วยความจำอีกรอบ
- ผลลัพธ์stream คำตอบกลับไปให้ผู้ใช้
prefill กำหนดเวลารอ token แรก ส่วน decode กำหนดความเร็วตอนเขียนคำตอบ
LLM inference ทำงานอย่างไร: prefill กับ decode
LLM inference แบ่งเป็นสองช่วง ช่วงแรกเรียกว่า prefill คือโมเดลอ่าน prompt ทั้งหมดพร้อมกันในรอบเดียว ช่วงที่สองเรียกว่า decode คือโมเดลเขียนคำตอบทีละ token และแต่ละ token ต้องรันโมเดลหนึ่งรอบ สองช่วงนี้ใช้ทรัพยากรต่างกันและกำหนดความเร็วคนละแบบ
- Prefill token ทั้งหมดใน prompt ถูกประมวลผลพร้อมกัน GPU ได้ใช้พลังคำนวณเต็มที่ ผลที่ได้ถูกเก็บไว้ใน KV cache เพื่อไม่ต้องคำนวณซ้ำ prompt ยิ่งยาว ช่วงนี้ยิ่งนาน และเป็นตัวกำหนดเวลาที่รอ token แรก
- Decode โมเดลเลือก token ถัดไปทีละตัว แล้วนำ token นั้นต่อท้ายเพื่อเลือกตัวต่อไป ทุกรอบต้องอ่าน weight ของโมเดลจากหน่วยความจำ GPU อีกครั้ง ช่วงนี้จึงติดที่ความเร็วของหน่วยความจำ (memory bandwidth) มากกว่าพลังคำนวณ
เอกสารของ vLLM เรียก prefill ว่างานแบบ compute-bound และเรียก decode ว่างานแบบ memory-bound สองคำนี้อธิบายเรื่องที่เจอในงานจริงได้หลายเรื่อง
- ทำไม output แพงกว่า input ในหน้าราคา (ดู ราคา LLM API 2026)
- ทำไมการ์ดที่ memory bandwidth สูงเขียนคำตอบได้เร็วกว่า (ดู GPU สำหรับรัน LLM)
- ทำไมการลดขนาด weight ช่วยให้รันบนการ์ดเล็กได้ (ดู Quantization คืออะไร)
- ทำไมความเร็วต้องวัดเป็นสองตัวเลข คือเวลารอ token แรกกับ tokens per second (ดู TTFT และ Tokens per second)
KV cache คือหน่วยความจำที่เก็บผลคำนวณของ token ที่อ่านไปแล้ว context ยิ่งยาว KV cache ยิ่งใหญ่ และยิ่งกินหน่วยความจำที่ GPU ใช้รับคำขอพร้อมกัน ส่วน prompt caching ของผู้ให้บริการคือการเก็บผลของช่วง prefill ไว้ใช้ข้ามคำขอ (อ่านต่อใน Prompt caching และ KV cache)
Inference รันที่ไหนได้บ้าง
Inference รันได้สามที่หลัก คือเรียก API ของผู้ให้บริการบนคลาวด์ รันบน GPU ของตัวเองหรือที่เช่ามา และรันบนอุปกรณ์ปลายทางอย่างแล็ปท็อปหรือมือถือ แต่ละที่ต่างกันเรื่องต้นทุน ความเร็ว ภาระดูแล และที่อยู่ของข้อมูล
| ที่รัน | ตัวอย่าง | เหมาะกับ | ต้องคิดเรื่อง |
|---|---|---|---|
| Cloud API | OpenAI, Anthropic, Google, DeepSeek | เริ่มเร็ว ได้โมเดลใหญ่ ไม่ต้องดูแลเครื่อง | จ่ายตาม token, rate limit, ข้อมูลออกนอกประเทศ |
| GPU ของตัวเองหรือเช่า | vLLM, SGLang, llama.cpp บนเซิร์ฟเวอร์ | งานปริมาณสูงสม่ำเสมอ ต้องคุมข้อมูลเอง | ค่าการ์ดหรือค่าเช่ารายชั่วโมง คนดูแล และเวลาที่การ์ดว่าง |
| บนอุปกรณ์ (on-device, edge) | Ollama หรือ LM Studio บนแล็ปท็อป, Gemini Nano บน Android | ใช้ออฟไลน์ ข้อมูลไม่ออกจากเครื่อง | โมเดลต้องเล็ก ความเร็วขึ้นกับเครื่องผู้ใช้ |
ถ้ารันเอง คำสั่งเดียวก็เปิด inference server แบบ OpenAI-compatible ด้วย vLLM ได้ ตามตัวอย่างในเอกสาร quickstart ของ vLLM
vllm serve Qwen/Qwen2.5-1.5B-Instructเซิร์ฟเวอร์จะเปิดที่ http://localhost:8000 จากนั้นเรียกด้วย curl แบบข้างบนโดยเปลี่ยน base URL เป็น http://localhost:8000/v1 วิธีตั้งให้พร้อมใช้งานจริงอยู่ใน vLLM คืออะไร ส่วนการลองบนเครื่องตัวเองอยู่ใน รัน LLM บนเครื่องด้วย Ollama และ LM Studio
ฝั่ง on-device เอกสารของ Android ระบุว่า Gemini Nano รันผ่าน AICore บนเครื่อง ใช้ได้โดยไม่ต้องต่อเน็ตและไม่ส่งข้อมูลขึ้นคลาวด์ แต่ความเร็วขึ้นกับฮาร์ดแวร์ของเครื่อง และแนะนำ hybrid inference ที่ส่งงานยากไปคลาวด์เมื่อเครื่องรับไม่ไหว ถ้างานมีข้อมูลส่วนบุคคล ที่ตั้งของ inference เป็นเรื่องกฎหมายด้วย ดู ใช้ LLM API กับข้อมูลลูกค้าอย่างไรให้ถูก PDPA
ทำไม inference ถึงเป็นต้นทุนหลักของแอป AI
Inference เป็นต้นทุนหลักเพราะ training จ่ายเป็นรอบ และถ้าใช้โมเดลของผู้ให้บริการ คนจ่ายคือเจ้าของโมเดล แต่ inference ต้องจ่ายทุกคำขอตลอดอายุของแอป ยอดจึงโตตามจำนวนผู้ใช้ จำนวนครั้งที่ใช้ และความยาวของ prompt กับคำตอบ
ตัวอย่าง ผู้ช่วย AI ภายในบริษัทที่มีพนักงาน 200 คน ใช้คนละ 20 ครั้งต่อวัน เดือนละ 22 วันทำงาน แต่ละครั้งส่ง input 4,000 token และได้ output 500 token
คำขอต่อเดือน = 200 × 20 × 22 = 88,000 ครั้ง
input = 88,000 × 4,000 = 352 ล้าน token
output = 88,000 × 500 = 44 ล้าน token
ค่าใช้จ่าย = 352 × $2 + 44 × $10 = $1,144 ต่อเดือน
เป็นเงินบาท = $1,144 × 33.4 ≈ 38,210 บาทตัวเลขนี้คิดที่ราคา $2 / $10 ต่อ 1 ล้าน token และ 33.4 บาทต่อดอลลาร์ ณ พฤศจิกายน 2569 ยังไม่รวมส่วนลด cache ค่า training ในตัวอย่างนี้เป็นศูนย์สำหรับบริษัท แต่ค่า inference เกิดซ้ำทุกเดือน และเพิ่มเป็นสองเท่าเมื่อคนใช้เพิ่มเป็นสองเท่า ถ้าเปลี่ยนเป็น agent ที่วนหลายรอบต่องาน ตัวเลขจะโตเร็วกว่านี้มาก
ฝั่ง self-host ค่า inference มาในรูปค่าการ์ดหรือค่าเช่า GPU รายชั่วโมงที่ต้องจ่ายแม้การ์ดว่าง ตัวเลขที่ควรดูจึงเป็นต้นทุนต่อ token ที่ใช้จริง ไม่ใช่ราคาการ์ด การเทียบสามทางเป็นตัวเลขอยู่ใน ต้นทุน AI Inference: ใช้ API, เช่า GPU หรือตั้งเซิร์ฟเวอร์เอง
Batch inference กับ real-time inference ต่างกันอย่างไร
Real-time inference คือคำขอที่มีคนรอคำตอบทันที เช่น แชตหรือ agent ส่วน batch inference คือการส่งคำขอจำนวนมากไปประมวลผลแบบไม่เร่งแล้วมารับผลทีหลัง ผู้ให้บริการรายใหญ่ลดราคางาน batch ลงครึ่งหนึ่งแลกกับการไม่ได้ผลทันที
| Real-time | Batch | |
|---|---|---|
| ตัวอย่างงาน | แชตบอต, coding agent, autocomplete | จัดหมวด ticket ย้อนหลัง, แปลแค็ตตาล็อก, ทดสอบ prompt กับชุดข้อมูล |
| สิ่งที่วัด | เวลารอและความเร็ว | ต้นทุนต่อ token และปริมาณงานต่อวัน |
| ราคา API | ราคาปกติ | OpenAI, Anthropic และ Gemini ลด 50% |
| ได้ผลเมื่อไร | ทันที แบบ stream | OpenAI ภายใน 24 ชั่วโมง, Anthropic ส่วนใหญ่ไม่ถึง 1 ชั่วโมงและหมดอายุที่ 24 ชั่วโมง |
| ขนาดต่อชุด | ทีละคำขอ | OpenAI ไม่เกิน 50,000 คำขอหรือ 200 MB, Anthropic ไม่เกิน 100,000 คำขอหรือ 256 MB |
เกณฑ์ง่ายๆ คือ ถ้าไม่มีคนนั่งรอผล ให้ส่งแบบ batch เอกสารของ OpenAI ระบุด้วยว่า rate limit ของ Batch API แยกจาก rate limit ปกติ งาน batch ใหญ่จึงไม่แย่งโควตาของงาน real-time (เรื่อง limit อ่านต่อใน Rate limit และ Error 429)
buzzAI ทำ inference ให้ coding agent อย่างไร
buzzAI เป็นบริการ inference สำหรับ coding agent ที่ใช้โมเดล open-weight Qwen3.8-27B ในรุ่น NVFP4 (4-bit) ที่ NVIDIA ทำจากโมเดลนี้ บนการ์ด GPU ที่ buzzAI ดูแลเอง เรียกผ่าน base URL https://api.heybuzzai.com/v1 ได้ทั้งแบบ Chat Completions, Responses (ที่ Codex CLI ใช้) และ Anthropic Messages (ที่ Claude Code ใช้ โดยตั้ง ANTHROPIC_BASE_URL เป็น https://api.heybuzzai.com)
แพ็กเป็นแบบเหมาจ่าย ไม่คิดค่า token สิ่งที่มีขอบเขตคือจำนวน agent ที่รันพร้อมกัน ขนาด context ตามแพ็ก และคิวในช่วงที่คนใช้เยอะ ตอนนี้งานประมวลผลอยู่บนเซิร์ฟเวอร์ GPU ของผู้ให้บริการคลาวด์ในต่างประเทศ API ยังไม่เปิดให้ทุกคน ขอร่วมทดสอบได้ที่หน้าแรก และดูแพ็กทั้งหมดได้ที่หน้าราคา
คำถามที่พบบ่อย
Fine-tuning เป็น training หรือ inference?
Fine-tuning เป็น training แบบหนึ่ง คือเทรนต่อจากโมเดลเดิมด้วยข้อมูลชุดเล็กเพื่อให้ได้ weight ชุดใหม่ หลังจากนั้นการใช้โมเดลที่ fine-tune แล้วตอบงานจริงก็คือ inference ตามปกติ
RAG เกิดตอน training หรือ inference?
RAG เกิดตอน inference ระบบค้นเอกสารที่เกี่ยวข้องแล้วแนบเข้าไปใน prompt ก่อนส่งให้โมเดล weight ไม่เปลี่ยน แต่ prompt ยาวขึ้น ค่า input token และเวลารอ token แรกจึงเพิ่มตาม
Inference ต้องใช้ GPU เสมอไหม?
ไม่เสมอไป โมเดลเล็กหรือโมเดลที่ quantize แล้วรันบน CPU, Mac หรือมือถือได้ แต่ LLM ขนาดกลางขึ้นไปที่ต้องตอบเร็วหรือรับหลายคนพร้อมกันมักต้องใช้ GPU เพราะต้องอ่าน weight จากหน่วยความจำเร็วมากในทุก token
Inference provider คืออะไร?
Inference provider คือบริการที่รันโมเดลบน GPU ของตัวเองแล้วเปิดให้เรียกผ่าน API คิดเงินตาม token หรือตามแพ็ก มีทั้งเจ้าของโมเดลที่ขายโมเดลของตัวเอง และผู้ให้บริการที่นำโมเดล open-weight มารันให้
Inference กับ prediction ต่างกันไหม?
ในงาน machine learning สองคำนี้มักใช้แทนกัน prediction เน้นผลลัพธ์ เช่น คะแนนหรือหมวดหมู่ ส่วน inference หมายถึงกระบวนการรันโมเดลเพื่อให้ได้ผลนั้น ในโลก LLM ใช้คำว่า inference มากกว่าเพราะผลลัพธ์เป็นข้อความที่สร้างทีละ token
แหล่งอ้างอิง
ข้อมูล ณ วันที่อัปเดต แพ็ก โควตา และคำสั่งของแต่ละเครื่องมือเปลี่ยนได้บ่อย ก่อนใช้งานจริงควรตรวจกับเอกสารทางการที่ลิงก์ไว้ในแหล่งอ้างอิง