Ollama là gì: chạy AI local để code, từ cài đặt tới nối vào VS Code
Code không được rời khỏi máy công ty nhưng vẫn muốn có AI hỗ trợ? Bài này giải thích Ollama là gì, cách cài, chọn model coding vừa với RAM/VRAM, gọi API kiểu OpenAI, nối vào VS Code, Continue, Cline, và khi nào local thật sự đáng dùng.
Bạn vào team mới, được giao repo của khách hàng ngân hàng. Ngày đầu, trưởng nhóm dặn: không dán code lên ChatGPT, không bật công cụ AI gửi code ra ngoài. Tối về bạn lại dùng Copilot cho dự án cá nhân quen tay, giờ quay lại gõ tay từng dòng thấy chậm hẳn. Câu hỏi tự nhiên xuất hiện: có cách nào để AI chạy ngay trên máy mình, code không đi đâu cả?
Có, và công cụ phổ biến nhất cho việc này là Ollama. Bài này trả lời Ollama là gì, cài thế nào, chọn model nào vừa với máy, nối vào editor ra sao, và chất lượng thật so với model cloud như Claude Opus 5.5 hay GPT-6 Sol.
Ollama là gì
Ollama là công cụ mã nguồn mở giúp bạn tải và chạy các LLM open-weight (model công bố trọng số, ai cũng tải về được) ngay trên máy tính của mình. Nó gồm ba phần:
- Một ứng dụng + CLI để tải model (
ollama pull), chat thử (ollama run), quản lý model đang chạy. - Một server local mặc định lắng nghe ở
127.0.0.1:11434, cung cấp REST API riêng và API tương thích OpenAI, nên hầu hết công cụ đang nói chuyện với OpenAI đều đổi sang Ollama được bằng cách đổi base URL. - Một thư viện model tại ollama.com/library: Qwen, Gemma, Devstral, gpt-oss... đã đóng gói sẵn, thường ở dạng lượng tử hóa (quantized) để vừa với phần cứng phổ thông.
Về quyền riêng tư, FAQ của Ollama ghi rõ: khi chạy local, họ không thấy prompt hay dữ liệu của bạn. Có một ngoại lệ cần nhớ ngay từ đầu, sẽ nói ở phần dưới: Ollama giờ còn có cloud model, chạy trên server của họ chứ không phải trên máy bạn.
Tại thời điểm viết, bản mới nhất là Ollama v0.40.0, từ bản này các model hỗ trợ MLX sẽ mặc định chạy bằng MLX trên Mac Apple Silicon.
Cài đặt trên Windows, macOS, Linux
Yêu cầu tối thiểu theo docs: Windows 10 22H2 trở lên; macOS Sonoma (14) trở lên (chip M-series dùng được cả CPU và GPU, Mac Intel chỉ chạy CPU); Linux cài qua script. Trên Windows không cần quyền Administrator.
# Windows (PowerShell), hoặc tải OllamaSetup.exe từ ollama.com/download
irm https://ollama.com/install.ps1 | iex# macOS và Linux (macOS cũng có bản .dmg để kéo thả)
curl -fsSL https://ollama.com/install.sh | shNếu bạn quen Docker, có image chính thức ollama/ollama trên Docker Hub.
Cài xong, vài lệnh dùng hằng ngày:
ollama pull qwen3-coder:30b # tải model
ollama run qwen3-coder:30b # chat thử trong terminal
ollama ls # model đã tải
ollama ps # model đang nạp, nằm trên GPU hay CPU, context bao nhiêu
ollama stop qwen3-coder:30b # giải phóng bộ nhớ
ollama rm qwen3-coder:30b # xóa model khỏi ổ đĩaModel nằm ở ~/.ollama/models (macOS), C:\Users\<tên>\.ollama\models (Windows), /usr/share/ollama/.ollama/models (Linux cài bằng script). Chúng có thể nặng hàng chục GB, nếu ổ C gần đầy thì đặt biến môi trường OLLAMA_MODELS sang ổ khác trước khi tải.
Máy mình chạy được model nào: quy tắc RAM/VRAM
Nhiều người vấp ở bước này. Ollama không công bố bảng "bao nhiêu GB chạy được model bao nhiêu B", nhưng docs cho đủ dữ kiện để rút ra một quy tắc thực dụng:
- Bộ nhớ trống phải lớn hơn dung lượng file model. Quickstart của Ollama lấy ví dụ
gemma4:e2bnặng khoảng 7,2 GB và khuyên có 8 GB VRAM (hoặc unified memory trên Mac). Mỗi model trên ollama.com/library đều ghi dung lượng từng tag, đó là con số bạn cần nhìn. - Cộng thêm chỗ cho context. Docs về context length nói rõ: tăng context thì tăng bộ nhớ cần dùng.
- Thiếu VRAM thì Ollama tràn sang RAM hệ thống, vẫn chạy nhưng chậm đi đáng kể. Gõ
ollama ps, cột Processor cho biết model đang100% GPU,100% CPUhay chia kiểu48%/52% CPU/GPU.
Mac chip M-series có lợi thế riêng: RAM và GPU dùng chung unified memory, nên một chiếc Mac 32 GB chứa được model mà card đồ họa 12 GB phải chia với CPU (macOS vẫn giữ một phần RAM cho hệ thống, nên đừng tính trọn 32 GB cho model). Về GPU rời, Ollama hỗ trợ NVIDIA (compute capability 5.0 trở lên), AMD qua ROCm v7, và thêm Intel/AMD qua Vulkan.
Chọn model coding theo phần cứng
Các model dưới đây đều có trên thư viện Ollama, dung lượng lấy từ trang tag (bản mặc định, đã lượng tử hóa):
| Model | Dung lượng | Context tối đa | Ghi chú |
|---|---|---|---|
qwen2.5-coder:1.5b | ~1 GB | 32K | Nhẹ, hợp làm autocomplete, Continue khuyên dùng |
qwen2.5-coder:7b | 4,7 GB | 32K | Dòng cũ hơn, nhưng chạy được trên máy 8 GB VRAM |
devstral-small-2 (24B) | 15 GB | 256K (theo Mistral) | Mistral làm riêng cho agent coding, Apache 2.0, nhận ảnh |
qwen3.8:27b | 18 GB | 256K | Dense 27B, Apache 2.0, ra 8/2026, có thinking mode và nhận ảnh |
qwen3-coder:30b | 19 GB | 256K | MoE: tổng 30,5B nhưng mỗi token chỉ kích hoạt 3,3B, nên sinh token nhanh hơn model dense cùng cỡ |
Ước lượng thô để bắt đầu: máy 8 GB VRAM hoặc Mac 16 GB hợp với nhóm model 7B trở xuống; card 16 GB thử devstral-small-2; card 24 GB hoặc Mac từ 32 GB chạy được nhóm 27B đến 30B, nhưng vừa khít: context mặc định 32K thì ổn, nâng lên 64K có thể làm model tràn một phần sang CPU. Luôn kiểm tra lại bằng ollama ps. Lưu ý MoE giúp chạy nhanh hơn chứ không giúp tốn ít RAM hơn: toàn bộ 30,5B tham số vẫn phải nằm trong bộ nhớ. Để đo tốc độ thực tế, chạy ollama run qwen3-coder:30b --verbose: cuối mỗi câu trả lời có dòng eval rate (token/giây).
Cái bẫy context 4K
Ollama tự chọn context mặc định theo VRAM: dưới 24 GB là 4K token, 24 đến 48 GB là 32K, từ 48 GB trở lên là 256K. Trong khi đó docs khuyên với agent và công cụ coding nên đặt ít nhất 64.000 token.
4K token chỉ đủ cho một hai file nhỏ. Nếu bạn nối model vào agent mà để mặc định, agent sẽ "quên" gần như ngay lập tức và bạn sẽ kết luận oan rằng model kém. Cách đặt lại:
- Trong app Ollama: Settings, kéo thanh Context length.
- Chạy server thủ công (thoát app Ollama trước, vì app đã giữ cổng 11434): macOS/Linux
OLLAMA_CONTEXT_LENGTH=64000 ollama serve; Windows PowerShell$env:OLLAMA_CONTEXT_LENGTH=64000; ollama serve. - Hoặc tạo biến thể model với context cố định bằng Modelfile:
cat > Modelfile <<'EOF'
FROM qwen3-coder:30b
PARAMETER num_ctx 64000
EOF
ollama create qwen3-coder-64k -f ModelfileTrên Windows, tạo file Modelfile bằng editor với 2 dòng trên rồi chạy lệnh ollama create.
Sau đó chạy ollama ps để kiểm tra context thực tế và model còn nằm trọn trên GPU không. Đây là giới hạn thật của AI local: với card 16 GB chứa model 15 GB, gần như không còn chỗ cho 64K context trên GPU. Bạn phải chọn giữa model lớn hơn hoặc context dài hơn. Vì sao context lại quan trọng tới vậy với agent, bài Context engineering là gì giải thích chi tiết.
Gọi Ollama qua API tương thích OpenAI
Server Ollama cung cấp các endpoint quen thuộc tại http://localhost:11434/v1/: /v1/chat/completions, /v1/completions, /v1/models, /v1/embeddings, và /v1/responses (từ v0.13.3). API key là bắt buộc về mặt cú pháp nhưng bị bỏ qua, điền gì cũng được.
Thử nhanh bằng curl:
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model": "qwen3-coder:30b", "messages": [{"role": "user", "content": "Viết hàm debounce bằng TypeScript"}]}'Trong project Node/TypeScript, dùng luôn SDK openai, chỉ đổi baseURL:
// Chạy trong project ESM ("type": "module") hoặc bọc trong hàm async
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "http://localhost:11434/v1/",
apiKey: "ollama", // bắt buộc có, nhưng Ollama local bỏ qua
});
const res = await client.chat.completions.create({
model: "qwen3-coder:30b",
messages: [
{ role: "system", content: "Bạn là reviewer TypeScript, trả lời ngắn gọn." },
{ role: "user", content: "Đoạn này có bug gì: const ids = users.map(async u => u.id)" },
],
});
console.log(res.choices[0].message.content);Nhờ vậy bạn thử nghiệm tính năng AI cho sản phẩm mà không tốn tiền API lúc dev, khi lên production chỉ cần đổi baseURL sang nhà cung cấp cloud.
Một lưu ý bảo mật: vì API local không kiểm tra key, đừng mở Ollama ra mạng (đổi OLLAMA_HOST sang 0.0.0.0 trên VPS có IP public) nếu không có lớp xác thực phía trước như reverse proxy có auth hoặc VPN. Ai gọi được cổng 11434 là dùng được GPU của bạn. Nếu chạy bằng Docker, map cổng kiểu -p 127.0.0.1:11434:11434 thay vì -p 11434:11434, vì cách sau mở cổng ra mọi địa chỉ mạng.
Nối Ollama vào editor
VS Code Chat với extension Ollama
VS Code từng có provider Ollama tích hợp sẵn trong phần BYOK (bring your own key), nhưng docs hiện ghi provider này đã deprecated. Cách được khuyên bây giờ là cài extension Ollama chính thức (publisher Ollama) trên Marketplace, yêu cầu VS Code 1.127 trở lên. Sau đó mở Chat, bấm model picker và chọn model trong mục Ollama.
Điểm đáng chú ý: theo docs VS Code, bạn dùng được model local không cần gói Copilot, không cần đăng nhập GitHub. Có vài giới hạn cần biết:
- Muốn dùng trong chế độ agent, model phải hỗ trợ tool calling, nếu không nó sẽ không hiện trong model picker.
- Model BYOK không dùng được cho inline suggestions (gợi ý code khi gõ), semantic search và các tính năng dựa trên embeddings.
- Docs của Ollama nhắc: với model local, đặt context tối thiểu 64K rồi reload cửa sổ VS Code.
Nếu bạn đang dùng Copilot, bài GitHub Copilot là gì giải thích các gói và tính năng để bạn biết phần nào vẫn cần cloud.
Continue cho autocomplete
Vì inline suggestions của VS Code không nhận model local, muốn có autocomplete chạy local bạn cần extension khác. Continue là lựa chọn phổ biến, docs của họ khuyên qwen2.5-coder:1.5b cho autocomplete, lý do là autocomplete cần nhanh hơn cần thông minh. Cấu hình config.yaml gợi ý, kết hợp một model lớn cho chat:
name: Local AI
version: 0.0.1
schema: v1
models:
- name: Qwen Coder 30B
provider: ollama
model: qwen3-coder:30b
roles:
- chat
- edit
- name: Qwen 1.5b Autocomplete
provider: ollama
model: qwen2.5-coder:1.5b
roles:
- autocompleteCline và các agent chạy trong terminal
Cline hỗ trợ Ollama làm provider: chọn Ollama, base URL http://localhost:11434, chọn model. Docs của Cline khuyên bật Use Compact Prompt, vì model nhỏ hoặc đã lượng tử hóa thường khó xử lý system prompt dài của Cline, và nên giữ task gọn, mở task mới khi context phình to.
Ollama còn có lệnh ollama launch để cấu hình sẵn các agent dùng model qua Ollama: Claude Code, Codex, OpenCode, VS Code, Droid.
ollama launch claude --model qwen3-coder-64kClaude Code nói chuyện với Ollama qua API tương thích Anthropic. Đây là cách hay để thử quy trình agent trên code nhạy cảm, nhưng kỳ vọng đúng mức: agent vẫn là agent, "bộ não" là model 30B chạy trên máy bạn chứ không phải Opus 5.5. Chi tiết về Claude Code có ở bài Claude Code là gì.
Cẩn thận với tag :cloud
Từ v0.34.2, lần chạy đầu Ollama hỏi bạn đăng nhập hay tiếp tục dùng local. Thư viện cũng có các tag như gemma4:cloud, kimi-k2.6:cloud: đây là model chạy trên server của Ollama, cần đăng nhập, và prompt của bạn rời khỏi máy (Ollama cam kết không dùng để train). Nếu lý do bạn dùng Ollama là giữ code trong máy, hãy chắc tag model bạn chọn trong editor không chứa chữ cloud, cả dạng :cloud (như kimi-k2.6:cloud) lẫn dạng -cloud (như devstral-small-2:24b-cloud). Chạy ollama ps hoặc ollama ls để kiểm tra.
LM Studio: lựa chọn thay thế có giao diện
Nếu bạn thích giao diện đồ họa để duyệt, tải và thử model, LM Studio là đối thủ đáng cân nhắc:
| Ollama | LM Studio | |
|---|---|---|
| Mã nguồn | Mã nguồn mở | App miễn phí (kể cả dùng cho công việc), CLI lms giấy phép MIT |
| Cách dùng chính | CLI + server, có app | App GUI, có CLI lms |
| Nguồn model | Thư viện Ollama, kéo được từ Hugging Face; MLX mặc định trên Apple Silicon từ v0.40.0 | Hugging Face, định dạng GGUF (llama.cpp) và MLX trên Apple Silicon |
| API local | localhost:11434, tương thích OpenAI và Anthropic | localhost:1234, tương thích OpenAI và Anthropic |
| Mac Intel | Chạy được (chỉ CPU) | Không hỗ trợ |
Khởi động server bằng lms server start, trỏ baseURL về http://localhost:1234/v1 là đoạn code TypeScript ở trên chạy được. Thích script, Docker, chạy trên server thì chọn Ollama; thích bấm chuột thử nhiều model trên Mac thì chọn LM Studio.
So sánh thật với AI cloud
Chất lượng: có khoảng cách rõ. Một mốc tham chiếu công bằng (cùng benchmark, cùng bảng): Mistral công bố Devstral Small 2 (24B) đạt 68,0% trên SWE-bench Verified, trong khi Claude Sonnet 4.5 (model đóng, ra 9/2025) đạt 77,2% trong cùng bảng so sánh của Mistral. Từ đó tới nay, các model cloud đã lên thế hệ mới như Claude Opus 5.5, GPT-6 Sol, và báo điểm trên benchmark khác (Terminal-Bench 4.0, OSWorld 2.0), nên không có con số so sánh trực tiếp. Trải nghiệm thực tế thường là: model local làm tốt việc nhỏ và rõ ràng (viết hàm, giải thích code, sinh test đơn giản, autocomplete), nhưng yếu hơn ở task nhiều bước, sửa nhiều file và giữ mạch trong phiên dài. So sánh chi tiết các model cloud có ở bài So sánh model AI lập trình 2026.
Tốc độ và context: bị giới hạn bởi phần cứng. Model cloud có context khoảng 1M token trên API; model local trên máy phổ thông thực tế thường chạy ở vài chục nghìn token để còn nằm trên GPU.
Chi phí: không phải "miễn phí" hoàn toàn. Phần mềm và model miễn phí, nhưng phần cứng đủ mạnh để chạy model 27B đến 30B mượt là khoản đầu tư lớn, cộng tiền điện. So với Copilot Pro 10 USD/tháng hay Claude Pro 20 USD/tháng, local chỉ rẻ hơn khi bạn đã sẵn có máy mạnh, hoặc gọi API với khối lượng lớn.
Quyền riêng tư: lợi thế lớn nhất của local. Code, log, dữ liệu khách hàng không rời máy, điều nhiều công ty coi là bắt buộc.
| Tình huống | Nên chọn |
|---|---|
| Code nhạy cảm, chính sách cấm gửi ra ngoài | Local (Ollama/LM Studio) |
| Làm việc offline, mạng chập chờn | Local |
| Autocomplete nhẹ, hỏi đáp nhanh về code | Local đủ dùng |
| Thử nghiệm tính năng AI trong app lúc dev | Local qua API tương thích OpenAI |
| Refactor lớn, agent chạy nhiều bước, task khó | Cloud frontier model |
| Máy yếu (dưới 8 GB VRAM, không phải Mac M-series) | Cloud |
Nhiều dev chọn cách lai: autocomplete và việc vặt chạy local, task lớn dùng cloud khi được phép.
Sai lầm thường gặp
- Để context mặc định 4K rồi chê model dở. Kiểm tra bằng
ollama ps, nâng lên ít nhất 64K. - Chọn model quá to so với VRAM. Model tràn sang CPU chậm tới mức không dùng nổi. Thà chọn model nhỏ hơn nằm trọn trên GPU.
- Tưởng mọi thứ trong Ollama đều local. Tag có chữ
cloud(:cloud,-cloud) gửi prompt lên server của Ollama. - Giao cho model local task cỡ model frontier. Chia nhỏ task, cho context rõ ràng, review kỹ hơn bình thường.
Tóm lại
Ollama biến việc chạy LLM trên máy cá nhân thành vài lệnh cài đặt. Giá trị thật cho dev: code không rời máy, API tương thích OpenAI để thử nghiệm không tốn tiền, và đủ tốt cho autocomplete cùng việc nhỏ. Đổi lại là chất lượng thấp hơn model cloud frontier và giới hạn RAM/VRAM của máy bạn.
Dù AI chạy local hay cloud, người quyết định chấp nhận diff vẫn là bạn, và model càng nhỏ thì khả năng review của bạn càng quan trọng. Nếu muốn đủ vững React để nhận ra ngay khi AI sinh code sai, khóa React PRO của HoleTex được thiết kế cho việc đó. Còn nếu muốn rèn tư duy giải thuật để tự viết được phần logic mà model nhỏ hay làm hỏng, thử luyện thuật toán trên HoleTex Algo.
Bài liên quan
- Context engineering là gì: quản lý ngữ cảnh để AI agent code đúng
- GitHub Copilot là gì
- So sánh model AI lập trình 2026
- Claude Code là gì
- Lập trình với AI 2026: bản đồ toàn cảnh
Nguồn tham khảo: Ollama GitHub (github.com), Ollama releases (github.com), Quickstart (docs.ollama.com), CLI reference (docs.ollama.com), Context length (docs.ollama.com), FAQ (docs.ollama.com), Hardware support (docs.ollama.com), Windows (docs.ollama.com), macOS (docs.ollama.com), OpenAI compatibility (docs.ollama.com), Cloud (docs.ollama.com), Ollama + VS Code (docs.ollama.com), Ollama + Claude Code (docs.ollama.com), Thư viện model (ollama.com), Devstral 2 (mistral.ai), Devstral Small 2 (huggingface.co), Qwen3.8-27B (huggingface.co), Qwen3-Coder-30B-A3B (huggingface.co), Language models in VS Code (code.visualstudio.com), Continue + Ollama (docs.continue.dev), Continue autocomplete (docs.continue.dev), Cline + Ollama (docs.cline.bot), LM Studio docs (lmstudio.ai), LM Studio system requirements (lmstudio.ai), LM Studio OpenAI compatibility (lmstudio.ai), LM Studio free for work (lmstudio.ai). Cập nhật 2026-10-08.