VECTIQ
← Tất cả bài viết
Ghi chép kỹ thuật · Generative AI & Data

Chẩn đoán và khắc phục chứng 'Mất trí nhớ' trong kiến trúc Local RAG

Phân tích nguyên nhân AI mất context giữa các câu hỏi liên tiếp và cách thiết kế bộ nhớ hội thoại hiệu quả cho chatbot.

bởi Vectiq Engineering · 2026-08-10 · 5 phút đọc
Chẩn đoán và khắc phục chứng 'Mất trí nhớ' trong kiến trúc Local RAG

Quá trình xây dựng một hệ thống Retrieval-Augmented Generation (RAG) thường bắt đầu rất suôn sẻ ở những câu hỏi (turn) đầu tiên. Tuy nhiên, khi cuộc hội thoại kéo dài, một hiện tượng phổ biến xảy ra: AI bắt đầu "quên" những gì người dùng vừa nói ở vài câu trước đó.

Vấn đề: Giới hạn Context Window và Quản lý Lịch sử

Lỗi lớn nhất trong các script chạy Local RAG là việc nhồi nhét toàn bộ lịch sử trò chuyện (chat history) cùng với các tài liệu truy xuất (retrieved chunks) vào chung một prompt. Khi số lượng token vượt quá giới hạn của model cục bộ, các thông tin quan trọng nhất ở phần đầu hoặc phần giữa cuộc hội thoại sẽ bị cắt cụt một cách thô bạo.

Phương pháp tiếp cận

Thay vì truyền mảng lịch sử thô, chúng tôi áp dụng cơ chế Context Condensation (Cô đọng ngữ cảnh).

  1. Standalone Question Generator: Thay vì lấy ngay câu hỏi mới nhất của người dùng đi tìm kiếm trong Vector Store, hệ thống sử dụng một LLM phụ để viết lại câu hỏi đó dựa trên lịch sử trò chuyện.
  2. Ví dụ: Nếu User hỏi "Nó có thể xử lý bao nhiêu FPS?", hệ thống sẽ dịch thành "Camera AI có thể xử lý bao nhiêu FPS trong điều kiện thiếu sáng?".
  3. Sliding Window với Summary: Lịch sử hội thoại chỉ giữ lại nguyên văn 3 turn gần nhất. Các turn cũ hơn sẽ được tóm tắt (summarize) thành một đoạn văn ngắn và đẩy lên đầu prompt để giữ background context.

Kiến trúc này giúp duy trì khả năng suy luận logic qua nhiều câu hỏi liên tiếp mà không làm tràn bộ nhớ của các hệ thống triển khai cục bộ.

LLMsLocal RAGMulti-turn ChatChatbot