RAG 11 - 01 - 2025

Hypothetical Question Retriever (HQR) trong RAG

Trong bài toán RAG, kỹ thuật Hypothetical Question Retriever (HQR) đã nổi lên như một giải pháp tiên tiến nhằm cải thiện khả năng tìm kiếm và sinh văn bản của các hệ thống AI. Bài viết này sẽ khám phá HQR, từ cơ chế hoạt động đến các ứng dụng tiềm năng trong thực tế. Hình dưới đây minh họa cách HQR hoạt động. Mô hình bắt đầu từ việc sinh các câu hỏi giả định từ một đoạn văn bản (chunk text), sau đó tìm kiếm thông tin dựa trên các câu hỏi đó để cung cấp kết quả tốt nhất: Hình 1. Cách HQR hoạt động. Nguồn ảnh: https://www. epsilla. com/blogs/demystifying-rag-empowered-chat-agents-aligning-question-and-document-embedding-spaces-with-hypothetical-questions  Biểu đồ mô phỏng không gian vector nơi các câu hỏi giả định (vòng tròn cam) được tạo ra từ một truy vấn gốc (điểm đỏ). Những câu hỏi này mở rộng phạm vi tìm kiếm, giúp truy xuất thêm thông tin liên quan. Các câu hỏi giả định sau khi được biểu diễn vector sẽ truy xuất thông tin từ các tài liệu liên quan (các điểm màu xanh). - Phân Tích Câu Hỏi Ban Đầu: Hệ thống phân tích câu hỏi hoặc truy vấn gốc để hiểu ý định và ngữ cảnh. Giả sử chúng ta có một đoạn văn bản (chunk text):

RAG 31 - 12 - 2024

Bạn đã hiểu về tìm kiếm ngữ nghĩa Semantic Search chưa?

Với các truy vấn đơn giản, công cụ tìm kiếm thường dễ dàng tìm ra nội dung phù hợp chỉ bằng cách đối chiếu từ khóa. Ví dụ, khi bạn tìm kiếm “giày thể thao màu trắng,” hệ thống sẽ hiển thị các sản phẩm có từ “giày thể thao” trong tiêu đề hoặc mô tả, và màu trắng trong thuộc tính. Nếu bổ sung các từ đồng nghĩa như “màu ngà” hoặc “màu kem,” bạn có thể tìm được nhiều lựa chọn hơn (Hình 1). Nhưng khi truy vấn trở nên phức tạp hơn, bạn phải tự thêm các từ đồng nghĩa, và kết quả có thể bao gồm cả các loại giày khác như giày chạy bộ hoặc giày sneaker.   Hình 1. Nếu bổ sung các từ đồng nghĩa như “màu ngà” hoặc “màu kem,” bạn có thể tìm được nhiều lựa chọn hơn Chẳng hạn, việc tìm kiếm từ “túi laptop” hoặc thậm chí “túi cho máy tính xách tay” có thể không khó với tìm kiếm từ khóa, nhưng các truy vấn như “đồ dùng để mang máy tính khi đi học” hoặc “làm sao để bảo vệ laptop khi di chuyển?” sẽ được xử lý tốt hơn nhiều bởi tìm kiếm ngữ nghĩa (Hình 2). Hình 2. Nhiều mô tả ngữ nghĩa ám chỉ cùng một đối tượng Tìm kiếm ngữ nghĩa (Semantic Search) là một phương pháp nâng cao nhằm cải thiện độ chính xác trong việc truy xuất thông tin bằng cách hiểu ý định của người dùng (User Intent) và ý nghĩa ngữ cảnh (Context) của các từ ngữ trong truy vấn. Thay vì chỉ dựa vào sự trùng khớp từ khóa như các công cụ tìm kiếm truyền thống, tìm kiếm ngữ nghĩa tập trung vào việc giải mã mối quan hệ giữa các khái niệm và ý nghĩa thực sự mà người dùng muốn truyền tải. Mục tiêu cuối cùng của bất kỳ công cụ tìm kiếm nào là giúp người dùng hoàn thành nhiệm vụ của họ một cách hiệu quả, dù đó là đọc tin tức, mua sắm quần áo hay tìm kiếm tài liệu. Để làm được điều này, hệ thống cần phải hiểu được điều mà người dùng thực sự muốn – hay còn gọi là User Intent (ý định của người dùng).

RAG 17 - 12 - 2024

Cơ sở dữ liệu Vector (Vector Database) là gì?

Cơ sở dữ liệu vector là hệ thống lưu trữ và quản lý dữ liệu dưới dạng vector – các dãy số biểu diễn dữ liệu phi cấu trúc như văn bản, hình ảnh, âm thanh và video. Mỗi vector là một biểu diễn toán học có thể nắm bắt thông tin ngữ nghĩa, nội dung hoặc đặc điểm của dữ liệu gốc. Trong thời đại AI và dữ liệu lớn, dữ liệu phi cấu trúc như hình ảnh, video, đoạn hội thoại hoặc âm thanh chiếm phần lớn thông tin trên Internet và trong đời sống. Tuy nhiên, dữ liệu này rất khó xử lý và tìm kiếm bằng các phương pháp truyền thống vì chúng không có cấu trúc rõ ràng. Chuyển đổi dữ liệu phi cấu trúc thành các vector số thông qua mô hình học máy như mạng nơ-ron hoặc các mô hình ngôn ngữ lớn (LLM). Dưới đây là quy trình phổ biến cho một cơ sở dữ liệu vector: Nguồn ảnh: Bài viết gốc. Truy vấn (Querying): Cơ sở dữ liệu vector so sánh vector truy vấn với các vector trong tập dữ liệu bằng cách sử dụng tìm kiếm tương đồng dựa trên một thước đo do người dùng xác định trước. Điều này giúp tìm ra các vector gần nhất với vector truy vấn, tối đa hóa độ tương đồng.

RAG 08 - 11 - 2024

Baseline RAG: Tìm Hiểu Về Basic Retriever

  Để tạo ra một hệ thống RAG hiệu quả, tài liệu lớn nên được chia thành các đoạn nhỏ hơn trước khi tạo embedding. Embedding là một dạng biểu diễn ngữ nghĩa của văn bản, giúp hệ thống hiểu được ý nghĩa tổng quát của văn bản. Khi văn bản quá dài hoặc chứa nhiều chủ đề khác nhau, embedding của nó sẽ trở nên kém chính xác và không giữ được giá trị thông tin cốt lõi. Vì vậy, chia nhỏ tài liệu giúp embedding trở nên sắc nét và chính xác hơn, từ đó cải thiện hiệu quả truy xuất thông tin. Chia nhỏ tài liệu lớn: Trước tiên, cần phải chia tài liệu lớn thành các đoạn nhỏ hơn để chuẩn bị cho việc tạo embedding. Điều này giúp tối ưu hóa độ chính xác của embedding. Tạo embedding cho câu hỏi của người dùng: Khi người dùng đặt câu hỏi, câu hỏi đó sẽ được đưa vào hệ thống và chuyển thành embedding để so sánh với các đoạn embedding đã có.  

Bài Đọc Nhiều Nhất

Tổng hợp các mô hình CNN nổi tiếng - Phần 1

Tổng quan ROS cơ bản

Hướng dẫn cài đặt và thực hành Spring Boot (Phần 1)