# Chạy embedding và RAG trên GPU châu Âu: thiết kế kiến trúc hợp lý

URL: https://cloudj.net/vi/blog/rag-embeddings-gpu-europe
Published: 2026-11-12 · Updated: 2026-11-12

> Cách chạy embedding và RAG trên GPU châu Âu: tách embedding, reranker và LLM, đặt cơ sở dữ liệu vector trên VPS CPU và chỉ lọc GPU trong các nước EU bạn chọn.

RAG (truy xuất kết hợp sinh văn bản) trông như một hệ thống duy nhất, nhưng thực ra gồm bốn phần việc với nhu cầu phần cứng rất khác nhau. Dồn hết lên một GPU lớn là phí tiền; rải chúng ra các nước ngẫu nhiên lại có thể phá vỡ cam kết bạn đã đưa ra về nơi lưu dữ liệu. Bài này hướng dẫn cách chạy embedding và RAG trên GPU châu Âu: phần nào cần GPU, phần nào chạy tốt trên VPS CPU, cách giữ mọi thứ trong các nước châu Âu bạn đã chọn, và cách đứng vững khi một máy GPU biến mất.

Chủ đề này rất gần với các công ty phần mềm Việt Nam làm trợ lý tra cứu tài liệu, chatbot nội bộ hay hệ thống hỏi đáp hợp đồng cho khách hàng châu Âu. Cách chọn nước châu Âu nói chung có trong [hướng dẫn thuê GPU châu Âu](https://cloudj.net/vi/blog/gpu-cloud-europe-guide).

## Bốn phần việc trong một hệ thống RAG

| Phần việc | Làm gì | Có cần GPU? |
|---|---|---|
| Nạp và cắt tài liệu | Đọc tài liệu, chia thành các đoạn nhỏ | Không, việc của CPU |
| Embedding | Biến đoạn văn và câu hỏi thành vector | Có ích khi nạp hàng loạt; model nhỏ có thể chạy CPU cho câu hỏi |
| Tìm kiếm vector | Tìm các đoạn gần câu hỏi nhất | Không, một cơ sở dữ liệu chạy CPU (ví dụ PostgreSQL với pgvector) |
| Rerank và sinh câu trả lời | Sắp xếp lại kết quả, viết câu trả lời bằng LLM | Có, nhất là LLM |

Kết luận thực tế: GPU dành cho model embedding lúc nạp tài liệu hàng loạt, cho reranker và cho LLM. Mọi thứ có trạng thái (tài liệu, vector, metadata, người dùng) phải nằm trên một máy chủ ổn định, không biến mất. Bài [instance GPU hay VPS cho AI](https://cloudj.net/vi/blog/gpu-instance-vs-vps-for-ai) giải thích cách chia này ở góc độ tổng quát hơn.

## Kiến trúc tham khảo ở châu Âu

- **VPS ở Frankfurt hoặc Amsterdam:** API, xác thực, worker nạp tài liệu, PostgreSQL với pgvector, kho tài liệu và bản sao lưu. Một [VPS Frankfurt](https://cloudj.net/vi/cloud-servers/germany) hoặc [VPS Amsterdam](https://cloudj.net/vi/cloud-servers/netherlands) của Cloudj giữ toàn bộ dữ liệu lưu trữ trong một nước xác định.
- **Instance GPU ở một nước EU bạn cho phép:** server embedding, reranker và server LLM, đều chỉ lắng nghe trên localhost. Máy này không giữ dữ liệu nào mà bạn không dựng lại được; tài liệu chỉ đi qua trong lúc được xử lý.
- **Kết nối giữa hai bên:** đường hầm SSH từ VPS tới GPU, để các port model không bao giờ mở ra ngoài.

Bài [cài PostgreSQL trên VPS](https://cloudj.net/vi/blog/postgresql-vps-setup) hướng dẫn phần cơ sở dữ liệu; bạn chỉ cần thêm extension pgvector để tìm kiếm vector.

## Giữ dữ liệu trong các nước bạn chọn

Vị trí GPU trên Cloudj là bộ lọc quốc gia áp lên danh sách máy chủ đang có. Nếu chỉ nhập mã các nước EU, mọi máy bạn triển khai được đều chạy ở một trong các nước đó:

```text
DE, NL, FR
```

Thêm các mã khác mà quy định cho phép (`BE`, `AT`, `SE`, `PL`...) để có thêm lựa chọn. Kết quả chỉ hiện quốc gia, không có thành phố.

Hãy rõ ràng về những gì bạn nhận được: quyền kiểm soát dữ liệu đi qua những nước nào. Bộ lọc không làm hệ thống "hợp chuẩn". Cloudj không khẳng định máy chủ đáp ứng GDPR hay luật dữ liệu nào, nên bạn cần tự kiểm tra nghĩa vụ của mình và của khách hàng. Bài [vị trí dữ liệu khi thuê GPU ở EU](https://cloudj.net/vi/blog/eu-data-location-gpu-cloud) đi sâu vào cách suy nghĩ này. Vài thói quen nên có: để log trên VPS chứ không trên GPU; không lưu tài liệu trên ổ GPU lâu hơn cần thiết; giữ bản sao lưu trong cùng các nước. Và đừng tiện tay kéo bộ tài liệu của khách về laptop ở Việt Nam để thử nghiệm.

## Chọn cỡ GPU

Model embedding và reranker nhỏ hơn LLM nhiều; phần lớn chỉ cần vài GB VRAM. LLM mới là thứ quyết định card:

- [L4](https://cloudj.net/vi/gpu-cloud/l4), lớp 24 GB: card datacenter tiết kiệm điện cho embedding, rerank và một LLM nhỏ đã lượng tử hóa (cỡ 7B đến 8B). Cần cấp tài khoản cao hơn.
- [RTX 4090](https://cloudj.net/vi/gpu-cloud/rtx-4090), 24 GB: sinh văn bản nhanh hơn, cùng dung lượng bộ nhớ, thuê được ngay ở cấp tài khoản khởi đầu.
- [L40S](https://cloudj.net/vi/gpu-cloud/l40s), lớp 48 GB: đủ chỗ cho LLM lớn hơn (khoảng 30B ở 4-bit) chạy cùng model embedding và reranker.

Mở [trang triển khai L4](https://app.cloudj.net/deploy/gpu?model=l4), nhập các mã EU của bạn và xem đang có gì. Nếu chưa có L4, hãy tìm theo VRAM tối thiểu. Hàng thay đổi trong ngày; hãy kiểm tra trên console. Giá "từ" có trên [GPU cloud](https://cloudj.net/vi/gpu-cloud).

## Phục vụ các model

Triển khai bằng template Ubuntu + CUDA và cài các server qua SSH. Một cách bố trí thường gặp trên một GPU: embedding ở port 8081, reranker ở 8082 và LLM ở 8000, tất cả chỉ lắng nghe trên 127.0.0.1:

```bash
ssh -p <port> root@<host>
nvidia-smi
```

[Text Embeddings Inference](https://huggingface.co/docs/text-embeddings-inference) của Hugging Face phục vụ được model embedding và reranker; vLLM hoặc server tương tự lo phần LLM. Nếu tài liệu trộn nhiều ngôn ngữ (ví dụ tiếng Đức, tiếng Anh và tiếng Việt), hãy chọn model embedding đa ngôn ngữ, và dùng cùng một model cho cả lúc nạp lẫn lúc hỏi; đổi model nghĩa là phải embedding lại toàn bộ.

Trên VPS, mở một đường hầm chuyển tiếp cả ba port:

```bash
ssh -N -L 8081:127.0.0.1:8081 -L 8082:127.0.0.1:8082 -L 8000:127.0.0.1:8000 -p <port> root@<host>
```

Chạy nó dưới systemd để tự khởi động lại.

## Chuẩn bị cho việc đổi máy GPU

Mỗi máy GPU là host độc lập, không có SLA phần cứng và có ngày "available until". Hãy thiết kế sẵn cho việc thay máy:

1. Giữ một script cài các server và tải model.
2. Không lưu gì không thể thay thế trên GPU; vector và tài liệu nằm trên VPS.
3. Kiểm tra sức khỏe từng dịch vụ từ VPS và cảnh báo khi lỗi.
4. Khi máy mất, triển khai máy mới trong các mã EU của bạn, chạy script và trỏ lại đường hầm.

Vì embedding đã lưu trên VPS, GPU mới chỉ cần đúng file model là phục vụ câu hỏi tiếp được. Tiền GPU trừ theo phút từ số dư, nạp bằng chuyển khoản VND.

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

### Có thể chạy cơ sở dữ liệu vector trên instance GPU không?

Làm được, nhưng không nên. Máy GPU có thể biến mất, kéo theo ổ đĩa. Hãy để cơ sở dữ liệu trên VPS.

### Lọc theo mã EU có giúp hệ thống RAG của tôi đáp ứng GDPR không?

Không bộ lọc nào đưa ra được cam kết đó. Nó chỉ giữ máy trong các nước bạn chọn; nghĩa vụ pháp lý bạn cần tự kiểm tra.

### Embedding có cần GPU không?

Khi nạp hàng loạt nhiều tài liệu, GPU nhanh hơn rất nhiều. Khi embedding từng câu hỏi với model nhỏ, CPU có thể là đủ.

### Nên bắt đầu với card nào?

RTX 4090 ở cấp tài khoản khởi đầu, hoặc L4 nếu tài khoản đã mở GPU datacenter. Chuyển lên card lớp 48 GB khi cần LLM lớn hơn.

## Dựng hệ thống ở châu Âu

Mở [trang triển khai L4](https://app.cloudj.net/deploy/gpu?model=l4), nhập các mã EU bạn cho phép và xem đang có máy nào. So sánh giá trực tiếp trên [GPU cloud](https://cloudj.net/vi/gpu-cloud).
