原贴链接

https://preview.redd.it/x8urlj9cvwed1.png?width=1052&format=png&auto=webp&s=bf322fef5784b19741bdbdfea181909aadf8e13b

在使用任何大型语言模型(LLM)进行RAG时,决定LLM给出的答案中有多少实际上是由于输入的特定文档引起的相当棘手。LLM是否关注了1个文档?3个?或者可能一个都没有,只是查询本身?

这种来源归属是RAG中的一个难题,尚未得到妥善解决。尽管如此,我们在我们的框架RAG Me Up中增加了许多计算来源的方法 - https://github.com/AI-Commandos/RAGMeUp

其中最酷且最准确的是当你使用本地/开源LLM时,我们实际上可以从模型中检索注意力分数并使用这些分数来计算来源:

  • 从给出的答案到从数据库检索的每个文档分别支付了多少注意力?反之亦然?
  • 从查询到每个文档支付了多少注意力,反之亦然?
  • 从答案到查询支付了多少注意力,忽略文档…反之亦然。
  • 最后从查询到自身,从答案到自身(记住LLM是自回归的!)

如果我们然后将从/到一个单一文档支付的注意力除以提到的其他注意力的总和 - 我们可以很好地了解输入到LLM的每个文档的相对重要性!

在RAG Me Up中,这现在实现为一种来源方法“注意力”,你可以在任何给定数据集上使用任何OS LLM。

讨论总结

本次讨论主要聚焦于RAG(Retrieval-Augmented Generation)模型中的来源计算问题,特别是如何通过注意力机制来确定大型语言模型(LLM)在生成答案时对特定文档的关注程度。讨论中涉及了量化模型中实现这一方法的可能性,以及使用reranker方法在不同模型和框架中的应用。此外,还探讨了交叉编码器和关键词匹配在封闭模型中的应用,以及在模型训练中使用更多数值数据来改进tokenizer的建议。

主要观点

  1. 👍 注意力机制是提供来源的一种酷炫方法
    • 支持理由:通过注意力机制可以直观地了解LLM对每个文档的关注程度。
    • 反对声音:在量化模型中实现这一方法尚不明确。
  2. 🔥 使用reranker方法可以在不同模型和框架中应用
    • 正方观点:reranker方法提供了另一种有效的来源计算方式。
    • 反方观点:在处理数值数据时可能不如注意力机制有效。
  3. 💡 对于封闭模型,结合交叉编码器和关键词匹配可能是最佳选择
    • 解释:这种方法可以提高模型在封闭环境下的性能和准确性。

金句与有趣评论

  1. “😂 The attention based method for providing sources is cool.”
    • 亮点:强调了注意力机制在来源计算中的创新性和实用性。
  2. “🤔 By default we actually use quantized models, works fine for those too as long as you natively use Huggingface BitsAndBytes.”
    • 亮点:讨论了量化模型在实际应用中的可行性和效果。
  3. “👀 Cross attention rerankers don’t work much better than regular semantic search (bi-encoders) imo.”
    • 亮点:提出了对交叉注意力reranker方法效果的质疑。

情感分析

讨论的总体情感倾向较为积极,参与者对注意力机制和reranker方法表示了肯定,但也提出了在量化模型和数值数据处理方面的挑战和改进建议。主要分歧点在于不同方法在实际应用中的效果和适用性。

趋势与预测

  • 新兴话题:在模型训练中使用更多数值数据来改进tokenizer。
  • 潜在影响:改进的tokenizer可能会提高模型在处理复杂数据时的性能和准确性。