Lệnh Ollama từ A-Z: pull, run, Modelfile và keep_alive

Chia sẻ bài viết

Mục lục
Lệnh Ollama từ A-Z: pull, run, Modelfile và keep_alive

Trả lời nhanh: Bộ lệnh lõi: ollama pull tải model, ollama run chat, ollama list xem model đã có, ollama ps xem model đang nằm trong RAM, ollama rm xóa. Nâng cao: Modelfile đóng gói system prompt + tham số thành model riêng của bạn; keep_alive quyết định model ở lại RAM bao lâu, chỉnh nó là hết bệnh chậm ở lượt hỏi đầu.

Ollama cố tình giống Docker: pull, run, list, rm, ai từng chạm container là thấy quen tay ngay. Nhưng phần ăn tiền nằm ở các lệnh và tham số ít người mở ra: Modelfile biến model gốc thành trợ lý chuyên một việc của riêng bạn, keep_alive quyết định trải nghiệm nhanh chậm nhiều hơn cả phần cứng, và num_ctx là công tắc mà ai làm RAG cũng phải biết. Bài này là trang tra cứu giữ lại dùng dần.

Tóm tắt nhanh
  • Vòng đời model: pull → run → ps → rm, giống hệt tư duy Docker
  • ollama ps cho biết model nào đang chiếm RAM và còn nằm lại bao lâu
  • Modelfile = system prompt + tham số đóng gói: ollama create ra model mang tên bạn
  • keep_alive chỉnh đúng là hết cảnh lượt hỏi đầu chờ cả chục giây
  • num_ctx mặc định khiêm tốn, làm RAG/tài liệu dài phải nâng, và RAM ăn theo

Vòng đời model: pull, run, list, ps, rm, cp

ollama pull qwen2.5:14b      # tai model (tag nhu docker)
ollama run qwen2.5:14b       # chat truc tiep (tu pull neu chua co)
ollama list                  # model da tai + dung luong tren dia
ollama ps                    # model dang nap trong RAM + het han sau bao lau
ollama stop qwen2.5:14b      # day model khoi RAM ngay
ollama rm qwen2.5:14b        # xoa han khoi dia
ollama cp qwen2.5:14b tro-ly # nhan ban lam nen cho model tuy bien
ollama show qwen2.5:14b      # xem tham so, template, license

Hai lệnh bị bỏ quên nhiều nhất: ps: trả lời câu vì sao server đầy RAM (một model 14B ai đó gọi từ sáng vẫn nằm lì); và show: xem model đang dùng template chat nào, context mặc định bao nhiêu trước khi đổ lỗi cho chất lượng model.

Trong phiên chat: các lệnh gạch chéo

Đang trong ollama run, các lệnh bắt đầu bằng gạch chéo điều khiển phiên: /set parameter temperature 0.2 (giảm bay bổng khi cần chính xác), /set system "Bạn là trợ lý pháp lý..." (đổi vai ngay trong phiên), /show info (đang chạy tham số gì), /save ten-phien/load ten-phien (lưu/mở lại hội thoại), /clear (xóa ngữ cảnh làm mới), /bye (thoát). Thử nghiệm system prompt bằng /set system cho nhanh, ưng rồi mới đóng gói vào Modelfile cho bền.

Modelfile: đóng gói trợ lý riêng của bạn

Modelfile với Ollama như Dockerfile với Docker, khai nền, đặt tham số, nhét system prompt:

# file: Modelfile
FROM qwen2.5:14b
PARAMETER temperature 0.3
PARAMETER num_ctx 8192
SYSTEM """Bạn là trợ lý chăm sóc khách hàng của cửa hàng phần mềm.
Trả lời ngắn gọn, tiếng Việt, xưng em. Không bịa thông tin giá."""
ollama create tro-ly-cskh -f Modelfile
ollama run tro-ly-cskh

Từ đây tro-ly-cskh là một model trong ollama list, gọi được qua API bằng đúng cái tên đó, app không cần tự nhét system prompt mỗi lần gọi nữa. Đội nhóm dựng nhiều trợ lý chuyên việc (viết mô tả sản phẩm, phân loại email, dịch) chỉ bằng một model nền cộng nhiều Modelfile, đĩa chỉ tốn một lần model nền.

keep_alive: tham số quyết định cảm giác nhanh chậm

Model nạp từ đĩa vào RAM mất từ vài giây (NVMe) đến cả phút (ổ chậm, model to), và mặc định Ollama chỉ giữ model trong RAM 5 phút sau lượt gọi cuối. Hệ quả kinh điển: cứ cách quãng lại hỏi là lượt đầu ì ạch. Ba cách chỉnh:

# giu 1 gio sau moi luot goi:
curl http://localhost:11434/api/generate -d '{"model":"qwen2.5","keep_alive":"1h"}'
# giu vinh vien (server chuyen dung):
OLLAMA_KEEP_ALIVE=-1 ollama serve
# day khoi RAM ngay khi can gion cho: ollama stop ten-model

Server chỉ phục vụ AI: đặt -1 giữ model thường trực. Server kiêm nhiều việc: giữ 30m-1h là điểm cân giữa RAM và trải nghiệm. Đây là lý do RAM VPS nên rộng hơn mức tối thiểu của model, phần dư chính là chỗ cho keep_alive làm việc.

num_ctx và các tham số đáng biết nốt

num_ctx: độ dài ngữ cảnh (prompt + tài liệu + câu trả lời) tính bằng token; mặc định thường vài nghìn, ném tài liệu dài vào là bị cắt ngọn âm thầm. Làm RAG hay tóm tắt văn bản: nâng lên 8192-16384 trong Modelfile/API, đổi lại RAM tiêu thêm theo độ dài ngữ cảnh. Bộ còn lại đáng nhớ: temperature (0.1-0.3 cho việc cần chính xác, 0.7+ cho sáng tạo), top_p, seed (tái lập kết quả khi kiểm thử), num_predict (chặn trần độ dài trả lời, chặn luôn hóa đơn thời gian CPU). Xem model đang chạy gì: ollama show ten-model --parameters.

Các tham số đáng biết và ảnh hưởng thật

Tham sốMặc địnhNên đặtẢnh hưởng
num_ctx2048 với nhiều model4096 tới 32768 tùy việcĐộ dài tối đa của ngữ cảnh. Làm hỏi đáp tài liệu bắt buộc phải nâng, đổi lại tốn bộ nhớ theo
temperature0.80.1 tới 0.3 cho việc cần chính xác, 0.7 trở lên cho viết sáng tạoMức ngẫu nhiên của câu trả lời
repeat_penalty1.11.1 tới 1.2Chống lặp lại. Model nhỏ hay lặp thì tăng nhẹ
num_predictkhông giới hạnĐặt giới hạn khi gọi tự độngSố từ tối đa sinh ra, tránh trả lời dài vô tận trong quy trình tự động
stopkhông cóĐặt khi cầnChuỗi báo dừng, hữu ích khi model hay viết thêm phần thừa

Giữ model trong bộ nhớ, chữa dứt bệnh lượt hỏi đầu chậm

ollama ps          # cot UNTIL cho biet model con nam trong RAM bao lau nua

# Dat mac dinh cho ca dich vu
sudo systemctl edit ollama
# [Service]
# Environment="OLLAMA_KEEP_ALIVE=30m"
# Environment="OLLAMA_MAX_LOADED_MODELS=2"
sudo systemctl daemon-reload && sudo systemctl restart ollama

Giá trị âm một nghĩa là giữ mãi trong bộ nhớ. Trên máy dùng chung đó là chiếm bộ nhớ vĩnh viễn, nhưng với máy chủ chuyên chạy trợ lý nội bộ thì lại là cấu hình đúng: mỗi lần nạp lại model 14 tỉ tham số mất khoảng mười giây và người dùng cảm nhận rõ.

Các lệnh trong phiên trò chuyện

/set parameter num_ctx 16384    # doi tham so ngay trong phien
/show info                       # xem thong tin model dang chay
/show parameters                 # xem tham so dang ap dung
/save ten-phien                  # luu phien lam mot model moi
/clear                           # xoa ngu canh, bat dau lai
/bye                             # thoat

Lệnh lưu phiên rất tiện: sau khi chỉnh chỉ dẫn và tham số tới lúc ưng ý, lưu lại thành một model mang tên bạn đặt, lần sau gọi thẳng khỏi cấu hình lại.

Dọn dẹp và kiểm tra dung lượng

ollama list                      # dung luong tung model
du -sh ~/.ollama/models          # tong dung luong tren may
ollama rm ten-model              # xoa model khong dung
df -h ~/.ollama                  # o dia con bao nhieu

Model tải về không tự dọn. Máy thử nhiều model trong vài tháng dễ chiếm hàng trăm gigabyte. Đặt lịch rà mỗi quý, giữ lại hai tới ba model thật sự dùng.

Thư mục lưu model đặt được ở nơi khác bằng biến OLLAMA_MODELS, hữu ích khi ổ hệ thống nhỏ mà bạn có ổ dữ liệu riêng lớn hơn.

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

Model tải về nằm ở đâu trên đĩa?

Linux: /usr/share/ollama/.ollama/models (cài script) hoặc ~/.ollama/models. Đổi chỗ bằng biến OLLAMA_MODELS, hữu ích khi muốn dồn model sang phân vùng/ổ NVMe riêng.

ollama run và ollama serve khác nhau thế nào?

serve là dịch vụ nền phục vụ API (cài chuẩn đã chạy sẵn qua systemd); run là client chat nối vào dịch vụ đó. Trên server bạn hầu như chỉ đụng serve qua systemd còn tương tác thì qua API.

Cập nhật model đã tải bằng cách nào?

ollama pull ten-model lần nữa, có bản mới sẽ tải phần thay đổi. Model bạn create từ Modelfile thì tạo lại sau khi cập nhật model nền.

Chạy được nhiều model cùng lúc không?

Được, mỗi model chiếm RAM riêng khi nạp; Ollama cũng xử lý được nhiều yêu cầu song song trên một model (có hàng đợi). Giới hạn thật là tổng RAM: xem ollama ps để biết ai đang chiếm chỗ, stop bớt khi chật.

Hạ tầng VPS tại Việt Nam của TND
Cloud VPS linh hoạt và VPS NVMe xung cao, IP công cộng riêng, đặt tại Việt Nam
keep_alive và num_ctx chỉ phát huy khi RAM đủ rộng và ổ đủ nhanh: VPS NVMe TND nạp model từ ổ Enterprise U.2 trong vài giây, RAM tới 24GB cho model 14B nằm thường trực. Bàn giao 5 phút, đặt tại Việt Nam, nghịch thử bộ lệnh trong bài ngay tối nay.
Xem VPS ổ Enterprise U.2 NVMe tại Việt NamNhu cầu nhẹ hơn? Xem Cloud VPS

Bài viết liên quan