Câu hỏi của người dùng thường ngắn, nói kiểu khẩu ngữ, viết khác hẳn văn phong tài liệu trong kho — nên embed thẳng câu hỏi để tìm thì hay trượt. Query transformation biến câu hỏi thành dạng dễ khớp với tài liệu hơn.
HyDE — thay vì embed câu hỏi, cho model viết ra một câu trả lời giả định rồi embed chính câu trả lời đó để tìm. Lý do đơn giản: câu trả lời là văn xuôi đầy đủ, phân phối giống tài liệu hơn hẳn một câu hỏi cụt. Hiệu quả rõ khi kho toàn văn xuôi dài; gần như vô dụng với kho là code hay dữ liệu có cấu trúc, vì lúc đó "câu trả lời giả định" không giống nội dung thật.
Chia nhỏ câu hỏi (decomposition) — câu hỏi nhiều vế hoặc so sánh thì tách thành các câu con rồi truy hồi riêng từng câu. "So sánh phí của Stripe và PayPal ở mức 10 nghìn đô một tháng" phải tách làm hai, vì không tài liệu nào chứa sẵn phép so sánh đó — mỗi bên chỉ có bảng giá của mình. Đây là chỗ mà tăng K hay đổi embedding đều không cứu được, chỉ tách câu mới xong.
Biến thể hay dùng: cho model sinh vài cách diễn đạt khác nhau của cùng câu hỏi, truy hồi tất cả rồi trộn kết quả lại.
Step-back prompting — trước khi trả lời, cho model tự đặt một câu hỏi tổng quát hơn để lấy ngữ cảnh nền, rồi mới trả lời câu cụ thể. "Einstein nghiên cứu gì năm 1905?" lùi về "Einstein làm việc ở đâu và nghiên cứu lĩnh vực gì giai đoạn đó?". Hợp với câu hỏi cần kiến thức nền mà bản thân nó lại quá hẹp để tìm được gì.
Ngoài ba kỹ thuật trên còn hai thứ đơn giản mà hiệu quả: viết lại câu hỏi cho hội thoại nhiều lượt (ghép ngữ cảnh các lượt trước vào, vì "cái đó giá bao nhiêu?" tự nó không tìm được gì), và định tuyến sang đúng kho tri thức thay vì tìm trên tất cả.
Đánh đổi phải cân: mỗi phép biến đổi là thêm một lời gọi model, tức thêm 0,5–2 giây và thêm tiền. Nên chỉ dùng khi retrieval cơ bản đã đuối. Nếu hybrid search cộng rerank đã cho kết quả tốt thì thêm query transformation chỉ nhích được vài phần trăm recall — không bù nổi chi phí và độ trễ.