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

清远专业网站制作公司公司网站如何建立

清远专业网站制作公司,公司网站如何建立,ppt设计公司,上海有几个区最好文章目录 背景简介代码实现自定义检索器向量检索实验向量检索和rerank 实验 代码开源 背景 在前面部分 大模型生成RAG评估数据集并计算hit_rate 和 mrr 介绍了使用大模型生成RAG评估数据集与评估#xff1b; 在 上文 使用到了BM25 关键词检索器。接下来#xff0c;想利用向… 文章目录 背景简介代码实现自定义检索器向量检索实验向量检索和rerank 实验 代码开源 背景 在前面部分 大模型生成RAG评估数据集并计算hit_rate 和 mrr 介绍了使用大模型生成RAG评估数据集与评估 在 上文 使用到了BM25 关键词检索器。接下来想利用向量检索器测试一下在RAG评估数据集上的 hit_rate 和 mrr 简介 使用 向量检索 和 rerank 在给定RAG评估数据集上的实验计算 hit_rate 和 mrr 对比了使用 rerank 和 不使用 rerank的实验结果 步骤 基于RAG评估数据集构建nodes节点构建 CustomRetriever 自定义的检索器在检索器中实现 向量检索和 rerank实验评估 代码实现 from typing import Listfrom llama_index.core import SimpleDirectoryReader, VectorStoreIndex from llama_index.core.base.base_retriever import BaseRetriever from llama_index.core.evaluation import RetrieverEvaluator from llama_index.core.indices.postprocessor import SentenceTransformerRerank from llama_index.core.indices.vector_store import VectorIndexRetriever from llama_index.core.node_parser import SentenceWindowNodeParser from llama_index.core.settings import Settings from llama_index.legacy.embeddings import HuggingFaceEmbedding # from llama_index.legacy.schema import NodeWithScore, QueryBundle from llama_index.core.schema import NodeWithScore, QueryBundle, QueryType, Node from llama_index.core.evaluation import EmbeddingQAFinetuneDataset利用数据集中的数据构建nodes pg_eval_dataset.json的下载地址: https://www.modelscope.cn/datasets/jieshenai/paul_graham_essay_rag/files qa_dataset EmbeddingQAFinetuneDataset.from_json(pg_eval_dataset.json)nodes [] for key, value in qa_dataset.corpus.items():nodes.append(Node(id_key, textvalue))m3e 向量编码模型 若想使用其他的编码模型直接进行修改即可modelscope和huggingface的编码模型都行 from modelscope import snapshot_download model_dir snapshot_download(AI-ModelScope/m3e-base) Settings.embed_model HuggingFaceEmbedding(model_dir) Settings.llm None由于huggingface被墙了笔者使用的是 modelscope平台model_dir 为编码模型在本地的绝对路径 自定义检索器 tok_k: 表示召回的节点数量可自定义设置 top_k 10定义向量检索器还实现了rerank class CustomRetriever(BaseRetriever):Custom retriever that performs both Vector search and Knowledge Graph searchdef __init__(self, vector_retriever: VectorIndexRetriever, rerankerNone) - None:Init params.super().__init__()self._vector_retriever vector_retrieverself.reranker rerankerdef _retrieve(self, query_bundle: QueryBundle) - List[NodeWithScore]:Retrieve nodes given query.# print(query_bundle, isinstance(QueryBundle))retrieved_nodes self._vector_retriever.retrieve(query_bundle)if self.reranker ! None:retrieved_nodes self.reranker.postprocess_nodes(retrieved_nodes, query_bundle)else:retrieved_nodes retrieved_nodes[:top_k]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)eval_results包含每个query的 hit_rate 和 mrrdisplay_results 计算平均 import pandas as pd def display_results(eval_results):计算平均 hit_rate 和 mrrmetric_dicts []for eval_result in eval_results:metric_dict eval_result.metric_vals_dictmetric_dicts.append(metric_dict)full_df pd.DataFrame(metric_dicts)hit_rate full_df[hit_rate].mean()mrr full_df[mrr].mean()metric_df pd.DataFrame({hit_rate: [hit_rate], mrr: [mrr]})return metric_df向量检索实验 index VectorStoreIndex(nodes) vector_retriever VectorIndexRetriever(indexindex, similarity_top_ktop_k) retriever_evaluator RetrieverEvaluator.from_metric_names([mrr, hit_rate], retrievervector_retriever ) eval_results await retriever_evaluator.aevaluate_dataset(qa_dataset) display_results(eval_results)向量检索和rerank 实验 bge_reranker_base SentenceTransformerRerank(modelsnapshot_download(Xorbits/bge-reranker-base),top_ntop_k)retriever CustomRetriever(vector_retrievervector_retriever,rerankerbge_reranker_base)retriever_evaluator RetrieverEvaluator.from_metric_names([mrr, hit_rate], retrieverretriever ) eval_results await retriever_evaluator.aevaluate_dataset(qa_dataset) display_results(eval_results)若想使用其他的rerank模型更换Xorbits/bge-reranker-base 若使用modelscope平台的rerank模型直接修改模型名即可 若使用huggingface 平台的rerank模型自行修改代码 上述对比了在向量检索下对比了添加rerank和不添加rerank的实验结果 如上图所示相比只有向量检索的实验加了rerank mrr 反而还下降了这是一个比较反常的实验结果 这个并不能说明rerank没有用笔者在其他的RAG数据集测试时rerank确实能提升mrr本例子这里的情况大家忽略即可。 在本实验这里仅仅是给读者展示如何使用rerank这也说明了rerank模型也并不都能提升所有的mrr 代码开源 本项目的完整代码已发布到modelscope平台上 点击下述链接查看代码 https://www.modelscope.cn/datasets/jieshenai/paul_graham_essay_rag/file/view/master/vector_rerank_eval.ipynb?status1
http://www.hkea.cn/news/14521043/

相关文章:

  • 金阊做网站价格WordPress最好版本
  • 超大型网站建设深圳低价网站建设
  • 论坛类网站建站wordpress 文艺小清新
  • 网站开发需求ppt做公司网站思路
  • 房地产广告设计网站263企业邮箱腾讯登录入口
  • 在百度怎么建自己的网站dede网站5.7广告去除
  • 单位网站备案流程廊坊手机网站团队
  • 谁做网站做的比较可信如何制作网页小游戏
  • 江苏省住房城乡建设厅网站自己做的网站网页打开速度慢
  • wordpress适用linux电商seo优化
  • 网站开发在线网站关键词选取的步骤
  • 做篮球视频网站建站免费加盟
  • 网上做试卷的网站网站开发 报价单
  • 石家庄建网站挣钱优帮云关于网站开发的外文翻译
  • 素材网站推荐浙江立鹏建设有限公司网站
  • 网站变exe文件怎么做有百度推广的网站
  • 蓝色大气企业网站模板wordpress dux
  • 深圳网站建设在哪里找网站模板服务商
  • wordpress中文版和英文版上海做网站优化的公司
  • 郑州怎么做外贸公司网站智慧房产信息管理平台
  • 网站调用网页内容佛山注册公司无需地址
  • 免费网站制作多少钱m2型虚拟主机带宽 网站
  • 网站建站行业新闻如何搭wordpress
  • 乐昌北京网站建设asp网站验证码不显示
  • 电子商务网站采用的开发技术学做淘宝客网站
  • 中山 网站建设一条龙安全联盟网站认证
  • 网站后端建设当当网网站的建设过程
  • 医院网站建设方案需要多少钱seo排名优化表格工具
  • 慧聪网怎样做网站友情链接浙江网站建设实验心得
  • 京东商城网站建设义乌网络科技有限公司