RAG检索增强生成优化实录:从Chunk重构到Rerank,召回率提升37%
本文记录了一个企业知识库RAG系统(检索增强生成)的真实优化过程。初始系统在2000+文档上Top-5召回率仅61%,回答准确率不足55%。通过调整chunk策略(512→384+重叠128)、将embedding模型从text-embedding-ada-002切换为bge-large-zh-v1.5、并引入bge-reranker-large重排序,最终Top-5召回率达到83.6%,回答准确
Docker Compose编排多服务项目:网络隔离、卷挂载与健康检查顺序控制
一个真实项目从单机docker run迁移到Docker Compose后,8个服务的启动时间从手工敲命令的6分钟降到45秒,但随之而来的是MySQL未就绪导致API容器反复重启、上传目录权限错乱、容器间DNS解析失败等问题。本文以Docker Compose v2.24.5 + Compose Spec为例,给出一个含PostgreSQL、Redis、RabbitMQ、后端API、Worker、
LoRA微调7B大模型:单卡24G显存跑通Qwen2.5-7B指令微调
本文记录了我在单张RTX 4090(24G显存)上,用LoRA对Qwen2.5-7B-Instruct做指令微调的完整过程。数据集为2000条自建客服问答,采用peft 0.13.2 + transformers 4.44.2 + bitsandbytes 0.43.3,rank=16、alpha=32、target_modules覆盖q/k/v/o/gate/up/down,3个epoch训练约
Docker Compose编排多服务容器化部署与健康检查依赖顺序配置
一个真实项目从单机 `docker run` 迁移到 Docker Compose 的完整过程。项目包含 Nginx、Spring Boot API、MySQL 8.0、Redis 7.2 四个服务,最初因为启动顺序问题导致 API 容器反复重启 17 次才成功。本文给出完整的 `docker-compose.yml`,包含自定义 bridge 网络、命名卷挂载、`healthcheck` 健康检
从0.71到0.89:一次RAG检索增强生成系统的三阶段优化记录
本文记录了一个企业知识库RAG系统从上线到优化的完整过程。初始版本在2000条文档上Top-5召回率仅0.71,答案准确率约62%。通过三阶段优化:chunk策略从固定512改为语义分块+重叠、embedding从text-embedding-ada-002切换到bge-m3、引入bge-reranker-v2-m3重排,最终Top-5召回率提升至0.89,答案准确率提升至84%,P99延迟从1.
从0.72到0.89:一次RAG检索增强生成系统的分层优化记录
本文记录了一个企业知识库RAG系统从上线到优化的完整过程。初始版本在2000条文档上Top-5召回率仅0.72,答案准确率约61%。通过将固定chunk从512改为基于语义的分层切分、把embedding从text-embedding-ada-002切换到bge-large-zh-v1.5、并引入bge-reranker-large重排序,最终Top-5召回率提升至0.89,答案准确率达到84%,
LangChain与AutoGPT之外:从零手写一个可循环调用的AI Agent
LangChain 0.1.x 和 AutoGPT 把 Agent 抽象得很优雅,但封装越厚,调试越像在黑盒里摸象。我用 380 行 Python 手写了一个最小可用 Agent,支持工具调用、短期记忆、重试与最大步数控制,在本地 Qwen2.5-7B 上跑通「查天气→算温差→写文件」链路,平均 3.2 步完成,单步失败重试 2 次后成功率从 71% 提升到 94%。本文拆解工具定义、记忆管理、错
LoRA与QLoRA微调Qwen2.5-7B:显存从80G降到12G的完整记录
本文记录了在单张RTX 4090(24G显存)上微调Qwen2.5-7B-Instruct的全过程。通过QLoRA 4bit量化,显存占用从全量微调的约80G降至11.8G,训练速度约2.3 it/s。文中包含数据构造、peft 0.13.2与transformers 4.44.2的配置、loss曲线分析、以及微调前后在自建测试集上的对比(准确率从61%提升到89%),并附上踩过的坑和最终可复现的
用asyncio重构Web API:QPS从320提升到2400的异步改造记录
一个用户中心API,同步版本在4核8G机器上压测QPS只有320,P99延迟高达1.2s。用asyncio + aiohttp + asyncpg重构后,QPS冲到2400,P99降到180ms,机器配置没变。这篇文章记录了完整的改造过程:从定位阻塞点、设计异步架构,到踩过的event loop坑,最后附上wrk压测的原始数据对比。
用asyncio重构Web API:QPS从120提升到1800的优化记录
一个查询用户订单详情的接口,同步实现下单机QPS只有120,P99延迟高达1.2s。在Python 3.11 + FastAPI环境下,我用asyncio + httpx.AsyncClient + asyncpg重写数据访问层,配合连接池调优,最终QPS稳定在1800,P99降到78ms。本文完整记录改造前后的代码、压测数据和踩过的坑,包括gather异常处理、连接池参数配置和同步库误用的排查过
从0.62到0.89:一次RAG检索增强生成系统的三阶段优化记录
本文记录了一个企业知识库RAG系统从上线到稳定优化的完整过程。初始版本在2000条文档、1.2万chunk规模下,Top-5召回率仅0.62,答案准确率约54%,用户投诉频繁。通过三阶段改造——chunk策略从固定512切分改为语义+重叠切分、embedding从text-embedding-ada-002切换到bge-large-zh-v1.5、引入bge-reranker-large重排——最
LoRA与QLoRA微调Qwen2.5-7B:从数据构造到loss曲线与推理对比
本文记录了我在单张RTX 4090(24GB)上,用LoRA和QLoRA两种方式微调Qwen2.5-7B-Instruct的全过程。训练数据是12000条医疗问诊指令,采用4-bit NF4量化后显存从21GB降到9.6GB,训练速度约2.3 it/s。最终LoRA在验证集上loss从0.87降到0.41,QLoRA降到0.45,人工评测回答采纳率从基线的52%提升到81%。文中附完整可运行代码、
LoRA微调7B大模型:从数据准备到推理效果对比的完整实践
本文记录了我在单张24GB显存显卡上,使用LoRA/QLoRA技术微调Qwen2.5-7B-Instruct模型的完整过程。训练数据为1500条垂直领域问答对,采用4-bit量化+LoRA秩为16的配置,训练3个epoch耗时约2.5小时,最终loss从初始的1.82降至0.43。推理对比显示,微调后模型在领域问答任务上的准确率从基座的41%提升至87%,且推理速度几乎无损。文中包含完整可运行代码
LoRA微调7B大模型:从数据准备到推理效果对比完整记录
本文记录了使用LoRA/QLoRA技术微调Qwen2.5-7B-Instruct的完整过程。在单张RTX 4090 24GB上,通过4-bit量化+LoRA将显存占用从OOM降到14.2GB,训练集8000条,3个epoch耗时约4.5小时。最终loss从初始1.87降至0.52,在100条测试集上相比原始模型准确率从61%提升到89%。文中包含完整可运行代码、踩坑记录和真实效果对比。
LoRA微调7B大模型:从数据准备到推理效果对比的完整落地记录
本文记录了我在单张24GB显存环境下,用LoRA和QLoRA微调Qwen2.5-7B-Instruct的全过程。训练数据约1.2万条中文指令样本,LoRA rank设为16、alpha为32,QLoRA采用4bit NF4量化。相比全量微调,显存占用从约80GB降到9.6GB,训练约4.5小时完成3个epoch。文中包含可运行代码、loss曲线分析、推理效果对比以及踩坑经验,适合想低成本微调7B模
Docker Compose编排多服务容器化部署与健康检查实践
一个真实项目从单机docker run迁移到Docker Compose编排的完整记录。项目包含Nginx、Spring Boot、MySQL 8.0、Redis 7.2四个服务,通过自定义bridge网络实现服务隔离,用命名卷持久化数据,借助healthcheck与depends_on的condition参数解决启动顺序问题。迁移后部署耗时从12分钟降至90秒,服务启动成功率从78%提升到99.
FastAPI+Flask接口从2.3s降到180ms:一次真实的性能调优记录
线上一个查询接口P95响应时间飙到2.3秒,QPS一过50就开始大量超时。本文记录了完整的排查过程:用py-spy和cProfile定位到瓶颈在N+1查询和重复的序列化开销,通过selectinload改写ORM查询、引入Redis两级缓存、调整Gunicorn worker配置,最终把P95压到180ms,单机QPS从50提升到420。文中附压测数据和可复现代码。
Docker Compose编排多服务容器化部署:网络、卷挂载与健康检查配置详解
本文以一个真实的前后端分离项目为例,分享如何用Docker Compose编排Nginx、Spring Boot、MySQL 8.0和Redis 7四个服务。通过自定义bridge网络实现服务隔离,利用命名卷持久化数据,配置健康检查与depends_on条件控制启动顺序,最终将部署时间从手动操作的25分钟压缩到90秒内,服务启动成功率达到99%以上。
RAG检索增强生成优化:chunk策略、embedding切换与rerank效果对比
本文记录了一个真实RAG系统(检索增强生成)的优化过程。原始方案在2000条FAQ数据上召回率仅61%,通过调整chunk策略(512→256滑动窗口)、切换embedding模型(text-embedding-ada-002→bge-large-zh-v1.5)、引入bge-reranker-large重排序,最终Top-3召回率提升至89%,MRR从0.52升至0.81,端到端响应延迟从1.2
从零手写AI Agent:LangChain工具调用、记忆管理与循环控制
LangChain 0.3和AutoGPT虽然好用,但很多开发者说不清Agent内部的循环到底怎么跑。我用300行Python手写了一个最小可用的AI Agent,基于OpenAI gpt-4o-mini,跑通了工具定义、对话记忆、异常重试和步数上限控制。实测在3个常见任务上,平均2.3轮完成,token消耗比裸调LLM多约40%。本文把每一处实现细节拆开讲清楚。