我的学习笔记

土猛的员外

【译文】FinalMLP,一个简单而强大的推荐系统两流MLP模型

介绍

世界正在向数字时代发展,在这个时代,每个人都可以通过点击距离获得几乎所有他们想要的东西。可访问性、舒适性和大量的产品为消费者带来了新的挑战。我们如何帮助他们获得个性化的选择,而不是在浩瀚的选择海洋中搜索?这就是推荐系统的用武之地。

推荐系统可以帮助组织增加交叉销售和长尾产品的销售,并通过分析客户最喜欢什么来改进决策。不仅如此,他们还可以学习过去的客户行为,给定一组产品,根据特定的客户偏好对它们进行排名。使用推荐系统的组织在竞争中领先一步,因为它们提供了增强的客户体验。

在本文中,我们将重点介绍FinalMLP,这是一个旨在提高在线广告和推荐系统中点击率(CTR)预测的新模型。通过将两个多层感知器(MLP)网络与门控和交互聚合层等高级功能集成在一起,FinalMLP优于传统的单流MLP模型和复杂的双流CTR模型。作者通过基准数据集和现实世界的在线A/B测试测试了它的有效性。

除了提供FinalMLP及其工作原理的详细视图外,我们还提供了实现和将其应用于公共数据集的演练。我们在一个图书推荐设置中测试了它的准确性,并评估了它解释预测的能力,利用作者提出的两流架构。

FinalMLP: (F)特征门控层和(IN)交互层(A)聚合层(L)在两个mlp之上

FinalMLP[1]是建立在DualMLP[2]之上的两流多层感知器(MLP)模型,通过引入两个新概念对其进行增强:

  • 基于门控的特征选择增加了两个流之间的区别,使每个流专注于从不同的特征集学习不同的模式。例如,一个流侧重于处理用户特征,而另一个流侧重于处理项目特征。
  • 多头双线性融合改进了两个流的输出如何通过建模特征交互进行组合。使用依赖于求和或串联等线性操作的传统方法可能不会发生这种情况。

    阅读全文

【译文】文本Embeddings综合指南

作为人类,我们可以阅读和理解文本(至少其中一些文本)。相反,计算机“用数字思考”,所以它们不能自动掌握单词和句子的意思。如果我们想让计算机理解自然语言,我们需要将这些信息转换成计算机可以处理的格式——数字向量。

许多年前,人们就学会了如何将文本转换为机器可理解的格式(最早的版本之一是ASCII)。这种方法有助于呈现和传输文本,但不编码单词的含义。当时,标准的搜索技术是搜索包含特定单词或N-gram的所有文档时使用的关键字搜索。

然后,几十年后,Embeddings出现了。我们可以计算单词、句子甚至图像的Embeddings。Embeddings也是数字向量,但它们可以捕捉到含义。因此,您可以使用它们进行语义搜索,甚至处理不同语言的文档。

在本文中,我想更深入地探讨Embedding主题并讨论所有细节:

  • 在Embeddings之前是什么以及它们是如何进化的,
  • 如何使用OpenAI工具计算Embeddings,
  • 如何定义句子是否彼此接近,
  • 如何可视化Embeddings,
  • 最令人兴奋的部分是如何在实践中使用Embeddings。

让我们继续了解Embeddings的演变。

阅读全文

【翻译】高级RAG 04:重排(Rerank)

Re-ranking在检索增广生成(RAG)过程中起着至关重要的作用。在朴素的RAG方法中,可以检索大量上下文,但并非所有上下文都与问题相关。重新排序允许对文档进行重新排序和过滤,将相关的文档放在最前面,从而提高RAG的有效性。

本文介绍了RAG的重新排序技术,并演示了如何使用两种方法合并重新排序功能

介绍Re-ranking

img

图1:在RAG中重排,重排的任务是评估这些上下文的相关性,并优先考虑最有可能提供准确和相关答案的上下文(红框)。图片来自作者。

如图1所示,重排的任务就像一个智能过滤器。当检索器从索引集合中检索多个上下文时,这些上下文可能与用户的查询具有不同的相关性。有些上下文可能非常相关(在图1中的红色框中突出显示),而其他上下文可能只是稍微相关,甚至不相关(在图1中的绿色和蓝色框中突出显示)。

重排的任务是评估这些上下文的相关性,并优先考虑最有可能提供准确和相关答案的上下文。这允许LLM在生成答案时优先考虑这些排名靠前的上下文,从而提高响应的准确性和质量。

简单来说,重新排名就像在开卷考试中帮助你从一堆学习材料中选择最相关的参考资料,这样你就可以更有效、更准确地回答问题。

本文介绍的重新排序方法主要分为以下两种:

阅读全文

【翻译】高级RAG 03:使用RAGAs + LlamaIndex进行RAG评估

如果您已经为实际的业务系统开发了检索增强生成(Retrieval Augmented Generation, RAG)应用程序,那么您可能会关心它的有效性。换句话说,您想要评估RAG的性能。

此外,如果您发现您现有的RAG不够有效,您可能需要验证先进的RAG改进方法的有效性。换句话说,您需要进行评估,看看这些改进方法是否有效。

在本文中,我们首先介绍了由RAGAs(检索增强生成评估)提出的RAG的评估指标,这是一个用于评估RAG管道的框架。然后,我们解释了如何使用RAGAs + LlamaIndex实现整个评估过程。

RAG评价指标

简单地说,RAG的过程包括三个主要部分:输入查询、检索上下文和LLM生成的响应。这三个要素构成了RAG过程中最重要的三位一体,并且是相互依存的。

因此,可以通过测量这些三元组之间的相关性来评估RAG的有效性,如图1所示。

img

图1:RAG的有效性可以通过测量这些三元组之间的相关性来评估。图片来自作者。

论文总共提到了3个指标:忠实度、答案相关性和上下文相关性,这些指标不需要访问人工注释的数据集或参考答案。

阅读全文

【翻译】高级RAG 02:揭秘PDF解析

对于RAG,从文档中提取信息是一个不可避免的场景。确保从源头提取内容的有效性对于提高最终输出的质量至关重要

重要的是不要低估这个过程。在实现RAG时,解析过程中的信息提取不佳可能导致对PDF文件中包含的信息的理解和利用受到限制。

pass过程在RAG中的位置如图1所示:

img

图1:通过过程在RAG中的位置(红框)。图片来自作者。

在实际工作中,非结构化数据要比结构化数据丰富得多。如果这些海量的数据不能被解析,它们的巨大价值就无法实现。

在非结构化数据中,PDF文档占多数。有效地处理PDF文档还可以**极大地帮助管理其他类型的非结构化文档

本文主要介绍解析PDF文件的方法。它提供了有效解析PDF文档和提取尽可能多的有用信息的算法和建议

解析PDF的挑战

阅读全文

检索增强生成(RAG)是通过集成来自外部知识来源的附加信息来改进大型语言模型(大语言模型)的过程。这允许大语言模型产生更精确和上下文感知的反应,同时也减轻幻觉

自2023年以来,RAG已成为基于LLM的系统中最流行的架构。许多产品的功能都严重依赖于RAG。因此,优化RAG的性能,使检索过程更快,结果更准确成为一个至关重要的问题。

本系列文章将重点介绍先进的RAG技术,以提高RAG生成的质量。

朴素RAG回顾

朴素RAG的典型工作流程如图1所示。

img

图1:朴素RAG的典型工作流程。图片来自作者。

如图1所示,RAG主要包括以下几个步骤:

  1. 索引(indexing):索引过程是离线执行的关键初始步骤。首先清理和提取原始数据,将各种文件格式(如PDF、HTML和Word)转换为标准化的纯文本。为了适应语言模型的上下文约束,这些文本被分成更小、更易于管理的块,这个过程称为分块。然后使用Embedding模型将这些块转换为向量表示。最后,创建一个索引,将这些文本块及其向量Embeddings存储为键值对,从而实现高效和可扩展的搜索功能。
  2. 检索(Retrieval):用户查询用于从外部知识来源检索相关上下文。为了实现这一点,用户查询由编码模型处理,该模型生成语义相关的Embeddings。然后,在向量数据库上进行相似性搜索,检索最接近的k个数据对象。
  3. 生成(Generation):将用户查询和检索到的附加上下文填充到prompt模板中。最后,将检索步骤得到的增强prompt输入到LLM中。

    阅读全文

TorchV的RAG实践分享(四)——开放试用

从2023年11月29日开始启动公司(杭州萌嘉网络科技有限公司),到12月中旬开始研发TorchV,第一个对外试用版本终于开始接受试用了。

欢迎企业用户试用,共同探讨AI的企业应用落地。

下面的内容主要分为:

  • TorchV Bot产品介绍;
  • 有哪些可以说道的特性;
  • 如何试用?
  • 合作方式;
  • 附录1:RAG简要说明;
  • 附录2:TorchV Bot操作说明

一、TorchV Bot介绍

1.1 TorchV Bot是什么?

TorchV Bot是一款基于大语言模型(Large Language Model,后文简称LLM)和检索增强生成(Retrieval-augmented generation,后文简称RAG)技术的人工智能问答机器人,属于TorchV最主要的三款产品(Bot、Assistant和Analyst)中一款。

阅读全文

如何使用快速压缩将RAG的Prompt成本削减80%

这是一篇翻译文章,觉得确实很有启发,所以发出来大家一起看看。

我们现在做RAG应用,对于tokens确实很敏感,能省一些是一些吧,但是这篇文章是针对英文的,不知道对于中文支持的怎么样?

我们后面也会真正用起来,会再给大家汇报一下使用效果,或者会发布我们自己的改良方法。

感谢原作者:Iulia Brezeanu,原文和引用在文末。

推理过程是使用大型语言模型时消耗资金和时间成本的因素之一,对于较长的输入,这个问题会更加凸显。下面,您可以看到模型性能与推理时间之间的关系。

img

性能得分与推理吞吐量[1]

小型模型每秒生成更多的tokens,往往在Open LLM排行榜上得分较低。增加模型参数大小可以提高性能,但会降低推理吞吐量。这使得在实际应用中部署它们变得困难[1]。
提高LLMs的速度并减少资源需求将使其能够更广泛地被个人或小型组织使用。

对于提高LLM的效率,目前大家提出了不同的解决方案来,有些人会关注模型架构或系统。然而,像ChatGPT或Claude这样的专有模型只能通过API访问,因此我们无法改变它们的内部算法。

本文我们将讨论一种简单且廉价的方法,该方法仅依赖于改变输入给模型的方式——即提示压缩。

阅读全文