MarkTechPost
92

Thủ thuật

Pixel-Native RAG: Hướng dẫn thực tế về lập chỉ mục tài liệu bằng thị giác máy tính

(giờ Việt Nam)

Tóm tắt AI

PixelRAG là hệ thống RAG tiên tiến xử lý web và PDF dưới dạng hình ảnh thay vì văn bản thuần túy, giúp tối ưu hóa khả năng truy xuất tài liệu phức tạp thông qua mô hình đa phương thức.

Bản dịch AI

Pixel-Native RAG: A Practical Guide to Visual Document Indexing

Trong hướng dẫn này, chúng ta sẽ xây dựng từ đầu một quy trình truy xuất tăng cường thế hệ (RAG) dựa trên pixel hoàn chỉnh và kiểm tra cách thức hoạt động của việc truy xuất tài liệu mà không cần dựa vào các phương pháp phân tích HTML, trích xuất văn bản hay chiến lược chia đoạn (chunking) cố định truyền thống. Chúng ta sẽ kết xuất các trang web và tài liệu PDF dưới dạng hình ảnh, chia chúng thành các ô (tiles) chồng lấp, tạo các embedding đa phương thức bằng SigLIP, CLIP hoặc backend tùy chọn Qwen3-VL, và lưu trữ các vector thu được vào chỉ mục FAISS để tìm kiếm sự tương đồng hiệu quả. Chúng ta cũng tăng cường khả năng truy xuất bằng cách sử dụng điểm số BM25 dựa trên OCR và kỹ thuật hợp nhất xếp hạng nghịch đảo (reciprocal rank fusion), tổng hợp bằng chứng ở cấp độ ô thành kết quả ở cấp độ tài liệu, đồng thời triển khai hệ thống thông qua dịch vụ tìm kiếm FastAPI. Trong quá trình này, chúng ta sẽ đánh giá chất lượng truy xuất bằng Recall@k và điểm trung bình xếp hạng nghịch đảo (mean reciprocal rank), huấn luyện một bộ điều hợp residual nhẹ với học tương phản (contrastive learning), trực quan hóa các ảnh chụp màn hình được truy xuất và tùy chọn chuyển các ô bằng chứng mạnh nhất tới mô hình ngôn ngữ thị giác để tạo câu trả lời có căn cứ.

Chúng ta xác định cấu hình toàn cục, các truy vấn đánh giá, hành vi ghi nhật ký và các thiết lập thời gian chạy cho quy trình PixelRAG. Chúng ta cài đặt các thư viện Python và các phụ thuộc hệ thống cần thiết, bao gồm Playwright, Chromium, Tesseract, FAISS và các thư viện transformer. Chúng ta cũng tạo một trình hỗ trợ thực thi bất đồng bộ cho phép các coroutine kết xuất trình duyệt chạy ổn định trong môi trường Google Colab và Jupyter.

Chúng ta tạo lớp kết xuất tài liệu để chuyển đổi các trang web, nội dung văn bản và tệp PDF thành các ô hình ảnh có cấu trúc. Chúng ta chụp các trang web bằng Playwright, làm sạch các thành phần gây nhiễu trên trang, áp dụng kỹ thuật cắt dọc chồng lấp và loại bỏ các ô trống hoặc trùng lặp. Chúng ta cũng cung cấp các phương án dự phòng bằng cách kết xuất văn bản và PDF tổng hợp để quy trình tiếp tục hoạt động khi việc kết xuất trình duyệt hoặc nội dung bên ngoài không khả dụng.

Chúng ta trích xuất văn bản OCR từ mỗi ô đã kết xuất để hỗ trợ truy xuất thưa (sparse retrieval) và tự động tạo cặp huấn luyện. Chúng ta triển khai các backend embedding SigLIP, CLIP và Qwen3-VL để đặt các truy vấn văn bản và ảnh chụp màn hình tài liệu vào một không gian vector chung. Sau đó, chúng ta xử lý các hình ảnh ô theo lô và tạo các embedding đã chuẩn hóa sẵn sàng cho việc lập chỉ mục tương đồng.

Chúng ta xây dựng lớp PixelIndex và lưu trữ các embedding ô đã chuẩn hóa bên trong chỉ mục tích vô hướng (inner-product) của FAISS. Chúng ta hỗ trợ tìm kiếm phẳng chính xác (exact flat search) cho các tập dữ liệu nhỏ hơn, tìm kiếm dựa trên IVF cho các bộ sưu tập lớn hơn, lập chỉ mục BM25 trên văn bản OCR, và lưu trữ bền vững các vector cùng siêu dữ liệu. Chúng ta cũng điều phối toàn bộ quy trình lập chỉ mục bằng cách kết xuất tài liệu, chạy OCR, tạo embedding, xây dựng chỉ mục và lưu tất cả đầu ra vào đĩa.

Chúng ta triển khai truy xuất lai bằng cách kết hợp xếp hạng vector dày (dense vector) và xếp hạng BM25 dựa trên OCR thông qua kỹ thuật hợp nhất xếp hạng nghịch đảo. Chúng ta tổng hợp các ô khớp thành kết quả ở cấp độ tài liệu trong khi vẫn giữ lại các ô bằng chứng mạnh nhất, điểm số tương đồng và các đoạn trích OCR để kiểm tra. Chúng ta cũng triển khai hệ thống truy xuất thông qua máy chủ FastAPI với các endpoint kiểm tra trạng thái và tìm kiếm chạy trên luồng Uvicorn nền.

Chúng ta đánh giá chất lượng truy xuất bằng Recall@1, Recall@3, Recall@5 và điểm trung bình xếp hạng nghịch đảo trên một benchmark nhỏ. Chúng ta khai thác các cặp truy vấn giả và ô từ nội dung OCR, huấn luyện một bộ điều hợp residual tương phản và áp dụng phép biến đổi đã học cho cả embedding truy vấn và hình ảnh. Chúng ta cũng hỗ trợ tạo câu trả lời có căn cứ với mô hình ngôn ngữ thị giác và trực quan hóa các ô ảnh chụp màn hình có thứ hạng cao nhất cùng với điểm số truy xuất của chúng.

Chúng ta kết nối mọi thành phần thông qua quy trình thực thi chính và chạy toàn bộ hướng dẫn PixelRAG từ đầu đến cuối. Chúng ta trình diễn việc tìm kiếm, đánh giá hệ thống cơ sở, so sánh truy xuất chỉ sử dụng vector dày, huấn luyện bộ điều hợp, khởi chạy API và tùy chọn tạo câu trả lời từ các hình ảnh được truy xuất. Cuối cùng, chúng ta hiển thị số liệu thống kê chỉ mục, vị trí lưu đầu ra, các tùy chọn mở rộng và các điều khiển dòng lệnh để vô hiệu hóa máy chủ, giai đoạn huấn luyện hoặc thay đổi backend embedding.

Tóm lại, chúng ta đã triển khai quy trình PixelRAG hoàn chỉnh, từ việc kết xuất tài liệu thành các ô ảnh chụp màn hình đến việc truy xuất và phục vụ các bằng chứng hình ảnh liên quan thông qua một API có thể tìm kiếm. Chúng ta đã kết hợp các embedding ngôn ngữ thị giác dày, truy xuất thưa từ OCR, hợp nhất xếp hạng nghịch đảo, lập chỉ mục FAISS, tổng hợp điểm số cấp tài liệu và huấn luyện bộ điều hợp tương phản trong một quy trình duy nhất có thể chạy được. Chúng ta cũng đo lường hệ thống bằng các benchmark truy xuất và kiểm tra kết quả trực quan, cho phép so sánh các cấu hình thay vì chỉ dựa vào các đầu ra định tính. Bằng cách làm việc trực tiếp với các pixel đã kết xuất, chúng ta bảo toàn được cấu trúc tài liệu, bảng biểu, hình ảnh, ký hiệu toán học, khối mã và bố cục trực quan mà các quy trình chỉ dựa trên văn bản truyền thống thường loại bỏ, đồng thời tạo ra một nền tảng linh hoạt có thể mở rộng cho các tài liệu riêng tư, kho dữ liệu lớn hơn, các mô hình embedding đa phương thức mạnh mẽ hơn và khả năng tạo ngôn ngữ thị giác có căn cứ hoàn toàn.

Xem TOÀN BỘ MÃ NGUỒN tại đây. Ngoài ra, hãy theo dõi chúng tôi trên Twitter và đừng quên tham gia cộng đồng 150k+ ML SubReddit của chúng tôi và đăng ký nhận Bản tin. Khoan đã! Bạn có dùng Telegram không? Bây giờ bạn cũng có thể tham gia cùng chúng tôi trên Telegram.

Bạn cần hợp tác với chúng tôi để quảng bá GitHub Repo, Hugging Face Page, Sản phẩm mới hoặc Hội thảo trực tuyến, v.v.? Hãy kết nối với chúng tôi.

Sana Hassan, thực tập sinh tư vấn tại Marktechpost và là sinh viên bằng kép tại IIT Madras, có niềm đam mê áp dụng công nghệ và AI để giải quyết các thách thức trong thế giới thực. Với sự quan tâm sâu sắc đến việc giải quyết các vấn đề thực tiễn, anh mang đến một góc nhìn mới mẻ về sự giao thoa giữa AI và các giải pháp đời sống.

RAGThị giác máy tínhXử lý tài liệuAI kỹ thuậtĐa phương thức
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ MarkTechPost. Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.