批量扫dedecms做的网站营销网站优点

bicheng/2026/1/21 8:00:12/文章来源:
批量扫dedecms做的网站,营销网站优点,宝塔建设网站教程,网站开发合同免费模板本文#xff0c;我们将研究高级RAG方法的中的重排序优化方法以及其与普通RAG相比的关键差异。 一、什么是RAG#xff1f; 检索增强生成#xff08;RAG#xff09;是一种复杂的自然语言处理方法#xff0c;它包括两个不同的步骤#xff1a;信息检索和生成语言建模。这种方…       本文我们将研究高级RAG方法的中的重排序优化方法以及其与普通RAG相比的关键差异。 一、什么是RAG 检索增强生成RAG是一种复杂的自然语言处理方法它包括两个不同的步骤信息检索和生成语言建模。这种方法旨在为语言模型提供访问外部数据源来提高其在生成响应时的准确性和相关性从而增强语言模型的能力。 1.1 检索组件 目的检索组件的主要功能是响应查询或提示从大型数据库或语料库中提取相关文档或信息片段。 过程当收到查询时检索系统会搜索其数据库如维基百科文章、书籍或其他文本数据的集合以找到与查询相关的内容。 输出此阶段的输出是一组与输入查询相关的文档或文本段落。 1.2 生成语言模型 与检索到的数据集成将检索到的文档输入到生成语言模型中该模型使用这些文档中的信息来通知其响应生成。 响应生成语言模型处理原始查询和检索到的文档中的信息以生成不仅与上下文相关而且由外部数据提供信息的响应。 这种方法RAG允许语言模型产生比仅依靠其预先训练的知识更准确、更详细、更适合上下文的反应。 二、什么是高级RAG 高级检索增强生成Advanced RAG通过结合复杂的检索前和检索后过程来增强传统的RAG。Advanced RAG中检索后过程的一个关键方面是“ReRank”它涉及对检索到的文档进行重新排序来优先考虑最相关的信息。ReRank通过采用各种算法或框架来实现的比如基于文档多样性或与查询的相关性之类的标准来调整排序。重新排序的目的是向大型语言模型提供最相关的信息从而提高生成的响应的质量和相关性。 三、RAG和高级RAG之间的主要区别是什么 四、高级RAG重排序代码实施 有了对Advanced RAG概念的理解现在让我们将使用LlamaIndex作为实施的框架BM25作为我们的排序函数。BM25算法是信息检索系统中广泛使用的排序函数特别是在文档检索中。它是概率信息检索家族的一部分是对经典TF-IDF术语频率逆文档频率方法的改进。因此我们将使用它作为我们的重新排序函数。 在这篇文章中我们将研究两种不同的实现高级RAG的方法一种是使用OpenAI LLM另一种是在完全局部LLMMistral。 首先在项目文件夹的根目录中创建一个项目文件夹和包括如下内容的.env文件。 OPENAI_API_KEYYOUR_OPENAI_API_KEYLLM_URIhttp://localhost:11434 导入相关库 import nest_asyncioimport osimport sysimport logging​from dotenv import load_dotenv, find_dotenv​from llama_index import ( SimpleDirectoryReader, ServiceContext, StorageContext, VectorStoreIndex,)from llama_index.query_engine import RetrieverQueryEnginefrom llama_index.retrievers import BM25Retrieverfrom llama_index.llms import OpenAI, Ollamafrom llama_index.embeddings import OllamaEmbeddingfrom llama_index.postprocessor import SentenceTransformerRerankfrom llama_index import QueryBundle 配置asyncio和logger logging.basicConfig(streamsys.stdout, levellogging.INFO)logging.getLogger().handlers []logging.getLogger().addHandler(logging.StreamHandler(streamsys.stdout))​nest_asyncio.apply() 让我们设计一个名为AdvancedRAG的类该类具有以下3个函数 class AdvancedRAG: def __init__(self): _ load_dotenv(find_dotenv()) # load documents self.documents SimpleDirectoryReader(./data/, required_exts[.pdf]).load_data()​ # global variables used later in code after initialization self.retriever None self.reranker None self.query_engine None​ self.bootstrap()​ def bootstrap(self): # initialize LLMs llm OpenAI(modelgpt-4, api_keyos.getenv(OPENAI_API_KEY), temperature0, system_promptYou are an expert on the Inflamatory Bowel Diseases and your job is to answer questions. Assume that all questions are related to the Inflammatory Bowel Diseases (IBD). Keep your answers technical and based on facts – do not hallucinate features.)​ # initialize service context (set chunk size) service_context ServiceContext.from_defaults(chunk_size1024, llmllm) nodes service_context.node_parser.get_nodes_from_documents(self.documents)​ # initialize storage context (by default its in-memory) storage_context StorageContext.from_defaults() storage_context.docstore.add_documents(nodes)​ index VectorStoreIndex( nodesnodes, storage_contextstorage_context, service_contextservice_context, )​ # We can pass in the index, doctore, or list of nodes to create the retriever self.retriever BM25Retriever.from_defaults(similarity_top_k2, indexindex)​ # reranker setup initialization self.reranker SentenceTransformerRerank(top_n1, modelBAAI/bge-reranker-base)​ self.query_engine RetrieverQueryEngine.from_args( retrieverself.retriever, node_postprocessors[self.reranker], service_contextservice_context, )​ def query(self, query): # will retrieve context from specific companies nodes self.retriever.retrieve(query) reranked_nodes self.reranker.postprocess_nodes( nodes, query_bundleQueryBundle(query_strquery) )​ print(Initial retrieval: , len(nodes), nodes) print(Re-ranked retrieval: , len(reranked_nodes), nodes)​ for node in nodes: print(node)​ for node in reranked_nodes: print(node)​ response self.query_engine.query(str_or_query_bundlequery) return response Initialization方法__init__ 环境设置使用load_dotenv(find_dotenv())加载环境变量。这可能用于配置设置如API密钥或URL。 文档加载使用SimpleDirectoryReader从指定目录加载文档。这些文档可能被用作检索任务的语料库。 全局变量为检索器、重排序器和query_engine设置占位符它们可能是检索和排序过程中的关键组件。 Bootstrap方法调用调用Bootstrap方法来初始化各种组件。 Bootstrap方法 初始化大型语言模型llm使用Ollama或OpenAI GPT-4设置语言模型实例llm。 初始化嵌入模型使用OllamaEmbedding设置嵌入模型embed_mode该模型用于创建文本的矢量表示。 服务上下文使用块大小和模型llm和embed_mode配置服务上下文。 节点解析和存储将文档解析为节点并将其存储在内存数据库中以便快速访问。 索引创建使用VectorStoreIndex创建索引以高效检索文档。 Retriever初始化初始化BM25Retriever这是一个基于BM25算法的检索模型。 重新排序初始化使用SentenceTransformerRerank设置重新排序重新排序检索到的结果的相关性。 查询引擎初始化初始化一个查询引擎该引擎将检索器和重排序器组合在一起以处理查询。 Query方式 检索检索与给定查询相关的节点文档。 重排序对检索到的节点应用重新排序。 响应生成使用查询引擎根据查询生成响应。 if __name__ __main__: adv_rag AdvancedRAG() resp adv_rag.query(What is the impact of IBD in women ?) print(resp) 当您使用OpenAI GPT-4配置运行上述代码时以下应该是输出。 使用本地LLM和本地嵌入模型Mistral修改代码在上面的代码中只需注释现有的OpenAI GPT-4 LLM并使用下面的代码。 # initialize LLMsllm Ollama(base_urlos.getenv(LLM_URI), modelmistral) 初始化Mistral嵌入如下所示 # initialize mistral embed modelembed_model OllamaEmbedding(base_urlos.getenv(LLM_URI), model_namemistral) 现在通过传递embed_mode来修改现有的服务上下文如下所示 # initialize service context (set chunk size)service_context ServiceContext.from_defaults(chunk_size1024, llmllm, embed_modelembed_model) 现在如果将代码指向下面的本地LLM和本地嵌入来编写代码那么输出如下 您可以清楚地看到GPT-4和Mistral等2种方法生成的响应发生了一些显著变化但具有置信度|重新排序分数的检索节点保持不变。 六、结论 总之高级检索增强生成Advanced Retrieval Augmented Generation简称RAG是信息检索和自然语言处理领域的一次重大飞跃。通过将BM25等最先进的排名算法与先进的重新排序技术和GPT-4或Mistral等尖端语言模型相集成advanced RAG为处理复杂的查询任务提供了一个强大而灵活的解决方案。正如我们在讨论中举例说明的那样这种实际实现不仅展示了Advanced RAG的理论潜力还展示了其在现实世界中的适用性。无论是在提高搜索引擎的准确性、提高聊天机器人中响应的相关性还是在推进知识系统的前沿领域高级RAG证明了人工智能驱动的语言理解和信息处理的不断发展和成熟。Advanced RAG中检索准确性和上下文生成的融合为各种应用中更智能、更灵敏、更知识渊博的系统铺平了道路预示着人工智能能力的新时代。 参考文献 [1] https://blog.stackademic.com/advanced-retrieval-augmented-generation-how-reranking-can-change-the-game-d06e12b77074

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/88254.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

湘潭市高新建设局网站国内大型餐饮网站建设

在MyBatis中,resultType和resultMap都用于将数据库查询结果映射到Java对象,但它们在使用方式和灵活性上有一些区别。 resultType resultType是一个简单的类型别名,它用于指定查询结果应该映射到的Java类型。当数据库表中的列名和Java对象的属…

销售型企业网站建设应遵守的原则网络营销相关信息

文章目录 1.可能需要针对以下几个方面进行优化和调整:2.出现大量误报会直接导致精确率和准确率明显下降。3.解决办法,采用最简单的样本均衡3.1.样本均衡3.2.添加负样本 1.可能需要针对以下几个方面进行优化和调整: 数据集质量: 确…

哈尔滨网站开发需要多少钱怎么做这个购物网站

参考自: http://python.jobbole.com/85852/, 原文探究的更深,有兴趣的可以去看看。简介来讲就是使用一种特殊的注释来声明编码格式,如何判断这种格式也用了很简单粗暴有效的办法--正则表达式;正则表达式如下&#xff1…

连云港做网站制作wordpress安装配置php5.2

摘要:关于够匹比低高强钢筋筋的极限度钢大强度应变拉伸。统分变异系数主观权是一种法赋赋权法。关于够匹对第的说确的物流法正三方是(。...关于够匹比低高强钢筋筋的极限度钢大强度应变拉伸。最大区边压应缘力在受压,计算机软件系破坏截面梁正适筋受弯时…

淮安软件园有做网站的吗服务号开发

Bytebase 是面向研发和 DBA 的数据库 DevOps 和 CI/CD 协同平台。目前 Bytebase 在全球类似开源项目中 GitHub Star 数排名第一且增长最快。 Bytebase 的架构 Bytebase 是一个单体架构 (monolith),前端是 Vue3 TypeScript,后端是 Go。前端利用 Go 1.6 …

网站免费进入窗口软件2023wordpress简单主题下载

文章目录 介绍Class类与instanceof的区别 访问字段调用方法调用构造方法获取继承关系动态代理 介绍 反射reflection,是指在程序运行期间可以拿到一个对象的所有信息。 正常情况下获取一个对象信息,需要import该类,反射可以在对某个实例一无所…

港口建设网站wordpress仿 模板

1.安装vscode插件 1. **Markdown All in One** ——提供丰富的Markdown相关的快捷键、自动补全功能,提高md文档编写生产力 2. **Markdown Preview Ehanced** ——用于渲染当前编写文档的效果同步预览 3. **Paste Image** ——用于快速引用图片至Markdown文…

鹰潭律师网站建设百度站长统计工具

MongoDB noSQL数据库 特点 数据文件存储格式为 BSON (JSON 的扩展) {“name”:“joe”}这是 BSON 的例子,其中"name"是键,"joe"是值。键值对组成了 BSON 格式。面向集合…

英文网站建设推广网站全是乱码

一、条件语句 1.1 测试 test 测试文件的表达式是否成立 格式:test 条件表达式 [ 条件表达式 ] 选项作用-d测试是否为目录-e测试目录或文件是否存在-a测试目录或文件是否存在-f测试是否为文件-r测试当前用户是否有权限读取-w测试当前用户是否有权限写入-x测试当前…

哈尔滨建站模板厂家三只松鼠网站推广策略

集合转为树结构 单表&#xff0c;数据有层级&#xff0c;通过parentId关联 先需要获取层级树类型的数据&#xff0c;但不想多次查询&#xff0c;需要减少查询sql次数 1.单表查询所有有效数据 2.逻辑层处理成树结构 public List<CheckVo> fun(){List<CheckVo> resul…

找做仿网站鹰潭网站建设

Look&#xff01;&#x1f440;我们的大模型商业化落地产品&#x1f4d6;更多AI资讯请&#x1f449;&#x1f3fe;关注Free三天集训营助教在线为您火热答疑&#x1f469;&#x1f3fc;‍&#x1f3eb; 在这个信息爆炸的数字时代&#xff0c;你是否也想掌握那种像魔法一样的AI技…

三只松鼠网站谁做的东台做网站公司

文章目录第一周&#xff1a;深度学习的实用层面训练、开发、测试集偏差、方差机器学习基本步骤L2正则化Dropout&#xff08;随机失活&#xff09;正则化其它正则化方法正则化输入神经网络的权重初始化梯度检验第二周&#xff1a;优化算法Mini-Batch梯度下降法指数加权平均指数加…

重庆做企业网站可以登陆的wordpress

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” 文章目录 1. 配置MariaDB数据库1.1 安装MariaDB数据库1.2 测试局域网内远程连接 2. 内网穿透2.1 创建隧道映射…

微商城网站建设渠道公司网站推广执行方案

文章目录 一、网络相关资源介绍二、开启ipvs三、nginx网络示例四、pod之间的访问示例五、service反向代理示例 一、网络相关资源介绍 Servcie介绍 Service是对一组提供相同功能的Pods的抽象&#xff0c;并为它们提供一个统一的入口。借助Service&#xff0c;应用可以方便的实现…

滕州网站开发郑州建设银行网站

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 简介 随着互联网和信息技术的快速发展&#x…

织梦网站安装出现dirwordpress如何加入点赞

消息队列中的可靠性主要是分为三部分&#xff1a; 消息不丢失&#xff1a;确保消息从生产者发送到消费者消息不丢失消息不重复&#xff1a;确保消息不被重复消费消息顺序性&#xff1a;确保消费的顺序性 解决方案主要有以下几部分&#xff1a; 消息不丢失 生产者确认机制持久…

.net做网站c石大远程网页设计及网站建设答案

C五子棋人机对战(含注释)-CSDN博客 C五子棋人机对战-CSDN博客 这两篇博客中有个bug&#xff0c;就是没加srand(time(0));这个语句(放在主函数的最开头) 改正代码 #include<bits/stdc.h>//万能头 #define ll long long using namespace std; ll n,a[1000][1000],x,y,…

天津网站建设软件开发招聘最新资讯热点

全世界只有3.14 % 的人关注了爆炸吧知识图片来源&#xff1a;网络来源&#xff1a;募格课堂、微博人文清华、中国教育报、学位与写作据清华大学“人文清华”讲坛官方微博人文清华发布&#xff0c;清华大学公共管理学院院长江小涓教授在一次演讲中透露&#xff0c;互联网银行工作…

网站开发的企业北京建网站的价格

定义和特性 JDK16 最终增加了record关键字&#xff0c;record定义的类希望成为数据传输对象 也叫数据载体&#xff0c;使用record 时候&#xff0c;编译器会自动生成&#xff1a; 不可变的字段一个规范的构造器每个元素(组件)都有访问方法equalshashCodetoString public rec…

深圳罗湖网站制作公司锡林浩特本地网站建设

std::forward_list是可以从任何位置快速插入和移除元素的容器&#xff0c;不支持快速随机访问&#xff0c;只支持正向迭代。 本文章的代码库&#xff1a; https://gitee.com/gamestorm577/CppStd 成员函数 构造、析构和赋值 构造函数 可以用元素、元素列表、迭代器或者另…