FastAPI与Flask双框架API性能调优:从900ms到40ms的Profiling与缓存实战
在接手一个日活10万+的库存查询服务时,该API在高峰期的P99延迟高达900ms,导致上游服务频繁超时重试。本文记录了针对FastAPI与Flask两个版本接口的完整调优过程:通过cProfile与py-spy定位CPU瓶颈,利用EXPLAIN ANALYZE发现索引失效与N+1查询,引入Redis三级缓存策略,最终将P99延迟降至40ms,QPS从380提升至5200。文中包含可复用的Prof
RAG召回率从61%到89%:chunk重构与rerank双阶段调优实录
线上问答系统命中率连续三周卡在61%,用户反馈“答非所问”占比高达34%。本文记录一次完整的RAG系统优化:通过动态chunk大小替换固定512字符切片,将召回准确率提升至73%;切换bge-large-zh-v1.5 embedding模型后提升至81%;最终引入bge-reranker-base重排,使Top-5命中率达到89%,首答准确率提升42%。全程附可运行代码、版本号及显存占用实测数据
7B模型LoRA微调实录:显存8G跑通中文指令微调与效果评测
在单卡RTX 3090上,用QLoRA对Llama-2-7B进行中文指令微调,显存峰值仅6.2GB。通过3000条高质量指令数据,3个epoch训练后,模型在C-Eval验证集上从34.2分提升至41.8分,推理速度保持12 tokens/s。本文完整记录数据清洗、bitsandbytes 4bit量化配置、PEFT LoRA参数选择、loss收敛曲线分析及微调前后输出对比,并附上训练脚本和踩坑记
Milvus与Qdrant在千万级向量检索下的选型实测对比
在处理2500万条768维向量、QPS峰值要求800+的RAG生产环境中,我先后用Milvus 2.4.1和Qdrant 1.9.2搭建了检索服务。实测结果:Milvus在16C32G配置下P99延迟9.2ms,Qdrant同样配置P99延迟14.7ms;但Qdrant的磁盘占用仅为Milvus的41%。本文用真实部署步骤、参数调优和压测数据,讲清楚两者在资源瓶颈和查询模式上的本质差异,帮你避开选
LoRA微调7B模型全记录:从数据处理到loss曲线与推理对比
上周用一张24G的RTX 3090,对Llama-2-7B做了LoRA微调,目标任务是“代码注释生成”。从数据清洗到训练完成花了约9小时,其中训练仅占4.2小时(batch size=4,seq_len=512,lora_rank=8)。最终在100条测试集上,微调后模型生成注释的BLEU从2.3涨到11.8,ROUGE-L从18.6%提升到34.2%。本文记录了完整流程,包括数据格式设计、tra
Git分支策略与Code Review流水线:日均50次合并的协作体系搭建
当团队从5人膨胀到20人,主干开发模式带来的冲突率飙升300%,紧急修复时常误伤未发布功能。本文基于Git 2.39.1与GitLab 15.7,记录了一套融合Trunk-based与Git Flow优点的混合分支策略。通过严格的保护规则、基于Merge Request的强制Code Review(至少2人批准)以及Jenkins Pipeline自动构建,将代码冲突率从每周17次降至3次,发布周
Git分支策略与Code Review流水线:团队协作中的版本控制实践
在30人规模的研发团队中,我们曾因混乱的Git分支策略导致每周平均3次合并冲突、2次误推送主干事件。引入Git Flow + PR Review + Jenkins CI/CD后,冲突率下降90%,发布周期从周级缩短至小时级。本文分享我们在Git 2.39.1环境下的分支模型设计、基于Gerrit的Code Review流程,以及Jenkins Pipeline与GitHub Webhook的自动
Milvus与Qdrant在商品向量检索中的选型对比与实测
在电商以图搜图场景中,我们对比了Milvus 2.4.5与Qdrant 1.9.7在100万条128维向量下的部署、查询与资源占用。实测发现:Qdrant在单机SSD下P95查询延迟为12ms,低于Milvus的18ms;而Milvus在批量写入吞吐上领先Qdrant约40%。资源占用方面,Qdrant内存峰值低35%,但Milvus的WAL机制在崩溃恢复时更稳。本文给出两套可运行部署代码、核心参
asyncio重构Flask接口:并发查询从2.1s降至0.3s的完整记录
在内部报表系统中,一个聚合多个数据源的API接口因串行阻塞导致P99延迟高达2.1秒。通过引入asyncio+httpx协程并发,将7个独立HTTP调用并行化,接口耗时降低至0.31秒,QPS提升6.8倍。本文记录从识别瓶颈、asyncio改造、信号量限流到uvicorn部署的完整过程,包含可复用的模板代码和踩坑日志。
asyncio重构Flask接口,QPS从120飙到1800的完整记录
一个内部报表系统的聚合接口,因为顺序调用3个外部HTTP服务,高峰期单机QPS只有120,CPU却跑满。我用asyncio+httpx把串行IO改成并发协程,配合信号量限流和超时重试,QPS稳定到1800,P99从2.8s降到420ms。文章记录了完整的before/after代码、asyncio.Semaphore踩坑过程、以及uvloop和pymysql对异步性能的影响。不吹不黑,全是生产环境
7B模型LoRA微调实录:显存8G跑通医疗问答的工程化方案
上周接到一个医疗领域问答任务,要在单卡8G显存下微调7B模型。用QLoRA+bitsandbytes把显存压到6.2G,训练3个epoch loss从1.8降到0.7,推理效果对比基座模型在专业术语准确率上提升31%。本文记录完整实践过程,包含数据清洗细节、PEFT配置参数、loss曲线分析以及三次踩坑修复记录。
LangChain与AutoGPT思想融合:手写Agent循环控制与记忆管理
当AutoGPT的自主循环遇上LangChain的工具抽象,我尝试用不到300行代码实现一个具备记忆、错误恢复和工具调用的Agent。在构建过程中,模型幻觉导致的JSON解析失败占到了总错误的62%,而通过引入重试机制和记忆裁剪,任务成功率从61%提升至89%。本文将拆解工具定义、记忆存储、循环控制等核心模块,并给出可直接运行的代码示例。
LangChain与AutoGPT思想融合:手写一个带记忆与异常自愈的AI Agent核心循环
两周前,我基于LangChain 0.1.0重写了一个内部知识库问答Agent,发现直接用`AgentExecutor`虽然快,但遇到工具调用失败或上下文超长时,系统直接崩溃。本文不讨论玩具Demo,而是手写一个仅依赖LangChain的`BaseTool`与`ChatOpenAI`的Agent核心循环,实现工具定义、滑动窗口记忆管理、三次重试错误处理以及最大迭代步数控制。代码实测在单轮多工具调用
Docker Compose编排多服务容器化部署:网络、健康检查与启动顺序实践
生产环境部署Spring Boot + Redis + MySQL + Nginx四服务时,因启动顺序不当导致应用频繁报连接拒绝,接口成功率仅82%。本文基于Docker Compose 2.24.2,通过depends_on条件判断、自定义网络隔离、卷挂载持久化及healthcheck探针,将服务启动成功率提升至99.5%,容器重启时间缩短40%。文中提供可直接运行的docker-compose
Docker Compose编排多服务:网络隔离、健康检查与依赖启动实战
本文分享一个基于Docker Compose v2.24编排的电商后端项目,包含Nginx网关、Spring Boot应用、Redis集群、PostgreSQL和RabbitMQ共6个服务。重点解决三个痛点:通过自定义bridge网络实现服务间安全通信与外部隔离;利用healthcheck和depends_on条件控制启动顺序,将服务就绪时间从平均90秒缩短至35秒;通过命名卷和bind moun
Prompt Engineering调优实录:从47%到89%的RAG问答准确率提升
本文记录一次针对企业知识库RAG问答系统的Prompt工程完整调优过程。通过5轮迭代实验,对比了零样本、少样本、结构化输出、角色锚定等6种Prompt策略,在1532条测试集上准确率从47.3%提升至89.6%,单次查询Token消耗从2847降至1123。文中包含可复现的OpenAI SDK代码、LangChain v0.1.0配置参数、以及实际踩坑记录——包括system prompt过长导致
7B模型LoRA微调实录:显存8G跑通医疗问答全流程
在8G显存的消费级显卡上,用QLoRA微调ChatGLM2-6B,训练2万条医疗问答数据,显存峰值仅7.2G,单卡训练45分钟。loss从2.3降至0.4,推理效果在“症状描述→诊断建议”场景下,回答完整度提升38%。本文记录从数据清洗、bitsandbytes量化配置、PEFT LoRA注入到生成对比的全过程,含三个可复现的代码片段和两个最易踩的坑。
Git分支策略与Code Review流水线:3周重构团队协作范式
当10人团队在monorepo中日均提交40次,代码冲突率高达35%时,我决定用Git Flow + GitHub Actions重构协作流程。本文记录了从分支模型设计、受保护分支规则、基于PR的Code Review门禁,到自动化CI/CD(含pytest覆盖率阈值、SonarQube质量门禁、Docker镜像构建)的完整落地过程。通过引入`trunk-based`混合模型,我们将发布周期从2周
React 19与Vue 3.5项目从Props drilling到Zustand 5与Pinia迁移实录
在最近重构的电商后台管理系统中,组件层级超过5层时,Context和Props的无效渲染导致主页面交互延迟从120ms飙升至380ms。通过将全局状态(用户信息、购物车、权限路由)迁移至Zustand 5.2.3(React)与Pinia 2.3.1(Vue),配合`useShallow`选择器和`defineStore`的`setup`语法,核心操作响应时间降至65ms,内存占用减少约27%。本
Git分支策略与Code Review流水线:团队协作的版本控制实践
在20人研发团队中,我们经历了从混乱的单分支开发到规范Git工作流的蜕变。本文记录了一套基于Git Flow与GitHub Flow混合模式的分支策略,配合自动化的Code Review流程和Jenkins CI/CD集成。通过引入pre-commit钩子、强制PR评审、以及精细化的分支权限控制,我们将代码冲突率降低了60%,发布周期从周级缩短至2天。文中提供了完整的配置脚本和流水线定义,包括分支