站长工具樱花网页设计太难了
2026/5/18 19:22:34 网站建设 项目流程
站长工具樱花,网页设计太难了,化妆品网站设计模板,wordpress 插件漏洞一、rerank如何影响业务表现 今天聊一聊我们如何做高质量rerank。 一个常识是#xff0c;无论企业知识库、电商、新闻#xff0c;还是RAG、agent场景#xff0c;只依靠语义相似度对检索结果进行排名#xff0c;无疑都是粗暴且低效的。 一方面#xff0c;元数据往往包含…一、rerank如何影响业务表现今天聊一聊我们如何做高质量rerank。一个常识是无论企业知识库、电商、新闻还是RAG、agent场景只依靠语义相似度对检索结果进行排名无疑都是粗暴且低效的。一方面元数据往往包含了语义、时间、标签、地理位置等多元信息语义并不总是最重要的那一项 另一方面用户检索时往往还需要对数据按照距离远近、好评分数、复购数量等信息进行综合排序。比如电商付费/旗舰店商品要更靠前缺货商品要略微靠后内容搜索官方内容、最近发布的内容要优先企业知识库部分标签如“权威文档”“最佳实践”需要被提升或者置顶。在很多数据库的向量插件或者早期版本的向量数据库产品中向量检索结果排序主要依赖向量相似度本身距离越近/相似度越高越靠前或者通过模型类 Reranker如 BGE, Voyage, Cohere进行更智能的重排。但很显然这两种方案中的任意一种都无法解决实际场景中复杂的rerank需求。针对这一困境Milvus推出了Boost Ranker功能在 Milvus 内部我们可以对候选结果应用一组基于元数据的“加权规则”做到不改索引、不改向量模型就能按照需求更新排序逻辑。那么这个功能是如何实现的要如何在实战中使用本文将重点解读。二、Boost Ranker 是什么2.1 核心能力概览Boost Ranker 是 Milvus 2.6.2 引入的一种 rerank 策略通过 Function API 配置在向量检索返回的候选集合上再执行一轮基于过滤表达式的匹配对命中的实体按照配置的weight权重重新缩放分数引入random_score在 0~1 范围内生成一个随机因子做轻量的“打散”。相比模型类 Reranker调用外部 LLM / rerank 模型Boost Ranker完全基于已有的标量字段 简单规则不需要外部服务代价低实时性强。2.2 内部工作机制Boost Ranker 在 Milvus 内部的工作流程大致为第一步向量检索阶段每个 segment 独立返回一批候选结果包含 id、原始 score、相关元数据第二步应用 Boost Ranker使用filter表达式可选在候选中筛出“需要加权”的实体对这些实体的分数按weight、random_score做缩放第三步再聚合所有 segment 的候选按新的分数排序得到最终 TopK。需要注意的是 Boost Ranker 对候选集合生效而不是在全量数据上跑一次新查询因此性能开销非常小。三、 什么情况下优先考虑 Boost Ranker3.1 业务驱动的内容加权典型场景电商搜索提升“旗舰店/自营/付费推广”商品的权重提升近期销量/点击高的商品内容/资讯搜索提升最近一段时间内发布的内容结合publish_time字段提升来源为“官方账号”“认证作者”的内容企业内部文档检索提升doctype policy或is_canonical true的权威文档。这些都可以通过简单的filterweight实现无需触碰向量模型、索引。3.2 策略性降权与风控另一类是温柔的隐藏而不是直接过滤低库存但仍可售的商品stock 10适当降权含有潜在敏感词的内容打一点折扣但不做硬过滤过旧的文档例如year 2020适当往后排。优势是用户仍能在某些场景看到这些结果但它们会自然地出现在靠后位置。3.3 探索/多样化利用 random_scoreBoost Ranker 支持random_score字段random_score: { seed: 126, field: id }seed随机数种子控制全局一致性field作为随机数生成的输入通常用主键保证同一条数据多次搜索随机结果一致。可以用它来在同一相似度的多个候选中稍微“打散”顺序避免永远只看到相同 Top配合固定权重做固定 小范围随机的混合排序用于推荐系统里的探索策略。3.4 与其它 Ranker 的关系与限制Boost Ranker 是通过Function(FunctionType.RERANK, params.rerankerboost)创建的rerank 函数它不能作为多向量 hybrid search多个向量字段一起搜的顶层 ranker但可以作为每个AnnSearchRequest的 ranker 使用。可以与其他 Ranker 组合比如先用 RRF Ranker 融合多模态结果再用 Boost Ranker 做基于元数据的微调或者模型 Ranker 提升语义相关性然后 Boost Ranker 叠加业务规则。四、核心参数与使用注意事项Boost Ranker 是通过Function和FunctionScore可选配置的。4.1 创建 Boost Ranker 所需的字段Python 里一般这么创建后面实战会给完整代码name这个 Function 的名字input_field_namesBoost Ranker 必须是空列表[]function_type固定使用FunctionType.RERANKparams.reranker固定字符串boost告诉 Milvus 使用 Boost Ranker。4.2 重点参数weight、filter、random_score1params.weight必填对所有命中 filter 的实体将其原始分数乘以此权重选择规则和度量有关如果“分数越小越好”典型是距离类度量要 提升 某类结果就用 1 的权重 如果“分数越大越好”要提升就用 1 的权重。2params.filter可选一条基础的标量过滤表达式例如“doctype ‘abstract’”“is_premium true”“views 1000 and category ‘tech’”3params.random_score可选结构{“seed”: 126, “field”: “id”}返回 0~1 的随机值可与 weight 配合产生轻微扰动建议同时设置 seed 与 field保证多次请求中结果可复现。4.3 单 Boost Ranker vs 多 Boost Ranker单 Boost Ranker适合只有一条主规则比如“提升摘要文档”“打压过旧文档”直接在search(..., rankerranker)里传入即可。多 Boost Ranker 组合boost_mode单个函数内部如何组合原始分数与其权重乘法/加法function_mode多个 Boost Ranker 之间如何合并乘法/加法。当业务有多条规则例优先有库存 轻微打压低评分 增加一点随机探索可以创建多个Function然后通过FunctionScore组合配置五、实战文档检索中提升“官方”文档权重5.1 场景设定与数据建模假设我们有一个集合milvus_collection字段如下id: INT64 主键embedding: FLOAT_VECTORcontent字段的embeddding数据content: VARCHAR文档内容source: VARCHAR取值如official,community,ticket等。is_official: BOOL, 官方文档即source是official为True否则是False。5.2 创建集合与插入示例数据from pymilvus import ( MilvusClient, DataType, Function, FunctionType, ) # 1. 连接 Milvus client MilvusClient(urihttp://localhost:19530) collection_name milvus_collection # 如果已存在就先删除方便反复调试 if collection_name in client.list_collections(): client.drop_collection(collection_name) # 2. 定义 schema schema MilvusClient.create_schema( auto_idFalse, enable_dynamic_fieldFalse, ) schema.add_field( field_nameid, datatypeDataType.INT64, is_primaryTrue, ) schema.add_field( field_namecontent, datatypeDataType.VARCHAR, max_length512, ) schema.add_field( field_namesource, datatypeDataType.VARCHAR, max_length32, ) schema.add_field( field_nameis_official, datatypeDataType.BOOL, ) schema.add_field( field_nameembedding, datatypeDataType.FLOAT_VECTOR, dim3072, ) text_embedding_function Function( nameopenai_embedding, function_typeFunctionType.TEXTEMBEDDING, input_field_names[content], output_field_names[embedding], params{ provider: openai, model_name: text-embedding-3-large } ) schema.add_function(text_embedding_function) # 3. 创建 Collection client.create_collection( collection_namecollection_name, schemaschema, ) # 4. 创建索引 index_params client.prepare_index_params() index_params.add_index( field_nameembedding, index_typeIVF_FLAT, metric_typeCOSINE, params{nlist: 16}, ) client.create_index( collection_namecollection_name, index_paramsindex_params, ) # 5. 加载 Collection 到内存 client.load_collection(collection_namecollection_name) docs [ { id: 1, content: 如何在 Kubernetes 上部署 Milvus官方手册, source: official, is_official: True }, { id: 2, content: Milvus 在 Docker Compose 下的快速部署官方教程, source: official, is_official: True }, { id: 3, content: 社区经验Milvus部署经验之谈, source: community, is_official: False }, { id: 4, content: 工单记录Milvus 部署问题, source: ticket, is_official: False }, ] client.insert( collection_namecollection_name, datadocs, )5.3 定义 Boost Ranker 并执行搜索我们希望在语义相关性相近的情况下Milvus官方文档优先出现。# 6. 基线搜索不加 Boost Ranker query_vector 如何部署milvus search_params { metric_type: COSINE, params: {nprobe: 2}, } results client.search( collection_namecollection_name, data[query_vector], anns_fieldembedding, search_paramssearch_params, limit4, output_fields[content, source, is_official], ) print( Baseline search (no Boost Ranker) ) for hit in results[0]: entity hit[entity] print( fid{hit[id]}, fscore{hit[distance]:.4f}, fsource{entity[source]}, fis_official{entity[is_official]} ) # 7. 定义 Boost Ranker给 is_official true 的文档加权 boost_official_ranker Function( nameboost_official, input_field_names[], # Boost Ranker 要求必须为空列表 function_typeFunctionType.RERANK, params{ reranker: boost, # 指定使用 Boost Ranker filter: is_officialtrue, # 对于 COSINE / IP分数越大越好使用 1 的权重进行提升 weight: 1.2 }, ) boosted_results client.search( collection_namecollection_name, data[query_vector], anns_fieldembedding, search_paramssearch_params, limit4, output_fields[content, source, is_official], rankerboost_official_ranker, ) print(\n Search with Boost Ranker (official boosted) ) for hit in boosted_results[0]: entity hit[entity] print( fid{hit[id]}, fscore{hit[distance]:.4f}, fsource{entity[source]}, fis_official{entity[is_official]} )查询结果 Baseline search (no Boost Ranker) id1, score0.7351, sourceofficial, is_officialTrue id4, score0.7017, sourceticket, is_officialFalse id3, score0.6706, sourcecommunity, is_officialFalse id2, score0.6435, sourceofficial, is_officialTrue Search with Boost Ranker (official boosted) id1, score0.8821, sourceofficial, is_officialTrue id2, score0.7722, sourceofficial, is_officialTrue id4, score0.7017, sourceticket, is_officialFalse id3, score0.6706, sourcecommunity, is_officialFalse5.4 结果变化背后的逻辑在原始向量相似度差距不大的前提下is_official true 的文档更容易出现在前几名社区 / 工单类文档仍会出现在结果中只是相对靠后。这正是 Boost Ranker 要解决的问题把“官方优先”等业务规则叠加到语义检索结果上。总结Boost Ranker作为Milvus 2.6的新功能极大地扩展了向量数据库的灵活性让搜索不再局限于纯向量相似度而是能融入业务逻辑实现更精准的排名。通过本文的介绍和更真实的实践案例读者可以快速理解并应用这一功能。在未来随着AI应用的深化Boost Ranker将在RAG、推荐和检索系统中发挥更大作用。如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…学习是一个过程只要学习就会有挑战。天道酬勤你越努力就会成为越优秀的自己。如果你能在15天内完成所有的任务那你堪称天才。然而如果你能完成 60-70% 的内容你就已经开始具备成为一名大模型 AI 的正确特征了。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询