Query改写方法有子问题拆解、短语提取、回溯检索、虚拟文档等方法。见:https://blog.csdn.net/qq_43814415/article/details/138606669
llama-index的实现见:https://zhaozhiming.github.io/2024/05/13/query-rewrite-rag/
这里总结实际使用大模型改写时的优化方法:
在实际改写的时候,大模型会出现各种问题:不听指令、改写后的查询和数据库内容无关等。
解决方法:
1.few shot:从提示的角度解决,方便。给一个系统提示词,再加上几个会话,都遵循输入一个用户Query,输出一个改写后的Query。
2.RaFe:大模型的指令遵循需要大参数量级的模型,但是推理成本高。更合适的方法是训练一个小模型。一般先进行SFT,再进行离线的DPO微调。
https://arxiv.org/abs/2405.14431