RAG là gì
Thế hệ Tăng cường Truy xuất (RAG) là một kỹ thuật cải thiện phản hồi của AI bằng cách kết hợp các mô hình ngôn ngữ với các nguồn dữ liệu bên ngoài. Thay vì chỉ dựa vào dữ liệu huấn luyện nội bộ của mô hình, các hệ thống RAG truy xuất các tài liệu liên quan để làm cơ sở cho các phản hồi dựa trên kiến thức cập nhật, chuyên biệt theo lĩnh vực hoặc độc quyền. Quy trình làm việc RAG thường dựa vào kho lưu trữ vector để quản lý và tìm kiếm dữ liệu bên ngoài này một cách hiệu quả.
Kho lưu trữ vector là gì?
Kho lưu trữ vector là một cơ sở dữ liệu đặc biệt được thiết kế để lưu trữ và tìm kiếm các vector đa chiều: biểu diễn số của văn bản, hình ảnh hoặc dữ liệu khác. Khi bạn tải lên một tài liệu, kho lưu trữ vector sẽ chia tài liệu thành các phần và chuyển đổi mỗi phần thành một vector bằng mô hình nhúng.
Bạn có thể truy vấn các vectơ này bằng cách sử dụng tìm kiếm tương đồng, xây dựng kết quả dựa trên ý nghĩa ngữ nghĩa , thay vì khớp từ khóa. Điều này biến kho lưu trữ vectơ thành nền tảng vững chắc cho RAG và các hệ thống AI khác cần truy xuất và suy luận trên các tập dữ liệu lớn.
Cách sử dụng RAG trong n8n
Chèn dữ liệu vào kho lưu trữ vector của bạn
Trước khi tác nhân của bạn có thể truy cập vào kiến thức tùy chỉnh, bạn cần tải dữ liệu đó lên kho lưu trữ vector:
1/. Thêm các nút cần thiết để lấy dữ liệu nguồn của bạn.
2/. Chèn một nút Vector Store (ví dụ: Simple Vector Store ) và chọn thao tác Insert Documents.
3/. Chọn một mô hình nhúng , mô hình này sẽ chuyển đổi văn bản của bạn thành các vector nhúng. Tham khảo phần Câu hỏi thường gặp để biết thêm thông tin về cách chọn mô hình nhúng phù hợp.
4/. Thêm nút Default Data Loader để chia nội dung thành nhiều phần. Bạn có thể sử dụng cài đặt mặc định hoặc tự định nghĩa chiến lược chia phần của riêng mình:
- Bộ tách văn bản ký tự: tách theo độ dài ký tự.
- Bộ chia văn bản ký tự đệ quy: chia theo Markdown, HTML, khối mã hoặc ký tự đơn giản một cách đệ quy (được khuyến nghị cho hầu hết các trường hợp sử dụng).
- Bộ chia văn bản mã thông báo: chia theo số lượng mã thông báo.
5/. (Tùy chọn) Thêm siêu dữ liệu vào từng phần để làm phong phú ngữ cảnh và cho phép lọc tốt hơn sau này.
Truy vấn dữ liệu của bạn
Bạn có thể truy vấn dữ liệu theo hai cách chính: sử dụng tác nhân hoặc trực tiếp thông qua một nút.
Sử dụng tác nhân
1/. Thêm tác nhân vào quy trình làm việc của bạn.
2/. Thêm kho lưu trữ vectơ làm công cụ và mô tả để giúp tác nhân hiểu khi nào nên sử dụng:
- Đặt giới hạn để xác định số lượng khối cần trả về.
- Bật Bao gồm siêu dữ liệu để cung cấp thêm ngữ cảnh cho từng phần.
3/. Thêm cùng một mô hình nhúng mà bạn đã sử dụng khi chèn dữ liệu.
Sử dụng nút trực tiếp
- Thêm nút lưu trữ vector vào canvas và chọn thao tác Lấy nhiều.
- Nhập truy vấn hoặc lời nhắc:
- Đặt giới hạn về số lượng khối cần trả về.
- Bật Bao gồm siêu dữ liệu nếu cần.
Câu hỏi thường gặp
Làm thế nào để tôi chọn được mô hình nhúng phù hợp?
Mô hình nhúng phù hợp sẽ khác nhau tùy từng trường hợp.
Nhìn chung, các mô hình nhỏ hơn (ví dụ: text-embedding-ada-002) nhanh hơn và rẻ hơn, do đó lý tưởng cho các tài liệu ngắn, đa năng hoặc quy trình làm việc RAG nhẹ. Các mô hình lớn hơn (ví dụ: text-embedding-3-large) mang lại khả năng hiểu ngữ nghĩa tốt hơn. Những mô hình này phù hợp nhất với các tài liệu dài, chủ đề phức tạp hoặc khi độ chính xác là yếu tố quan trọng.
Phương pháp tách văn bản nào là tốt nhất cho trường hợp sử dụng của tôi?
Điều này một lần nữa phụ thuộc rất nhiều vào dữ liệu của bạn:
- Các khối nhỏ (ví dụ: 200 đến 500 mã thông báo) thích hợp để truy xuất thông tin chi tiết.
- Các khối lớn có thể mang nhiều ngữ cảnh hơn nhưng có thể bị loãng hoặc nhiễu.
Việc sử dụng kích thước chồng lấp phù hợp rất quan trọng để AI hiểu được ngữ cảnh của khối. Đó cũng là lý do tại sao việc sử dụng Markdown hoặc Code Block thường có thể giúp cải thiện khối tốt hơn.
Một cách tiếp cận hay khác là thêm ngữ cảnh vào (ví dụ, về tài liệu mà đoạn mã đó đến từ đó). Nếu muốn, bạn có thể đọc thêm về điều này, hãy xem bài viết tuyệt vời này từ Anthropic.