Skip to content

Quản lý mô hình

Cài đặt, theo dõi và xoá các mô hình AI chạy cục bộ — LLM trò chuyện qua Ollama, mô hình chuyên dụng từ HuggingFace, công cụ hệ thống như Tesseract.

Vì sao có trang này

Nôm chạy hoàn toàn cục bộ. Mỗi tác vụ (chat, dịch, OCR, sửa chính tả) cần ít nhất một mô hình tương ứng phải có trên máy. Trang Mô hình là điểm trung tâm để biết:

  • Mô hình nào đã cài, dung lượng bao nhiêu.
  • Mô hình nào nên cài thêm cho tác vụ cụ thể.
  • Mô hình đang tải, tiến độ bao nhiêu.

Cách dùng

Trong giao diện web

Vào Mô hình ở thanh điều hướng bên trái (mục "Hệ thống"). Trang chia thành các nhóm theo tác vụ:

  • Chat & RAG — LLM trò chuyện (Qwen3, Gemma3 các kích cỡ).
  • Dịch thuật — mô hình chuyên dụng MT (MADLAD, M2M100) + LLM phụ trợ.
  • Khôi phục dấu / sửa chính tả — seq2seq chuyên dụng + LLM phụ trợ.
  • Truy xuất tài liệu (RAG) — bộ embedder + reranker.
  • OCR / chuyển định dạng — Tesseract.

Mỗi hàng có:

  • Tên mô hình + nhãn cấp độ (Nhẹ / Tiêu chuẩn / Mạnh) + nguồn (Ollama / HuggingFace / Hệ thống).
  • Mô tả ngắn — khi nào nên chọn mô hình này.
  • Dung lượng tải về + RAM yêu cầu + license.
  • Tải (cho mô hình Ollama có thể kéo qua API), tự tải khi dùng (cho mô hình HF — sẽ tự động tải khi chạy lần đầu), hoặc cài hệ thống (cho công cụ binary như Tesseract — phải dùng apt / brew).

Có thể chọn nhiều mô hình rồi bấm "Tải tất cả" để tải song song.

Theo dõi tiến độ tải

Khi đang tải, panel "Đang tải" hiện lên với từng tác vụ kèm thanh tiến độ. Polling xảy ra mỗi 1.5 giây trong khi còn tác vụ đang chạy; khi mọi tác vụ xong, polling dừng để không tốn CPU vô ích.

Gọi trực tiếp qua API HTTP

bash
# Liệt kê toàn bộ
curl -s http://localhost:8080/api/models | jq

# Bắt đầu kéo một mô hình Ollama
curl -X POST http://localhost:8080/api/models/pull \
  -H "Content-Type: application/json" \
  -d '{"source":"ollama","model":"qwen3:8b"}'

# Bắt đầu kéo nhiều mô hình một lượt
curl -X POST http://localhost:8080/api/models/pull/batch \
  -H "Content-Type: application/json" \
  -d '{"models":["qwen3:8b","gemma3:4b"]}'

# Theo dõi
curl -s http://localhost:8080/api/models/pulls | jq

# Huỷ
curl -X POST http://localhost:8080/api/models/pull/{pull_id}/cancel

# Xoá mô hình Ollama đã cài
curl -X DELETE http://localhost:8080/api/models/ollama/qwen3:1.7b

Cách chọn mô hình

LLM trò chuyện (cho Chat / RAG / dịch / sửa dấu)

Mô hìnhTierRAMKhi nào chọn
qwen3:0.6bNhẹ2 GBMáy 4 GB RAM, ưu tiên tốc độ hơn chất lượng
qwen3:1.7bNhẹ4 GBCân bằng tốc độ / chất lượng cho desktop CPU
qwen3:8b (mặc định)Tiêu chuẩn8 GBCài đặt mới — chất lượng đáng tin cậy
qwen3:14bMạnh16 GBChất lượng RAG cao nhất; cần GPU hoặc 32 GB RAM
gemma3:4b / gemma3:12bNhẹ / Mạnh6 / 16 GBLựa chọn thay thế Qwen3 với licence Gemma

Mô hình chuyên dụng (Dịch thuật)

Mô hìnhKhi nào chọnĐo
google/madlad400-3b-mtEN ↔ VN có GPUchrF 40.92 EN→VN, 260 ms/câu
facebook/m2m100_418MChỉ có CPU, hoặc 200 + ngôn ngữ khácchrF 35.73 EN→VN, 870 ms/câu

Mô hình chuyên dụng (Sửa chính tả / Khôi phục dấu)

Mô hìnhKhi nào chọn
nrl-ai/vn-spell-correction-baseSửa lỗi gõ + mất dấu + OCR + teencode trong một lượt
nrl-ai/vn-diacritic-vit5-baseChỉ khôi phục dấu, nhỏ gọn hơn
vinai/bartpho-syllable-baseBackbone âm tiết cho biến thể nano

Bộ truy xuất (RAG)

Mô hìnhVai trò
bkai-foundation-models/vietnamese-bi-encoderEmbedder mặc định
BAAI/bge-reranker-v2-m3Cross-encoder xếp hạng lại sau bi-encoder

R@1 86.3 % trên Zalo Legal QA khi kết hợp cả hai.

OCR (Hệ thống)

Công cụCài bằng
tesseract-ocr-vieapt install tesseract-ocr-vie (Linux) hoặc brew install tesseract-lang (macOS)

Cách hoạt động

Phân nguồn

  • Ollama — daemon HTTP cục bộ ở localhost:11434. Nôm gọi /api/pull qua HTTP, đọc luồng JSON từng dòng, tổng hợp tiến độ theo từng layer.
  • HuggingFace — không kéo chủ động. Khi gọi mô hình lần đầu, transformers / huggingface_hub tự tải vào cache ~/.cache/huggingface/. Nôm chỉ quét cache để hiển thị "đã có sẵn" trong giao diện.
  • Hệ thống — Tesseract không có API kéo. Nôm kiểm tra binary có tesseract trong PATH không, hiển thị trạng thái phù hợp.

Tải song song

API hỗ trợ tải tối đa 3 tác vụ cùng lúc (_MAX_CONCURRENT_PULLS). Vượt quá thì trả 429 — UI hiển thị lỗi nhẹ, không chặn các tác vụ khác đang chạy.

Tác vụ hoàn tất hoặc lỗi sẽ được giữ trong danh sách 5 phút (_PULL_RETENTION_SECONDS) rồi tự dọn để giao diện không phình.

Giới hạn đã biết

  • Chỉ kéo được mô hình Ollama qua API. Mô hình HF tự tải khi dùng — không có cách "tải trước" qua giao diện. Cách thay thế: chạy script Python kích hoạt transformers.AutoModel.from_pretrained(...) một lần.
  • Không có cách xoá HF cache từ giao diện. Dùng huggingface-cli delete-cache hoặc xoá trực tiếp ~/.cache/huggingface/hub/<repo>.
  • Trạng thái Ollama "không sẵn sàng" không chặn UI. Trang vẫn hiển thị catalog đề xuất; chỉ phần "Đã cài đặt" trống. Cài Ollama từ https://ollama.com.

Liên quan

  • Hàng đợi xử lý — kéo qua API hiển thị trên trang Hàng đợi và mô hình mặc định.