自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wshzd的博客

专注于机器学习和深度学习

  • 博客(250)
  • 资源 (2)
  • 收藏
  • 关注

原创 LLM之RAG实战(三十七)| 高级RAG从理论到LlamaIndex实现

alpha参数指定矢量搜索和基于关键字的搜索之间的权重,其中alpha=0表示基于关键字的检索,alpha=1表示纯矢量搜索。在概述了高级RAG技术(可分为预检索、检索和后检索技术)之后,本文使用LlamaIndex进行编排,实现了一个简单而高级的RAG管道。由于整个文档太大,无法放入LLM的上下文窗口,因此需要将其划分为较小的文本块,这些文本块在LlamaIndex中称为Nodes。检索阶段旨在识别最相关的上下文。除了矢量搜索之外,还有其他检索技术,例如混合搜索,是指将矢量搜索与基于关键字的搜索相结合。

2024-04-01 14:19:31 1121

原创 LLM之RAG实战(三十六)| 使用LangChain实现多模态RAG

但是,这个模型不足以解释图像中的信息,例如,在某些情况下,图像中存在与数字相关的信息,或者数据库中的图像类型相似,嵌入无法从数据库中检索相关图像。对于split_image_text_types函数,使用CLIP嵌入获取相关图像后,还需要将图像转换为base64格式,因为GPT-4-Vision的输入是base64格式。如果使用多模态RAG,这两种方法是合适的。针对上述情况,我们可以使用多模态大模型来解决,比如GPT-4-Vision,它有非常好的图像理解能力,可以理解图像内部发生的事情。

2024-03-29 14:17:04 1119

原创 LLM之RAG实战(三十五)| 使用LangChain的3种query扩展来优化RAG

RAG有时无法从矢量数据库中检索到正确的文档。比如我们问如下问题:从1980年到1990年,国际象棋的规则是什么?RAG在矢量数据库中进行相似性搜索,来查询与国际象棋规则问题相关的相关文档。然而,在某些情况下,我们的向量数据库没有存储完整的信息,例如,我们的矢量数据库没有存储不同年份的规则。这样,数据库可以返回与国际象棋规则相关但与特定问题不直接相关的文档。针对上述情况,我们可以采用查询扩展技术,该技术可以对用户的原始查询生成更全面、信息更丰富的搜索。这个新生成的查询将从矢量数据库中获取更多相关文档。

2024-03-28 23:48:33 1177

原创 LLM之RAG实战(三十四)| 使用LangChain的三个函数来优化RAG

在某些情况下,我们的向量数据库中的每个块中的令牌数量都很高,并且每个块有时会包含一些不相关的信息。然而,基本RAG有时候并不总是有很好的效果的,有可能从向量数据库中检索出与用户提示不相关的文档,导致LLM无法总结出正确的答案。也许,我们的块很短,矢量数据库存储了很多块。Langchain提供了对应的函数来解决上述问题,该函数可以帮助重新排序相关文档,这样可以确保相关文档位于文档列表的开头和末尾。当LLM对这么多文档提出问题时,在某些情况下,LLM无法理解位于检索文档中间的文档的上下文。

2024-03-28 11:25:08 422

原创 LLM漫谈(五)| 从q star视角解密OpenAI 2027年实现AGI计划

Q*的下一阶段,最初是GPT-6,但后来更名为GPT-7(最初于2026年发布),但因埃隆·马斯克最近的诉讼而被搁置,Q*2025(GPT-8)计划于2027年发布,实现完全AGI。尽管GPT-4发布于2023年3月,略晚于Igor Baikov声称的12月至2月窗口期(我认为这是OpenAI故意抹黑Igor的泄露),但Bing ChatGPT(基于GPT-4)实际上是在2023年2月发布的,这清楚地表明Igor声称的窗口期是有效的,很可能在最后一分钟被惊慌失措的OpenAI更改了。

2024-03-22 12:37:33 1053

原创 LLM之RAG实战(三十三)| 探索RAG在Table的应用

(m)首先,应用类别(a)到(d)中的一种方法,将文档中的所有表格解析为图像形式,然后直接将所有表格图像和用户的查询发送到多模态LLM(如GPT-4V等)并返回答案。这些框架可以对整个文档进行全面的解析,并从解析的结果中提取与表相关的内容。(n)使用(m)提取的图像格式的表格,然后使用OCR模型识别表格中的所有文本,然后直接将表格中的全部文本和用户的查询发送到LLM并直接返回答案。这种方法的优点是,它可以有效地解析表,同时综合考虑表摘要和表之间的关系,而且还不需要多模型LLM的需求,从而节省了成本。

2024-03-20 13:53:09 1177

原创 LLM之RAG实战(三十二)| 使用RAGAs和LlamaIndex评估RAG

第二个和第三个问题的上下文精度为0,表明检索到的上下文中的相关上下文没有排在最前面。此外,忠实度得分并不低,这表明答案主要是从上下文中得出或总结的,可以得出结论,答案不是由于LLM的幻觉而产生的。在RAGAs中,如果您想使用另一个LLM(如Gemini)来使用LlamaIndex进行评估,即使在调试了RAGAs的源代码后,我也没有在版本0.0.22中找到任何有用的方法。此外,我们发现,尽管我们的上下文相关性得分较低,gpt-3.5-turb-16k(RAGA的默认模型)仍然能够从中推断出答案。

2024-03-19 14:47:20 1075

原创 LLM之RAG实战(三十一)| 探索RAG重排序

当检索器从索引集合中检索多个上下文时,这些上下文与用户的查询的相关性可能不同,一些上下文可能非常相关(在图1中用红框突出显示),而另一些上下文可能只有轻微的相关甚至不相关(在图1中用绿框和蓝框高亮显示)。重新排序的任务是评估这些上下文的相关性,并优先考虑最有可能提供准确和相关答案的上下文,让LLM在生成答案时优先考虑这些排名靠前的上下文,从而提高响应的准确性和质量。提示LLM重新排序的方法的成本是较低的,以下是使用RankGPT[4]的演示,该演示已集成到LlamaIndex[5]中。

2024-03-17 12:09:23 1131

原创 LLM之RAG理论(十)| RAT:一种协同CoT和RAG的 AI 提示策略,助力解决长任务推理和生成

特别是,所提出的方法——检索增强的思想(RAT):利用检索到的与任务查询相关的信息逐一修正每个思考步骤,在生成初始零样本CoT之后,将RAT应用于GPT-3.5、GPT-4和CodeLLaMA-7b大大提高了它们在各种长期范围内的性能生成任务;其次,设计一种渐进的方法,而不是用完整的CoT进行检索和修改并立即产生最终响应,其中LLM在CoT(一系列子任务)之后逐步生成响应,并且只有当前思维步骤将根据任务提示检索到的信息、当前和过去的CoT进行修改。可以简单地用作最后模型的响应,例如具体任务规划。

2024-03-16 15:30:58 867

原创 LLM之RAG实战(三十)| 探索RAG语义分块策略

proposition被定义为文本中的原子表达式,每个命题都封装了一个不同的事实,并以简洁、自包含的自然语言格式呈现。然后,将多个连续句子的这些向量表示输入到Bi-LSTM(图4(b))或另一个BERT(图4),以预测每个句子是否是文本分割边界。最常用的分块方法是基于规则的,采用固定的块大小或相邻块的重叠等技术。然而,这种方法依赖于LLM,这是相对昂贵的。然而,在实际应用中,由于严格的预定义规则(块大小或重叠部分的大小),基于规则的分块方法很容易导致检索上下文不完整或包含噪声的块大小过大等问题。

2024-03-15 16:29:52 857

原创 LLM之RAG实战(二十九)| 探索RAG PDF解析

换句话说,它将文档的每一行都视为一个由换行符“\n”分隔的序列,这会妨碍段落或表格的准确识别。解析PDF文档的挑战在于准确提取整个页面的布局,并将包括表格、标题、段落和图像在内的内容翻译成文档的文本表示。例如,如果用户想知道图9中2.1节的主要内容,通过准确提取2.1节的标题,并将其与相关内容一起作为上下文发送给LLM,最终答案的准确性将显著提高。否则,它将被视为右列的一部分。对于RAG来说,从文档中提取信息是一种不可避免的场景,确保从源文件中提取出有效的内容对于提高最终输出的质量至关重要。

2024-03-13 17:48:56 1350

原创 LLM之RAG实战(二十八)| 探索RAG query重写

2.将生成的假设文档输入编码器,将其映射到密集向量f(dk),编码器具有过滤功能,过滤掉假设文档中的噪声。在密集检索中,新查询表示为q+,是原始查询(q)和伪文档(d')的简单级联,由[SEP]分隔:q+=concat(q,[SEP],d')。我们可以看到,通过将原始查询“后退”到更抽象的问题,并使用抽象查询和原始查询进行检索,LLM提高了其遵循正确推理路径找到解决方案的能力。此外,还有一些方法,如查询路由、将查询分解为多个子问题等,它们不属于查询重写,但它们是预检索方法,这些方法将来将有机会引入。

2024-03-08 15:53:16 927

原创 LLM(十一)| Claude 3:Anthropic发布最新超越GPT-4大模型

Claude 3 Opus不仅实现了近乎完美的回忆,准确率超过99%,而且在某些情况下,它甚至可以识别出评估本身的局限性,即“针”句子似乎是由人类人工插入到原始文本中的。如下所示,Claude 3模型显示出对请求的更细致理解,识别出真正的危害,并更少地拒绝无害的提示。我们的红团队评估[8](根据我们的白宫承诺和2023年美国行政命令进行)得出的结论是,这些模型目前存在的灾难性风险可能性可以忽略不计。Claude 3 Opus是我们最智能的模型,在高度复杂的任务中具有市场上最好的性能。

2024-03-05 17:47:13 1207

原创 LLM之RAG实战(二十七)| 如何评估RAG系统

总之,“人在回路反馈”不仅仅是收集人类的见解,而是创建一个动态的、适应性强的人工智能,可以微调其行为,更好地为用户服务。这种迭代过程确保了我们的RAG+LLM应用程序保持在最前沿,不仅提供了答案,而且提供了上下文感知的、微妙的响应,反映了对用户需求的真正理解。通过自动化流程,您可以确保您的评估不仅是彻底的,而且是高效的迭代,从而实现快速的优化和细化。例如,如果您的团队正在开发一个内部LLM,该LLM是针对您的特定领域和数据进行训练的,那么该过程通常需要开发人员、Prompt工程师和数据科学家的合作。

2024-02-21 00:57:37 1760

原创 LLM之RAG实战(二十六)| 使用llamaindex-cli无需一行代码即可实现RAG

您可以自定义llamaindex-cli以使用任何LLM模型,甚至是像Mixtral 8x7b到Ollama这样的本地模型,并且您可以构建更高级的查询和检索技术。更多详细资料,请查看文档[1]。现在,需要将工具指向一些可以摄取到本地矢量数据库中的本地文件。你甚至可以在你的终端内打开聊天界面!只需运行llamaindex-cli-rag-chat,并开始询问有关您获取的文件的问题。

2024-02-10 16:40:02 458

原创 LLM之LangChain(七)| 使用LangChain,LangSmith实现Prompt工程ToT

其次,为了建立确保正确性,我们人类的一种做法是在解决问题的每一步都进行测试,这确保了最终解决方案的可信度。本文统计了自回归语言模型在基于以前的token生成新token时,不会显式执行逻辑正确性检查,这限制了LLM纠正自身错误的能力。这是基于LLM的自治代理的典型情况,其中动态创建链并按顺序执行,同时多次轮询LLM。会话和状态历史记录(上下文)存储在内存模块中,这使代理可以参考思维过程的先前部分,并可能从历史记忆采取不同的路线。为了验证ToT技术的有效性,本文实现了一个基于ToT的代理来解决数独难题。

2024-02-10 16:08:53 1364

原创 LLM之RAG实战(二十五)| 使用LlamaIndex和BM25重排序实践

通过将BM25等最先进的排名算法与先进的重新排序技术和GPT-4或Mistral等尖端语言模型相集成,advanced RAG为处理复杂的查询任务提供了一个强大而灵活的解决方案。无论是在提高搜索引擎的准确性、提高聊天机器人中响应的相关性,还是在推进知识系统的前沿领域,高级RAG证明了人工智能驱动的语言理解和信息处理的不断发展和成熟。使用本地LLM和本地嵌入模型(Mistral)修改代码,在上面的代码中,只需注释现有的OpenAI GPT-4 LLM并使用下面的代码。之类的标准来调整排序。

2024-02-10 14:56:15 895

原创 LLM之RAG实战(二十四)| LlamaIndex高级检索(三):句子窗口检索

上面的图片,相关的句子是红色的,然后中间的相关句子以及句子上面和下面窗口句子一起传递给LLM以执行其响应(RAG的生成部分)。我们可以控制相关句子周围的句子窗口的大小。当句子窗口很小时,LLM将生成的响应将具有较低的groundedness,因为上下文没有向LLM提供足够的信息——因此,它开始使用从训练数据中获得的现有知识,我们称之为幻觉。相反,如果窗口大小太大,则由于LLM被提供了大量信息作为其最终响应的基础,因此,它最终会偏离所提供的信息,因为它太大,无法用其中的所有这些信息组成响应。

2024-02-05 21:50:12 1070

原创 LLM之RAG实战(二十三)| LlamaIndex高级检索(二):父文档检索

在查询期间,我们对较小的块执行搜索,并将他们的父块作为上下文传递给LLM。首先检索与回答查询最相关的较小数据段,然后使用它们相关的父标识符访问并返回将作为上下文传递给LLM(大型语言模型)的较大父数据块。文件夹中,这样做的目的是为了保留我们从上一篇文章中构建的基本RAG管道的度量,方便进行性能比较,如果您不想这样做,则不必这样做。在上一篇文章中,我们介绍了基本RAG的构建,也探讨了RAG管道中从小到大检索技术的两种主要技术:父文档检索和句子窗口检索。您可以使用下面的代码来评估管道的性能。

2024-02-05 18:43:32 991

原创 LLM之RAG实战(二十二)| LlamaIndex高级检索(一)构建完整基本RAG框架(包括RAG评估)

解决这一问题的一种方法是让较小的块与父块(本例中为原始的100字块)相关,这样LLM将有更多的上下文来作为答案的基础,而不是试图生成自己的幻觉信息。换言之,10个单词的每个较小组块将与100个单词的较大组块相关,并且当给定的较小组块(10个单词组块)被识别为与回答用户问题相关时,父组块(100个单词组组块)将被检索并被发送到LLM。在传统的RAG应用程序中,我们使用相同的数据块来执行搜索检索,并将相同的块传递给LLM,以使用它来合成或生成答案。可以注意到的一件事是,文档在一个块中,让我们将其拆分为多个块。

2024-02-05 16:40:25 1571

原创 LLM之LangChain(六)| 使用LangGraph创建一个超级AI Agent

Langgraph的特点是什么,以及如何在Langgraph中构建一个代理执行器,我们将探讨Langgraph中的聊天代理执行器以及如何在人类循环和聊天中修改Langgraph中的聊天agent执行器。这些将帮助我们利用现有的LangChain代理类,为我们的代理提供OpenAI的语言模型,并使用Tavily Python包实现搜索功能。通过观察LangSmith中的过程可以证实这一点,在LangSmith中,我们可以看到工具是第一个被调用的东西,然后是最后的语言模型调用。这是我们的人工验证步骤。

2024-02-04 14:57:27 1292

原创 LLM之RAG理论(九)| 如何在LLM应用程序中提高RAG结果:从基础到高级

Small2big、递归或上下文感知检索是一种最初检索较小的数据块,由于更具体和更详细,这些数据块更有可能与查询匹配,然后继续检索父文档或围绕这些较小数据块的较大文本块,以包括更多上下文的技术。如果您的聊天机器人或代理可以处理多个下游任务和不同格式的用户查询,您可以考虑使用查询路由,在该路由中,您可以将查询动态路由到不同的RAG进程。这是我自己的一个例子。例如,如果您的文本数据包含许多语义非常相似的块,但仅在某些关键字上有所不同,或者如果您的文字数据包含太多通用文字,则最好使用精确的关键字匹配进行搜索。

2024-02-03 19:50:58 749

原创 LLM之Agent(十一)| 多智能体框架CrewAI与AutoGen相比

你肯定不会在CrewAI中看到智能体之间的任何生动互动,比如一个智能体纠正另一个智能体,一个智能体的多次讲话。因此,CrewAI优先考虑精简和可靠的方法,在一个强大的群聊中,每个人工智能代理都准确地知道该做什么以及他们的目标。在我看来,另一个也是最关键的优势是它蓬勃发展的工具和支持丰富的资源,可以用来构建代理和任务,这源于它是基于LangChain设计的智能体。基于LLM构建的Agent中有一个明显的现象就是多智能体体系结构的表现要超越单智能体,即使单智能体使用无可挑剔的提示策略。即可无缝地集成人工输入。

2024-02-03 11:06:57 1277

原创 LLM之Agent(十)| 本地安装Microsoft AutoGen Studio 2.0教程

AutoGen Studio是一个建立在AutoGen框架之上的用户界面应用程序,AutoGen框架是一个构建人工智能代理的工具包。2024年1月,微软推出了一款新的应用程序,它名为AutoGen Studio[3],可以简化AI Agent执行过程。AutoGen将多个人工智能代理组合在一起,根据网络上检索的数据来生成代码,并创建带有股价的图像。[2],这是一个使用多个代理开发LLM应用程序的框架,这些代理可以协作解决任务。为了监控进度,您可以打开终端,实时观察人工智能代理之间的消息交换。

2024-01-31 17:46:44 1405

原创 LLM漫谈(四)| ChatDOC:超越ChatPDF性能并支持更多功能的阅读聊天工具

尽管ChatPDF较早推出,但ChatDOC最终超越它,在ChatPDF提供的基本功能的基础上提供了一系列高级且非常有用的功能。在过去的一年里,ChatGPT的兴起催生了许多基于GPT的人工智能工具,其中Chat PDF工具得到了广泛关注。ChatDOC现在支持广泛的文件格式,不仅仅是PDF文档,包括:word文件(.doc、.docx)、markdown、epub、txt、扫描文件、网站。在ChatDOC上,你可以选择文本/表格/公式来提出更具体的问题,让人工智能专注于某一内容进行详细解释。

2024-01-26 23:12:29 1509

原创 LLM之Agent(九)| 通过API集成赋能Autogen Multi-Agent系统

例如,如果您构建了一个系统,其中多个代理共同担任销售助理,那么在决定对用户查询的最终响应之前,您可能不想公开他们是如何在内部规划和选择销售策略的。在上述的Tour Agent系统中,成功地配置了Autogen,以更好地适应基于API的应用程序,在该应用程序中,内部代理通信对用户是隐蔽的。文章中介绍过Autogen,它是一个基于LLM的Agent通信框架,支持创建具有不同人物角色的代理。现在,我可以把所有这些代理逻辑放在一个类中,还介绍了一种方法来接受来自API的用户消息,并在回复序列之后发送最终回复。

2024-01-26 16:18:21 868

原创 LLM之RAG理论(八)| 提高RAG性能的9种技术

想象一下,搜索数百万电子商务产品的矢量数据库,查询“Adidas ref XYZ sneakers white”,最热门的结果包括白色阿迪达斯运动鞋,但没有与确切的XYZ参考相匹配。研究表明,检索到的上下文中的噪声会对RAG性能产生不利影响,更准确地说,是LLM生成的答案。然而,有时,用户以几个单词或短句的形式制定的输入查询与索引文档之间会出现错位,索引文档通常以长句甚至段落的形式编写。当用户与RAG交互时,用户的查询格式不一定是很好的,也不能完全表达与向量库中的文档有效匹配的意图。

2024-01-25 17:47:31 1049

原创 LLM之RAG实战(二十一)| 使用LlamaIndex的Text2SQL和RAG的功能分析产品评论

通过将结构化SQL查询与自然语言处理的抽象无缝结合,我们展示了一种将模糊的用户查询转换为精确、信息丰富的答案的简化方法。有了这种方法,企业现在可以有效地筛选堆积如山的评论,提取用户情感的本质,并做出明智的决定。无论是衡量产品的整体情绪、了解特定功能反馈,还是跟踪评论随时间的演变,LlamaIndex中的Text2SQL+RAG方法都是数据分析新时代的先驱。我们设计了一种方法,通过给。当我们将用户的问题分解为两部分时,第一步是将“自然语言数据库查询”转换为可以针对我们的数据库运行的实际SQL查询。

2024-01-25 10:28:54 1215

原创 LLM之LangChain(五)| 使用LangChain Agent分析非结构化数据

他们会汇报竞争情况,他们有很多很棒的想法,你想把它们应用到你的业务中。在第1部分中,我们使用“PydanticOutputParser”来分析我们的数据并添加所需的结构。在LangChain中,Agent是利用语言模型来选择要执行的操作序列的系统。与Chain不同的是,在Chain中,动作被硬编码在代码中,而Agent利用语言模型作为“推理引擎”,决定采取哪些动作以及以何种顺序采取这些动作。导入包含竞争情报的CSV,将其应用于提取链进行解析和结构化,并将解析后的信息无缝集成回原始数据集。

2024-01-25 01:02:41 1045

原创 LLM之RAG理论(七)| 高提升RAG检索的四种方法

LoRA是大模型微调的技术之一,它来自论文《LoRA: Low-Rank Adaptation of Large Language Models》[9],基本原理是冻结大模型参数,在原始模型中添加少量的可训练参数AB矩阵来适应特定领域知识,由于微调的参数量较少,比较适合低资源的场景和用户。有时候直接对原问题生成答案效果不佳,这时我们可以通过要求LLM首先将用户的查询分解为子问题,然后,文档检索器可以检索每个较小的问题,这样可以提供更丰富的上下文。对于每个检索到的文档集,都会生成相应子问题的答案。

2024-01-24 19:08:32 1236

原创 LLM之RAG实战(二十)| RAG分块策略的五个level

在RAG系统中,包括检索和生成两大组件,而检索的关键是对数据的分块策略,本文将根据Greg Kamradt的视频(https://www.youtube.com/watch?递归分块使用一组分隔符,以分层和迭代的方式将文本划分为更小的块。如果最初分割文本的尝试没有产生所需大小的块,则该方法会使用不同的分隔符递归地调用结果块,直到达到所需的块大小。这种方法考虑了内容的流动和结构,但可能不是缺乏明确结构的文件。类,该类允许使用块之间的上下文关系将文档拆分为块,使用嵌入相似性自适应地选择句子之间的断点。

2024-01-24 15:37:12 1361

原创 LLM之RAG理论(六)| 高级RAG指南和技巧

在基本的RAG场景中,大致有如下步骤:首先将文本划分为多个块,使用Transformer Encoder模型将这些块嵌入到向量中,将这些向量存储到向量数据库并建立索引,查询会检索向量数据库中相关的上下文,这些上下文和查询一起生成最终的LLM提示,并引导LLM合成响应。基本RAG需要从外部知识数据库中获取文档,然后,将这些文档与用户的查询一起被传输到LLM,用于生成响应。最基本、最简单的RAG系统有时候会检索不到相关的上下文,因此需要一些更高级的方法来增强RAG系统,比如:查询转换、重排序等。

2024-01-22 18:25:34 737

原创 LLM之RAG实战(十九)| 利用LangChain、OpenAI、ChromaDB和Streamlit构建RAG

通过Streamlit的初始化和布局设计,用户可以上传文档和管理数据。我们的RAG聊天应用程序利用了LangChain的RetrievalQA和ChromaDB,通过从ChromaDB的嵌入式数据中提取的相关、准确的信息有效地响应用户查询,体现了先进的Generative AI功能。本文,我们探讨了使用OpenAI、ChromaDB和Streamlit构建LLM应用程序的复杂性,介绍了设置环境、处理文档、创建和存储嵌入以及构建用户友好的聊天界面,展示了RAG和ChromaDB的强大组合。

2024-01-21 16:24:59 1019

原创 LLM之RAG实战(十八)| 使用Query转换来改进RAG效果

但是,多步骤的方法也是有用的。在测试时,我们只需向模型提供提示和问题,它就会自动生成必要的后续问题,以连接事实,组成推理步骤,并决定何时停止。子问题分解最适用于可以分解为更简单的子问题的问题,例如比较尼古拉斯·凯奇和莱昂纳多·迪卡普里奥的教育。这一次,生成子问题非常有用,因为我们需要比较两条不同的信息——两个不同的人的教育背景,每个子问题都可以使用检索到的上下文独立回答。对于该查询,检索器只选择有关莱昂纳多·迪卡普里奥教育的相关文本块,而尼古拉斯·凯奇的块内容是不相关的,因此无法进行准确的比较。

2024-01-21 13:16:33 985

原创 LLM之RAG实战(十七)| 高级RAG:通过使用LlamaIndex重新排序来提高检索效率

现在,假设前几篇文章是关于“南极企鹅”的,但你真正想要的是关于“动物园栖息地的企鹅”的信息,那么就需要对这几篇文章进行重新排序了,比如使用用户行为、特定关键字或更复杂的算法来进行该操作。衡量检索到的结果中至少包含一个与基本事实相关的项目的查询的比例或百分比。基本RAG的检索是静态的,会检索到固定数字(k)个相关文档,而如果查询需要更多的上下文(例如摘要)或更少的上下文,该怎么办?然而,尽管有这些优点,基于嵌入的检索有时准确性不高,并返回与查询相关的无关上下文,这会大大降低RAG系统的整体质量。

2024-01-20 18:20:13 1199

原创 LLM评估(一)| 大模型评估的四种方法

评估文本摘要的一个主流的评估指标是ROUGE(Recall-Oriented Understudy for Gisting Evaluation),ROUGE将模型生成的文本摘要与人工编写的“groundtruth”参考摘要进行比较。使用特定任务的指标,如用于摘要的ROUGE或用于翻译的BLEU来评估LLM,具有非常可扩展和高效的显著优势:可以快速自动地评估生成的文本的大部分。它只测量生成的摘要和参考摘要之间的unigram重叠,一个完美的ROUGE-1分数意味着两个摘要中的所有单词都是相同的。

2024-01-19 09:51:24 2690

原创 LLM之Agent(八)| 使用CrewAi、Solor/Hermes、Langchain和Ollama构建超级Agent

随着大模型技术的发展,AI Agent正在成为大模型游戏规则的改变者,它可以帮助用户分解任务、规划任务和执行任务,这就是CrewAI的独特之处。在本文中,将介绍什么是CrewAi,架构设计,Autogen、ChatDev和Crew Ai之间的差异,以及如何使用Crew Ai、Langchain和Ollama的Solar或Hermes Power来构建超级Ai Agent。在Autogen中,协调代理的交互需要额外的编程,随着任务规模的增长,编程可能会变得复杂和繁琐。在开始之前,让我们安装所需的库。

2024-01-18 15:45:41 1679 2

原创 LLM之LangChain(四)| 介绍LangChain 0.1在可观察性、可组合性、流媒体、工具、RAG和代理方面的改进

LangChain提供了许多输出解析器,用于将LLM输出转换为更合适的格式,其中许多解析器支持JSON、XML和CSV等结构化格式的流式部分结果。最近几个月,该团队在LangChain表达式语言(LCEL)方面投入了大量资金,以实现更好的编排,因为我们都需要一种简单而声明的方式来组合链。对于大规模文本任务,LangChain提供了索引API,允许用户在忽略未更改的部分的同时重新插入内容,从而为大容量工作负载节省了时间和成本。或者先对其进行硬编码以调用特定的工具,使用户能够构建更复杂、更高效的语言模型。

2024-01-18 15:33:30 1285

原创 LLM之LangChain(三)| LangChain和LlamaIndex与4个任务的比较

请注意,对于我们的后续问题“我如何冲泡咖啡”,agent的回答与查询引擎不同,这是因为agent可以自己决定是否从我们的笔记中查找。LlamaIndex使用一个名为“query_engine”的包来包装RAG管道,但LangChain会展示内部组件,包括检索到的文档的连接符、提示模板“based on X please answer Y”,以及链本身(如上面的LCEL所示)。3.运行RAG管道。请注意,我们是如何通过暗示“我们作为用户将自己查找笔记”来欺骗LLM的,但事实上,我们现在要求LLM承担重任。

2024-01-18 00:12:47 1024

原创 LLM之RAG实战(十六)| 使用Llama-2、PgVector和LlamaIndex构建LLM Rag Pipeline

它是为处理高维矢量数据而定制的,就像Llama-2等语言模型生成的数据一样。在这个片段中,我们从llama-2包中导入LlamaModel,并使用特定的模型变体(例如“llama2-large”)对其进行初始化,该模型将用于文本生成和矢量化。Hugging Face的transformer库是使用Llama-2等模型的基石,它为自然语言处理任务提供了对预先训练的模型和实用程序的轻松访问。RAG Pipeline的核心是一个函数,它接受用户查询,从数据库中检索相关上下文,并基于查询和检索到的上下文生成响应。

2024-01-16 23:31:30 1355 4

01.ChatGPT技术、国产化尝试和开源模型 -公众号-torchnlp.pdf

01.ChatGPT技术、国产化尝试和开源模型 -公众号-torchnlp.pdf

2023-02-15

《GAN:实战生成对抗网络》_刘梦馨.pdf

介绍了基本的GAN网络原理并且附有代码,主要以图像为主,介绍了一个扩展的GAN网络,比如DCGAN、SSGAN、StackGAN等等一些很有实用性的模型

2019-06-14

强化学习DQN

这本书详细介绍了强化学习的常用算法以及算法原理,从蒙特卡罗方法到Q_learning最终到DQN

2018-05-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除