Bỏ qua đến nội dung chính
AI Local
Ollama là gì: gemma4:26b đạt 156,9 token/giây trên RTX 3090

Ollama là gì? Chạy LLM trên máy bạn hoặc GPU thuê

Nguyễn Việt Chung

Đăng 12 phút đọc

1 lượt xem
Mục lục · 24

Ollama là gì khi chạy thật trên GPU? Số đo của 5 model trên RTX 3090: tốc độ sinh chữ, VRAM cần, chuyện gì xảy ra khi thiếu VRAM, cách gọi API giống OpenAI và 6 lỗi mình gặp khi cài trên Ubuntu, kèm lệnh và output thật.

Ollama là phần mềm miễn phí, mã nguồn mở (giấy phép MIT) dùng để tải và chạy các LLM (mô hình ngôn ngữ lớn) như Qwen, Gemma, gpt-oss ngay trên máy của bạn. Bạn gõ ollama run <tên model> là có một "ChatGPT" chạy offline, kèm API để gọi từ code. Không cần tài khoản, không trả phí theo token.

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

  • Cài trên Linux, macOS bằng một dòng lệnh; trên máy RTX 3090 của AIDev, việc cài mất 31 giây.

  • Tốc độ phụ thuộc chủ yếu vào VRAM của GPU. Model vừa VRAM chạy 60 đến gần 200 token/giây; tràn VRAM thì chậm đi vài lần mà không báo lỗi.

  • Model đời mới trả lời tiếng Việt tốt hơn hẳn model cũ. Llama 3.1 8B, model có lượt tải nhiều nhất library của Ollama, trả lời sai ngay câu "Ollama là gì".

  • Mọi số trong bài do AIDev đo ngày 08/10/2026 trên Ollama 0.40.0, card RTX 3090 24GB, driver 610.43, Ubuntu 24.04.

Ollama là gì và chạy model bằng cách nào?

Nói gọn thì Ollama lo ba việc: tải model từ library ollama.com/library về máy, nạp model vào GPU (hoặc CPU nếu không có GPU), và mở một server nhỏ ở port 11434 để bạn chat trong terminal hoặc gọi qua API.

Ollama viết bằng Go, ra mắt tháng 6/2023 và đến ngày viết bài có hơn 182.000 sao trên GitHub. Bên dưới, phần chạy model dùng engine llama.cpp; lệnh ollama ps ghi rõ điều này ở cột RUNNER (bạn sẽ thấy trong ảnh ở phần sau).

Tiện nhất là bạn không phải đụng tới phần khó: tìm file model, chọn bản quantization, chỉnh số layer đưa lên GPU đều có Ollama lo. Cái giá là ít chỗ để chỉnh hơn so với chạy thẳng llama.cpp hay vLLM (xem mục "Khi nào không nên dùng Ollama?").

Cài Ollama mất bao lâu?

Trên Linux và macOS chỉ cần một lệnh:

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

Trên Windows, chạy trong PowerShell:

powershell
irm https://ollama.com/install.ps1 | iex

Mình chạy lệnh Linux trên một máy RTX 3090 vừa tạo, Ubuntu 24.04 trắng. Script tự tạo user ollama, tạo service systemd, nhận ra card NVIDIA và chạy luôn. Tổng thời gian: 31 giây.

Kết quả cài Ollama 0.40.0 bằng script chính thức trên máy RTX 3090, Ubuntu 24.04

Hai dòng Warning ở cuối ảnh nhìn thì giật mình nhưng không sao, xem lỗi số 1 ở cuối bài. Cài trên Windows, macOS hay Docker có nhiều lựa chọn hơn, xem bài cài Ollama trên Windows, macOS, Linux, Docker.

Chạy model đầu tiên thế nào?

Hai lệnh bạn dùng nhiều nhất là pull (tải model) và run (chạy và chat):

bash
ollama pull qwen3.5:9b
ollama run qwen3.5:9b --think=false --verbose "Ollama là gì? Trả lời 3 câu ngắn bằng tiếng Việt."

Flag --verbose in thêm thời gian và tốc độ sau mỗi câu trả lời. Đây là cách nhanh nhất để biết máy bạn chạy model đó nhanh hay chậm.

Chạy qwen3.5:9b với --verbose: 90 token, tốc độ 76,61 token/giây, model chạy 100% trên GPU

Còn --think=false thì đáng nói riêng. Nhiều model đời mới (Qwen 3.5, Gemma 4…) bật sẵn chế độ thinking: trước khi trả lời, model tự viết một đoạn lập luận dài, thường bằng tiếng Anh. Cùng câu hỏi ở trên, bật và tắt thinking cho kết quả thế này:

Chế độ

Số token sinh ra

Tổng thời gian

Mặc định (thinking bật)

982

50,97 giây

--think=false

61

1,14 giây

Câu trả lời cuối gần như giống nhau, còn thời gian chênh khoảng 45 lần. Mình chưa đo với bài toán cần lập luận nhiều bước, nên chưa dám khuyên tắt thinking trong mọi trường hợp. Với hỏi đáp thông thường thì mình tắt.

Một chuyện nhỏ nữa khi tải model: progress bar thường chạy nhanh đến khoảng 95% rồi gần như đứng yên. Lúc tải gpt-oss:20b (13GB), tốc độ đang 57 MB/s thì tụt còn 1,7 MB/s ở 99% và đứng vài phút. Cứ để đó, đừng tắt. Mình gặp đúng cảnh này với cả llama3.1:8b lẫn gpt-oss:20b, và cả hai đều tải xong sau vài phút.

ollama pull gpt-oss:20b: tốc độ 57 MB/s ở 95% rồi tụt còn 1,7 MB/s ở 99%

Nên chạy model nào với Ollama?

Library của Ollama có hàng trăm model. Mình chọn 5 model theo hai tiêu chí: được tải nhiều trên ollama.com (số liệu ngày 08/10/2026) và vừa card 24GB. Mỗi model chạy 3 lần cho mỗi đề bài, lấy số ở giữa (trung vị), context mặc định 32.768 token, tắt thinking.

Biểu đồ tốc độ sinh chữ của 5 model trên RTX 3090: gemma4:26b nhanh nhất 156,9 token/giây, qwen3.8:27b chậm nhất 63,4

Model

VRAM dùng

Token/giây (bài tiếng Việt ~400 từ)

Hỏi "Ollama là gì?" bằng tiếng Việt

llama3.1:8b (cũ, cập nhật 1 năm trước)

8,9GB

125,0

Sai: "một ứng dụng trò chơi trực tuyến miễn phí"

qwen3.5:9b

7,4GB

76,9

Đúng, gọn

gpt-oss:20b

13,1GB

142,5

Đúng ý chính nhưng bịa: kể Claude là model có trong Ollama

gemma4:26b

19,4GB

156,9

Đúng, tiếng Việt tự nhiên

qwen3.8:27b (mới nhất)

19,5GB

63,4

Đúng và đầy đủ nhất

Có hai điều mình không ngờ khi đo.

Thứ nhất, model mới nhất lại chậm nhất. qwen3.8:27b chỉ đạt 63 token/giây, trong khi gemma4:26b nặng gần bằng lại nhanh gấp 2,5 lần. Lý do là kiến trúc: gemma4:26b là MoE (mixture of experts), tên tag trên library là 26b-a4b, nghĩa là mỗi lần sinh chữ chỉ khoảng 4 tỷ tham số hoạt động. qwen3.8:27b là model "dense", lần nào cũng chạy đủ 27 tỷ. Tốc độ đi theo số tham số hoạt động chứ không theo dung lượng file.

Thứ hai, model nổi tiếng nhất chưa chắc dùng được cho tiếng Việt. llama3.1:8b vẫn đứng đầu bảng lượt tải (120 triệu lượt), nhưng hỏi bằng tiếng Việt thì nó bịa ra một ứng dụng trò chơi. Mình còn thử qwen3.5:0.8b, bản siêu nhỏ 697MB. Chào nó một câu, nó đáp "Chúc thanh toán nhẹ nhàng cho lần này nhé!". Với tiếng Việt, mình không dùng model dưới 9B.

Nếu bắt buộc chọn một model cho card 24GB, mình chọn gemma4:26b: nhanh nhất và tiếng Việt tự nhiên. Card 8 đến 12GB thì qwen3.5:9b.

Máy cần bao nhiêu VRAM để chạy Ollama?

Quy tắc dễ nhớ: dung lượng model cộng thêm vài GB cho context. Con số chính xác thì lấy từ máy bạn, bằng nvidia-smi hoặc ollama ps.

Context (độ dài hội thoại model nhớ được) ăn VRAM nhiều hơn mình nghĩ. Cùng llama3.1:8b, đặt context 8.192 token thì dùng 5,8GB VRAM; để mặc định 32.768 thì lên 8,9GB. Bản Ollama 0.40 tự chọn context mặc định theo VRAM; log của service ghi total_vram="23.6 GiB" default_num_ctx=32768.

Khi model cộng context vượt VRAM, Ollama không báo lỗi. Nó lặng lẽ đẩy một phần sang CPU và RAM, và mọi thứ chậm hẳn. Mình thử ép qwen3.8:27b dùng context 131.072 token:

ollama ps: context mặc định chạy 100% GPU, context 131072 bị đẩy 28% sang CPU

Trường hợp

ollama ps cột PROCESSOR

Token/giây

qwen3.8:27b, context mặc định

100% GPU

63,8

qwen3.8:27b, context 131.072

28%/72% CPU/GPU

19,9 (chậm 3,2 lần)

Nên hễ thấy Ollama chậm bất thường, cứ gõ ollama ps trước và nhìn cột PROCESSOR. Có chữ CPU là ra nguyên nhân.

Máy bạn không có card 24GB? Bài này đo trên đúng gói RTX 3090 Pro của AIDev Cloud (24GB VRAM, 38 vCPU, 110GB RAM). Bạn thuê theo giờ, cài Ollama bằng lệnh ở trên là chạy lại được các con số trong bài.

Không có GPU, chạy Ollama bằng CPU được không?

Được, nhưng chậm. Mình chạy qwen3.5:9b trên cùng máy, lần đầu dùng GPU, lần sau tắt GPU (tùy chọn num_gpu: 0 trong API):

Cách chạy

Token/giây

Tổng thời gian cho 256 token (gồm cả nạp model)

RTX 3090

73,8

10,9 giây

Chỉ CPU (Xeon E5-2696 v4, 38 nhân)

8,2

42,2 giây

Biểu đồ: qwen3.8:27b tụt từ 63,8 xuống 19,9 token/giây khi tràn VRAM; qwen3.5:9b chạy CPU chỉ 8,2 token/giây so với 73,8 trên GPU

CPU chậm khoảng 9 lần, mà con CPU này có tới 38 nhân. Máy tính văn phòng thông thường sẽ còn chậm hơn. Mình chưa đo trên laptop nên không đưa con số cụ thể. 8 token/giây vẫn đủ để thử cho biết, còn để làm việc hằng ngày thì sẽ thấy sốt ruột.

Gọi Ollama từ code như thế nào?

Ollama mở API ở http://127.0.0.1:11434. Có hai kiểu gọi. Thứ nhất là API riêng của Ollama:

bash
curl http://127.0.0.1:11434/api/generate -d '{
  "model": "qwen3.5:9b",
  "prompt": "Ollama là gì?",
  "think": false,
  "stream": false
}'

Thứ hai là API giống OpenAI, ở đường dẫn /v1. Code nào đang gọi OpenAI thì chỉ cần đổi địa chỉ server và tên model:

bash
curl http://127.0.0.1:11434/v1/chat/completions -H "Content-Type: application/json" -d '{
  "model": "gemma4:26b",
  "messages": [{"role": "user", "content": "Chào bằng tiếng Việt trong 1 câu"}],
  "max_tokens": 40,
  "reasoning_effort": "none"
}'

Cả hai lệnh mình đều chạy trên máy test. Dòng reasoning_effort ở lệnh thứ hai có lý do của nó, xem lỗi số 4 bên dưới.

Lỗi tôi đã gặp khi dùng Ollama (và cách sửa)

Dưới đây là các lỗi mình gặp trong lúc cài và đo. Mình giữ nguyên thông báo lỗi tiếng Anh để bạn dễ so với màn hình của mình.

1. "could not connect to a running Ollama instance" ngay sau khi cài

text
Warning: could not connect to a running Ollama instance
Warning: client version is 0.40.0

Mình gặp ngay giây đầu tiên sau khi cài. Service lúc đó chưa khởi động xong nên lệnh không kết nối được. Chờ vài giây, kiểm tra bằng systemctl status ollama rồi chạy lại là hết.

2. "does not support thinking"

Lỗi 400 Bad Request khi bật --think=true với llama3.1:8b
text
Error: 400 Bad Request: "llama3.1:8b" does not support thinking

Lỗi này xuất hiện khi bật --think=true cho model không hỗ trợ thinking, như llama3.1. Bỏ flag này đi là chạy. Gọi qua API với "think": false thì không lỗi.

3. Không gọi được Ollama từ máy khác

text
curl: (7) Failed to connect to IP_MAY_GPU port 11434 after 9 ms: Couldn't connect to server

Nguyên nhân: mặc định Ollama chỉ nghe ở 127.0.0.1, tức chỉ chính máy đó gọi được. Đây là thiết lập an toàn chứ không phải lỗi. Cách sửa an toàn nhất khi dùng máy GPU thuê là mở SSH tunnel, rồi gọi 127.0.0.1 ngay trên máy bạn:

Gọi Ollama từ xa thất bại, kiểm tra bằng ss, rồi gọi được qua SSH tunnel
bash
ssh -N -L 11434:127.0.0.1:11434 root@IP_MAY_GPU

Còn cách đặt OLLAMA_HOST=0.0.0.0 để mở port ra ngoài. Mình không khuyên làm vậy trên máy có IP công khai: suốt bài này mình gọi API mà không cần khóa hay mật khẩu nào, nên ai biết IP cũng dùng được GPU của bạn.

4. API kiểu OpenAI trả về nội dung rỗng

text
finish_reason: length | content: '' | reasoning: 131 chars

Mình gọi /v1/chat/completions tới gemma4:26b với max_tokens: 40 và nhận về chuỗi rỗng, không có lỗi nào. Nguyên nhân: gemma4 chạy thinking trước khi trả lời, 40 token đều dùng hết cho phần thinking. Cách sửa: thêm "reasoning_effort": "none" (máy trả về "Xin chào!" sau 4 token), hoặc tăng max_tokens. Với 400 token, model dùng 382 token, phần lớn vẫn là thinking.

5. ollama list hiện một model hai lần, kèm dòng lạ "llamacpp:…"

ollama list hiện gpt-oss:20b hai lần với hai ID khác nhau và một dòng llamacpp

Lần đầu chạy gpt-oss:20b, model nạp mất 105 giây, rồi ollama list hiện thêm dòng lạ. Log của service giải thích: starting local compat GGUF migration model=gpt-oss:20b. Ollama 0.40 tự chuyển file model sang định dạng mới, mất 57,8 giây và tạo thêm một bản 13,8GB trên ổ đĩa. Model vẫn chạy bình thường. Nếu ổ đầy, đây là chỗ đáng kiểm tra đầu tiên.

6. Model bỗng chậm như chạy CPU

Mình gọi API với num_gpu: 0 để đo CPU, sau đó chạy ollama run với cùng model và chỉ được 8,56 token/giây. Nguyên nhân: model vẫn đang nằm trong bộ nhớ ở chế độ CPU. Theo tài liệu Ollama, mặc định model được giữ lại 5 phút sau lần gọi cuối, và lệnh mới dùng lại đúng bản đó. Cách sửa: ollama stop qwen3.5:9b rồi chạy lại, tốc độ về 76,61 token/giây.

Khi nào không nên dùng Ollama?

Ollama hợp nhất khi một người hoặc một nhóm nhỏ chạy model trên một máy. Có vài trường hợp mình sẽ chọn công cụ khác:

  • Bạn cần phục vụ nhiều người dùng cùng lúc, ví dụ chatbot cho khách hàng hay API nội bộ cho cả công ty. vLLM được làm ra cho đúng việc này. Mình chưa đo so sánh hai bên nên chưa đưa con số, AIDev sẽ có bài đo riêng.

  • Bạn cần model không có trong library của Ollama, hoặc muốn tự chỉnh cách nạp model. Dùng thẳng llama.cpp sẽ linh hoạt hơn.

  • Máy chỉ có CPU mà công việc cần trả lời nhanh. CPU chậm khoảng 9 lần như số đo ở trên, nên tính thử xem thuê GPU vài giờ có đỡ hơn không.

Thêm một lưu ý: trên library có các model gắn tag cloud. Theo tài liệu Ollama, prompt gửi tới model loại này được xử lý trên server của Ollama và cần đăng nhập. Muốn dữ liệu không rời khỏi máy thì tránh các bản này, hoặc tắt hẳn bằng biến môi trường OLLAMA_NO_CLOUD=1.

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

Ollama có miễn phí không?

Có. Ollama là mã nguồn mở, giấy phép MIT. Bạn chỉ tốn tiền máy: điện, card đồ họa, hoặc tiền thuê GPU nếu chạy trên cloud.

Ollama lưu model ở đâu?

Trên Linux, nếu cài bằng script chính thức, model nằm ở /usr/share/ollama/.ollama/models. Năm model trong bài, cộng bản sao 13,8GB của gpt-oss ở lỗi số 5, chiếm 71GB ổ đĩa. Hãy kiểm tra ổ trước khi tải nhiều model.

Làm sao dừng hoặc xóa một model?

ollama stop <model> gỡ model khỏi GPU, giải phóng VRAM ngay. ollama rm <model> xóa hẳn khỏi ổ đĩa. Mình đã chạy thử cả hai: model biến khỏi ollama ps và máy báo deleted 'qwen3.5:0.8b'.

Ollama có giống Docker không?

Không. Docker chạy ứng dụng trong container; Ollama là phần mềm chạy model AI. Điểm giống là cách dùng lệnh (pull, run, ps, rm). Ollama cũng chạy được bên trong Docker: image chính thức ollama/ollama có hơn 184 triệu lượt tải trên Docker Hub. AIDev sẽ hướng dẫn trong bài cài đặt.

Vì sao Ollama chạy chậm?

Qua lần đo này, chậm thường do ba thứ: model hoặc context vượt VRAM nên bị đẩy sang CPU (xem ollama ps), chế độ thinking đang bật, và model to dạng dense. Đổi sang model MoE như gemma4:26b có thể nhanh hơn 2,5 lần.

Đọc tiếp

Giờ bạn đã biết Ollama là gì. Muốn biết chạy AI trên máy riêng cần phần cứng gì, nên tự host hay thuê, thì đọc bài tổng quan AI Local: chạy LLM và AI tạo ảnh trên máy bạn. Nếu muốn học bài bản cách xây ứng dụng trên LLM, từ Python đến RAG và agent, xem lộ trình AI Engineer từ số 0 của AIDev.

Mọi lệnh, số đo và error message trong bài đều chạy thật trên máy RTX 3090 của AIDev Cloud ngày 08/10/2026 (Ollama 0.40.0, driver NVIDIA 610.43, Ubuntu 24.04).

Về tác giả

Nguyễn Việt Chung

Founder AIDev

Thạc sĩ AI MSE, tốt nghiệp thủ khoa với điểm 9,4/10. Đồng sáng lập, CTO E-University, SVOnline: số hóa 10+ đại học, 40.000+ sinh viên. Sáng lập AIDev và VietPlatform, xây hệ thống AI cho doanh nghiệp. Anh trực tiếp biên soạn và giảng dạy toàn bộ lộ trình AI Engineer.