Ollama là gì? Cách chạy AI offline trên máy tính miễn phí (2026)
Trong bài này
- Ollama là gì?
- Cần chuẩn bị
- Bước 1: Tải Ollama cho đúng hệ điều hành
- Bước 2: Cài trên Linux và kiểm tra phiên bản
- Bước 3: Chọn model vừa với máy
- Bước 4: Bật server và tải model
- Bước 5: Xem thông tin model
- Bước 6: Hỏi model câu đầu tiên
- Bước 7: Tạo model riêng bằng Modelfile
- Bước 8: Chạy model vừa tạo
- Bước 9: Gọi Ollama qua API
- Bước 10: Gọi model từ code Python
- Lỗi thường gặp
- "Warning: could not connect to a running Ollama instance"
- Model chạy rất chậm, chỉ 1–2 token/giây
- Model trả lời sai, kể cả câu rất dễ
- Model "suy nghĩ" rất lâu mới trả lời
- Câu hỏi thường gặp
- Ollama có miễn phí không?
- Chạy Ollama có cần Internet không?
- Laptop sinh viên không có GPU có chạy được không?
- Model được lưu ở đâu, xóa thế nào?
- Nguồn tham khảo
Trong bài này mình hướng dẫn các bạn cài Ollama, tải một model AI nhỏ về máy, hỏi nó ngay trong terminal, rồi gọi nó từ code Python qua API. Không cần tài khoản, không cần API key, không cần GPU. Toàn bộ các bước và kết quả trong bài là mình chạy thật ngày 09/11/2026 với Ollama 0.40.15 (bản mới nhất lúc viết) và model qwen3.5:0.8b. Nếu mạng ổn thì các bạn làm xong trong khoảng 20–30 phút.
Ollama là gì?
Ollama là một công cụ mã nguồn mở (giấy phép MIT) dùng để tải và chạy các model ngôn ngữ lớn ngay trên máy tính của mình. Sau khi cài, Ollama chạy một server nhỏ ở địa chỉ 127.0.0.1:11434. Các bạn có thể hỏi model bằng lệnh ollama run, hoặc gọi server này từ code giống như gọi API của ChatGPT. Theo trang FAQ chính thức, khi chạy local thì Ollama không thấy prompt hay dữ liệu của bạn.
Với sinh viên IT, Ollama giúp thử AI không lo hết lượt và làm đồ án có chatbot mà không phải trả tiền API.
Cần chuẩn bị
- Máy Windows, macOS hoặc Linux. Với Windows, tài liệu Ollama yêu cầu Windows 10 22H2 trở lên (Home hoặc Pro). Mình test trên Linux, giới hạn 4 nhân CPU và 6 GB RAM, không có GPU.
- Khoảng 3 GB ổ đĩa trống: gói cài Linux mình tải về nặng 1.543.547.172 byte (khoảng 1,5 GB), model
qwen3.5:0.8bchiếm 1,3 GB. - Kết nối Internet để tải Ollama và model lần đầu. Sau đó model chạy hoàn toàn trên máy.
- Python 3 nếu muốn chạy ví dụ gọi API ở bước 10 (chỉ dùng thư viện có sẵn, không cần cài thêm).
Bước 1: Tải Ollama cho đúng hệ điều hành
Vào ollama.com/download, chọn tab macOS, Linux hoặc Windows. Trên Windows, trang đưa sẵn lệnh PowerShell irm https://ollama.com/install.ps1 | iex, ngoài ra có link "Download manually" nếu các bạn muốn tải bộ cài về rồi bấm cài như phần mềm bình thường. Trên Linux, lệnh tương ứng là curl -fsSL https://ollama.com/install.sh | sh.

Bước 2: Cài trên Linux và kiểm tra phiên bản
Mình cài theo cách thủ công trong tài liệu Linux của Ollama: tải file ollama-linux-amd64.tar.zst rồi giải nén. Hướng dẫn chính thức giải nén thẳng vào /usr:
curl -fsSL https://ollama.com/download/ollama-linux-amd64.tar.zst | sudo tar x -C /usr
ollama -v
Ở máy mình, ollama -v in ra cảnh báo "could not connect to a running Ollama instance" vì server chưa chạy. Đây chưa phải lỗi, chỉ cần bật server ở bước 4. Dòng thứ hai cho biết bản cài là 0.40.15.

Các bạn có thể đối chiếu với trang Releases trên GitHub: v0.40.15 đang được gắn nhãn Latest, phát hành đầu tháng 11/2026.

Bước 3: Chọn model vừa với máy
Vào ollama.com/library/qwen3.5 để xem các kích thước của họ Qwen 3.5: 0.8b, 2b, 4b, 9b, 27b, 35b, 122b. Số càng lớn thì model càng thông minh nhưng càng nặng: theo trang tags, bản 0.8b tải khoảng 1,0–1,3 GB, bản 2b khoảng 2,7–3,1 GB, bản 9b khoảng 6,6–7,6 GB. Mình chọn 0.8b vì máy test không có GPU và chỉ có 6 GB RAM.

Bước 4: Bật server và tải model
Trên Linux chạy ollama serve (để ở một terminal riêng hoặc chạy nền). Trên Windows, theo tài liệu chính thức, cài xong Ollama sẽ chạy nền (có biểu tượng ở khay hệ thống) và lệnh ollama dùng được trong cmd hoặc PowerShell. Khi log hiện "Listening on 127.0.0.1:11434" là xong. Tiếp theo tải model:
ollama pull qwen3.5:0.8b
ollama list

Bước 5: Xem thông tin model
Lệnh ollama show qwen3.5:0.8b cho biết model có 752,39 triệu tham số, lượng tử hóa Q8_0, độ dài ngữ cảnh tối đa 262.144 token, giấy phép Apache 2.0. Mục Capabilities cho thấy model hỗ trợ đọc ảnh (vision), gọi tool và chế độ "thinking", trong đó thinking được bật mặc định.

Bước 6: Hỏi model câu đầu tiên
Mình thêm --think=false để model trả lời luôn, không viết phần suy nghĩ, và --verbose để xem tốc độ:
ollama run qwen3.5:0.8b --think=false --verbose "Giải thích ngắn gọn Activity trong Android là gì, trả lời bằng tiếng Việt trong 3 câu."
Model trả lời được bằng tiếng Việt, nhưng có hai vấn đề. Thứ nhất, nội dung có chỗ sai (Activity không "khởi tạo lại trình duyệt web"). Thứ hai, tốc độ chỉ 1,38 token/giây, 100 token mất hơn một phút. Lệnh ollama ps cho thấy model đang dùng 574 MB, chạy 100% trên CPU với ngữ cảnh 4096 token. Nguyên nhân chậm mình giải thích ở mục Lỗi thường gặp.

Bước 7: Tạo model riêng bằng Modelfile
Modelfile là file cấu hình để "đóng gói" model với tham số và lời dặn hệ thống (system prompt) của riêng mình. Mình tạo file tên Modelfile như sau rồi chạy ollama create:
FROM qwen3.5:0.8b
PARAMETER num_thread 4
PARAMETER temperature 0.3
SYSTEM """Bạn là trợ giảng lập trình. Luôn trả lời bằng tiếng Việt, ngắn gọn, có ví dụ code khi cần."""
ollama create trogiang -f Modelfile
ollama list
num_thread 4 ép Ollama dùng đúng 4 luồng CPU (bằng số nhân máy được dùng), temperature 0.3 cho câu trả lời ít ngẫu nhiên hơn. Model mới trogiang dùng lại các lớp có sẵn nên tạo gần như tức thì và không tốn thêm 1,3 GB.

Bước 8: Chạy model vừa tạo
ollama run trogiang --think=false --verbose "Viết hàm Python kiểm tra một số có phải số nguyên tố không."
Lần này tốc độ lên 22,74 token/giây, 273 token chỉ mất khoảng 12 giây. Hàm is_prime model viết ra đúng logic: loại số nhỏ hơn hoặc bằng 1, rồi thử chia từ 2 đến căn bậc hai của n. Có điều, ở một lần chạy thử trước đó với cùng câu hỏi, model viết hàm trả về False cho số 2, nên các bạn vẫn phải tự chạy thử code trước khi dùng.

Bước 9: Gọi Ollama qua API
Server Ollama có REST API riêng (ví dụ /api/version, /api/chat) và một API tương thích OpenAI ở /v1/chat/completions. Nhờ vậy, code viết cho API kiểu OpenAI có thể trỏ sang http://localhost:11434/v1/ để chạy bằng model local.
curl http://localhost:11434/api/version
curl http://localhost:11434/v1/chat/completions -H "Content-Type: application/json" \
-d '{"model":"trogiang","messages":[{"role":"user","content":"HTTP status 404 nghĩa là gì? Trả lời 1 câu."}],"reasoning_effort":"none"}'

Bước 10: Gọi model từ code Python
Đây là đoạn code mình dùng, chỉ cần thư viện chuẩn của Python. Các bạn có thể đưa đoạn này vào backend Flask/Django của đồ án, hoặc viết lại tương tự trong Node.js, Kotlin.
import json, urllib.request
url = "http://localhost:11434/api/chat"
body = {
"model": "trogiang",
"messages": [{"role": "user", "content": "So sánh val và var trong Kotlin trong 2 câu."}],
"stream": False,
"think": False,
}
req = urllib.request.Request(url, data=json.dumps(body).encode("utf-8"),
headers={"Content-Type": "application/json"})
with urllib.request.urlopen(req) as r:
data = json.load(r)
print(data["message"]["content"])
print("eval_count:", data["eval_count"], "| giây:", round(data["eval_duration"] / 1e9, 2))
Kết quả mất 9,53 giây cho 269 token. Phần kết luận đúng (var đổi được, val không đổi được), nhưng ví dụ cho var lại viết bằng val và model cũng không giữ đúng yêu cầu "2 câu". Model 0.8B làm tốt việc trả lời nhanh, còn chi tiết thì các bạn phải đọc lại.

Lỗi thường gặp
"Warning: could not connect to a running Ollama instance"
Server chưa chạy. Trên Linux chạy ollama serve; trên Windows, mở lại Ollama từ menu Start để ứng dụng chạy nền. Nếu đã chạy mà vẫn báo lỗi, kiểm tra xem có chương trình khác chiếm cổng 11434 không; muốn đổi địa chỉ thì dùng biến môi trường OLLAMA_HOST.

Model chạy rất chậm, chỉ 1–2 token/giây
Ở lần chạy đầu, log của server ghi n_threads = 8 / 16: Ollama thấy máy có 16 nhân nên dùng 8 luồng, trong khi môi trường của mình chỉ được dùng 4 CPU, các luồng phải tranh nhau. Thêm PARAMETER num_thread 4 vào Modelfile (hoặc truyền "options": {"num_thread": 4} khi gọi API) thì tốc độ từ 1,38 lên 22,74 token/giây. (num_thread không có trong bảng tham số của trang Modelfile, nhưng log xác nhận server dùng đúng 4 luồng.) Lỗi này hay gặp khi chạy trong Docker hoặc máy ảo.

Model trả lời sai, kể cả câu rất dễ
Mình thử chạy ở chế độ chỉ dùng local (OLLAMA_NO_CLOUD=1) và chặn mọi kết nối ra Internet. Lệnh ollama pull báo lỗi vì không ra được mạng, còn model đã tải vẫn trả lời bình thường. Nhưng với câu "Thủ đô của Việt Nam là gì?", model 0.8B trả lời là Thành phố Hồ Chí Minh, sai hoàn toàn. Model nhỏ phù hợp để học cách dùng, thử API, làm demo; với kiến thức và code quan trọng, các bạn nên kiểm tra lại hoặc dùng model lớn hơn nếu máy đủ RAM.

Model "suy nghĩ" rất lâu mới trả lời
Như bước 5 đã thấy, qwen3.5 bật thinking mặc định. Khi chỉ cần câu trả lời ngắn, thêm --think=false với ollama run, hoặc "think": false khi gọi /api/chat.
Câu hỏi thường gặp
Ollama có miễn phí không?
Ollama là phần mềm mã nguồn mở theo giấy phép MIT. Toàn bộ bài này mình làm không cần đăng nhập hay API key. Trang Ollama có mục Pricing cho các model chạy trên cloud của họ, nhưng chạy model trên máy mình thì không cần dùng tới.
Chạy Ollama có cần Internet không?
Chỉ cần Internet lúc tải Ollama và tải model. Sau đó model chạy trên máy: ở phần Lỗi thường gặp, mình chặn hết kết nối ra ngoài mà model vẫn trả lời. Nếu muốn tắt hẳn các tính năng cloud, tài liệu chính thức hướng dẫn đặt biến OLLAMA_NO_CLOUD=1.
Laptop sinh viên không có GPU có chạy được không?
Được với model nhỏ. Máy test của mình không có GPU, giới hạn 4 nhân và 6 GB RAM, model 0.8B chạy khoảng 22 token/giây và ollama ps báo chiếm 574 MB. Model càng lớn thì càng cần nhiều RAM và chạy càng chậm trên CPU, nên các bạn bắt đầu từ bản nhỏ rồi tăng dần.
Model được lưu ở đâu, xóa thế nào?
Theo FAQ của Ollama: Windows lưu ở C:\Users\%username%\.ollama\models, macOS ở ~/.ollama/models, Linux ở /usr/share/ollama/.ollama/models. Muốn đổi chỗ lưu thì đặt biến OLLAMA_MODELS. Xóa model bằng lệnh ollama rm <tên model>.
Nguồn tham khảo
- Ollama: trang tải về (macOS, Linux, Windows)
- Ollama Docs: cài đặt trên Linux
- Ollama Docs: cài đặt trên Windows
- GitHub: các bản phát hành của Ollama
- Thư viện Ollama: model qwen3.5
- Ollama Docs: Modelfile
- Ollama Docs: REST API
- Ollama Docs: tương thích OpenAI
- Ollama Docs: FAQ
Ảnh chụp và thử nghiệm ngày 09/11/2026.