- 博客(84)
- 资源 (1)
- 收藏
- 关注
原创 Chunk 不是越聪明越好:RAG 工程实战中的取舍艺术
摘要:RAG系统的性能瓶颈往往源于文本切分(Chunking)策略不当。本文剖析了Chunking的工程取舍:1)策略选择需平衡复杂度与场景需求,从固定长度到语义切分各有优劣;2)尺寸控制在256-512Token为黄金区间,过大会稀释关键信息;3)Overlap需10-25%但需防冗余;4)元数据是召回定位的关键;5)必须匹配业务特性,如法律条款需完整保留。核心建议:从Recursive+512Token基线开始,优先结构化切分,用指标而非直觉调参,避免为边际收益付出过高成本。
2026-01-06 11:29:48
732
原创 Sparse vs Dense:为什么你的 RAG 系统离不开混合检索?
摘要: 在构建RAG系统时,仅依赖向量检索(Dense)存在局限性,需结合传统关键词搜索(Sparse)。BM25基于词袋模型,擅长精确匹配(如专有名词),但无法理解语义;Embedding通过低维向量捕捉语义关联,但对精确术语敏感度不足。两者的误差不相关,混合检索(Hybrid)能互补短板,提升召回率。工程上,RRF算法通过排名融合解决分数量纲差异,而Rerank模型进一步优化排序。最终,Sparse与Dense的结合实现了搜索系统“精准匹配”与“语义理解”的双重优势。
2026-01-05 12:04:32
850
原创 明明文档里有答案却搜不到?你的 RAG 可能少了一步 Query Rewrite
RAG系统落地时常因用户非标准查询而失效,尤其在多轮对话中表现不佳。本文提出Query Rewrite技术作为解决方案,在检索前对用户原始查询进行优化处理。文章分析了直接检索的三大问题:指代模糊、语义鸿沟和多重意图,并介绍了四种改写技巧:基础修补(指代消解)、扩容增效(多路径重写)、结构重组(问题拆分)和深度迭代(多步检索)。同时指出需权衡延迟、成本和过度改写等问题,建议采用轻量化模型处理重写任务。Query Rewrite作为连接用户表达与检索系统的桥梁,能显著提升RAG系统的准确性。
2026-01-04 11:53:29
918
原创 从“全量检索”到“按需调度”:深度解析 LLM 应用的 Intent Routing 架构与工程实践
摘要: Intent Routing(意图路由)是优化LLM应用的核心架构,通过智能分流请求到最适合的执行单元(如轻量模型、RAG系统或工具调用),显著降低成本、提升响应速度与任务确定性。关键策略包括:构建四类意图(事实、推理、过程、闲聊)的映射表,采用混合算法(正则/向量/模型)计算置信度,并设置动态水位线决策。工程实践需处理模糊意图、路由递归等边界问题,通过三级过滤架构平衡精度与延迟。案例显示,该架构可降低70%成本,确保复杂任务精准执行,同时毫秒级响应简单请求。
2026-01-03 21:13:30
601
原创 我什么时候用 Agent,什么时候坚决不用
现在的 AI 开发,难的不是让它“动起来”,而是让它“停在该停的地方”。好的工程师应该像个吝啬鬼,尽可能压减 Agent 的自主权。在该死板的地方坚如磐石,在该灵活的地方灵光一现。
2026-01-01 19:22:09
726
原创 RAG 系统实战指南:检索、生成与工程落地
文章强调RAG系统实现了"知识可控、推理可解释"的企业级需求,指出2025年RAG将向Agentic方向演进,支持更复杂的多步推理和自修复能力。文末提供了技术选型决策树和常见实施误区,为实际落地提供指导。
2025-12-26 12:39:42
644
原创 从 Demo 到生产:大模型应用七层架构全景指南
《大模型应用从Demo到生产的七层架构指南》揭示了90%的LLM演示无法直接上线的原因,提出了生产级应用所需的完整架构体系。该体系包含:1)业务交互层处理多端接入与权限控制;2)编排层负责流程调度;3)RAG层确保知识准确性;4)提示词层优化信息表达;5)模型网关实现高可用推理;6)安全层进行风险防控;7)评估层监控全链路表现。通过案例演示了用户订票请求在各层的处理流程,强调只有将大模型封装在严密的工程体系内,才能实现稳定可靠的商业应用。
2025-12-25 17:06:18
1097
原创 利用Pyinstaller打包streamlit为exe
本文参考了其他几位博主的做法并加上了一部分自己搜到的东西,完成了将引用了第三方streamlit库的项目打包成exe,并且为应用了添加自定义图标。环境:windows11、conda 24.3.0、streamlit 1.37.1、streamlit-card 1.0.2、pyinstaller 5.8.0。
2024-08-23 09:44:19
2709
2
原创 TPOT——AutoML框架
是一种automl框架,它利用搜索算法,根据所提供的指标,对给定数据进行交叉验证,自动搜索出效果最好的机器学习pipeline组合。代码也是非常简洁明了。框架会自动将最佳pipeline的代码导出到指定目录。
2023-09-27 10:27:37
532
原创 如何在分类任务(二分类)中选择最佳的threshold
如对指标的precision值有特殊要求,比如要求其大于0.8,我们只需在precision值大于0.8的区间中选取使F1指标最大的点的阈值作为最佳threshold即可。绘制PR曲线后,再计算对应的F1列表,我们只需选取F1指标最大的点的阈值作为最佳threshold即可。当然,如果对precision和recall的看重程度不一样,也可以使用F-beta代替F1指标。
2023-08-24 14:41:29
1162
原创 scGen perturbation response prediction
scGen模型整体其实就分为两部分,VAE + 向量算法,VAE是采用的经典VAE模型,向量算法的计算是简单的用平均向量作差,两部分拆开来看都没有什么新奇和复杂的,但是模型的总体效果非常好。在我自己实际使用时,预测效果并不太好,预测结果距离control比距离stimulated更近,这可能是由于训练数据的condition不是只受一种因素影响造成的。所以建议大家保证数据集的扰动因素有且只有一种。
2023-06-28 14:01:41
1235
3
原创 单细胞数据integration结果评估
scib这篇文章同时还比较了现有的主流integration方法,在做了排名的同时还对不同应用场景下应该用哪个方法做了简易。可以说是非常好的一篇文章了。integration的初衷是想要去除数据的批次效应,但是在去除批次效应的同时有可能去除了数据之间本来就有的生物差异。scib这个方法就是从。前三个是生物保护性指标,后三个是批次效应去除指标。这两方面来衡量integration的效果。好了,现在贴一下我自己常用的评估函数。指标已经放缩到0——1,值越大效果越好。更详细的使用和说明大家可以看这里。
2023-06-16 17:03:32
1479
原创 python的多进程
因为GIL的存在,Python的多线程是一种伪并发,因为GIL规定一个进程中同一时间只能有一个线程使用CPU,这就使得多线程只能共用一个CPU。所以如果我们想要使用多核CPU进行并发计算,就需要使用Python的多进程编程。
2023-06-16 13:22:11
427
原创 error:03000086:digital envelope routines::initialization error
cnpm run start报错。在cmd中使用以下指令。
2023-02-28 14:15:55
315
原创 nodejs环境配置(windows)
简单理解就是nodejs包管理工具,全称Node Package Manager。npm的开源镜像,在国内使用cnpm替代npm可以起到加速的效果。切换到有package.json的地方,命令行敲击。自动安装依赖,react,vue之类的。下载对应平台LTS版(自带npm)简单理解就是js运行环境。
2023-02-27 10:46:07
440
原创 python中的map、reduce
map(映射)function – 函数iterable – 一个或多个序列第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的迭代器。如。
2023-02-25 11:24:41
158
原创 streamlit处理上传压缩包
https://stackoverflow.com/questions/29324037/convert-bytesio-into-file/37982602#37982602
2023-02-08 14:52:02
612
原创 TypeError: can only concatenate str (not “NoneType“) to str
None无法和str类型合并。
2023-02-08 09:20:16
3286
原创 当结果无法复现
当结果无法复现时可以从以下几个方面找原因:1. 语句一致性2. 包版本3. 运行环境(包括操作系统)4. 内存问题(是否因为上次计算结果没有在内存中擦除导致)
2023-01-31 16:22:37
294
1
原创 streamlit修改配置文件不生效
最近有需求要修改streamlit的上传文件大小限制。轻车熟路,打开路径下的配置文件,键入配置指令。重启服务,发现不生效。
2023-01-10 14:04:49
1142
原创 jupyter lab下用pyecharts生成桑基图显示空白
pyecharts在jupyter lab环境下显示要有以下设置。jupyter lab下用pyecharts生成桑基图显示空白。首先数值类型必需是int,numpy等类型会导致错误。踩了几个坑,主要是由以下几点原因导致的。①jupyter lab环境设置。同时画完图后要调用以下函数显示。
2022-12-30 13:30:11
1987
原创 partially initialized module ‘scanorama‘ has no attribute
比如在 scanorama.py里import scanorama。当你把执行文件名和函数名取名一样时就会遇到这个问题。
2022-11-07 11:08:22
202
原创 pandas合并
Merge vertically by defaulta:b:c:You can use Pandas merge to implement vlookup like functionsa:b:c:joins index-on-index by defaulta:b:c:
2022-11-07 10:27:57
812
原创 sns.load_dataset报错解决
seaborn的load_dataset方法需要访问外网进行数据下载,常常报错,这种时候可以通过把数据保存在本地,直接访问本地数据避免这一错误。打包下载后解压,记录存储路径。
2022-10-13 10:36:00
687
原创 conda常用指令
package_name,安装包名字(选择性添加,一般添加python=版本号)-n env_name(非必要,默认查看当前环境)=version(非必要,会安装指定版本号)env_name,新建环境名字。
2022-09-29 15:49:37
935
原创 利用信息熵度量数据集复杂程度
20世纪40年代,香农(C.E.Shannon)借鉴了热力学的概念,把信息中排除了冗余后的平均信息量称为“信息熵”,并给出了计算信息熵的数学表达式。信息熵的提出解决了对信息的量化度量问题。信息熵可以用来度量数据的复杂程度。举例:现有Adipocytes,内包含Harvard-Nuclei,Sanger-CD45,Sanger-Cells,Sanger-Nuclei四种类型的数据。①算出各类型所占总体比例。②套用公式进行计算可得。②套用公式进行计算可得。①算出各类型所占比例。
2022-09-23 16:07:41
760
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅