Xây dựng hệ thống RAG siêu nhẹ cho doanh nghiệp với pgai (PostgreSQL) và Ollama trên một VPS duy nhất
Đặt vấn đề: Thách thức khi triển khai RAG trong doanh nghiệp vừa và nhỏ
Trong kỷ nguyên trí tuệ nhân tạo (AI), Retrieval-Augmented Generation (RAG) đã trở thành một kiến trúc tiêu chuẩn giúp doanh nghiệp khai thác sức mạnh của các mô hình ngôn ngữ lớn (LLM) trên nguồn dữ liệu nội bộ bảo mật. Tuy nhiên, việc triển khai một hệ thống RAG truyền thống thường đi kèm với mức chi phí vận hành lớn và cấu trúc hạ tầng phức tạp. Doanh nghiệp thường phải quản lý riêng biệt nhiều thành phần: một cơ sở dữ liệu vector (Vector Database) độc lập, một dịch vụ API từ bên thứ ba (như OpenAI) và các đường ống luân chuyển dữ liệu (Data Pipelines) phức tạp.
Đối với các doanh nghiệp vừa và nhỏ (SMEs) hoặc các dự án đang trong giai đoạn thử nghiệm (PoC), mô hình cồng kềnh này tạo ra rào cản lớn về cả tài chính lẫn nhân lực vận hành. Câu hỏi đặt ra là: Liệu có giải pháp nào giúp tối giản hóa toàn bộ hạ tầng RAG, đưa tất cả về một nền tảng duy nhất nhưng vẫn đảm bảo hiệu năng và tính bảo mật?
Câu trả lời nằm ở sự kết hợp đột phá giữa pgai (Extension thế hệ mới của PostgreSQL) và Ollama. Giải pháp này cho phép doanh nghiệp vận hành trọn gói một hệ thống RAG siêu nhẹ, bảo mật tuyệt đối ngay trên một máy chủ ảo (VPS) duy nhất.
Kiến trúc RAG tối giản trên một VPS duy nhất
Sự tối giản của hệ thống này đến từ việc hợp nhất các thành phần cốt lõi của RAG vào hai thực thể mạnh mẽ chạy song song trên cùng một hệ điều hành Linux (Ubuntu/Debian):
- Hạ tầng dữ liệu và Logic AI (PostgreSQL + pgai): Thay vì chỉ lưu trữ dữ liệu thô, PostgreSQL giờ đây đảm nhận cả vai trò của một Vector Database (nhờ
pgvector) và bộ điều phối AI (nhờpgai). Mọi thao tác từ chia nhỏ văn bản (chunking), tạo vector nhúng (embedding) đến truy vấn ngữ cảnh đều diễn ra trực tiếp bằng câu lệnh SQL. - Hạ tầng tính toán LLM cục bộ (Ollama): Đóng vai trò là công cụ quản lý và chạy các mô hình mã nguồn mở như Llama 3, Mistral hoặc Qwen ngay trên CPU/GPU của VPS mà không cần gửi dữ liệu ra Internet.
Mô hình tích hợp này loại bỏ hoàn toàn độ trễ mạng mạng giữa các dịch vụ cloud khác nhau, đồng thời triệt tiêu rủi ro rò rỉ dữ liệu doanh nghiệp.
Sức mạnh của pgai: Đưa AI vào sâu trong PostgreSQL
Trước đây, doanh nghiệp thường sử dụng pgvector để lưu trữ và tìm kiếm vector. Tuy nhiên, quy trình từ khi có một văn bản thô đến khi biến nó thành vector và nạp vào database vẫn phải thực hiện qua mã nguồn ứng dụng (Python/Node.js). Extension pgai (được phát triển bởi Timescale) ra đời để xóa bỏ ranh giới này.
pgai mang đến khả năng tương tác trực tiếp với các mô hình AI ngay bên trong cơ sở dữ liệu thông qua các hàm SQL. Bạn có thể gọi Ollama để tạo embedding hoặc tạo câu trả lời tự động mà không cần viết một dòng code Python nào. Điều này biến PostgreSQL thành một nền tảng dữ liệu thông minh toàn diện.
Hướng dẫn triển khai chi tiết: Từ Zero đến RAG hoàn chỉnh
Bước 1: Chuẩn bị môi trường VPS và cài đặt Ollama
Để hệ thống vận hành ổn định, doanh nghiệp nên ưu tiên lựa chọn cấu hình VPS tối thiểu từ 4 vCPU, 8GB RAM và ổ cứng NVMe. Hệ điều hành khuyến nghị là Ubuntu 22.04 LTS hoặc 24.04 LTS.
Đầu tiên, tiến hành cài đặt Ollama chỉ với một câu lệnh duy nhất:
curl -fsSL [https://ollama.com/install.sh](https://ollama.com/install.sh) | shSau khi cài đặt thành công, hãy tải về mô hình nhúng (Embedding Model) và mô hình ngôn ngữ lớn (LLM) phù hợp cho doanh nghiệp của bạn. Ví dụ, chúng ta sử dụng bge-m3 cho tác vụ xử lý tiếng Việt tốt và llama3 cho tác vụ sinh văn bản:
ollama pull bge-m3
ollama pull llama3Bước 2: Cài đặt PostgreSQL và kích hoạt Extension pgai
Cách nhanh nhất để thiết lập PostgreSQL đi kèm đầy đủ các extension AI là sử dụng Docker hoặc cài đặt trực tiếp gói phân phối từ Timescale. Đảm bảo rằng cơ sở dữ liệu của bạn đã được kích hoạt cả pgvector và pgai.
Truy cập vào giao diện dòng lệnh psql và thực hiện kích hoạt các extension:
CREATE EXTENSION IF NOT EXISTS vector CASCADE;
CREATE EXTENSION IF NOT EXISTS ai CASCADE;Tiếp theo, cấu hình để pgai biết cách kết nối tới dịch vụ Ollama đang chạy cục bộ trên máy chủ:
ALTER SYSTEM SET ai.ollama_url = '[http://127.0.0.1:11434](http://127.0.0.1:11434)';
SELECT pg_reload_conf();Bước 3: Khởi tạo cấu trúc dữ liệu và tự động hóa quy trình Nhúng (Embedding)
Giả sử doanh nghiệp cần số hóa tài liệu quy trình nội bộ. Chúng ta tạo bảng lưu trữ tài liệu thô:
CREATE TABLE documents (
id SERIAL PRIMARY KEY,
title TEXT,
content TEXT
);Điểm kỳ diệu của pgai xuất hiện ở bước này. Chúng ta tạo một bảng lưu trữ các đoạn cắt dữ liệu (chunks) và các vector tương ứng. Việc tạo vector sẽ được tự động hóa hoàn toàn thông qua một hàm SQL gọi đến Ollama:
CREATE TABLE document_embeddings (
id SERIAL PRIMARY KEY,
document_id INT REFERENCES documents(id),
chunk_content TEXT,
embedding vector(1024) -- Kích thước vector của mô hình bge-m3<);Doanh nghiệp có thể viết một Trigger trong PostgreSQL để mỗi khi có một dòng tài liệu mới được chèn vào bảng documents, hệ thống sẽ tự động băm nhỏ văn bản và gọi hàm ai.ollama_embed('bge-m3', chunk_content) để cập nhật vector vào bảng document_embeddings mà không cần sự can thiệp của mã ứng dụng ek bên ngoài.
Bước 4: Thực hiện truy vấn RAG hoàn chỉnh bằng SQL
Khi người dùng đặt câu hỏi, hệ thống sẽ thực hiện truy vấn tìm kiếm ngữ cảnh tương đồng (Semantic Search), sau đó tổng hợp ngữ cảnh đó và gửi cho LLM để tạo câu trả lời cuối cùng. Toàn bộ quy trình phức tạp này giờ đây được gói gọn trong một câu lệnh truy vấn duy nhất:
WITH context AS (
SELECT chunk_content
FROM document_embeddings
ORDER BY embedding <=> ai.ollama_embed('bge-m3', 'Chính sách thai sản của công ty như thế nào?')
LIMIT 3
),
formatted_context AS (
SELECT string_agg(chunk_content, ' ') as text FROM context
)
SELECT ai.ollama_generate(
'llama3',
format('Dựa vào ngữ cảnh sau đây: %s. Hãy trả lời câu hỏi: Chính sách thai sản của công ty như thế nào?', f.text)
) FROM formatted_context f;Hệ thống tự động trích xuất các đoạn văn bản có độ tương đồng cao nhất bằng thuật toán khoảng cách Cosine (<=>), chuyển đổi thành ngữ cảnh và ra lệnh cho mô hình Llama3 xử lý trực tiếp ngay trong cơ sở dữ liệu.
Đánh giá ưu điểm và hạn chế của giải pháp
Ưu điểm vượt trội
- Tối ưu chi phí tuyệt đối: Loại bỏ hoàn toàn chi phí bản quyền Vector Database chuyên dụng và chi phí API tính theo token của các ông lớn công nghệ. Chi phí cố định hàng tháng chỉ là tiền thuê một gói VPS.
- Bảo mật dữ liệu nội bộ: Toàn bộ dữ liệu khách hàng, tài liệu mật của doanh nghiệp chỉ lưu chuyển nội bộ trong RAM/SSD của VPS, đáp ứng các tiêu chuẩn khắt khe về an toàn thông tin.
- Kiến trúc tinh gọn, dễ bảo trì: Đội ngũ kỹ sư không cần học thêm các công cụ mới. Bất kỳ ai biết viết câu lệnh SQL đều có thể tham gia vận hành và tối ưu hệ thống RAG này.
Hạn chế cần lưu ý
- Giới hạn về tài nguyên phần cứng: Khi dung lượng dữ liệu tăng lên hàng triệu bản ghi hoặc số lượng người dùng truy vấn đồng thời quá lớn, một VPS đơn lẻ sử dụng CPU sẽ gặp hiện tượng nghẽn cổ chai.
- Tốc độ xử lý: Việc chạy LLM trên CPU của VPS thông thường sẽ chậm hơn đáng kể so với việc sử dụng các cụm GPU chuyên dụng hoặc API đám mây.
Kết luận và Khuyến nghị cho Doanh nghiệp
Giải pháp xây dựng hệ thống RAG siêu nhẹ bằng pgai và Ollama trên một VPS duy nhất là một lựa chọn hoàn hảo cho các doanh nghiệp đang tìm kiếm giải pháp chuyển đổi số thông minh với ngân sách tối ưu. Nó phá vỡ rào cản về mặt công nghệ và chi phí, giúp doanh nghiệp sở hữu một "trợ lý tri thức" bảo mật trong thời gian ngắn nhất.
Để bắt đầu triển khai thực tế, doanh nghiệp nên áp dụng giải pháp này cho các bộ dữ liệu nội bộ có quy mô vừa phải như: cẩm nang nhân sự, tài liệu hướng dẫn kỹ thuật hoặc cơ sở tri thức hỗ trợ khách hàng (Knowledge Base) cho đội ngũ tổng đài. Khi nhu cầu mở rộng, cấu trúc dựa trên PostgreSQL này cũng rất dễ dàng để dịch chuyển lên các hạ tầng đám mây mạnh mẽ hơn mà không phải làm lại từ đầu.
