asyncio重构Flask接口,QPS从120飙到980的完整记录
一个内部报表接口,单次查询需聚合5张表数据,平均响应时间850ms,压测QPS仅120。我用asyncio+aiomysql重写后,响应时间降到96ms,QPS达到980,数据库连接数从50降到8。本文完整记录了这次优化的全过程:从同步阻塞的痛点分析,到asyncio事件循环设计,再到aiomysql连接池配置,最后还有协程并发数调优的实战踩坑。所有代码和压测数据均来自真实项目,Python 3.
Milvus 2.4 vs Qdrant 1.9图像检索实测:吞吐差42%资源占用翻倍
在商品以图搜图场景下,我用10万张128维特征向量对比了Milvus 2.4.1与Qdrant 1.9.2。部署上Milvus采用Docker Compose(含Etcd、MinIO),Qdrant单容器运行。实测Qdrant的RPS达到2140,而Milvus仅1240,但Milvus在P99延迟上稳定在8ms,Qdrant波动至23ms。内存占用Milvus 3.2GB,Qdrant仅1.1G
7B模型LoRA/QLoRA微调实录:显存从80G降到24G的工程化方案
微调7B模型对很多团队来说是一道坎:单卡A100 80G勉强跑Full Fine-tuning,但多卡并行通信开销大、显存瓶颈明显。我基于Llama-2-7B和ChatGLM3-6B分别做了LoRA与QLoRA微调,最终把单卡显存压到24G内,训练速度稳定在1100 tokens/s(单卡A10),推理效果在领域数据集上逼平全参微调。本文记录完整的工程链路:数据清洗、loRA rank选择、量化配
RAG召回率从63%到89%:chunk重构与混合检索调优实录
上周处理了一个医疗问答RAG系统的召回瓶颈问题,基于BGE-large-zh的向量检索在500条测试集上命中率仅63%,且长尾实体问题严重。通过将固定512字符切块改为按语义段落自适应切块(平均长度降至186字符),并引入BM25+向量混合检索(权重0.3/0.7),最终叠加bge-reranker-base重排(取top20重排至top5),命中率提升至89%,幻觉率下降12%。本文记录了完整的
Git工作流重构记:从分支混乱到CI/CD门禁的30天改造
三个月前,我们团队还在为“提交到master的代码让CI红了三天”而焦头烂额。50人的研发团队,每天平均60次提交,代码合并冲突频发,发布前总要花半天手动处理分支。这篇文章记录了我们如何通过引入Git Flow + Trunk Based的混合模式,配合GitLab CI的自动化门禁,将分支生命周期从平均7天缩短到1.5天,代码评审通过率从68%提升到92%,线上故障率下降40%。全文包含完整的`
RAG准确率从61%到89%:chunk、embedding与rerank全量调优记录
在医疗知识库问答项目中,Naive RAG的答案准确率仅61%,主要问题集中在段落截断导致上下文丢失、embedding模型对专业术语表征不足。本文记录一次完整的RAG系统优化:将固定512字符chunk改为结构感知的递归切分,embedding从bge-large-zh切换至text2vec-large-chinese(微调后),并引入bge-reranker-base做两阶段召回。优化后,在2
7B模型LoRA微调实录:显存9.3G与推理幻觉率下降18.7%
本文记录了我用单张RTX 3090对Llama-2-7B-Chat做LoRA微调的全过程。通过QLoRA 4-bit量化,将训练显存峰值控制在9.3GB,微调仅耗时2小时47分(训练集1.2万条指令数据)。最终在领域问答评测集上,BLEU分数从12.6提升至16.8,关键信息幻觉率从22.4%降至3.7%。文中包含完整的Trainer配置代码、loss曲线分析、以及微调前后对同一问题的推理对比,希
RAG召回率从68%到91%:chunk重构与重排序全记录
在构建企业知识库问答系统时,我们遇到了一个典型困境:embedding模型从bge-large切换至bge-m3后,Top-20召回率仅提升3%,但最终答案准确率反而下降。本文记录了完整的优化链路——将固定512字符chunk改为语义感知的递归切分、引入混合检索(BM25+向量)、以及部署bge-reranker重排序。通过A/B测试对比了各阶段在CMRC2018数据集上的命中率变化,并给出了具体
向量数据库选型:Milvus与Qdrant在广告粗排场景下的实测对比
广告召回后的粗排环节需要处理亿级向量、QPS峰值过万。本文基于8核16G内存的物理机,部署Milvus 2.3.3与Qdrant 1.7.3,使用Glove-200d数据集(100万条)压测。结果显示:Qdrant在纯向量查询P95延时低至12ms,Milvus在标量过滤+向量混合查询场景吞吐量高出35%。同时给出各自的Docker部署命令、Python初始化代码,以及高频踩坑点(如Milvus的
React 19与Vue 3.5下从Context到Zustand/Pinia的迁移实录与性能对比
接手一个维护了两年的中后台项目,组件树深度超过8层,Context频繁触发全树渲染,导致列表页输入卡顿(实测输入延迟从180ms飙升至600ms)。本文记录从React Context(或Vue Provide/Inject)迁移至Zustand 4.5(或Pinia 2.1)的完整过程,包含方案选型对比、分步迁移策略(按模块灰度切换)、核心代码改造示例,以及迁移前后的Performance面板数
Git分支策略与CI/CD集成:从混乱到有序的团队协作重构
当5人团队在master上直接开发,平均每天3次冲突、2次误推送,发布前需手动合并2小时。引入Git Flow + 受保护分支 + Jenkins流水线后,冲突率下降90%,发布耗时从2小时缩短至8分钟。本文基于Git 2.39.1、Jenkins 2.414.2、SonarQube 9.9,详细拆解分支策略设计、Code Review强制规则、以及自动化流水线的完整配置,附赠3个真实踩坑记录。
Git分支策略与CI/CD集成:团队协作中的版本控制落地实践
当团队从5人扩张到20人,主分支直接提交导致的代码冲突率飙升300%,发布流程耗时从30分钟延长到2小时。本文基于Git 2.39.1与GitLab 15.11,分享一套经过生产验证的分支策略(Trunk-based + 短生命周期特性分支)、Code Review强制规则(至少2人批准+流水线绿灯),以及Jenkins Pipeline与GitLab CI的双轨集成方案。通过引入pre-comm
Prompt Engineering实测:从7.2%到91.4%准确率的金融意图识别调优全记录
在金融领域意图识别任务中,我通过系统性实验对比了4种Prompt策略:零样本、少样本、结构化输出与思维链(CoT)。在1000条真实用户咨询数据上,准确率从基线零样本的7.2%提升至最终方案的91.4%,单条token消耗从342降至187,成本下降45%。本文记录了完整的实验设计、代码实现与踩坑细节,包括GPT-4o-mini版本下的温度参数敏感性分析、JSON Schema强制输出对解析失败率
asyncio重构Flask API:请求耗时从980ms降至210ms
在一次电商订单导出功能优化中,我使用Python 3.10的asyncio将三个串行HTTP调用改为并发协程,配合httpx.AsyncClient连接复用,将接口P95延迟从980ms压到210ms,吞吐量提升4.2倍。文章会给出完整的before/after代码、asyncio.Semaphore限流细节、以及uvloop替换事件循环的实测数据。如果你是Flask/Django开发者,且接口里
RAG召回率从61%到89%:chunk重构与rerank二阶段调优实录
在私有知识库问答项目中,基线RAG体系(BGE-large + 固定256字chunk)的Hit@5召回率仅61.3%,答案准确率不足五成。本文记录完整调优链路:通过自适应chunk(按Markdown标题与段落切分,窗口重叠64字)将召回率提升至74.8%;切换bge-m3 embedding(输出维度1024)后召回率升至81.2%,但引入bge-reranker-large进行二阶段精排后,
LangChain 0.3手写Agent循环:工具记忆异常全解
当AutoGPT的自主循环在真实业务中频繁陷入死循环或工具调用幻觉时,我决定用LangChain 0.3.7从零手写一个仅200行代码的Agent内核。本文记录了在Python 3.11环境下,如何用Pydantic v2定义严格工具Schema、实现基于Message的滑动窗口记忆、通过try-except重构工具异常并注入ReAct循环。实测在10轮MaxStep限制下,工具调用成功率从Aut
RAG检索质量调优实录:chunk粒度、Embedding选型与Rerank排序的暴力对比
线上一个基于LangChain的RAG问答系统,在128个文档、2000+分块规模下,基础版Hit Rate仅67%,Top-5准确率惨不忍睹。本文记录了从Naive Chunk到固定大小窗口、再到语义分割的调整过程,同时对比了`text2vec-large-chinese`、`bge-large-zh-v1.5`和`m3e-base`三种Embedding模型,最后引入`bge-reranker
LangChain 0.3手写Agent:记忆管理与循环控制从零实现
本文基于 LangChain 0.3.1 与 AutoGPT 设计思路,从零实现一个具备工具调用、短期/长期记忆、错误重试与循环上限控制的 AI Agent。代码核心仅 280 行,支持自定义工具(天气查询、计算器、数据库查询),在 12 个真实任务上测试,工具调用准确率 91.7%,平均单轮响应延迟 1.8s(GPT-4o-mini)。文中会暴露一个典型坑:LangChain 0.3 中 `Ag
React/Vue项目从Context到Zustand/Pinia重构:迁移步骤与性能对比
在维护一个拥有60+页面、30+全局状态的中后台项目时,我们遇到了Context频繁re-render导致的性能瓶颈——某列表页滚动时FPS低至20。为此,我将React 18项目从useContext+useReducer迁移至Zustand 4.5,同时将Vue 3.4项目从Provide/Inject迁移至Pinia 2.1。本文记录了完整的迁移方案对比、步骤拆解以及迁移前后的性能数据:Re
Prompt模板迭代实录:从37%到89%的NER准确率提升
在实体识别任务中,我通过12组Prompt对比实验,发现模板中的标点符号与示例顺序能让准确率波动52%。最终方案引入角色锚定与结构化输出约束,token消耗仅增加18%,却将F1值从0.37提升至0.89。文中记录了完整的实验矩阵、失败案例与成本曲线,附赠一套可复用的Prompt评估脚本。