Bỏ qua đến nội dung chính
AI Local
Bốn biểu tượng Ollama, llama.cpp, LM Studio và vLLM xếp cạnh nhau

Ollama, llama.cpp, vLLM, LM Studio: chọn cái nào?

AIDev TeamTham vấn chuyên môn: Nguyễn Việt Chung

Đăng 17 phút đọc2 lượt xem

Mục lục · 26

Ollama và LM Studio hợp khi bạn chạy LLM cho riêng mình. Giữa Ollama và llama.cpp, llama.cpp hợp hơn khi cần một server nhỏ dễ chỉnh, vLLM hợp khi nhiều người hỏi cùng lúc trên GPU Linux. Mình chạy cả bốn với Qwen3.5-9B trên RTX 3090: một người hỏi thì llama.cpp nhanh nhất, 16 người hỏi cùng lúc thì vLLM sinh hơn 1.000 token/giây.

Ollama và LM Studio là hai cách dễ nhất để chạy LLM (mô hình ngôn ngữ lớn) trên máy của bạn: Ollama dùng dòng lệnh và API, LM Studio có giao diện để chọn model và chat. Ollama và llama.cpp có chung lõi: llama.cpp là phần chạy model bên trong cả Ollama lẫn LM Studio, chạy trực tiếp thì nhanh hơn và chỉnh được nhiều hơn. vLLM là server dành cho GPU Linux phục vụ nhiều người hỏi cùng lúc. Ngày 26/10/2026, mình thuê một RTX 3090 24GB trên AIDev Cloud và chạy cùng model Qwen3.5-9B trên Ollama 0.40.11, LM Studio (bản chạy nền llmster 0.0.25) và llama.cpp b11889, rồi đặt cạnh số đo vLLM 0.32.0 mình làm ba ngày trước trên cùng loại máy.

Những điều cần nắm trước khi chọn:

  • Ollama, LM Studio và llama.cpp chạy chung một lõi. Mình kiểm phiên bản thì cả ba đều dùng llama-server của llama.cpp, bản dựng trong khoảng 23 đến 25/10/2026. Chúng khác nhau chủ yếu ở cấu hình mặc định.

  • Khi một người hỏi, llama.cpp sinh 112,9 token/giây (token là mẩu chữ model sinh ra, thường ngắn hơn một từ), LM Studio 81,0, Ollama 75,5. vLLM (nén 8 bit FP8) sinh 76,7.

  • Khi 16 người hỏi cùng lúc, Ollama vẫn chỉ sinh khoảng 76 token/giây vì xử lý lần lượt từng câu hỏi. LM Studio sinh 132,7, llama.cpp 248,5, và lên 442 khi mở 16 slot (16 chỗ xử lý câu hỏi song song). vLLM sinh 1.003 token/giây.

  • Ollama, llama.cpp và vLLM là mã nguồn mở. LM Studio là phần mềm đóng, điều khoản chỉ cho dùng cá nhân hoặc trong nội bộ doanh nghiệp.

Ollama, llama.cpp, vLLM và LM Studio khác nhau thế nào?

Cả bốn đều nhận một model, nạp lên GPU và mở một API tương thích với API của OpenAI (cùng kiểu gọi /v1/chat/completions), nên code gọi model gần như không phải sửa khi đổi công cụ. Chỗ khác nằm ở người dùng mà mỗi công cụ nhắm tới:

Ollama

LM Studio

llama.cpp

vLLM

Giấy phép

MIT

phần mềm đóng, miễn phí dùng cá nhân và nội bộ

MIT

Apache 2.0

Chạy trên

Windows, macOS, Linux

Windows, macOS, Linux

Windows, macOS, Linux

Linux (Windows qua WSL, lớp Linux chạy trong Windows)

Cách dùng

dòng lệnh ollama run, API cổng 11434

giao diện chat, hoặc lms + API cổng 1234

llama-server, API cổng 8080

vllm serve, API cổng 8000

Định dạng model

thư viện riêng của Ollama (GGUF)

GGUF tải từ Hugging Face

GGUF

trọng số Hugging Face, nén FP8, AWQ, GPTQ

Câu hỏi song song mặc định

1

4

4

gộp lô liên tục

GGUF là định dạng file model đã nén sẵn (ví dụ 4 bit Q4_K_M) do dự án llama.cpp đặt ra. Một file GGUF tải từ Hugging Face dùng được cho cả LM Studio lẫn llama.cpp. Ollama đóng gói lại trong thư viện riêng, nhưng bên trong vẫn là GGUF.

Ollama và llama.cpp khác gì nhau khi chạy chung một lõi?

Terminal kiểm phiên bản: llama-server đi kèm Ollama 0.40.11 là commit 9ff0d7e90, runtime LM Studio 2.64.0 ghi llama.cpp release b11840, llama.cpp tải trực tiếp là build 11889

Ảnh trên là lúc mình kiểm lõi của từng công cụ trên máy thuê. ollama ps của Ollama 0.40.11 ghi cột RUNNER là llamacpp, và log cho thấy Ollama gọi đúng chương trình llama-server đi kèm. Runtime CUDA 2.64.0 của LM Studio (gói engine chạy model mà LM Studio tải riêng) ghi bản llama.cpp b11840. Tra trên GitHub thì bản llama.cpp đi kèm Ollama và bản trong LM Studio đều có từ ngày 23/10, bản llama.cpp mình tải trực tiếp là ngày 25/10. Vì vậy khi so tốc độ ba công cụ này, mình đang so cấu hình mặc định của chúng nhiều hơn là so lõi. vLLM là dự án riêng, viết bằng Python trên PyTorch; bài vLLM là gì giải thích cách nó gộp nhiều câu hỏi vào một lô.

Ollama và LM Studio nên chọn cái nào?

Nếu bạn chỉ chạy model cho riêng mình trên laptop, chọn giữa Ollama và LM Studio là chọn kiểu làm việc:

  • LM Studio hợp với người thích bấm chuột. Theo trang chủ LM Studio, ứng dụng desktop cho tải model và chat ngay trong app, chạy trên runtime llama.cpp và MLX (cho Mac). Trên server không màn hình, LM Studio có bản chạy nền llmster điều khiển bằng lệnh lms, là bản mình dùng trong bài.

  • Ollama hợp với người làm việc bằng dòng lệnh hoặc viết app. Một lệnh ollama run qwen3.5:9b là vừa tải vừa chat, service tự chạy nền, API luôn mở ở cổng 11434. Bài Ollama là gì hướng dẫn từ đầu.

Về tốc độ khi chỉ một người dùng, hai công cụ gần nhau: LM Studio 81,0 token/giây, Ollama 75,5 token/giây với cùng mức nén Q4_K_M. Chênh lệch lớn chỉ xuất hiện khi nhiều request (lượt gọi API) đến cùng lúc. Phần đo tốc độ có số cụ thể.

Điểm cần đọc kỹ nằm ở giấy phép. Theo điều khoản ứng dụng LM Studio bản ngày 23/08/2026, bạn được dùng phần mềm "cho mục đích cá nhân và/hoặc nội bộ doanh nghiệp", không được cung cấp lại cho bên thứ ba và không được dùng theo kiểu "service bureau" (vận hành dịch vụ cho người khác). Nếu bạn định dựng một API cho khách hàng gọi, Ollama, llama.cpp hay vLLM với giấy phép MIT và Apache 2.0 an toàn hơn.

Cài từng công cụ trên máy GPU Linux mất bao lâu?

Máy mình thuê là gói RTX 3090 Standard (Ubuntu 24.04, 25 vCPU, 53GB RAM). Image của máy đã có sẵn thư viện CUDA 12.9, nên bản llama.cpp dựng sẵn cho CUDA 12.8 chạy được ngay.

Công cụ

Cách cài

Dung lượng sau khi cài

Ghi chú

Ollama 0.40.11

curl -fsSL https://ollama.com/install.sh | sh

2,3GB

file tải 1,5GB từ GitHub

LM Studio (llmster 0.0.25)

curl -fsSL https://lmstudio.ai/install.sh | bash

544MB + 2,5GB runtime

cài 96 giây, tải runtime CUDA thêm 36 giây

llama.cpp b11889

giải nén bản dựng sẵn ubuntu-cuda-12.8-x64

230MB

có thêm gói thư viện CUDA 590MB nếu máy chưa có

vLLM 0.32.0

uv pip install vllm

kéo 198 package

cài 108 giây (đo 23/10)

Bước lâu nhất hôm đó là tải file từ GitHub. Script cài của Ollama tải gói 1,5GB qua một kết nối và chỉ đạt khoảng 35% sau 20 phút. Mình dừng script, tải lại bằng 16 kết nối song song (mỗi kết nối một đoạn của file) thì mất 294 giây, rồi làm tiếp các bước còn lại của script bằng tay. Tải model từ Hugging Face nhanh hơn nhiều: file GGUF 5,6GB mất 81 giây.

LM Studio trên Linux không màn hình cần ba bước sau khi cài: bật daemon (tiến trình chạy nền của LM Studio), tải runtime (engine chạy model, ở đây là llama.cpp bản CUDA) và nhập file model.

Terminal cài LM Studio bản llmster: install.sh, lms daemon up, lms runtime get bản CUDA 2.64.0, lms runtime select, lms import file GGUF Qwen3.5-9B

Lệnh lms import -L tạo hard link (một tên file thứ hai trỏ tới cùng dữ liệu trên ổ đĩa), nên LM Studio và llama.cpp dùng chung một file GGUF mà không tốn thêm 5,6GB.

Chạy Qwen3.5-9B trên từng công cụ bằng lệnh nào?

Đây là các lệnh mình dùng để mở server cho phép đo. Với Ollama, service đã chạy nền sau khi cài, chỉ cần tải model (6,6GB, mất 156 giây):

bash
ollama pull qwen3.5:9b

Với LM Studio, nạp model đã nhập rồi bật server ở cổng 1234. Flag --parallel 16 là cấu hình thứ hai mình đo:

bash
lms load qwen3.5-9b -y --parallel 16
lms server start

Với llama.cpp, chạy thẳng file llama-server trong thư mục giải nén. -ngl 99 đưa toàn bộ các lớp của model lên GPU, --jinja dùng chat template (mẫu ghép tin nhắn theo đúng định dạng model đã học) có trong file GGUF:

bash
./llama-server -m /root/models/Qwen3.5-9B-Q4_K_M.gguf -ngl 99 --port 8080 --jinja -np 16 -c 65536

Với vLLM, lệnh mình dùng ngày 23/10 nạp trọng số gốc trên Hugging Face và nén FP8 lúc nạp:

bash
vllm serve Qwen/Qwen3.5-9B --served-model-name qwen3.5-9b --quantization fp8 --max-model-len 32768 \
  --limit-mm-per-prompt '{"image":0,"video":0}' --reasoning-parser qwen3

Muốn Ollama nhận nhiều câu hỏi song song, bạn đặt biến môi trường cho service rồi khởi động lại. Mình thử cách này ở phần đo:

bash
sudo mkdir -p /etc/systemd/system/ollama.service.d
printf "[Service]\nEnvironment=OLLAMA_NUM_PARALLEL=16\n" | sudo tee /etc/systemd/system/ollama.service.d/p16.conf
sudo systemctl daemon-reload && sudo systemctl restart ollama

Cùng model trên RTX 3090, công cụ nào sinh chữ nhanh hơn?

Mình dùng lại script đo của bài vLLM: một chương trình Python chỉ dùng thư viện chuẩn, gửi cùng lúc N request vào API tương thích OpenAI của từng công cụ, N bằng 1, 4 và 16. Mỗi request yêu cầu model viết bài khoảng 500 chữ về một chủ đề khác nhau, cắt ở 256 token, temperature 0 (model luôn chọn token có xác suất cao nhất), tắt chế độ suy nghĩ (thinking). Mỗi mức chạy ba lượt, lượt đầu để khởi động, số trong bảng là trung bình hai lượt sau.

Model là Qwen3.5-9B nén 4 bit Q4_K_M. LM Studio và llama.cpp dùng chung file của lmstudio-community trên Hugging Face, Ollama dùng qwen3.5:9b trong thư viện của nó (cũng Q4_K_M). Dòng vLLM lấy từ lần đo ngày 23/10 với bản nén FP8 (8 bit), mình ghi để bạn có mốc.

Công cụ, cấu hình

1 người

4 người

16 người

Người thứ 16 chờ chữ đầu

Ollama, mặc định

75,5

75,5

76,2

50,6 giây

LM Studio, mặc định

81,0

131,5

132,7

23,9 giây

LM Studio, --parallel 16

80,8

132,9

163,9

2,6 giây

llama.cpp, mặc định

112,9

246,9

248,5

13,0 giây

llama.cpp, -np 16

112,3

255,4

442,0

2,0 giây

llama.cpp Q8_0, -np 16

79,4

216,9

401,1

2,0 giây

vLLM FP8 (đo 23/10)

76,7

293,6

1.003,2

0,2 giây

Ba cột giữa là tổng số token sinh ra mỗi giây của cả máy.

Biểu đồ token/giây cả máy khi 16 người hỏi cùng lúc trên RTX 3090: Ollama 76,2, LM Studio 132,7 và 163,9 khi parallel 16, llama.cpp 248,5 và 442,0 khi np 16, vLLM 1.003,2

Với một người, llama.cpp chạy trực tiếp nhanh hơn Ollama khoảng 50% (112,9 so với 75,5 token/giây) dù lõi gần như cùng phiên bản. Mình chưa tìm ra nguyên nhân chính xác. Log cho thấy Ollama nạp thêm phần xử lý ảnh của model và đặt cỡ lô riêng (-b 1024 -ub 1024), nhưng mình chưa thử tách từng yếu tố. Bản 8 bit của llama.cpp (79,4) thì gần bằng vLLM FP8 (76,7) khi chỉ có một người.

Vì sao 16 người hỏi cùng lúc thì chênh nhiều như vậy?

Mỗi công cụ có một số "slot", tức số câu hỏi được xử lý song song. Khi số câu hỏi vượt số slot, các câu hỏi dư phải xếp hàng chờ slot trống. Cột "người thứ 16 chờ chữ đầu" cho thấy người cuối hàng chờ bao lâu.

Biểu đồ người hỏi thứ 16 chờ chữ đầu tiên: Ollama 50,6 giây, LM Studio mặc định 23,9, LM Studio parallel 16 là 2,6, llama.cpp mặc định 13,0, llama.cpp np 16 là 2,0, vLLM 0,2

Ollama: một slot cho Qwen3.5

Ollama mặc định OLLAMA_NUM_PARALLEL=1. Mình bật lên 16 và đo lại thì gần như không đổi (80,1 token/giây ở 16 người). Log ghi lý do: kiến trúc Qwen3.5 chưa hỗ trợ request song song, nên Ollama vẫn gọi llama-server với -np 1. Với Ollama, 16 người hỏi nghĩa là 16 câu trả lời chạy lần lượt, người cuối chờ gần một phút.

Terminal Ollama 0.40.11: ollama ps báo qwen3.5:9b 6.7 GB 100% GPU context 32768 runner llamacpp, log ghi model architecture does not currently support parallel requests và -c 32768 -np 1, ollama show báo quantization Q4_K_M

FAQ của Ollama mô tả biến này là số request song song tối đa cho mỗi model, mặc định 1, và chỉ bật khi còn đủ bộ nhớ lúc nạp model. FAQ không nói kiến trúc nào bị loại trừ; mình chỉ thấy điều đó trong log. Mình chưa đo Ollama song song với model kiến trúc khác. Ghi chú ngày 08/11/2026: bản Ollama 0.40.15 ra ngày 03/11/2026 ghi model GGUF dạng recurrent và vision đã phục vụ được nhiều request cùng lúc, mà Qwen3.5 thuộc cả hai nhóm đó. Mình chưa đo lại trên bản này, số trong bài vẫn là của Ollama 0.40.11.

LM Studio: mặc định 4 slot, tăng bằng --parallel

Khi nạp model bằng cấu hình mặc định, lms ps của LM Studio ghi rõ cột PARALLEL là 4 và CONTEXT là 8.192. Context là số token model nhớ được trong một cuộc hội thoại, gồm cả câu hỏi lẫn câu trả lời.

Terminal lms load qwen3.5-9b báo 5.24 GiB, lms ps ghi context 8192 và parallel 4

Nạp lại với lms load qwen3.5-9b --parallel 16 thì người thứ 16 chỉ chờ 2,6 giây thay vì 23,9 giây. Tổng token/giây chỉ tăng từ 132,7 lên 163,9, còn mỗi người chỉ nhận 11,4 token/giây, so với 36 token/giây ở cấu hình mặc định.

llama.cpp: 4 slot, mở 16 bằng -np

llama-server bản b11889 tự chọn 4 slot, và vì mình không đặt flag -c (độ dài context) nên mỗi slot nhận đủ 262.144 token theo model. Với -np 16 -c 65536, server chia đều 65.536 token cho 16 slot, mỗi slot 4.096 token.

Log llama-server: mặc định n_slots = 4, n_ctx_slot = 262144, kv_unified true; với -np 16 -c 65536 thì n_slots = 16, n_ctx_slot = 4096

Chỗ này dễ bị bỏ qua: đặt -np 16 mà giữ -c nhỏ thì mỗi slot chỉ còn vài nghìn token, câu hỏi kèm tài liệu dài sẽ bị cắt. Với 16 slot, llama.cpp sinh 442 token/giây cả máy, mỗi người nhận 32,7 token/giây, vẫn nhanh hơn tốc độ đọc của người.

vLLM: gộp lô liên tục

vLLM không chia slot cố định. Mỗi bước, GPU sinh thêm một token cho mọi request đang chạy, request mới vào lô ngay ở bước sau (continuous batching). Với 16 người, vLLM sinh hơn 1.000 token/giây, gấp 2,3 lần llama.cpp 16 slot, và ai cũng thấy chữ đầu sau khoảng 0,2 giây. Cái giá là vLLM cần máy Linux (Windows phải qua WSL), giữ trước phần lớn VRAM và khởi động mất 83 đến 233 giây.

Mỗi công cụ chiếm bao nhiêu VRAM?

Số dưới đây là VRAM cao nhất nvidia-smi báo trong lúc đo, trên card 24.576MiB:

Công cụ, cấu hình

Context

VRAM cao nhất

Ollama, mặc định

32.768

7.614MiB

LM Studio, mặc định

8.192

5.702MiB

LM Studio, --parallel 16

8.192

6.338MiB

llama.cpp, mặc định

4 slot × 262.144

13.886MiB

llama.cpp, -np 16 -c 65536

16 slot × 4.096

8.126MiB

vLLM FP8 (đo 23/10)

32.768

22.418MiB

Giữa Ollama và llama.cpp, bản llama.cpp mặc định ăn VRAM gần gấp đôi vì giữ chỗ cho context 262.144 token. Nếu bạn cần chạy thêm model khác trên cùng card, đặt -c vừa đủ dùng. vLLM mặc định giữ trước 92% VRAM ngay lúc khởi động cho KV cache (vùng nhớ lưu các token đã đọc). Bảng VRAM chi tiết của từng model trên Ollama có ở bài chọn model Ollama theo VRAM.

Thời gian nạp model khi file đã nằm trên ổ đĩa: llama.cpp 2,6 đến 3,3 giây tới lúc API trả lời, LM Studio 3,6 giây, Ollama 4,2 giây khi nạp lại (lần đầu ngay sau khi tải về là 103,6 giây). vLLM cần hơn một phút.

Gọi API của bốn công cụ có giống nhau không?

Gần giống nhau. Bốn công cụ chỉ khác ở cổng, tên model và cách tắt thinking. Qwen3.5 mặc định "suy nghĩ" trước khi trả lời, phần đó tốn token và thời gian:

Công cụ

Địa chỉ API

Tên model trong request

Tắt thinking

Ollama

http://localhost:11434/v1

qwen3.5:9b

"reasoning_effort": "none"

LM Studio

http://localhost:1234/v1

qwen3.5-9b

"reasoning_effort": "none"

llama.cpp

http://localhost:8080/v1

tùy ý, server dùng model đã nạp

"chat_template_kwargs": {"enable_thinking": false}

vLLM

http://localhost:8000/v1

tên đặt bằng --served-model-name

"chat_template_kwargs": {"enable_thinking": false}

Mình đã gửi trường chat_template_kwargs sang LM Studio như với llama.cpp, và LM Studio bỏ qua nó. Chuyện này mình kể ở mục lỗi cuối bài.

Nên chọn công cụ nào cho việc của bạn?

Tình huống

Nên dùng

Lý do từ số đo

Chat thử model trên laptop, không quen dòng lệnh

LM Studio

giao diện chọn model, nhanh ngang Ollama khi một người dùng

Viết app gọi model trên máy cá nhân

Ollama

một lệnh cài, service tự chạy, API cổng 11434

Server nhỏ cho nhóm vài người, muốn chỉnh từng thông số

llama.cpp

nhanh nhất khi một người (112,9 token/giây), 442 khi 16 slot

App có nhiều người hỏi cùng lúc trên GPU NVIDIA từ đời RTX 20 trở lên

vLLM

hơn 1.000 token/giây, chờ chữ đầu 0,2 giây ở 16 người

Dịch vụ cho khách hàng bên ngoài

Ollama, llama.cpp hoặc vLLM

LM Studio không cho dùng kiểu cung cấp dịch vụ

Khi nào không nên dùng từng công cụ:

  • Ollama khi có nhiều người hỏi cùng lúc với model chưa hỗ trợ song song như Qwen3.5 trên bản 0.40.11: người thứ 16 chờ 50,6 giây.

  • LM Studio khi bạn dựng dịch vụ cho người ngoài, vì điều khoản không cho phép. Trên server, bản llmster còn rất mới: mình dùng 0.0.25, script cài đọc ngày 08/11/2026 đưa về 0.0.27.

  • llama.cpp khi bạn không muốn tự quản lý file model, flag dòng lệnh và service. Bạn phải tự viết unit systemd (file khai báo service cho systemd) hoặc script khởi động.

  • vLLM khi máy chạy Windows hoặc macOS, khi card có compute capability (mã đời kiến trúc GPU của NVIDIA) dưới 7.5 như P40, V100 (tài liệu vLLM yêu cầu từ 7.5), hoặc khi bạn đổi model liên tục vì mỗi lần khởi động mất hơn một phút.

Lỗi mình đã gặp khi so bốn công cụ

LM Studio trả content rỗng dù đã tắt thinking

Mình gửi cùng request đã dùng cho llama.cpp, có "chat_template_kwargs": {"enable_thinking": false}, và LM Studio trả về:

text
content: ''
reasoning_content: 'Thinking Process:\n\n1.  **Analyze the Request:**\n    *   Question: "Thủ'

Model vẫn suy nghĩ và dùng hết 40 token mình cho phép (max_tokens là 40) vào phần suy nghĩ, phần trả lời trống. Đổi sang "reasoning_effort": "none" thì LM Studio trả 'Hà Nội.' ngay.

Terminal gọi API LM Studio: với chat_template_kwargs thì content rỗng và reasoning_content là Thinking Process, với reasoning_effort none thì content là Hà Nội

Nếu script đo của bạn chỉ đếm token trong content, lỗi này làm số đo sai hoàn toàn. Trước khi đo bất kỳ server nào, hãy gọi thử một câu và xem trường nào có chữ.

Ollama bỏ qua OLLAMA_NUM_PARALLEL=16

Mình thêm Environment=OLLAMA_NUM_PARALLEL=16 vào service, khởi động lại, và log xác nhận OLLAMA_NUM_PARALLEL:16. Tốc độ 16 người vẫn là 80,1 token/giây. Dòng cảnh báo trong log:

text
level=WARN source=sched.go:552 msg="model architecture does not currently support parallel requests" architecture=qwen35

Trên bản 0.40.11, mình không tìm thấy cách sửa nào bằng cấu hình. Nếu cần song song với Qwen3.5, mình chuyển sang llama.cpp với -np hoặc vLLM.

Câu hỏi thường gặp

Ollama có dùng llama.cpp không?

Có. Với Ollama 0.40.11 và model qwen3.5:9b, ollama ps ghi RUNNER là llamacpp và log cho thấy Ollama khởi động chương trình llama-server đi kèm trong /usr/local/lib/ollama. README của Ollama cũng ghi llama.cpp trong mục backend được hỗ trợ.

LM Studio có miễn phí không?

Có, cho cá nhân và dùng nội bộ trong doanh nghiệp, theo điều khoản bản ngày 23/08/2026. LM Studio không phải mã nguồn mở; chỉ công cụ dòng lệnh lms có repo MIT trên GitHub.

File GGUF tải cho LM Studio có dùng với llama.cpp được không?

Được. Trong bài, LM Studio và llama.cpp dùng chung một file Qwen3.5-9B-Q4_K_M.gguf qua hard link. Theo tài liệu của Ollama, bạn nhập được file GGUF bằng Modelfile; mình chưa thử bước này trong bài.

Máy Mac nên dùng công cụ nào?

Ollama, LM Studio và llama.cpp đều có bản cho Mac Apple Silicon. vLLM trên macOS mới ở mức thử nghiệm: phải tự dựng từ mã nguồn và chỉ chạy bằng CPU, theo tài liệu cài đặt của vLLM đọc ngày 08/11/2026. Mình đo trong bài này trên máy Linux có GPU NVIDIA, chưa đo trên Mac.

Có nên dùng vLLM cho chatbot vài người dùng?

Tùy số người hỏi cùng một lúc. Với 4 người, llama.cpp mặc định cho người cuối chờ 0,66 giây, đủ dùng mà không cần vLLM. Khi số người hỏi cùng lúc lên hàng chục, vLLM mới cho chênh lệch rõ.

Đọc tiếp

Muốn so bốn công cụ với model và câu hỏi của chính bạn? Bạn có thể thuê RTX 3090 trên AIDev Cloud, cài cả bốn trên một máy như trong bài và đo trong khoảng một giờ. Đo xong thì trả máy.

Đo ngày 26/10/2026 trên máy AIDev Cloud RTX 3090 24GB gói Standard (25 vCPU Xeon E5-2680 v4, 53GB RAM, Ubuntu 24.04.4, driver 610.43.02, CUDA 13.3): Ollama 0.40.11, LM Studio llmster 0.0.25 (runtime llama.cpp CUDA 2.64.0), llama.cpp b11889 bản dựng CUDA 12.8, model Qwen3.5-9B Q4_K_M và Q8_0. Số vLLM 0.32.0 (Qwen3.5-9B FP8) đo ngày 23/10/2026 trên máy cùng gói.

Tham vấn chuyên môn

Nguyễn Việt Chung

Nhà sáng lập AIDev và VietPlatform · Thạc sĩ AI MSE

  • Tốt nghiệp thủ khoa xuất sắc Thạc sĩ AI MSE.
  • Đồng sáng lập, CTO E-University, SVOnline: số hóa 10+ đại học, 40.000+ sinh viên.
  • Xây hệ thống AI cho doanh nghiệp tại VietPlatform.
Biên soạn: AIDev Team · Rà soát · Quy trình biên tập