为了使用语义搜索减少 LLM 响应中的幻觉,您需要通过整合优先考虑事实准确性的检索机制,将模型的输出基于经过验证的数据。 语义搜索允许 LLM 在生成响应之前查询结构化知识库(如向量数据库),从而确保输出与可靠来源保持一致。 这种方法限制了模型对内部记忆模式的依赖,而这可能导致不正确或捏造的声明。
首先构建一个包含特定领域、经过验证的高质量知识库。 例如,医学聊天机器人可以使用存储为向量嵌入的研究论文或临床指南。 当用户提出问题时,系统首先在此数据库中执行语义搜索,以查找最相关的文档或段落。 FAISS、Elasticsearch 或 Pinecone 等工具可以通过比较用户查询和存储的嵌入之间的语义相似性来高效地检索数据。 然后,LLM 使用检索到的上下文来生成答案,从而大大降低了虚构事实的可能性。 例如,如果用户问“早期莱姆病的推荐治疗方法是什么?”,系统会从数据库中检索 CDC 指南,确保响应引用特定的抗生素(如强力霉素),而不是猜测。
为了有效地实现这一点,请构建 LLM 的提示结构,以明确引用检索到的数据。 例如,使用以下模板:“基于[检索到的上下文],答案是……” 这会强制模型坚持提供的信息。 您还可以过滤低置信度的搜索结果 - 如果数据库中的最佳匹配项具有较低的相似度分数,则系统可以响应“我没有足够的信息”,而不是冒着出现幻觉的风险。 此外,通过测试边缘案例来验证该方法。 如果用户问“阳光可以治愈 COVID-19 吗?”,并且知识库中没有支持证据,则语义搜索不会返回任何内容,并且 LLM 应拒绝回答。 定期更新知识库并微调检索阈值,以在新数据出现时保持准确性。