是我们团队提高 LLM 生成响应质量的首选模式。我们已经在多个项目中成功应用了该技术,包括 。在 RAG 技术中,相关且可信的文档信息存储在数据库中。在给定的提示词 (prompt) 下,系统会查询数据库,检索相关文档,并将这些文档的内容与提示词结合,从而为 LLM 提供更丰富的上下文。这不仅提高了输出质量,还大大减少了幻觉现象。虽然随着新模型的出现,LLM 的上下文窗口(即 LLM 输入的最大大小)已经显著增长,但选择最相关的文档仍然是至关重要的一步。我们的经验表明,精心构建的较小上下文有时能比广泛的大上下文产生更好的效果。并且使用大上下文也会导致速度变慢且成本更高。我们过去依赖存储在向量数据库中的向量嵌入(embedding)来识别额外的上下文,但现在我们看到了重排序和混合搜索的趋势:搜索工具如 Elasticsearch Relevance Engine 以及诸如 等利用 LLM 创建的知识图谱的方法开始被使用。在我们利用 生成式 AI 理解遗留代码库 的工作中,基于图谱的方法表现得特别出色。
是我们团队提高大语言模型(尝尝惭)生成响应质量的首选模式。我们已经在包括 在内的多个项目中成功使用了它。通过 RAG,相关且可信的文档(如 HTML 和 PDF 格式)的信息被存储在支持向量数据类型或高效文档搜索的数据库中,例如 pgvector、Qdrant 或 Elasticsearch Relevance Engine。在收到给定提示后,数据库会被调取以检索相关文档,然后这些文档会与提示结合在一起,为 LLM 提供更丰富的上下文。这样一来输出质量更高,且大大减少了幻觉现象。上下文窗口——决定了 LLM 输入的尺寸是有限的,这意味着需要选择最相关的文档。我们会通过重新排序来提升提示内容的相关性。文档如果太大而无法计算嵌入,这意味着它们必须被分割成更小的块。这通常是一个困难的问题,其中一种方法是让这些块在某种程度上重叠。
是一种结合预训练参数和非参数记忆的文本生成技术。它使你能够通过你的领域内特有的包含上下文的知识,来强化预训练模型中的现有知识。使用 RAG,你会先从非参数记忆中去检索相关文档集(一般是通过在向量数据库中的相似性搜索),再使用LLM中的参数记忆生成与检索出的文档一致的输出。我们发现 RAG 对各种需要大量知识的 NLP 任务十分有用,包括问答,总结和故事生成。