Giới thiệu
Ở bài trước, bạn đã hiểu tại sao Apple Silicon mạnh cho AI. Bây giờ hãy biến lý thuyết thành thực tế: cài Ollama và chat với LLM ngay trên máy, không cần internet, không cần API key.
Mục tiêu bài này: Sau 5 phút, bạn sẽ đang chat với AI model chạy hoàn toàn trên máy tính của bạn.
1. Ollama là gì?
Ollama là công cụ chạy LLM local dễ nhất hiện nay. Think of it as "Docker for LLMs":
- Pull model từ registry như pull Docker images
- Chạy model bằng một lệnh duy nhất
- Expose API tương thích OpenAI endpoint
- Quản lý nhiều model cùng lúc
Ollama dùng llama.cpp (một inference engine viết bằng C++) ở bên dưới, nhưng wrap lại thành trải nghiệm siêu đơn giản.
2. Cài đặt Ollama trên macOS
Cách 1: Tải từ website (khuyến nghị)
# Truy cập https://ollama.com/download và tải bản macOS
# Hoặc dùng curl:
curl -fsSL https://ollama.com/install.sh | sh
Cách 2: Dùng Homebrew
brew install ollama
Xác nhận cài đặt
ollama --version
Output:
ollama version is 0.6.x
Khởi động Ollama server
Nếu cài từ .dmg, Ollama app sẽ tự chạy server khi mở. Nếu cài từ CLI:
# Chạy server (giữ terminal này mở)
ollama serve
Server chạy trên http://localhost:11434.
Kiểm tra:
curl http://localhost:11434
# Output: Ollama is running
3. Chạy model đầu tiên
Pull và chạy Llama 3.2
# Pull model (chỉ cần lần đầu, ~2GB cho 3B, ~4.5GB cho 8B)
ollama pull llama3.2
# Chạy và chat
ollama run llama3.2
Bạn sẽ thấy prompt:
>>> Send a message (/? for help)
Thử hỏi:
>>> Giải thích Docker trong 3 câu
AI sẽ trả lời ngay lập tức, chạy hoàn toàn trên máy bạn. Nhấn Ctrl+D để thoát.
Pull thêm model khác
# Gemma 3 - model của Google, mạnh với tiếng Việt
ollama pull gemma3:4b
# Qwen 2.5 - model của Alibaba, đa ngôn ngữ xuất sắc
ollama pull qwen2.5:7b
# Mistral - model của Pháp, code tốt
ollama pull mistral
# Phi-4 - model nhỏ của Microsoft, hiệu quả
ollama pull phi4-mini
4. Ollama CLI Commands quan trọng
Xem danh sách model đã tải
ollama list
Output mẫu:
NAME ID SIZE MODIFIED
llama3.2:latest a80c4f17acd5 2.0 GB 2 minutes ago
gemma3:4b 2d2a94b1e3fc 3.3 GB 5 minutes ago
qwen2.5:7b 845dbda0ea48 4.7 GB 8 minutes ago
Xem thông tin chi tiết model
ollama show llama3.2
Output hiển thị:
- Architecture (LlamaForCausalLM)
- Parameters (3.2B)
- Quantization (Q4_K_M)
- Context length (128K)
- System prompt mặc định
Xem model đang chạy
ollama ps
Output:
NAME ID SIZE PROCESSOR UNTIL
llama3.2:latest a80c4f17acd5 3.2 GB 100% GPU 4 minutes from now
💡 100% GPU nghĩa là toàn bộ model nằm trên GPU memory (Metal trên Mac). Đây là trường hợp lý tưởng.
Xóa model
# Xóa một model để giải phóng ổ cứng
ollama rm mistral
Copy model (tạo bản sao với tên khác)
ollama cp llama3.2 my-assistant
5. Cấu trúc thư mục Ollama
Ollama lưu trữ mọi thứ tại:
~/.ollama/
├── models/
│ ├── blobs/ # Model weights (file lớn)
│ └── manifests/ # Metadata cho mỗi model
└── logs/ # Logs
Kiểm tra dung lượng:
du -sh ~/.ollama/models
⚠️ Lưu ý: Model nặng! 3-5 model có thể chiếm 20-30GB. Nếu ổ SSD nhỏ, hãy chọn lọc model cần thiết.
Di chuyển thư mục models sang ổ ngoài
Nếu ổ chính nhỏ:
# Dừng Ollama
# Di chuyển thư mục
mv ~/.ollama/models /Volumes/ExternalSSD/ollama-models
# Tạo symlink
ln -s /Volumes/ExternalSSD/ollama-models ~/.ollama/models
# Khởi động lại Ollama
6. Chat nâng cao với Ollama
System prompt inline
ollama run llama3.2 "Bạn là một chuyên gia Python. Trả lời bằng tiếng Việt." \
--system "You are a senior Python developer who explains things simply in Vietnamese."
Multi-line input
Trong chat mode, dùng """ để nhập nhiều dòng:
>>> """
... Phân tích đoạn code sau:
... def fibonacci(n):
... if n <= 1: return n
... return fibonacci(n-1) + fibonacci(n-2)
... """
Đặt temperature và context
# Temperature thấp = ít sáng tạo, chính xác hơn
ollama run llama3.2 --temperature 0.1
# Context window lớn hơn (tốn RAM hơn)
ollama run llama3.2 --num-ctx 8192
Slash commands trong chat
| Command | Mô tả |
|---|---|
/set system <prompt> | Đặt system prompt |
/show info | Xem thông tin model |
/show modelfile | Xem Modelfile |
/clear | Xóa lịch sử chat |
/bye hoặc Ctrl+D | Thoát |
/? | Xem help |
7. Environment Variables hữu ích
# Thay đổi host/port
export OLLAMA_HOST=0.0.0.0:11434
# Thay đổi thư mục lưu model
export OLLAMA_MODELS=/path/to/models
# Giới hạn số model load đồng thời
export OLLAMA_MAX_LOADED_MODELS=2
# Bật debug logging
export OLLAMA_DEBUG=1
Thêm vào ~/.zshrc để lưu vĩnh viễn:
echo 'export OLLAMA_MAX_LOADED_MODELS=2' >> ~/.zshrc
source ~/.zshrc
8. Troubleshooting thường gặp
"Error: model requires more memory than available"
Model quá lớn cho RAM. Giải pháp:
- Dùng model nhỏ hơn:
llama3.2:3bthay vìllama3.2:8b - Đóng các app khác để giải phóng RAM
Tốc độ chậm bất thường
# Kiểm tra GPU utilization
ollama ps
# Nếu thấy "100% CPU" thay vì "100% GPU" → model quá lớn, không fit GPU memory
Ollama server không khởi động
# Kiểm tra port xem có bị chiếm không
lsof -i :11434
# Kill process cũ nếu cần
pkill ollama
ollama serve
Tóm tắt
| Lệnh | Mô tả |
|---|---|
ollama pull <model> | Tải model |
ollama run <model> | Chạy và chat |
ollama list | Xem model đã tải |
ollama ps | Xem model đang chạy |
ollama show <model> | Thông tin model |
ollama rm <model> | Xóa model |
ollama serve | Khởi động server |
Bài tập
- Cài Ollama và kéo 2 model:
llama3.2vàgemma3:4b - Chat với mỗi model cùng một câu hỏi và so sánh chất lượng trả lời
- Dùng
ollama showxem thông tin cả hai model: quantization, parameter count, context length - Kiểm tra
ollama pskhi đang chat — model dùng bao nhiêu RAM? GPU hay CPU? - Dùng
du -sh ~/.ollama/modelsxem model chiếm bao nhiêu dung lượng
Bài tiếp theo: Chọn model nào cho use case của bạn? →