Trung tâm AI · Hướng dẫn
Triển khai model AI phục vụ người dùng
Có model rồi, làm sao cho ứng dụng và đồng nghiệp gọi được một cách an toàn? Trang này so sánh định tính bốn công cụ phổ biến, kèm lệnh khởi chạy và các lớp bảo vệ bắt buộc.
Chọn công cụ nào?
| Nhu cầu | Cân nhắc | Vì sao |
|---|---|---|
| Thử model trong vài phút trên một máy | Ollama | Cài và chạy bằng một vài lệnh, tự quản lý việc tải model. |
| Ứng dụng có nhiều người dùng đồng thời, muốn API giống OpenAI | vLLM | Tài liệu vLLM định vị là máy chủ tương thích OpenAI, thay thế trực tiếp trong ứng dụng. |
| Không có GPU lớn, hoặc muốn chạy model đã lượng tử hoá | llama.cpp | Hỗ trợ chạy trên CPU và kết hợp CPU+GPU khi model lớn hơn VRAM. |
| Hệ thống cũ đang dùng TGI | TGI (duy trì) → lên kế hoạch chuyển | TGI đã ở chế độ bảo trì theo README chính thức. |
| Công cụ | Giấy phép | API | Địa chỉ nghe mặc định |
|---|---|---|---|
| Ollama | MIT | API riêng + API tương thích OpenAI tại /v1/ | 127.0.0.1:11434 |
| vLLM | Apache-2.0 | Tương thích OpenAI (/v1/chat/completions, /v1/completions, /v1/models…) | localhost:8000 |
| llama.cpp | MIT | llama-server có API tương thích OpenAI (/v1/chat/completions…) | 127.0.0.1:8080 |
| Text Generation Inference (TGI) | Apache-2.0 | Có API riêng và API Messages tương thích OpenAI | Cổng 80 trong container |
Ollama
Bắt đầu gọn trên một máy: cài bằng một lệnh, tải và chạy model bằng một lệnh.
Phù hợp khi
- Thử nghiệm nhanh, demo nội bộ, một nhóm nhỏ dùng chung
- Người chưa quen vận hành máy chủ AI
- Có API tương thích OpenAI để nối vào ứng dụng sẵn có
Lưu ý
- Mặc định chỉ nghe ở 127.0.0.1 — muốn cho máy khác dùng, tự đặt reverse proxy và xác thực phía trước
curl -fsSL https://ollama.com/install.sh | sh
ollama -vdocker run -d --gpus=all -v ollama:/root/.ollama -p 127.0.0.1:11434:11434 --name ollama ollama/ollamaMã nguồn: github.com/ollama/ollama (mở tab mới) · Giấy phép MIT
vLLM
Máy chủ suy luận hướng tới phục vụ nhiều yêu cầu đồng thời, có API tương thích OpenAI.
Phù hợp khi
- Sản phẩm có nhiều người dùng gọi cùng lúc
- Muốn thay API OpenAI bằng model tự vận hành mà ít sửa code ứng dụng
- Cần chia model ra nhiều GPU (README vLLM liệt kê tensor, pipeline, data, expert parallelism)
Lưu ý
- Nhiều tham số cấu hình (bộ nhớ GPU, độ dài ngữ cảnh, song song hoá) — nên đọc tài liệu trước khi chạy thật
- Theo tài liệu bảo mật của vLLM, --api-key chỉ bảo vệ các đường dẫn /v1, /v2, /inference, /cohere — không được coi là lớp bảo vệ duy nhất
uv venv --python 3.12 --seed
source .venv/bin/activate
uv pip install vllm --torch-backend=autovllm serve Qwen/Qwen2.5-7B-Instruct --host 127.0.0.1 --port 8000 --api-key "$VLLM_API_KEY"curl http://localhost:8000/v1/models -H "Authorization: Bearer $VLLM_API_KEY"docker run --runtime nvidia --gpus all \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--env "HF_TOKEN=$HF_TOKEN" \
-p 127.0.0.1:8000:8000 \
--ipc=host \
vllm/vllm-openai:latest \
--model Qwen/Qwen2.5-7B-InstructMã nguồn: github.com/vllm-project/vllm (mở tab mới) · Giấy phép Apache-2.0
llama.cpp
Viết bằng C/C++, chạy model định dạng GGUF trên CPU, GPU nhỏ hoặc kết hợp CPU+GPU.
Phù hợp khi
- Máy không có GPU lớn: chạy trên CPU hoặc nạp một phần model lên GPU
- Model đã lượng tử hoá (1.5-bit đến 8-bit) để giảm bộ nhớ
- Cần một máy chủ gọn nhẹ, ít phụ thuộc, có giao diện web đi kèm
Lưu ý
- Model phải ở định dạng GGUF
- Build bản CUDA cần CUDA Toolkit trên máy
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release./build/bin/llama-server -m /srv/models/model.gguf --host 127.0.0.1 --port 8080 --api-key "$LLAMA_API_KEY"Mã nguồn: github.com/ggml-org/llama.cpp (mở tab mới) · Giấy phép MIT
Text Generation Inference (TGI)
Máy chủ suy luận của Hugging Face, chạy bằng Docker.
Phù hợp khi
- Hệ thống đang chạy TGI sẵn, cần duy trì
- Tham khảo cấu hình khi chuyển sang công cụ khác
Lưu ý
- Không nhận tính năng mới — dự án mới nên cân nhắc lựa chọn khác
model=Qwen/Qwen2.5-7B-Instruct
volume=$PWD/data
docker run --gpus all --shm-size 1g -p 127.0.0.1:8080:80 -v $volume:/data \
ghcr.io/huggingface/text-generation-inference:3.3.5 \
--model-id $modelMã nguồn: github.com/huggingface/text-generation-inference (mở tab mới) · Giấy phép Apache-2.0
Bảo mật endpoint
Máy chủ model mở ra internet mà không có xác thực thì ai cũng dùng được GPU và dữ liệu của bạn.
Không mở cổng trần ra internet
Để máy chủ model nghe ở 127.0.0.1 (mặc định của Ollama, llama-server). Với Docker, luôn publish dạng 127.0.0.1:cổng:cổng — tài liệu Docker cảnh báo publish cổng không kèm địa chỉ là mở ra bên ngoài, và ufw không chặn được cổng do Docker publish.
Đặt reverse proxy phía trước
Reverse proxy (ví dụ nginx) là cửa ngõ duy nhất nhận kết nối từ ngoài: bật HTTPS, kiểm tra xác thực, giới hạn truy cập, rồi mới chuyển yêu cầu vào model ở 127.0.0.1.
Bắt buộc xác thực
Bật API key của công cụ (vLLM --api-key, llama-server --api-key) VÀ xác thực ở reverse proxy. Tài liệu vLLM nói rõ --api-key không bảo vệ mọi đường dẫn.
Tường lửa tối thiểu
Chỉ mở cổng HTTPS của reverse proxy. Các cổng nội bộ giữa các máy (ví dụ khi chia model ra nhiều node) chỉ cho phép từ mạng tin cậy — khuyến nghị trong tài liệu bảo mật vLLM.
Giữ bí mật ngoài mã nguồn
API key, HF_TOKEN đặt qua biến môi trường hoặc trình quản lý bí mật, không ghi thẳng vào file cấu hình đưa lên Git.
# /etc/nginx/conf.d/llm.conf — ví dụ tối thiểu, cần bổ sung HTTPS
server {
listen 80;
server_name llm.example.vn;
location / {
auth_basic "LLM API";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://127.0.0.1:8000;
}
}Giám sát
Chỉ số của máy chủ model
vLLM xuất số liệu dạng Prometheus tại đường dẫn /metrics trên cùng máy chủ HTTP — thu thập bằng hệ thống giám sát nội bộ, không công khai đường dẫn này.
Chỉ số GPU
nvidia-smi và nvidia-smi dmon để xem nhanh. Muốn đưa số liệu GPU vào Prometheus/Grafana, NVIDIA có DCGM Exporter.
Nhật ký và cảnh báo
Ghi log truy cập ở reverse proxy để biết ai gọi, gọi bao nhiêu; đặt cảnh báo khi GPU đầy bộ nhớ hoặc máy chủ model ngừng phản hồi.
Hạ tầng để chạy model
- Máy chủ GPU
Thuê máy chủ có GPU để huấn luyện hoặc chạy model lâu dài.
- Private Cloud
Đám mây riêng cho doanh nghiệp cần tách biệt tài nguyên và kiểm soát dữ liệu.
- Enterprise Cloud
Máy chủ ảo cho phần ứng dụng: web, API, cơ sở dữ liệu, công cụ tự động hoá.
- Cloud GPU theo giờ (mở tab mới)
Thuê GPU theo giờ tại gpu.vnso.vn — hợp để thử nghiệm, làm đồ án, chạy việc ngắn hạn.
Chưa chắc GPU nào đủ? Dùng công cụ chọn GPU cho model AI.
Nguồn
Mọi lệnh, phiên bản và giấy phép trên trang được đối chiếu trực tiếp với các trang dưới đây. Tra cứu ngày 15/09/2026.
- Ollama — Linux (mở tab mới)Ollama · tra cứu
- Ollama — Docker (mở tab mới)Ollama · tra cứu
- Ollama — FAQ (OLLAMA_HOST, mặc định 127.0.0.1:11434) (mở tab mới)Ollama · tra cứu
- Ollama — OpenAI compatibility (mở tab mới)Ollama · tra cứu
- Docker — Port publishing and mapping (mở tab mới)Docker · tra cứu
- vLLM — GPU installation (mở tab mới)vLLM · tra cứu
- vLLM — Quickstart (vllm serve, --api-key) (mở tab mới)vLLM · tra cứu
- vLLM — Using Docker (mở tab mới)vLLM · tra cứu
- vLLM — Security (mở tab mới)vLLM · tra cứu
- vLLM — Production Metrics (/metrics) (mở tab mới)vLLM · tra cứu
- llama.cpp — README (mở tab mới)ggml-org · tra cứu
- llama.cpp — Build guide (CUDA) (mở tab mới)ggml-org · tra cứu
- llama.cpp — llama-server README (mở tab mới)ggml-org · tra cứu
- Text Generation Inference — README (thông báo chế độ bảo trì) (mở tab mới)Hugging Face · tra cứu
- Text Generation Inference — Quick Tour (mở tab mới)Hugging Face · tra cứu
- Text Generation Inference — Launcher arguments (mở tab mới)Hugging Face · tra cứu
- Docker — Packet filtering and firewalls (Docker và ufw) (mở tab mới)Docker · tra cứu
- nginx — ngx_http_proxy_module (mở tab mới)nginx · tra cứu
- nginx — ngx_http_auth_basic_module (mở tab mới)nginx · tra cứu
- nginx — Configuring HTTPS servers (mở tab mới)nginx · tra cứu
- nvidia-smi — tài liệu dòng lệnh (mở tab mới)NVIDIA · tra cứu
- DCGM Exporter (mở tab mới)NVIDIA · tra cứu
Cần tư vấn hạ tầng chạy model?
Cho VNSO biết model, số người dùng dự kiến và yêu cầu về dữ liệu để được gợi ý cấu hình máy chủ.