【finetuning】路由器微调案例分析
1. 案例目标本案例的主要目标是探索如何通过微调大型语言模型(LLM)驱动的路由器来提高查询路由的准确性。具体来说案例尝试了两种不同的微调方法使用查询和真实选择作为训练信号微调嵌入模型微调交叉编码器案例使用不同城市的维基百科文章作为数据集并为每种方法生成合成数据集进行微调最后进行基本评估以验证微调效果。2. 技术栈与核心依赖本案例使用了以下主要技术栈和依赖LlamaIndex: 用于构建和评估检索增强生成(RAG)系统的核心框架llama-index-finetuning: LlamaIndex的微调模块提供模型微调功能llama-index-llms-openai: LlamaIndex的OpenAI语言模型集成SentenceTransformers: 用于微调嵌入模型的库BAAI/bge-small-en: 作为基础嵌入模型OpenAI GPT-3.5-turbo: 用于生成问题和评估的语言模型Wikipedia API: 用于获取城市维基百科文章数据pandas, numpy: 用于数据处理和评估结果分析3. 环境配置本案例的环境配置包括以下步骤安装必要的Python包%pip install llama-index-finetuning %pip install llama-index-llms-openai !pip install llama-index !pip install spacy导入必要的库并设置异步环境import nest_asyncio nest_asyncio.apply()配置OpenAI API密钥未在代码中显示但需要设置初始化语言模型from llama_index.llms.openai import OpenAI llm OpenAI(modelgpt-3.5-turbo, temperature0.3)4. 案例实现案例实现主要分为以下几个步骤4.1 数据准备定义城市列表wiki_titles [ Toronto, Seattle, Chicago, Boston, Houston, Tokyo, Berlin, Lisbon ]从维基百科API获取每个城市的文章内容并保存到本地文件使用SimpleDirectoryReader加载所有城市文档city_docs {} for wiki_title in wiki_titles: city_docs[wiki_title] SimpleDirectoryReader( input_files[fdata/{wiki_title}.txt] ).load_data()4.2 定义路由选择器选项为每个城市创建两种工具描述向量搜索工具和摘要工具for idx, wiki_title in enumerate(wiki_titles): vector_desc ( Useful for questions related to specific aspects of f {wiki_title} (e.g. the history, arts and culture, sports, demographics, or more). ) summary_desc ( Useful for any requests that require a holistic summary f of EVERYTHING about {wiki_title}. For questions about more specific sections, please use the vector_tool. ) # ... 存储描述和选择映射4.3 生成训练数据集使用DatasetGenerator为每个城市生成两种类型的问题向量搜索问题基于文档节点生成具体问题摘要问题使用LLM生成城市摘要的变体问题4.4 数据集分割将数据集按查询分割为训练集和评估集train_dataset, eval_dataset split_train_val_by_query(dataset, split0.7)4.5 微调嵌入模型使用SentenceTransformersFinetuneEngine微调嵌入模型finetune_engine SentenceTransformersFinetuneEngine( train_dataset, model_idBAAI/bge-small-en, model_output_pathtest_model3, val_dataseteval_dataset, epochs30, ) finetune_engine.finetune() ft_embed_model finetune_engine.get_finetuned_model()4.6 评估微调效果比较基础嵌入模型、GPT-3.5和微调嵌入模型的路由准确性ft_matches run_evals(eval_dataset, ft_selector, choices, choice_to_id_dict) base_matches run_evals(eval_dataset, base_selector, choices, choice_to_id_dict) llm_matches run_evals(eval_dataset, llm_selector, choices, choice_to_id_dict)5. 案例效果案例的评估结果显示了不同模型在路由选择任务上的性能差异模型匹配率基础嵌入模型0.128492 (12.85%)GPT-3.50.659218 (65.92%)微调嵌入模型0.994413 (99.44%)从结果可以看出微调后的嵌入模型在路由选择任务上表现最佳准确率接近99%远高于基础嵌入模型(12.85%)和GPT-3.5(65.92%)。这表明针对特定任务进行微调可以显著提高模型性能。案例还展示了如何将微调后的选择器集成到RouterQueryEngine中router_query_engine RouterQueryEngine.from_defaults( selectorft_selector.from_defaults(), query_engine_toolstools )并演示了查询示例Tell me more about the sports teams in Toronto系统正确选择了Toronto_vector工具并返回了相关结果。6. 案例实现思路本案例的核心实现思路可以总结为以下几点6.1 问题定义将路由选择问题定义为给定用户查询从多个预定义的工具/选项中选择最合适的一个。这是一个典型的分类或匹配问题。6.2 数据生成策略使用合成数据生成方法创建训练数据对于向量搜索工具基于文档内容生成具体问题对于摘要工具使用LLM生成摘要问题的变体6.3 微调方法选择微调嵌入模型而非直接微调LLM的原因嵌入模型更适合语义相似度计算微调成本更低效率更高可以更好地捕捉特定领域的语义关系6.4 评估方法使用准确率作为评估指标比较不同模型在路由选择任务上的表现。同时将微调后的模型集成到实际的路由查询引擎中验证其实际应用效果。7. 扩展建议基于本案例的实现和结果以下是一些可能的扩展方向7.1 扩展数据集增加更多城市和更丰富的主题类别引入真实用户查询而非仅使用合成数据添加更多样化的工具类型如比较、分析等7.2 改进微调策略尝试不同的微调参数如学习率、批大小、训练轮数等探索其他基础嵌入模型作为微调起点尝试多任务学习同时微调多个相关任务7.3 高级路由策略实现多级路由先进行粗分类再细分类探索混合路由方法结合嵌入模型和LLM的优势添加上下文感知的路由决策考虑对话历史7.4 评估与优化引入更多评估指标如延迟、资源消耗等进行A/B测试比较不同路由策略在实际应用中的表现开发自动化的路由性能监控和反馈机制8. 总结本案例展示了如何通过微调嵌入模型来显著提高路由选择的准确性。主要贡献和发现包括方法有效性微调嵌入模型在路由选择任务上表现出色准确率接近99%远高于基础模型和通用LLM。数据生成策略使用合成数据生成方法可以有效创建训练数据避免了手动标注的需要。集成应用微调后的选择器可以无缝集成到LlamaIndex的RouterQueryEngine中提高整体系统性能。成本效益相比微调大型语言模型微调嵌入模型成本更低效率更高。这个案例为构建更智能、更准确的路由系统提供了实用的方法和技术路线。通过针对特定任务进行微调可以显著提高系统性能同时保持较低的计算成本。这种方法可以扩展到其他需要智能路由决策的应用场景如多模态内容处理、复杂查询分解等。总的来说本案例证明了微调嵌入模型是提高路由选择准确性的有效方法为构建更智能的RAG系统提供了有价值的参考。

相关新闻

一次全站HTTPS证书过期故障的复盘:从应急响应到自动化证书管理体系的建立全过程

一次全站HTTPS证书过期故障的复盘:从应急响应到自动化证书管理体系的建立全过程

一次全站HTTPS证书过期故障的复盘:从应急响应到自动化证书管理体系的建立全过程 一、故障概述与影响评估 2025年8月12日凌晨02:47,某互联网企业的核心业务平台突然发生大规模服务不可用故障。用户访问官网、API网关、管理后台等所有HTTPS服务时&#xff…

2026/7/23 21:35:33阅读更多 →
大规模镜像仓库治理项目的全流程复盘:Harbor中200TB存量镜像的清理、压缩与生命周期管理

大规模镜像仓库治理项目的全流程复盘:Harbor中200TB存量镜像的清理、压缩与生命周期管理

大规模镜像仓库治理项目的全流程复盘:Harbor中200TB存量镜像的清理、压缩与生命周期管理 一、项目背景与问题提出 随着企业容器化进程的快速推进,Harbor镜像仓库逐渐成为DevOps流程中的核心基础设施。然而,在缺乏有效治理策略的情况下&#x…

2026/7/23 21:35:33阅读更多 →
题解:软件安装

题解:软件安装

题目:https://www.luogu.com.cn/problem/P2515 注意软件的依赖关系可能形成一个环,a依赖b,b依赖c,c依赖a,如果想要让环上的一个软件起作用必须得下载环上的所有软件。所以需要先缩点。 缩点完成后重新建图,…

2026/7/23 21:33:32阅读更多 →
锂电卷到极致后,长时储能开始“偷家“了

锂电卷到极致后,长时储能开始“偷家“了

锂电卷到极致后,长时储能开始"偷家"了 2026年,中国新型储能装机1.36亿千瓦,全球占比51.9%。锂离子电池占其中96.4%。 看上去锂电赢麻了。但如果你只看到这个数字,就错过了正在发生的第二件事。 114号文——今年1月底发布…

2026/7/23 22:47:43阅读更多 →
短剧出海成本不只看翻译单价:去字幕、配音、合成和封面都会影响预算

短剧出海成本不只看翻译单价:去字幕、配音、合成和封面都会影响预算

短剧出海成本不只看翻译单价:去字幕、配音、合成和封面都会影响预算,看起来像一个价格或排期问题,实际是在问短剧出海团队能不能把内容生产做成可复制的流程。翻译单价当然重要,但它只覆盖了本地化链路中的一小段。真正决定短剧海…

2026/7/23 22:47:43阅读更多 →
Doker背景——服务器技术架构演进之路

Doker背景——服务器技术架构演进之路

目录 概述 常见概念 基本概念 应用/系统 模块(Module)/ 组件(Component) 分布式(Distributed) 集群(Cluster) 主(Master)/ 从(Slave&…

2026/7/23 22:47:43阅读更多 →
400分钟短剧交付周期怎么估:AI译配全流程效率拆解短剧出海赶档期:为什么批量产能比单集处理速度更重要

400分钟短剧交付周期怎么估:AI译配全流程效率拆解短剧出海赶档期:为什么批量产能比单集处理速度更重要

AI短剧译配为什么不能只比低价:成本、质量和返工率一起算,看起来像一个价格或排期问题,实际是在问短剧出海团队能不能把内容生产做成可复制的流程。低价是预算表里最显眼的数字,但它不一定代表低成本。短剧译配的最终目标是可发布…

2026/7/23 22:47:43阅读更多 →
不想做千篇一律综合商城?水果生鲜电商毕设项目好上手、答辩有亮点!

不想做千篇一律综合商城?水果生鲜电商毕设项目好上手、答辩有亮点!

最近好多准备课设、毕设的学弟学妹都在发愁选题,通用百货商城、校园管理系统遍地都是,答辩很容易撞款,老师看多了没新意;网上随便下的源码大多缺数据库、没有完整论文,光是排查各种bug就要熬好几个通宵。我当初做实训踩…

2026/7/23 22:47:43阅读更多 →
每天60秒读懂世界|2026年7月23日:50℃极端高温、引力一号一箭9星与全球经贸新变化

每天60秒读懂世界|2026年7月23日:50℃极端高温、引力一号一箭9星与全球经贸新变化

🔥 个人主页: 杨利杰YJlio ❄️ 个人专栏: 《Windows 疑难杂症与工单复盘案例库》 《Sysinternals实战教程》 《WINDOWS教程》 《Windows PowerShell 实战》 《IOS插件分析测试》 《超简单:用Python让Excel飞起来》…

2026/7/23 22:45:43阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/23 0:56:31阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/23 0:56:31阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 0:56:31阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:00:28阅读更多 →
从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:28阅读更多 →
油泥处理设备哪里能买到

油泥处理设备哪里能买到

油泥处理设备哪里有?这是许多从事油田、炼化、清罐业务的从业者最关心的问题。根据河南三丰环保设备有限公司的行业经验,选购油泥处理设备的核心在于设备能否适配当地环保法规与原料特性,而非单纯看价格。该公司总经理王钦田先生指出&#xf…

2026/7/23 0:00:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/22 22:56:18阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/23 18:58:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/23 18:58:18阅读更多 →