当前位置: 首页 > news >正文

路桥建设局网站做一款app需要网站吗

路桥建设局网站,做一款app需要网站吗,东营抖音网络推广公司,企业关键词排名优化网址在构建检索增强生成#xff08;RAG#xff09;Pipeline时#xff0c;一个关键组件是Retriever。我们有多种embedding模型可供选择#xff0c;包括OpenAI、CohereAI和开源sentence transformers。此外#xff0c;CohereAI和sentence transformers还提供了几个重排序器。 但…在构建检索增强生成RAGPipeline时一个关键组件是Retriever。我们有多种embedding模型可供选择包括OpenAI、CohereAI和开源sentence transformers。此外CohereAI和sentence transformers还提供了几个重排序器。 但是有了所有这些选项我们如何确定最佳组合以获得一流的检索性能我们如何知道哪种 embedding 模型最适合我们的数据或者哪种重新排序对我们的结果提升最大 在这篇博客文章中我们将使用 LlamaIndex 的 Retrieval Evaluation 模块来快速确定embedding和重排序模型的最佳组合。让我们一起来了解一下吧 让我们首先了解Retrieval Evaluation中可用的评估指标 文章目录 技术交流资料通俗易懂讲解大模型系列一、理解Retrieval Evaluation中的评估指标二、设置环境三、设置Key四、下载数据五、加载数据六、生成问题上下文对七、自定义检索器八、评估九、结果10、分析11、结论 技术交流资料 技术要学会分享、交流不建议闭门造车。一个人可以走的很快、一堆人可以走的更远。 成立了大模型技术交流群本文完整代码、相关资料、技术交流答疑均可加我们的交流群获取群友已超过2000人添加时最好的备注方式为来源兴趣方向方便找到志同道合的朋友。 方式①、微信搜索公众号机器学习社区后台回复加群 方式②、添加微信号mlc2060备注来自CSDN 技术交流 通俗易懂讲解大模型系列 做大模型也有1年多了聊聊这段时间的感悟 用通俗易懂的方式讲解大模型算法工程师最全面试题汇总 用通俗易懂的方式讲解我的大模型岗位面试总结共24家9个offer 用通俗易懂的方式讲解大模型 RAG 在 LangChain 中的应用实战 用通俗易懂的方式讲解一文讲清大模型 RAG 技术全流程 用通俗易懂的方式讲解如何提升大模型 Agent 的能力? 用通俗易懂的方式讲解ChatGPT 开放的多模态的DALL-E 3功能好玩到停不下来 用通俗易懂的方式讲解基于扩散模型Diffusion,文生图 AnyText 的效果太棒了 用通俗易懂的方式讲解在 CPU 服务器上部署 ChatGLM3-6B 模型 用通俗易懂的方式讲解使用 LangChain 和大模型生成海报文案 用通俗易懂的方式讲解ChatGLM3-6B 部署指南 用通俗易懂的方式讲解使用 LangChain 封装自定义的 LLM太棒了 用通俗易懂的方式讲解基于 Langchain 和 ChatChat 部署本地知识库问答系统 用通俗易懂的方式讲解在 Ubuntu 22 上安装 CUDA、Nvidia 显卡驱动、PyTorch等大模型基础环境 用通俗易懂的方式讲解Llama2 部署讲解及试用方式 用通俗易懂的方式讲解基于 LangChain 和 ChatGLM2 打造自有知识库问答系统 用通俗易懂的方式讲解一份保姆级的 Stable Diffusion 部署教程开启你的炼丹之路 用通俗易懂的方式讲解对 embedding 模型进行微调我的大模型召回效果提升了太多了 用通俗易懂的方式讲解LlamaIndex 官方发布高清大图纵览高级 RAG技术 用通俗易懂的方式讲解使用 LlamaIndex 和 Eleasticsearch 进行大模型 RAG 检索增强生成 一、理解Retrieval Evaluation中的评估指标 为了衡量我们的检索系统的有效性我们选择被广泛接受的两个指标Hit Rate和 Mean Reciprocal Rank (MRR)。让我们深入研究这些指标以了解它们的重要性以及它们是如何运作的。 命中率Hit Rate 命中率计算在前k个检索到的文档中找到正确答案的查询的百分比。简单地说这是关于我们的系统在前几次猜测中正确的频率。 平均倒数排名MRR 对于每个查询MRR通过查看排名最高的相关文档的排名来评估系统的准确性。具体来说它是所有查询中这些排名的倒数的平均值。因此如果第一个相关文档是最高结果则倒数为1如果是第二个则倒数为1/2依此类推。 既然我们已经确定了评估指标现在是时候开始实验了。 二、设置环境 !pip install llama-index sentence-transformers cohere anthropic voyageai protobuf pypdf三、设置Key openai_api_key YOUR OPENAI API KEY cohere_api_key YOUR COHEREAI API KEY anthropic_api_key YOUR ANTHROPIC API KEY openai.api_key openai_api_key四、下载数据 !wget --user-agent Mozilla https://arxiv.org/pdf/2307.09288.pdf -O llama2.pdf五、加载数据 让我们加载数据。我们前36页来进行实验不包括目录、参考文献和附录。 然后将这些数据转换为节点进行解析这些节点表示我们想要检索的数据块。我们设置chunk_size为512。 documents SimpleDirectoryReader(input_files[llama2.pdf]).load_data()node_parser SimpleNodeParser.from_defaults(chunk_size512) nodes node_parser.get_nodes_from_documents(documents)六、生成问题上下文对 为了评估我们创建了一个问题上下文对数据集该数据集包括一系列问题及其相应的上下文。为了消除embeddingOpenAI/CohereAI和重排序CohereAI评估的偏差我们使用Anthropic LLM生成问题上下文对。 让我们初始化一个Prompt模板来生成问题上下文对。 # Prompt to generate questions qa_generate_prompt_tmpl \ Context information is below.--------------------- {context_str} ---------------------Given the context information and not prior knowledge. generate only questions based on the below query.You are a Professor. Your task is to setup \ {num_questions_per_chunk} questions for an upcoming \ quiz/examination. The questions should be diverse in nature \ across the document. The questions should not contain options, not start with Q1/ Q2. \ Restrict the questions to the context information provided.\llm Anthropic(api_keyanthropic_api_key) qa_dataset generate_question_context_pairs(nodes, llmllm, num_questions_per_chunk2 )过滤句子的函数例如——以下是基于所提供上下文的两个问题 # function to clean the dataset def filter_qa_dataset(qa_dataset):Filters out queries from the qa_dataset that contain certain phrases and the correspondingentries in the relevant_docs, and creates a new EmbeddingQAFinetuneDataset object withthe filtered data.:param qa_dataset: An object that has queries, corpus, and relevant_docs attributes.:return: An EmbeddingQAFinetuneDataset object with the filtered queries, corpus and relevant_docs.# Extract keys from queries and relevant_docs that need to be removedqueries_relevant_docs_keys_to_remove {k for k, v in qa_dataset.queries.items()if Here are 2 in v or Here are two in v}# Filter queries and relevant_docs using dictionary comprehensionsfiltered_queries {k: v for k, v in qa_dataset.queries.items()if k not in queries_relevant_docs_keys_to_remove}filtered_relevant_docs {k: v for k, v in qa_dataset.relevant_docs.items()if k not in queries_relevant_docs_keys_to_remove}# Create a new instance of EmbeddingQAFinetuneDataset with the filtered datareturn EmbeddingQAFinetuneDataset(queriesfiltered_queries,corpusqa_dataset.corpus,relevant_docsfiltered_relevant_docs)# filter out pairs with phrases Here are 2 questions based on provided context qa_dataset filter_qa_dataset(qa_dataset)七、自定义检索器 为了寻找最优检索器我们采用embedding模型和重排序器的组合。最初我们建立了一个基本的VectorIndexRetriever。在检索节点后我们引入一个重排序器来进一步细化结果。值得注意的是对于这个特定的实验我们将similarity_top_k设置为10并用reranker选择了前5名。 但是您可以根据具体实验的需要随意调整此参数。我们在这里展示了OpenAIEmbedding的代码。 embed_model OpenAIEmbedding() service_context ServiceContext.from_defaults(llmNone, embed_model embed_model) vector_index VectorStoreIndex(nodes, service_contextservice_context) vector_retriever VectorIndexRetriever(indexvector_index, similarity_top_k 10)class CustomRetriever(BaseRetriever):Custom retriever that performs both Vector search and Knowledge Graph searchdef __init__(self,vector_retriever: VectorIndexRetriever,) - None:Init params.self._vector_retriever vector_retrieverdef _retrieve(self, query_bundle: QueryBundle) - List[NodeWithScore]:Retrieve nodes given query.retrieved_nodes self._vector_retriever.retrieve(query_bundle)if reranker ! None:retrieved_nodes reranker.postprocess_nodes(retrieved_nodes, query_bundle)else:retrieved_nodes retrieved_nodes[:5]return retrieved_nodesasync def _aretrieve(self, query_bundle: QueryBundle) - List[NodeWithScore]:Asynchronously retrieve nodes given query.Implemented by the user.return self._retrieve(query_bundle)async def aretrieve(self, str_or_query_bundle: QueryType) - List[NodeWithScore]:if isinstance(str_or_query_bundle, str):str_or_query_bundle QueryBundle(str_or_query_bundle)return await self._aretrieve(str_or_query_bundle)custom_retriever CustomRetriever(vector_retriever)八、评估 为了评估我们的检索器我们计算了平均倒数排名MRR和命中率指标 retriever_evaluator RetrieverEvaluator.from_metric_names([mrr, hit_rate], retrievercustom_retriever ) eval_results await retriever_evaluator.aevaluate_dataset(qa_dataset)九、结果 我们对各种嵌入模型和重新排序进行了测试。以下是我们考虑的模型 embedding模型 OpenAI Embedding Voyage Embedding CohereAI Embedding (v2.0/ v3.0) Jina Embeddings (small/ base) BAAI/bge-large-en Google PaLM Embedding 重排序模型 CohereAI bge-reranker-base bge-reranker-large 下表显示了基于命中率和平均倒数排名MRR指标的评估结果 10、分析 embedding性能 OpenAI展示顶级性能尤其是CohereRerank0.926966命中率0.86573 MRR和bge-reranker-large0.910112命中率0.8 55805 MRR表明与重排序工具有很强的兼容性。 bge-large使用重排序时效果显著改进CohereRerank的结果最好0.876404命中率0.822753 MRR。 llm-embedder从重排序中受益匪浅特别是使用CohereRebank0.882022命中率0.830243 MRR性能提升显著。 CohereCohere最新的v3.0 embedding模型优于v2.0并且通过集成原生CohereRebank显著提高了其指标有0.88764的命中率和0.836049的MRR。 Voyage具有强大的初始性能CohereRerank进一步放大了这一性能0.91573命中率0.851217 MRR表明对重排列的响应性很高。 JinaAI表现非常强劲bge-reranker-large0.938202命中率0.868539 MRR和CohereRerank0.932584命中率0.8 73689涨幅显著表明重新评级显著提升了其表现。 Google-PaLM该模型表现出强大的性能在使用CohereRebank时有可测量的增益0.910112命中率0.855712 MRR。这表明重排序明显提升了其整体性能。 重排序的影响 WithoutReranker这为每个embedding提供了baseline性能。 bge-reranker-base通常可以提高embedding的命中率和MRR。 bge-reranker-large这个reranker经常为embedding提供最高或接近最高的MRR。对于几种embedding其性能可以与CohereRebank相媲美或超越。 CohereRerank持续提高所有embedding的性能通常提供最佳或接近最佳的结果。 重排序的必要性 上述实验表明了重排序在细化搜索结果方面的重要性。几乎所有embedding都受益于重新排序其可以提高命中率和MRR。 Reranker尤其是CohereRerank已经证明了他们可以提高任何embedding能力。 总体优势 当同时考虑命中率和MRR时OpenAICohereRebank和JinaAI Basebge-reranker-large/CohereRebank的组合成为顶级竞争者。 然而CohereRerank/bge-reranker在各种embedding中都可以一致性改进增强搜索的质量适用于何种embedding。 总之为了在命中率和MRR方面实现峰值性能OpenAI或JinaAI Base嵌入与CohereRerank/bge重ranker大型重ranker的组合脱颖而出。 11、结论 在这篇博客文章中我们展示了如何使用各种embedding和重排序来评估和增强检索器的性能。以下是我们的最终结论。 EmbeddingsOpenAI和JinaAI-Base embedding尤其是与CohereRerank****/bge-reranker-large reranker配对时为命中率和MRR设定了黄金标准。 Rerankers重新排序的影响特别是CohereRerank****/bge-reranker-large 重新排序怎么强调都不为过。它们在改善许多embedding的MRR方面发挥着关键作用表明了它们在改善搜索结果方面的重要性。 Foundation is Key为初始搜索选择正确的embedding至关重要如果基本搜索结果不好即使是最好的重新排序也无济于事。 Working Together为了让检索器发挥出最大的作用找到embedding和重新排序的正确组合是很重要的。这项研究表明仔细测试并找到最佳配对是多么重要。 参考文献 [1] https://blog.llamaindex.ai/boosting-rag-picking-the-best-embedding-reranker-models-42d079022e83 [2] https://colab.research.google.com/drive/1TxDVA__uimVPOJiMEQgP5fwHiqgKqm4-?uspsharing
http://www.zqtcl.cn/news/308570/

相关文章:

  • 徐州市水利工程建设有限公司网站网站建设技术团队有多重要性
  • 合肥佰瑞网站搜索引擎优化步骤
  • 营销型网站建设亏1广西桂林天气预报15天
  • 想做一个网站平台怎么做公司网站建设费用估计
  • 电商网站开发平台pi netwo网页设计文件下载
  • 南平网站设计笔记本怎么建设网站
  • 舆情分析网站免费人工智能培训班收费标准
  • 青岛网站建设 大公司制作相册视频
  • 什么是网站的域名jquery素材网站
  • 课程网站建设ppt模板百度seo推广
  • 网站建设需要用到什么怎么在电脑上用手机app软件
  • 公司做网站有意义么网站认证必须做么
  • 网站虚拟空间更新缓存php外贸网站建设
  • 河南省建设执业资格注册中心网站门户定制网站建设公司
  • 网站开发比较厉害wordpress中文 插件
  • 文化投资的微网站怎么做个人微信公众号如何推广
  • 单位的网站怎样设计才美观网页设计图片的代码
  • 长沙专业做网站排名济南手机网站定制费用
  • 西安专题门户响应式网站建设系统网站有哪些
  • 山东省建设局网站监理员考试asp.net mvc6电商网站开发实践
  • 做网站需要提供什么资料网站备案是什么意思
  • 河南网站建设及推广东莞百度代做网站联系方式
  • 大型企业网站制作浦东新区做网站
  • 简单大气网站源码织梦怎么用框架实现在浏览器的地址栏只显示网站的域名而不显示出文件名
  • 电子商务型网站建设线上推广营销策划
  • 网站建设管理工作情况的通报网站开发vs设计报告
  • 嘉定网站网站建设公司官网制作
  • 做旅游广告在哪个网站做效果好财经网站建设
  • 网站样式下载网站地图定位用什么技术做
  • 自己做网站怎么做的百中搜优化软件