.net 网站模板下载地址友链查询站长工具

diannao/2026/1/18 14:27:02/文章来源:
.net 网站模板下载地址,友链查询站长工具,系统软件,成都网站建设成都网络公司一、前言 在检索增强生成#xff08;Retrieval-Augmented Generation, RAG#xff09;的框架下#xff0c;重排序#xff08;Re-Rank#xff09;阶段扮演着至关重要的角色。该阶段的目标是对初步检索得到的大量文档进行再次筛选和排序#xff0c;以确保生成阶段能够优先…一、前言 在检索增强生成Retrieval-Augmented Generation, RAG的框架下重排序Re-Rank阶段扮演着至关重要的角色。该阶段的目标是对初步检索得到的大量文档进行再次筛选和排序以确保生成阶段能够优先利用最相关的信息。这一过程类似于传统信息检索中的两阶段排序策略其中粗排粗略排序阶段追求高效的检索速度而精排精细排序阶段则专注于提升结果的相关性和准确性。 在RAG架构中重排序不仅仅是对文档列表的简单重新排列它还涉及到对文档相关性的深入理解和评估。有效的重排序技术能够显著提升RAG系统的性能确保生成的内容不仅准确而且与用户查询高度相关。然而现有的重排序方法面临着一系列挑战包括对输入顺序的过度依赖、缺乏对动态网络信息的适应性以及模型的不透明性和不可复现性。 针对这些挑战开源的重排序方法 RankLLM 应运而生。RankLLM 利用大型语言模型LLMs的强大能力通过零样本学习zero-shot learning的方式无需特定任务的训练数据即可执行重排序任务。这种方法不仅提高了重排序的效率和效果而且通过开源实现了模型的透明性和可访问性为研究社区提供了一个可复现、可改进的重排序工具。 RankLLM 的引入为RAG架构的发展提供了新的动力它不仅能够处理静态的、预先定义的查询还能够适应实时变化的数据和查询满足不断演变的信息需求。通过这种开源和高效的重排序策略RankLLM有望成为未来RAG系统中不可或缺的组成部分推动信息检索和自然语言处理领域的进一步发展。 二、RankLLM 介绍 RankLLM 是一种基于大型语言模型Large Language Models, LLMs的重排序方法它利用了LLM的强大能力来改进信息检索的结果。在信息检索的过程中初步检索阶段可能会返回大量相关或不相关的文档RankLLM 的作用是在这些文档中进行再次排序以提高检索结果的相关性和准确性。RankLLM通过使用LLM作为“提示-解码器”prompt-decoder在没有特定任务训练数据的情况下即零样本设置对文档列表进行重新排序优化诸如归一化折扣累积增益nDCG等检索指标。 三、RankLLM 原理 RankLLM 重排序的原理基于零样本学习zero-shot learning它不需要特定任务的训练数据。RankLLM 使用一种提示Prompt来指导LLM如何对文档列表进行排序。这个提示描述了重排序任务并提供了一个格式让模型知道如何生成排序后的文档列表。RankLLM 利用了 LLM 的理解和生成能力通过指令微调instruction fine-tuning来学习如何根据相关性对文档进行排序。 在实际操作中RankLLM接收一系列候选文档和相关的查询然后使用LLM生成一个按相关性排序的文档列表。这个过程涉及到从大型数据集中提取有用的信息并将这些信息融入到LLM的生成过程中以实现更准确的重排序。 四、RankLLM 实现 如何使用 RankLLM 工具对搜索结果进行重新排序以提升结果的相关性和准确性。RankLLM 提供了一系列专门针对这项任务进行优化的开源大语言模型例如 RankVicuna 和 RankZephyr。 本文将通过比较 Van Gogh Wiki 页面的搜索结果分别使用了传统的检索方法和结合 RankLLM 的检索方法。一方面是仅利用检索通过 llama-index 的 VectorIndexRetriever 实现另一方面则是结合了 RankLLM 进行的检索加重排序。演示中展现了 RankLLM 的两种模型 RankVicuna 7B V1RankZephyr 7B V1 - Full - BF16 依赖项 目前RankLLM 的重排序功能需要 CUDA 环境并且必须安装 rank_llm通过命令 pip install rank_llm 安装。而内置的检索工具则依赖于 Pyserini需要 JDK11、PyTorch 和 Faiss 环境。 castorini/rank_llm 是一个专门用于利用大语言模型如 GPT3.5, GPT4, Vicuna 和 Zephyr进行提示解码的代码库。 4.1、安装依赖 %pip install llama-index-core %pip install llama-index-llms-openai %pip install llama-index-postprocessor-rankllm-rerank %pip install rank-llm import nest_asyncio# 启用异步I/O nest_asyncio.apply() import logging import syslogging.basicConfig(streamsys.stdout, levellogging.INFO) logging.getLogger().addHandler(logging.StreamHandler(streamsys.stdout)) from llama_index.core import VectorStoreIndex, SimpleDirectoryReader from llama_index.core.postprocessor import LLMRerank from llama_index.llms.openai import OpenAI from IPython.display import Markdown, display import osOPENAI_API_TOKEN sk- os.environ[OPENAI_API_KEY] OPENAI_API_TOKEN 4.2、加载数据构建索引 从维基百科Wikipedia获取Vincent van Gogh的文本内容并将这些文本内容保存到本地文件中最后构建一个索引以便后续的数据检索。 from pathlib import Path import requestswiki_titles [Vincent van Gogh, ]data_path Path(data_wiki)for title in wiki_titles:response requests.get(https://en.wikipedia.org/w/api.php,params{action: query,format: json,titles: title,prop: extracts,explaintext: True,},).json()page next(iter(response[query][pages].values()))wiki_text page[extract]if not data_path.exists():Path.mkdir(data_path)with open(data_path / f{title}.txt, w) as fp:fp.write(wiki_text) # 加载文档 documents SimpleDirectoryReader(./data_wiki/).load_data() # 构建索引 index VectorStoreIndex.from_documents(documents, ) 五、检索与 RankLLM 重排序流程 准备检索器和重排序器 在开始检索流程之前首先需要准备两个关键组件检索器Retriever和重排序器Reranker。检索器负责从大量文档中快速筛选出与查询相关的候选文档集合。常见的检索器包括基于词频的BM25算法、基于神经网络的SPLADE ED和RepLLaMA等。这些检索器可以是无监督的、监督的、稀疏的、密集的或者是它们的混合形式。重排序器则进一步优化检索结果通过深入理解文档内容和用户查询意图对候选文档进行精细排序。 对给定的搜索查询进行检索,不加重排序 用户发起搜索查询后检索器首先在文档集合中进行初步检索生成一个未经排序的候选文档列表。这一步骤不涉及任何形式的排序目的是尽可能广泛地覆盖与查询相关的文档为后续的重排序提供原材料。 使用 RankZephyr 进行重排序后的搜索查询检索 接下来利用 RankZephyr 对初步检索得到的候选文档列表进行重排序。RankZephyr 是一种基于开源大型语言模型LLM的重排序工具它通过零样本学习zero-shot learning的方式无需特定任务的训练数据即可执行重排序任务。RankZephyr通过指令微调instruction fine-tuning来学习如何根据相关性对文档进行排序能够根据归一化折扣累积增益nDCG等检索指标优化文档排序。 使用 RankVicuna 进行重排序后的搜索查询检索 为了进一步提升检索效果可以采用 RankVicuna 对 RankZephyr 的输出结果进行二次重排序。RankVicuna 是另一种基于开源LLM的重排序工具它在 RankZephyr 的基础上进一步优化通过多阶段的重排序策略progressive reranking来迭代改进排序结果。RankVicuna 通过引入变量窗口大小和随机输入顺序的训练增强了模型对于不同重排序场景的适应性和鲁棒性。 通过上述流程RankLLM 能够有效地结合检索器的快速筛选能力和重排序器的深度理解能力为用户提供更加精准和相关的搜索结果。 from llama_index.core.retrievers import VectorIndexRetriever from llama_index.core import QueryBundle from llama_index.postprocessor.rankLLM_rerank import RankLLMRerankimport pandas as pd from IPython.display import display, HTMLdef get_retrieved_nodes(query_str,vector_top_k10,reranker_top_n3,with_rerankerFalse,with_retrievalFalse,modelzephyr, ):query_bundle QueryBundle(query_str)# 配置检索器retriever VectorIndexRetriever(indexindex,similarity_top_kvector_top_k,)retrieved_nodes retriever.retrieve(query_bundle)if with_reranker:# 配置rerankerreranker RankLLMRerank(top_nreranker_top_n, with_retrievalwith_retrieval, modelmodel)retrieved_nodes reranker.postprocess_nodes(retrieved_nodes, query_bundle)return retrieved_nodesdef pretty_print(df):return display(HTML(df.to_html().replace(\\n, )))def visualize_retrieved_nodes(nodes) - None:result_dicts []for node in nodes:result_dict {Score: node.score, Text: node.node.get_text()}result_dicts.append(result_dict)pretty_print(pd.DataFrame(result_dicts)) 不加重排序的检索前三结果 预期结果显示 经过梵高的多次恳求高更于10月23日抵达阿尔勒并于11月两人一起作画。高更在他的《向日葵画家》中描绘了梵高。 new_nodes get_retrieved_nodes(Which date did Paul Gauguin arrive in Arles?,vector_top_k3,with_rerankerFalse,modelzephyr, )visualize_retrieved_nodes(new_nodes) 正确的结果在未重排序时排名第三。 使用 RankZephyr 重排序前 10 结果并返回前 3 new_nodes get_retrieved_nodes(Which date did Paul Gauguin arrive in Arles?,vector_top_k10,reranker_top_n3,with_rerankerTrue,with_retrievalFalse,modelzephyr, )visualize_retrieved_nodes(new_nodes) 在 RankZephyr 重排序后正确的结果升至第一位。 使用 RankVicuna 重排序前 10 结果并返回前 3 new_nodes get_retrieved_nodes(Which date did Paul Gauguin arrive in Arles?,vector_top_k10,reranker_top_n3,with_rerankerTrue,with_retrievalFalse,modelvicuna, )visualize_retrieved_nodes(new_nodes) 在 RankVicuna 重排序后正确的结果同样位居第一位。 六、总结 RankLLM是一种创新的重排序方法它利用了大型语言模型的能力来改进信息检索的结果。通过零样本学习和指令微调RankLLM能够在不需要特定任务训练数据的情况下有效地对文档列表进行重新排序。这种方法不仅提高了检索结果的相关性和准确性而且由于其开源性质还增加了研究的可重复性和模型的可访问性。RankLLM的引入为解决RAG架构中的一些关键挑战提供了新的可能性为未来的信息检索和文本生成任务开辟了新的道路。 七、References [1]. RankLLM Githubhttps://github.com/castorini/rank_llm [2]. Pyserini https://github.com/castorini/pyserini [3]. Ronak Pradeep, Sahel Sharifymoghaddam, Jimmy Lin, R. (2023). RankZephyr: Effective and Robust Zero-Shot Listwise Reranking is a Breeze: https://arxiv.org/abs/2312.02724

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

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

相关文章

学网站开发多少钱宁波网站制作网站

一、SQLPlus查询的结果,可以根据自己的屏幕情况进行调节:我们知道sqlplus模式下,select查询的时候经常会遇到返回的记录折行,这时候我们往往会设置行宽,列宽和页面记录。设置行宽:set linesize 200 表示行宽被设置为20…

一级a做爰全过程网站网站图片展示源代码

目录 1、TypeScript 接口 1.1、实例 1.2、联合类型和接口 1.3、接口和数组 1.4、接口和继承 1.5、单继承实例 1.6、多继承实例 2、TypeScript 对象 2.2、对象实例 2.3、TypeScript类型模板 2.4、鸭子类型(Duck typing) 1、TypeScript 接口 接口…

企业百度网站怎么做wordpress又拍云cdn伪静态

FluentAspects -- 基于 Fluent API 的 AopIntro上次我们做了一个简单的 AOP 实现示例,但是实现起来主要是基于 Attribute 来做的,对于代码的侵入性太强,于是尝试实现基于 Fluent API 的方式来做 AOP 。抽象 InterceptorResolver原来获取方法执…

时尚杂志网站设计分析软件技术外包是什么行业

▪查看某目录下所有文件的个数:[rootlocalhost1 opt]# ls -l |grep "^-"|wc -l▪查看某目录下所有文件的个数,包括子目录里面的:[rootlocalhost1 opt]# ls -lR|grep "^-"|wc -l▪查看某目录下文件夹(目录)的个数&#xf…

陕西住房与城乡建设部网站网络优化有哪些主要流程

问题: 路由传参一直不能获取到参数, 未出现报错 原因: 混淆 query 和 params 的使用方法, 在使用 params 传参时错误的使用了 path 代码: 正确写法1: 使用path要对应query ...this.$router.push({path: /Health,query: {title:…

如何做网站内页排名详细网站设计需求表

文章目录 深度生成模型之GAN基础生成对抗网络1. 生成对抗网络如何生成数据2. 生成对抗原理3. GAN的核心优化目标4. D的优化5. GAN的理想状态6. GAN的训练7. 梯度不稳定与模式崩塌(collapse mode)问题8. 梯度消失问题 深度生成模型之GAN基础 生成对抗网络 1. 生成对抗网络如何…

xyz溢价域名最好的网站网站建设一点通

相信很多博友在开发初次接触学习C# winForm时,当窗体大小变化时,窗体内的控件并没有随着窗体的变化而变化,最近因为一个项目工程的原因,也需要解决这个问题。通过查阅和学习,这个问题得到了解决,或许不是很…

服务器 空间 虚拟主机 网站需要低价网站建设新闻

搜索算法例子 搜索算法是计算机科学中的重要部分,用于在数据集合中查找特定元素。这些搜索算法在不同场景中有不同的应用和性能表现,通过选择合适的搜索算法,可以提高程序的性能和效率。线性搜索:适用于小型、无序数据集。二分搜索:适用于大型、有序数据集。深度优先搜索(…

徐州祥云做网站网站空间排名

本文转载自公众号 PaperWeekly, 对我们近期的论文浅尝进行了精选整理并附上了相应的源码链接,感谢 PaperWeekly!TheWebConf 2018■ 链接 | https://www.paperweekly.site/papers/1956■ 解读 | 花云程,东南大学博士,研究方向为自然…

连云港建设部网站自做美食哪些网站

一、工程问题与学术研究的常规融合方法 工程问题与学术研究的融合通常体现在“产学研结合”的模式中,具体策略如下: 1. 需求导向:从实际工程问题出发,明确科研目标。在解决工程问题的过程中,识别出需要进一步研究的基…

网站建设课程设计报告总结网站的管理包括

场景 业务上有许多发送邮件的场景,发送的邮件基本上都是自动发送的,而且邮件内容是很重要的,对于邮件发没发送,发送的时间点对不对每次回归测试工作量太大了,所以考虑把这部分内容加入到自动化测试中 工具 python g…

东坑网页设计东莞seo网络营销策划

vue中keep-alive组件主要有三个常用的props。 1,include存放的name是组件自身的name属性,只有名称匹配的组件会被缓存2,exclude,任何名称匹配的组件都不会被缓存3,max,最多可以缓存多少组件实例&#xff0…

网站内容上传要求中天钢铁 网站建设

使用腾讯云服务器搭建网站全流程,包括轻量应用服务器和云服务器CVM建站教程,轻量可以使用应用镜像一键建站,云服务器CVM可以通过安装宝塔面板的方式来搭建网站,腾讯云服务器网txyfwq.com整理使用腾讯云服务器建站教程,…

网上停车场做施工图人员网站内蒙古赤峰市信息网官网

点击此处查看原题​​​​​​​ *思路:首先要求 00 11 尽可能的多,所以尽可能多的多配对,配对只在i , i 1之间发生,所以只需要关注str[i] 和 str[i 1]即可,如果str[i] str[i 1] ,那么一定配对&#x…

怎么建个废品网站投资建设网站

一、前言这几年前端的发展速度就像坐上了火箭,各种的框架一个接一个的出现,需要学习的东西越来越多,分工也越来越细,作为一个 .NET Web 程序猿,多了解了解行业的发展,让自己扩展出新的技能树,对…

做网站在手机显示怎么很乱太原建站

一 中断线程 1.1 中断概念 1.在java中,没有提供一种立即停止一条线程。但却给了停止线程的协商机制-中断。 中断是一种协商机制。中断的过程完全需要程序员自己实现。也即,如果要中断一个线程,你需要手动调用该线程的interrupt()方法&…

怎样做音视频宣传网站做体育直播网站

在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。 (1)先来介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。…

淘宝网站icp备案PHP+Ajax网站开发典型实例

0小桥的神秘礼物盒 - 蓝桥云课 (lanqiao.cn) 问题描述 在一个阳光明媚的早晨,小桥收到了一份神秘的礼物--一只魔法盒子。这个盒子有四个按钮,每个按钮都有特殊的功能: 按钮 A:“添加”,将一个神秘物品 (每个物品都有一个独特的编号)放入盒子中…

铁岭做网站cms是啥

一、什么是字典?字典是Python语言中唯一的映射类型。映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表。字典对象是可变的,它是一个容器类型,能存储任意个数…

各大网站网址跑流量的网站

vscode 扩展商店链接 https://marketplace.visualstudio.com/vscode settings sync 插件