แพลตฟอร์ม · โดย ggml-org
llama.cpp
llama.cpp คือแพลตฟอร์มโอเพนซอร์สสำหรับรันโมเดลภาษา (LLM) บนเครื่องของตัวเอง เขียนด้วย C/C++ ประกอบด้วย library ชื่อ llama และชุดคำสั่งสำหรับ terminal (หน้าจอพิมพ์คำสั่ง) คือ llama cli สำหรับแชต และ llama serve ที่เปิด API (ช่องทางให้โปรแกรมอื่นเรียกใช้) พร้อม web UI ในเบราว์เซอร์ ใช้ได้บน Windows, macOS, Linux และ Docker และมีแอปเดสก์ท็อปชื่อ Llama สำหรับ Mac และ Windows 11 ที่สร้างบน llama.cpp
ไปที่เว็บ llama.cpp llama.appเหมาะกับใคร
- เหมาะกับนักพัฒนาที่มีโค้ดเรียก OpenAI อยู่แล้ว เพราะ llama serve มี endpoint แบบ OpenAI ใช้ OpenAI Python SDK ได้โดยเปลี่ยนแค่ base URL และไม่ต้องใช้ API key
- เหมาะกับคนที่อยากใช้การ์ดจอหรือ Apple Silicon ให้เต็ม เพราะมี backend สำหรับ CUDA (NVIDIA), HIP (AMD), SYCL (Intel), Vulkan และ Metal ซึ่ง Metal เปิดเป็นค่าเริ่มต้นบน macOS
- เหมาะกับโมเดลที่ใหญ่กว่า VRAM (หน่วยความจำของการ์ดจอ) เพราะแบ่งให้ CPU กับการ์ดจอทำงานร่วมกันได้ และกำหนดจำนวน layer ที่วางบนการ์ดจอด้วย -ngl
- เหมาะกับคนที่ต้องทำงานออฟไลน์ เพราะหลังดาวน์โหลดโมเดลครั้งแรกแล้ว โมเดลอยู่ใน cache และมี --offline ที่บังคับใช้ cache และกันการต่อเครือข่าย
- เหมาะกับการใช้ในบริษัทหรือฝังในผลิตภัณฑ์ เพราะเป็นสัญญาอนุญาต MIT ที่ให้ใช้ แก้ไข แจกจ่าย และขายได้โดยไม่มีค่าใช้จ่าย และไม่แยกเงื่อนไขระหว่างใช้ส่วนตัวกับเชิงพาณิชย์
- เหมาะกับคนที่อยากแปลงหรือบีบโมเดลเอง เพราะมี script convert_hf_to_gguf.py และคำสั่ง llama-quantize ที่เลือกระดับ quantization ได้ตั้งแต่ IQ1_S ถึง F16
ไม่เหมาะกับ
- คนใช้ Linux ที่อยากได้แอปกดใช้ ควรดูตัวอื่น เพราะแอปเดสก์ท็อป Llama มีเฉพาะ Mac และ Windows 11 ส่วน Linux มีแต่แบบ command line
- คนที่อยากได้ระบบถามตอบจากโฟลเดอร์ไฟล์สำเร็จรูป ยังไม่เหมาะ เพราะมีแค่การแนบ PDF และไฟล์ข้อความในแชต กับ endpoint สำหรับ embedding และ reranking ยังไม่มีข้อมูลเรื่องคลังความรู้หรือดัชนีไฟล์ในตัว
- ทีมที่ต้องการบัญชีผู้ใช้ สิทธิ์ตามบทบาท หรือหน้าจอแอดมิน ควรดูตัวอื่น เพราะการคุมการเข้าถึงมีแค่ API key และยังไม่มีข้อมูลเรื่องบัญชีผู้ใช้ โควตารายคน หรือบริการซัพพอร์ตแบบเสียเงิน
- คนที่จะเปิดเซิร์ฟเวอร์ออกอินเทอร์เน็ตโดยตรง ควรระวัง เพราะคำแนะนำด้านความปลอดภัยของโปรเจกต์คือไม่ให้ใช้ llama-server และ RPC backend กับเครือข่ายที่ไม่น่าไว้ใจ
- คนที่มีโมเดลในรูปแบบอื่น เช่น safetensors หรือ MLX และไม่อยากแปลงไฟล์ ยังไม่เหมาะ เพราะ llama.cpp รันได้เฉพาะไฟล์ GGUF
ทำได้แค่ไหน
- รันโมเดลภาษาและโมเดลที่รับภาพ (VLM) บนเครื่องตัวเอง โดยใช้ได้ทั้ง CPU อย่างเดียว การ์ดจอ หรือแบ่งงานระหว่าง CPU กับการ์ดจอ
- ดาวน์โหลดโมเดลจาก Hugging Face แล้วเริ่มแชตได้ในคำสั่งเดียว เช่น llama cli -hf ggml-org/Qwen3.5-0.8B-GGUF
- llama serve เปิดเซิร์ฟเวอร์ HTTP ที่มี endpoint แบบ OpenAI เช่น /v1/chat/completions และแบบ Anthropic คือ /v1/messages พร้อม web UI สำหรับแชตที่ที่อยู่เดียวกัน
- รับ input เป็นภาพ เสียง และวิดีโอได้กับโมเดล multimodal เช่น Gemma 4, Qwen 2.5 VL, Pixtral 12B และ Voxtral Mini
- รองรับ function calling แบบ OpenAI กับทุกโมเดล ต่อ MCP server (MCP คือมาตรฐานเชื่อม AI กับบริการภายนอก) ได้ และบังคับผลลัพธ์เป็น JSON ตาม schema ผ่าน response_format หรือ GBNF grammar
- มีคำสั่งสำหรับแปลงโมเดลเป็น GGUF ทำ quantization (การลดความละเอียดของน้ำหนักโมเดลให้ไฟล์เล็กลง) วัด benchmark และประเมินโมเดล
ใช้กับงานแบบไหนได้
มือใหม่ที่อยากได้แอปกดใช้ได้บางส่วน
ตัว llama.cpp เป็น engine และคำสั่งใน terminal แต่ทีมเดียวกันมีแอป Llama สำหรับ Mac และ Windows 11 ที่ติดตั้งโมเดลแนะนำได้ในคลิกเดียว ส่วน Linux มีแต่แบบ command line
คอมแรม 8GB หรือไม่มีการ์ดจอได้บางส่วน
รันด้วย CPU อย่างเดียวได้ และมีตัวอย่าง Gemma-4 E4B แบบ 4-bit ที่ใช้ memory ราว 6GB ที่ context 16k token แต่ยังไม่มีคำแนะนำสำหรับเครื่องแรม 8GB และรายการแนะนำบน llama.app เริ่มที่ 16 GB
ใช้การ์ดจอหรือ Apple Silicon ให้เต็มได้
มี backend CUDA, HIP (ROCm), Vulkan, SYCL และ Metal กำหนด layer บนการ์ดจอด้วย -ngl เป็น auto, all หรือตัวเลข แบ่งโมเดลข้ามหลายการ์ดจอได้ และ Apple Silicon ได้รับการปรับแต่งผ่าน ARM NEON, Accelerate และ Metal
เปิด API ให้โปรแกรมอื่นมาต่อได้
llama serve เปิด endpoint แบบ OpenAI คือ /v1/chat/completions, /v1/completions, /v1/responses, /v1/embeddings และ /v1/models และแบบ Anthropic คือ /v1/messages
ถามตอบจากไฟล์ของตัวเองได้บางส่วน
web UI แนบ PDF และไฟล์ข้อความในแต่ละแชตได้ และเซิร์ฟเวอร์มี endpoint สำหรับ embedding และ reranking แต่ยังไม่มีข้อมูลเรื่องคลังความรู้หรือดัชนีไฟล์ในตัว
ทำเอเจนต์ที่ใช้ tools หรือ MCPได้บางส่วน
function calling ใช้ได้กับทุกโมเดล และเซิร์ฟเวอร์โหลด MCP server แบบ stdio กับ tools ในตัวสำหรับไฟล์และ shell ได้ แต่ MCP และ tools ในตัวยังอยู่ในขั้นทดลอง และ llama.cpp ไม่มี agent framework มาให้
ตั้งเซิร์ฟเวอร์ให้ทั้งทีมใช้ได้บางส่วน
มี slot ทำงานขนานสำหรับหลายผู้ใช้ API key หลายชุด --host 0.0.0.0 router mode และ /metrics แต่ไม่มีระบบจัดการผู้ใช้ และคำแนะนำด้านความปลอดภัยคือไม่เปิด llama-server ให้เครือข่ายที่ไม่น่าไว้ใจ
ใช้งานเป็นภาษาไทยยังไม่ชัด
ยังไม่มีข้อมูลเรื่องหน้าจอภาษาไทยหรือโมเดลที่บอกชื่อภาษาไทย มีแต่ตัวเลขรวม เช่น Gemma 4 รองรับ 140+ languages และ Qwen 3.5 Small รองรับ 201 languages
วิธีเริ่มใช้
macOS และ Linux (script ติดตั้ง)
- เปิด terminal แล้วรัน curl -LsSf https://llama.app/install.sh | sh
- script ตรวจเครื่องแล้วดาวน์โหลดไฟล์ llama ที่ตรงกับเครื่อง บน Linux ตรวจ CUDA, ROCm, Vulkan แล้วจึงใช้ CPU ตามลำดับ บน macOS ตรวจ Metal
- ไฟล์ติดตั้งอยู่ที่ ~/.llama-app และคำสั่ง llama ถูกคัดลอกไปที่ ~/.local/bin/llama
- ตรวจด้วย llama cli --version
- ถ้าขึ้นข้อความ No prebuilt llama binary is available for your system ให้ build จาก source แทน
Windows (PowerShell)
- เปิด PowerShell แล้วรัน irm https://llama.app/install.ps1 | iex
- ตรวจด้วย llama cli --version
แอป Llama (Mac และ Windows 11)
- ไปที่ llama.app แล้วกด Download for Mac หรือ Download for Windows 11
- Mac ติดตั้งผ่าน Homebrew ได้ด้วย brew install --cask llama-app
- Windows 11 ดาวน์โหลดไฟล์ .msixbundle (x64 + ARM64) จากหน้า Releases แล้วดับเบิลคลิกเพื่อติดตั้ง
- ในแอป กดลูกศรชี้ลงข้างโมเดลแนะนำเพื่อดาวน์โหลด
- คลิกที่โมเดล เลือกขนาด context window แล้วกด Chat with the model
Package manager
- Windows: winget install llama.cpp
- macOS และ Linux: brew install llama.cpp
- macOS (MacPorts): sudo port install llama.cpp
- Nix: nix profile install nixpkgs#llama-cpp
- conda-forge (Windows, Mac, Linux): conda install -c conda-forge llama.cpp
Docker
- เลือก image: ghcr.io/ggml-org/llama.cpp:server (มี llama-server อย่างเดียว), :light (llama-cli และ llama-completion) หรือ :full (รวมคำสั่งแปลงและ quantize โมเดล)
- รันเซิร์ฟเวอร์: docker run -v /path/to/models:/models -p 8080:8080 ghcr.io/ggml-org/llama.cpp:server -m /models/7B/ggml-model-q4_0.gguf --port 8080 --host 0.0.0.0 -n 512
- ใช้การ์ดจอ NVIDIA: เลือก image ที่ลงท้าย -cuda และเพิ่ม --gpus all โดยบน Linux ต้องมี nvidia-container-toolkit
- image แบบอื่นลงท้ายด้วย -cuda13, -rocm, -musa, -intel, -vulkan และ -openvino
Build จาก source
- รัน git clone https://github.com/ggml-org/llama.cpp แล้ว cd llama.cpp
- build แบบ CPU: cmake -B build
- จากนั้นรัน cmake --build build --config Release
- ใช้ NVIDIA: cmake -B build -DGGML_CUDA=ON (ต้องมี CUDA toolkit) แล้ว build ด้วยคำสั่งเดิม
- Vulkan ใช้ -DGGML_VULKAN=ON และ AMD ใช้ -DGGML_HIP=ON (ต้องมี ROCm) ส่วน macOS เปิด Metal ให้เป็นค่าเริ่มต้น
- บน Windows ต้องติดตั้ง Visual Studio 2022 พร้อม Desktop-development with C++, CMake tools, Git และ Clang แล้วใช้ Developer Command Prompt หรือ PowerShell for VS2022
ดาวน์โหลดโมเดลและแชตใน terminal
- รัน llama cli -hf ggml-org/Qwen3.5-0.8B-GGUF โมเดลจะถูกดาวน์โหลดเองในครั้งแรกที่ใช้
- เลือกระดับ quantization เองโดยต่อท้ายชื่อ เช่น llama serve -hf ggml-org/gemma-4-e4b-it-GGUF:Q4_0 ถ้าไม่ใส่จะได้ Q4_K_M
- ใช้ไฟล์ที่มีอยู่ในเครื่อง: llama cli -m my-model.gguf
- ดูรายการโมเดลใน cache: llama cli -cl
- โมเดลที่ต้องขอสิทธิ์หรือเป็น private ใส่ token ด้วย -hft หรือตั้งตัวแปร HF_TOKEN
เปิด API และ web UI
- รัน llama serve -hf ggml-org/Qwen3.5-0.8B-GGUF หรือ llama serve -m my-model.gguf
- เปิดที่อยู่ของเซิร์ฟเวอร์ในเบราว์เซอร์เพื่อใช้ web UI โดย port ดูจากข้อความตอนเริ่มเซิร์ฟเวอร์ เพราะค่าเริ่มต้นมีทั้ง 9931 และ 8080
- ให้เครื่องอื่นในเครือข่ายเข้าถึงได้ด้วยการเพิ่ม --host 0.0.0.0
- ตั้งรหัสด้วย --api-key KEY แล้วให้โปรแกรมที่มาต่อส่ง header Authorization: Bearer YOUR_KEY
- ในโปรแกรมที่ใช้ OpenAI SDK เปลี่ยน base_url เป็นที่อยู่ของเซิร์ฟเวอร์ตามด้วย /v1
ใช้กับเครื่องแบบไหนได้
| ระบบปฏิบัติการ | script ติดตั้งรองรับ Linux, macOS และ FreeBSD บน x86_64 และ aarch64 ส่วน Windows ติดตั้งผ่าน PowerShell หรือ winget ไฟล์สำเร็จรูปบน GitHub Releases มีสำหรับ Windows x64/arm64, macOS arm64 และ x64, Ubuntu x64/arm64 และ Android arm64 |
|---|---|
| สเปกขั้นต่ำ | ยังไม่มีตารางสเปกขั้นต่ำของ RAM, VRAM หรือเวอร์ชันระบบปฏิบัติการ สิ่งที่บอกไว้คือโมเดลถูกโหลดเข้า memory ทั้งไฟล์ จึงต้องมี disk พอเก็บและ RAM พอโหลด โดยความต้องการ memory กับ disk เท่ากัน |
| ขนาดโมเดลตัวอย่าง | Llama 3.1 8B ขนาดเดิม 32.1 GB เหลือ 4.9 GB ที่ Q4_K_M ส่วน 70B ขนาด 280.9 GB เหลือ 43.1 GB และ 405B ขนาด 1,625.1 GB เหลือ 249.1 GB |
| จุดเริ่มต้นตาม RAM | llama.app แนะนำ Gemma 4 สำหรับเครื่อง 16 GB ขึ้นไป GPT-OSS สำหรับ 24 GB ขึ้นไป และ Qwen 3.8 สำหรับ 32 GB ขึ้นไป ขนาดไฟล์ที่แสดงคือ gemma-4 E4B 4.59 GB, gemma-4 12B 7.22 GB, gpt-oss 20B 12.1 GB และ Qwen3.8 27B 19.0 GB |
| เครื่องแรมน้อย | ตัวอย่างที่ให้ไว้คือ Gemma-4 E4B แบบ 4-bit ใช้ memory ราว 6GB ที่ context window 16k token ยังไม่มีข้อมูลว่าโมเดลขนาดใดเหมาะกับเครื่องแรม 8GB |
| การ์ดจอ | NVIDIA ใช้ CUDA, AMD ใช้ HIP ซึ่งต้องติดตั้ง ROCm, Intel ใช้ SYCL กับ Data Center Max, Flex, Arc และ iGPU ส่วน Vulkan ใช้กับการ์ดจอทั่วไป นอกจากนี้มี backend สำหรับ Moore Threads (MUSA), Adreno (OpenCL) และ Snapdragon (Hexagon) |
| Apple Silicon | บน macOS เปิด Metal เป็นค่าเริ่มต้น ทำให้การคำนวณรันบน GPU ปิดได้ด้วย --n-gpu-layers 0 ยังไม่มีข้อมูลเรื่อง MLX |
| ไม่มีการ์ดจอ | รันด้วย CPU ได้ รองรับ AVX, AVX2, AVX512 และ AMX บน x86 และมีไฟล์สำเร็จรูปแบบ CPU สำหรับ Windows และ Ubuntu ถ้าสร้างคำตอบช้ามาก ให้ตั้ง -t เท่ากับจำนวน core จริงของ CPU |
| VRAM ไม่พอ | -ngl กำหนดจำนวน layer สูงสุดที่เก็บใน VRAM เป็นตัวเลข auto หรือ all (ค่าเริ่มต้น auto) บน CUDA ตั้ง GGML_CUDA_ENABLE_UNIFIED_MEMORY=1 บน Linux เพื่อให้สลับไปใช้ RAM แทนการ crash ส่วน Windows ใช้ System Memory Fallback ใน NVIDIA control panel |
| ปรับให้พอดีเครื่อง | ค่าเริ่มต้น --fit on ปรับตัวเลือกที่ไม่ได้ตั้งให้พอดีกับ memory ของเครื่อง โดย --fit-target เว้นไว้ 1024 MiB ต่ออุปกรณ์ และ --fit-ctx ใช้ context ขั้นต่ำ 4096 |
| หลายการ์ดจอ | --split-mode มี none, layer, row และ tensor โดย layer เป็นค่าเริ่มต้น row เลิกแนะนำแล้ว และ tensor ยังอยู่ในขั้นทดลอง กำหนดสัดส่วนด้วย --tensor-split และการ์ดหลักด้วย --main-gpu |
| ตัวเลขที่โปรเจกต์เผยแพร่ | บนเครื่อง A6000 48GB VRAM, 7 core, RAM 32GB กับโมเดล 30B q4_0 การรันด้วย CPU อย่างเดียว (-t 7) ได้ 1.7 tokens/second และเมื่อวางบนการ์ดจอ (-t 4 -ngl 2000000) ได้ 9.1 tokens/second |
โมเดลที่ใช้ได้
| รูปแบบไฟล์ | ใช้ได้เฉพาะ GGUF (ไฟล์เดียวที่รวมน้ำหนักโมเดล tokenizer และ metadata) โมเดลรูปแบบอื่นต้องแปลงด้วย script convert_*.py ใน repo ก่อน |
|---|---|
| แหล่งโมเดล | ไม่มีคลังโมเดลของตัวเอง ดึงจาก Hugging Face ด้วย -hf <user>/<model>[:quant] ซึ่งมีโมเดล GGUF หลายพันตัว แหล่งอื่นใช้ -mu (URL ของไฟล์), -dr (Docker Hub) หรือตั้ง MODEL_ENDPOINT |
| ระดับ quantization | ถ้าไม่ใส่ :quant จะได้ Q4_K_M หรือไฟล์แรกใน repo ถ้าไม่มี Q4_K_M รองรับ quantization แบบ 1.5-bit ถึง 8-bit สำหรับ Llama-3.1-8B ขนาดคือ Q4_K_M 4.58 GiB, Q8_0 7.95 GiB และ F16 14.96 GiB การลดความละเอียดอาจทำให้ความถูกต้องลดลงบ้าง |
| โมเดลแนะนำ | รายการบน llama.app/models (Updated Sep 2026) มี Qwen 3.8, Laguna XS 2.1, Laguna S 2.1, DeepSeek V4, Qwen 3.6, Gemma 4, GLM 4.7, Qwen 3.5 Small, Devstral 2, Ministral 3, GPT-OSS และ Gemma 3 กับกลุ่ม Decision models คือ Kev, Laya และ Bespoke Nimble |
| ภาพ เสียง และวิดีโอ | รับ input เป็นภาพ เสียง และวิดีโอผ่าน libmtmd ใน llama-cli, llama-server และ llama-mtmd-cli โมเดลภาพ เช่น Gemma 3, Gemma 4, SmolVLM, Pixtral 12B, Qwen 2.5 VL และ Moondream2 โมเดลเสียง เช่น Ultravox 0.5, Voxtral Mini และ Qwen3-ASR ไฟล์ mmproj ถูกดาวน์โหลดให้เองเมื่อใช้ -hf |
| Embedding และ reranking | เปิดด้วย --embedding คู่กับ /v1/embeddings และ --rerank คู่กับ /v1/rerank ตัวอย่างโมเดลคือ unsloth/embeddinggemma-300m-GGUF และ ggml-org/Qwen3-reranker-0.6B-Q8_0-GGUF |
| โมเดล reasoning | คุมด้วย -rea หรือ --reasoning [on|off|auto], --reasoning-budget N และ --reasoning-format ส่วนเนื้อหา reasoning ส่งกลับใน message.reasoning_content |
| นำโมเดลของตัวเองเข้า | รัน python convert_hf_to_gguf.py --outfile ... --outtype bf16 --remote google/gemma-4-E2B-it แล้ว quantize ด้วย llama-quantize in.gguf out.gguf Q4_K_M หรือใช้ space ชื่อ GGUF-my-repo บน Hugging Face ส่วน LoRA adapter ใส่ด้วย --lora |
| ที่เก็บโมเดล | คู่มือเริ่มต้นบน llama.app บอกว่าโมเดลอยู่ใน Hugging Face cache มาตรฐาน จึงใช้ร่วมกับโปรแกรมอื่นได้ ส่วน README ของ server บอกว่าคุมด้วยตัวแปร LLAMA_CACHE และตัวอย่างแสดง path ใต้ Library/Caches/llama.cpp/ แอป Llama บน Windows ใช้ %USERPROFILE%\.cache\huggingface\hub |
หน้าตาและการใช้งาน
| Command line | llama cli เป็นแชตแบบโต้ตอบใน terminal และที่ลองปรับค่า sampling, grammar และ input แบบ multimodal มีคำสั่งในแชต /image และ /audio ใส่ system prompt ด้วย -sys และถามคำถามเดียวแล้วออกด้วย -st -p |
|---|---|
| ชื่อคำสั่ง | README หลักและ llama.app ใช้คำสั่งเดียวชื่อ llama ที่มีคำสั่งย่อย llama cli และ llama serve ส่วน README ของ server, คู่มือ Docker และไฟล์ใน Releases ใช้ชื่อแยก llama-cli และ llama-server ยังไม่ชัดว่าเปลี่ยนชื่อเมื่อไร |
| Web UI | llama serve เปิดหน้าแชตในเบราว์เซอร์ที่ที่อยู่เดียวกับ API แสดงคำตอบแบบ streaming และบล็อก reasoning มีธีมมืดและสว่าง ใช้ได้ทั้งจอเดสก์ท็อปและมือถือ แสดง Markdown, สูตร KaTeX และ syntax highlighting ปิดได้ด้วย --no-webui |
| ไฟล์แนบในแชต | แนบรูป (JPEG, PNG, GIF, WebP, SVG), PDF ที่ดึงเป็นข้อความหรือแปลงเป็นภาพ, เสียง (MP3, WAV) และไฟล์ข้อความได้ |
| จัดการบทสนทนา | แตกกิ่งบทสนทนา สร้างคำตอบใหม่ ค้นหา และนำเข้าหรือส่งออกเป็น JSON ได้ มี HTML/JS preview แผงตั้งค่าแยกตามบทสนทนา และตัวเลือกโมเดลเมื่อใช้ router mode |
| ที่เก็บประวัติแชต | web UI เก็บบทสนทนาใน IndexedDB และเก็บการตั้งค่าใน LocalStorage ของเบราว์เซอร์ ไม่ได้เก็บบนเซิร์ฟเวอร์ |
| แอป Llama | แอปบน menu bar ของ Mac และ system tray ของ Windows 11 จากทีม llama.cpp ร่วมกับ Hugging Face ติดตั้งโมเดลแนะนำได้ในคลิกเดียว ปุ่ม Open chat เปิดแชตในเบราว์เซอร์ และ Windows มี overlay ที่เรียกด้วย Alt+Space |
| Android | มีตัวอย่างแอป Android แบบพื้นฐาน (examples/llama.android) และ build แบบ command line ผ่าน Termux ได้ |
API และการต่อกับโปรแกรมอื่น
| ที่อยู่และ port | เซิร์ฟเวอร์ฟังที่ 127.0.0.1 เป็นค่าเริ่มต้น ส่วน port (หมายเลขช่องรับการเชื่อมต่อ) มีสองค่า README ของ server ใช้ 9931 และหน้าแรกของ llama.app แสดง localhost:9931/v1 คู่มือ llama serve บน llama.app ใช้ 8080 และตัวอย่าง Docker ใช้ 8080 โดยใส่ --port 8080 เอง เปลี่ยนได้ด้วย --port |
|---|---|
| เข้ากันกับ OpenAI | มี GET /v1/models, POST /v1/completions, POST /v1/chat/completions, POST /v1/responses และ POST /v1/embeddings โปรเจกต์ไม่ได้อ้างว่าเข้ากันกับ spec ของ OpenAI ครบถ้วน แต่บอกว่าเพียงพอสำหรับแอปจำนวนมาก |
| เข้ากันกับ Anthropic | มี POST /v1/messages ที่รองรับ streaming แบบ SSE, tools และ tool_choice กับ POST /v1/messages/count_tokens |
| Endpoint อื่น | มี /health, /completion, /tokenize, /detokenize, /apply-template, /embedding, /reranking, /infill สำหรับเติมโค้ด, /props, /slots, /lora-adapters และ /metrics แบบ Prometheus ที่ต้องเปิดด้วย --metrics รวมถึง POST /v1/systemone แบบ TypeSafe สำหรับ decision models |
| เปิดให้เครื่องอื่นเข้า | เพิ่ม --host 0.0.0.0 เพื่อฟังทุก network interface ใช้ SSL ได้ด้วย --ssl-key-file และ --ssl-cert-file โดยต้อง build ด้วย -DLLAMA_OPENSSL=ON llama.app เอ่ยถึงการเข้าจากอุปกรณ์อื่นผ่าน Tailscale |
| API key | ค่าเริ่มต้นไม่มี key ตั้งด้วย --api-key KEY (คั่นด้วย comma ได้หลาย key) หรือ --api-key-file แล้วส่งเป็น Authorization: Bearer YOUR_KEY โดย /health เปิดสาธารณะเสมอ |
| หลายคำขอพร้อมกัน | -np หรือ --parallel กำหนดจำนวน slot (ค่าเริ่มต้น -1 คือ auto) แต่ละ slot ถือหนึ่งบทสนทนาและ context ถูกแบ่งระหว่าง slot เช่น llama serve -m model.gguf -c 16384 -np 4 รับได้ถึง 4 คำขอพร้อมกัน prompt caching เปิดเป็นค่าเริ่มต้น |
| หลายโมเดล (router mode) | เริ่ม llama-server โดยไม่ใส่โมเดล โมเดลมาจาก cache, --models-dir หรือไฟล์ INI ผ่าน --models-preset คำขอถูกส่งตาม field model และโหลดเมื่อถูกเรียก --models-max มีค่าเริ่มต้น 4 |
| คืน memory เมื่อไม่ใช้ | --sleep-idle-seconds ปลดโมเดลออกจาก memory หลังไม่มีการใช้ และโหลดกลับเมื่อมีคำขอถัดไป ค่าเริ่มต้นปิดอยู่ ส่วนแอป Llama ปลดโมเดลหลังว่าง 5 นาที |
| ต่อกับโปรแกรมอื่น | ใช้ OpenAI Python SDK โดยตั้ง base_url="http://localhost:8080/v1" llama.app เอ่ยถึง coding agent (Pi), editor, แอปแชต และ OpenAI SDK ยังไม่มีขั้นตอนตั้งค่าเฉพาะสำหรับ editor ตัวใด, Open WebUI หรือไฟล์ config ของ coding agent |
| Ollama API และ CORS | ยังไม่มีข้อมูลเรื่อง API แบบ Ollama ส่วน CORS ค่าเริ่มต้นยอมรับทุก Origin และเมื่อเปิด --tools หรือ --agent ค่า --cors-origins จะเป็น localhost |
ถามตอบจากไฟล์ tools และ MCP
| ถามจากไฟล์ในแชต | web UI รับ PDF และไฟล์ข้อความเป็นไฟล์แนบในแต่ละแชต โดย PDF ดึงเป็นข้อความหรือแปลงเป็นภาพ ตัวอย่างบน llama.app คือแนบ lease-agreement.pdf แล้วสั่ง Summarize this and flag anything unusual. |
|---|---|
| RAG | มี endpoint สำหรับ embedding และ reranking ให้นำไปสร้างระบบ RAG (ค้นไฟล์มาประกอบคำตอบ) เอง ยังไม่มีข้อมูลเรื่องคลังความรู้หรือดัชนีโฟลเดอร์ไฟล์ในตัว |
| Function calling | llama-server รองรับ function calling แบบ OpenAI ผ่าน --jinja ซึ่งเปิดเป็นค่าเริ่มต้น ใช้ได้กับทุกโมเดลผ่าน handler เฉพาะรุ่นหรือแบบ generic ซึ่งแบบ generic อาจใช้ token มากกว่า และ parallel tool calls ปิดเป็นค่าเริ่มต้น |
| โมเดลที่มี handler เฉพาะ | Llama 3.1/3.3/3.2, Functionary v3.1/v3.2, Hermes 2/3, Qwen 2.5, Qwen 2.5 Coder, Mistral Nemo, Firefunction v2, Command R7B, DeepSeek R1 และ GPT-OSS ตัวอย่างคำสั่งคือ llama-server --jinja -fa -hf bartowski/Qwen2.5-7B-Instruct-GGUF:Q4_K_M |
| MCP | ประกาศ MCP server ด้วย --mcp-servers-config mcp.json หรือ --mcp-servers-json ในรูปแบบ JSON แบบเดียวกับ Cursor รองรับเฉพาะ transport แบบ stdio tools จะปรากฏใน web UI ยังอยู่ในขั้นทดลอง และมีคำเตือนว่าไม่ควรเปิดในสภาพแวดล้อมที่ไม่น่าไว้ใจ |
| Tools ในตัวของเซิร์ฟเวอร์ | --tools all หรือเลือกจาก read_file, file_glob_search, grep_search, exec_shell_command, write_file, edit_file และ get_info ให้โมเดลเข้าถึงไฟล์ในเครื่องจาก web UI ได้ --agent เปิด tools ทั้งหมดพร้อม CORS proxy และ --tools-runtime รัน tools ใน docker, podman หรือผ่าน SSH ยังอยู่ในขั้นทดลอง |
| ผลลัพธ์แบบมีโครงสร้าง | บังคับให้คำตอบเป็น JSON ตาม schema ผ่าน response_format หรือใช้ GBNF grammar เหมาะกับงานอย่างดึงข้อมูลจากใบแจ้งหนี้หรือแยกข้อมูล |
| ค้นเว็บ | ยังไม่มีข้อมูลเรื่อง tool ค้นเว็บในตัว |
ข้อมูลและความเป็นส่วนตัว
| ใช้ออฟไลน์ | llama.app บอกว่า Free · Open source · Works offline การดาวน์โหลดโมเดลจาก Hugging Face ต้องใช้อินเทอร์เน็ตครั้งแรก หลังจากนั้นใช้จาก cache |
|---|---|
| โหมด --offline | --offline บังคับใช้ cache และกันการเข้าถึงเครือข่าย |
| Telemetry ของแอป Windows | แอป Llama บน Windows ไม่ส่ง telemetry ไม่มี event, analytics หรือ install id การเชื่อมต่อออกมีแค่ดาวน์โหลดโมเดล ตรวจรุ่นใหม่ และเรียก llama-server ในเครื่อง โดยส่งแค่ User-Agent ที่มีเวอร์ชันแอป Windows build และ architecture ส่วน prompt และการประมวลผลอยู่ในเครื่องทั้งหมด |
| Telemetry ของ CLI และแอป Mac | ยังไม่มีข้อมูลเรื่อง telemetry ของคำสั่ง llama cli, llama serve และแอป Llama บน Mac |
| บัญชีผู้ใช้ | ไม่ต้องมีบัญชีเพื่อใช้ llama.cpp ส่วน token ของ Hugging Face (HF_TOKEN) เป็นค่าที่ใส่เพิ่มได้สำหรับการดาวน์โหลดเท่านั้น |
| ฟีเจอร์คลาวด์ | โปรเจกต์ไม่มีโมเดลบนคลาวด์หรือการ sync ของตัวเอง มีแต่การชี้ไปที่ Hugging Face Inference Endpoints ซึ่งเป็นบริการของ Hugging Face สำหรับคนที่อยากรัน llama.cpp บนคลาวด์ |
| ประวัติแชต | บทสนทนาใน web UI อยู่ใน IndexedDB ของเบราว์เซอร์เครื่องนั้น |
| คำแนะนำด้านความปลอดภัย | ให้ระวังเมื่อรันโมเดลจากแหล่งที่ไม่น่าไว้ใจ ให้ตรวจ hash ของไฟล์ที่ดาวน์โหลด และถ้าเครื่องเปิดสู่เครือข่ายที่ไม่น่าไว้ใจ ไม่ควรใช้ RPC backend, ggml-rpc-server และ llama-server |
ลิขสิทธิ์และการใช้ในบริษัท
| สัญญาอนุญาต | MIT License ลิขสิทธิ์ Copyright (c) 2023-2026 The ggml authors ให้ใช้ คัดลอก แก้ไข รวม เผยแพร่ แจกจ่าย ให้สิทธิ์ต่อ และขายสำเนาได้โดยไม่มีค่าใช้จ่าย ไม่มีเงื่อนไขแยกระหว่างใช้ส่วนตัวกับเชิงพาณิชย์ |
|---|---|
| แผนเสียเงิน | ไม่มีแผนเสียเงิน แผนทีม หรือราคา enterprise llama.app บอกว่า Free, open source, and yours to keep และ no API keys, no usage bills |
| ลิขสิทธิ์ของโมเดล | สัญญาอนุญาตของโมเดลแยกจากของ llama.cpp และต่างกันไปในแต่ละตัว เช่น Bespoke Nimble ในหน้า models ติดป้าย Non-commercial license |
| เซิร์ฟเวอร์ใช้ร่วมกัน | รองรับหลายผู้ใช้ด้วย parallel decoding ตั้ง API key ได้หลายชุด มี router mode สำหรับหลายโมเดล และดูสถานะผ่าน /metrics กับ /slots |
| การจัดการผู้ใช้ | ยังไม่มีข้อมูลเรื่องบัญชีผู้ใช้ บทบาท หน้าจอแอดมิน โควตารายคน หรือบริการซัพพอร์ตสำหรับองค์กร |
| ใช้หลายกลุ่มบนเครื่องเดียว | ผู้ตั้งระบบต้องดูแลเองไม่ให้โมเดลของแต่ละกลุ่มเข้าถึงข้อมูลของกันและกัน และ router กับ MCP อยู่ในรายการฟีเจอร์ที่ไม่แนะนำสำหรับสภาพแวดล้อมที่ไม่น่าไว้ใจ |
| ผู้ดูแลโปรเจกต์ | อยู่ใน GitHub organization ชื่อ ggml-org ดูแลโดยทีมอาสาสมัครแบบ reasonable-effort สร้างบน library ชื่อ ggml และ repo มีราว 130.9K stars |
| รุ่นและการออกรุ่น | ใช้เลขรุ่นแบบ MAJOR.MINOR.PATCH รุ่นที่ติด tag ไม่ได้ลงใน GitHub Releases ซึ่งมีแต่ nightly build เช่น b11559 รุ่นที่ติด tag ไปถึงผู้ใช้ผ่าน script ติดตั้ง package manager หรือการ build จาก tag |
ภาษาไทย
| หน้าจอภาษาไทย | ยังไม่มีข้อมูลว่า web UI และแอป Llama มีภาษาใดบ้าง และไม่ได้บอกว่ามีภาษาไทย |
|---|---|
| คู่มือภาษาไทย | คู่มือของโปรเจกต์และของ llama.app เป็นภาษาอังกฤษ ยังไม่มีข้อมูลเรื่องฉบับภาษาไทย |
| โมเดลกับภาษาไทย | ไม่มีโมเดลใดในรายการแนะนำที่บอกชื่อภาษาไทย มีแต่ตัวเลขรวม คือ Gemma 4 และ Gemma 3 รองรับ 140+ languages, Qwen 3.5 Small รองรับ 201 languages และ Laya รองรับ 100+ languages |
| ราคาและการจ่ายเงิน | ไม่มีค่าใช้จ่ายและไม่มีการเรียกเก็บตามการใช้ จึงไม่มีเรื่องราคาเป็นบาทหรือวิธีจ่ายเงิน |
ราคาและแผน
| แผน | ราคา | ได้อะไรบ้าง |
|---|---|---|
| llama.cpp | Free | ฟรีและโอเพนซอร์สภายใต้ MIT License ได้ library, llama cli, llama serve พร้อม web UI และคำสั่งแปลงกับ quantize โมเดล ใช้เชิงพาณิชย์ได้ ไม่ต้องมีบัญชีหรือ API key |
| Llama (แอปเดสก์ท็อป) | Free | แอปฟรีและโอเพนซอร์สสำหรับ Mac และ Windows 11 สร้างบน llama.cpp ติดตั้งโมเดลแนะนำในคลิกเดียว เปิดแชตในเบราว์เซอร์ และเปิด API ในเครื่องให้โปรแกรมอื่นมาต่อ |
ข้อจำกัดและสิ่งที่ควรรู้ก่อนเริ่ม
- รันได้เฉพาะโมเดลในรูปแบบ GGUF
- โมเดลถูกโหลดเข้า memory ทั้งไฟล์ เครื่องจึงต้องมี RAM อย่างน้อยเท่าขนาดไฟล์โมเดล
- MCP รองรับเฉพาะ transport แบบ stdio
- router mode โหลดโมเดลพร้อมกันได้สูงสุด 4 ตัวตามค่าเริ่มต้นของ --models-max และ DELETE /models ลบได้เฉพาะโมเดลใน cache ลบโมเดลที่อยู่ใน preset ไม่ได้
- แอปเดสก์ท็อป Llama มีเฉพาะ Mac และ Windows 11
- RPC backend สำหรับกระจายงานไปเครื่องอื่นเป็น proof-of-concept ที่เปราะบางและไม่ปลอดภัย ห้ามรันบนเครือข่ายเปิด
- บน Windows ใช้ HSA_OVERRIDE_GFX_VERSION กับการ์ดจอ AMD ที่ไม่ได้รองรับอย่างเป็นทางการไม่ได้
- port เริ่มต้นของเซิร์ฟเวอร์มีสองค่า README ของ server และหน้าแรกของ llama.app ใช้ 9931 ส่วนคู่มือ llama serve บน llama.app และตัวอย่าง Docker ใช้ 8080 ให้ดูจาก llama serve --help หรือข้อความตอนเริ่มเซิร์ฟเวอร์ในเครื่องตัวเอง
- ชื่อคำสั่งมีสองแบบ คือ llama cli กับ llama serve และ llama-cli กับ llama-server ได้แบบไหนขึ้นกับช่องทางที่ติดตั้ง
- โมเดลเป็นไฟล์หลาย GB และต้องใช้ทั้ง disk และ RAM เท่ากัน เช่น 4.9 GB สำหรับโมเดล 8B ที่ Q4_K_M และ 43.1 GB สำหรับ 70B
- ไฟล์บน GitHub Releases เป็น nightly build ที่ออกวันละหลายรุ่น ถ้าต้องการรุ่นที่ติด tag ให้ใช้ script ติดตั้ง package manager หรือ build เอง
- เซิร์ฟเวอร์ฟังที่ 127.0.0.1 และไม่มี API key เป็นค่าเริ่มต้น การเปิดให้เครื่องอื่นเข้าต้องใส่ --host 0.0.0.0 และถ้าเปิดสาธารณะ คำแนะนำคือตั้ง API key และวางหลัง reverse proxy
- ประวัติแชตของ web UI อยู่ในเบราว์เซอร์ ไม่ได้อยู่บนเซิร์ฟเวอร์ เปิดจากเบราว์เซอร์หรืออุปกรณ์อื่นจะไม่เห็นบทสนทนาเดิม
- multimodal ในเซิร์ฟเวอร์, MCP, tools ในตัว, split mode แบบ tensor และ RPC backend ยังอยู่ในขั้นทดลอง
- Docker image แบบใช้การ์ดจอยังไม่ถูกทดสอบโดย CI นอกจากการ build และการใช้ Docker บน WSL ยังไม่ได้รับการตรวจ
- llama.cpp เป็น MIT แต่โมเดลแต่ละตัวมีสัญญาอนุญาตของตัวเอง บางตัวห้ามใช้เชิงพาณิชย์ ควรดูสัญญาของโมเดลก่อนใช้ในงานบริษัท
- ตั้ง -ngl 0 แล้วการ์ดจออาจยังถูกใช้อยู่ ถ้าต้องการปิดการ์ดจอทั้งหมดให้ใช้ --device none
- ยังไม่มีคำสั่งลบโมเดลใน command line การลบทำได้ผ่าน DELETE /models หรือ Models manager ใน web UI เมื่อใช้ router mode
คำถามที่คนถามเกี่ยวกับ llama.cpp
llama.cpp คืออะไร
llama.cpp คือแพลตฟอร์มโอเพนซอร์สสำหรับรันโมเดลภาษาบนเครื่องตัวเอง เขียนด้วย C/C++ มี library ชื่อ llama คำสั่ง llama cli สำหรับแชตใน terminal และ llama serve ที่เปิด API แบบ OpenAI พร้อม web UI ดูแลโดย ggml-org
llama.cpp ฟรีไหม ใช้ในบริษัทได้ไหม
ฟรี เป็นโอเพนซอร์สภายใต้ MIT License ที่ให้ใช้ แก้ไข แจกจ่าย และขายได้ ไม่มีเงื่อนไขแยกสำหรับการใช้เชิงพาณิชย์ และไม่มีแผนเสียเงิน แต่โมเดลแต่ละตัวมีสัญญาอนุญาตของตัวเองที่ต้องดูแยก
ติดตั้ง llama.cpp ยังไง
macOS และ Linux รัน curl -LsSf https://llama.app/install.sh | sh ส่วน Windows รัน irm https://llama.app/install.ps1 | iex ใน PowerShell หรือใช้ winget install llama.cpp และ brew install llama.cpp ถ้าอยากได้แอปกดใช้ ให้ดาวน์โหลดแอป Llama สำหรับ Mac หรือ Windows 11 จาก llama.app
llama.cpp ต้องใช้สเปกเครื่องเท่าไร
ยังไม่มีตารางสเปกขั้นต่ำ หลักคือต้องมี RAM และ disk อย่างน้อยเท่าขนาดไฟล์โมเดล เช่น โมเดล 8B ที่ Q4_K_M ขนาด 4.9 GB llama.app แนะนำ Gemma 4 สำหรับเครื่อง 16 GB, GPT-OSS สำหรับ 24 GB และ Qwen 3.8 สำหรับ 32 GB
ไม่มีการ์ดจอใช้ llama.cpp ได้ไหม
ได้ llama.cpp รันด้วย CPU อย่างเดียวได้ และมีไฟล์สำเร็จรูปแบบ CPU สำหรับ Windows และ Ubuntu ตัวอย่างที่ให้ไว้คือ Gemma-4 E4B แบบ 4-bit ใช้ memory ราว 6GB ที่ context 16k token
llama.cpp ใช้ port อะไร เปิด API ยังไง
รัน llama serve -m my-model.gguf เซิร์ฟเวอร์ฟังที่ 127.0.0.1 ส่วน port เริ่มต้น README ของ server ใช้ 9931 ขณะที่คู่มือบน llama.app และตัวอย่าง Docker ใช้ 8080 กำหนดเองได้ด้วย --port และให้โปรแกรมอื่นชี้ไปที่ที่อยู่นั้นตามด้วย /v1
โมเดลเก็บไว้ที่ไหน ลบโมเดลยังไง
โมเดลที่ดาวน์โหลดอยู่ใน Hugging Face cache มาตรฐาน และ README ของ server บอกว่าคุมที่เก็บด้วยตัวแปร LLAMA_CACHE ดูรายการด้วย llama cli -cl ยังไม่มีคำสั่งลบใน command line แต่ลบได้ผ่าน DELETE /models?model={name} หรือ Models manager ใน web UI เมื่อใช้ router mode
llama.cpp ใช้ออฟไลน์ได้ไหม ข้อมูลออกนอกเครื่องไหม
ใช้ออฟไลน์ได้หลังดาวน์โหลดโมเดลครั้งแรก และมี --offline ที่กันการเข้าถึงเครือข่าย แอป Llama บน Windows ไม่ส่ง telemetry และ prompt อยู่ในเครื่องทั้งหมด ยังไม่มีข้อมูลเรื่อง telemetry ของคำสั่ง command line และแอป Mac
llama.cpp รองรับภาษาไทยไหม
ยังไม่มีข้อมูลเรื่องหน้าจอภาษาไทยหรือโมเดลที่บอกชื่อภาษาไทย รายการโมเดลแนะนำมีแต่ตัวเลขรวม เช่น Gemma 4 รองรับ 140+ languages และ Qwen 3.5 Small รองรับ 201 languages
ลิงก์อ้างอิง 29 หน้า
- github.com/ggml-org/llama.cpp/blob/master/README.md
- github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md
- github.com/ggml-org/llama.cpp/blob/master/docs/multimodal.md
- llama.app/docs/introduction
- github.com/ggml-org/llama.cpp/blob/master/tools/cli/README.md
- github.com/ggml-org/llama.cpp/blob/master/LICENSE
- github.com/ggml-org/llama.cpp/blob/master/tools/quantize/README.md
- github.com/ggml-org/llama.cpp/blob/master/tools/ui/README.md
- github.com/ggml-org/llama.cpp/blob/master/SECURITY.md
- github.com/ggml-org/llama.cpp/blob/master/docs/models.md
- llama.app/docs/quickstart.md
- llama.app/models
- llama.app/install.sh
- github.com/ggml-org/llama.cpp/blob/master/docs/install.md
- github.com/ggml-org/llama.cpp/blob/master/docs/docker.md
- github.com/ggml-org/llama.cpp/blob/master/docs/build.md
- llama.app/docs/serve.md
- github.com/ggml-org/llama.cpp/releases
- github.com/ggml-org/llama.cpp/blob/master/docs/development/token_generation_performance_tips.md
- llama.app/docs/cli
- github.com/ggml-org/llama.cpp/blob/master/docs/multi-gpu.md
- llama.app/docs/webui.md
- github.com/ggml-org/llama.cpp/blob/master/tools/server/README-dev.md
- github.com/ggml-org/Llama-Windows/blob/HEAD/README.md
- github.com/ggml-org/llama.cpp/blob/master/docs/android.md
- llama.app/docs/api.md
- github.com/ggml-org/llama.cpp/blob/master/docs/function-calling.md
- github.com/ggml-org/llama.cpp/blob/master/docs/release.md
- github.com/ggml-org/llama.cpp/blob/master/tools/rpc/README.md