兄弟们,最近RAG火得不行,啥项目都往上叠。我搞了大半年,从LangChain翻车到自己手搓,今天说点大实话。
先说检索质量。很多人以为向量数据库一上,问题就解决了。扯。Embedding模型选不好,召回的全是噪音。比如用bge-small去搜技术文档,相关度能低到让你怀疑人生。建议至少上bge-large或者text-embedding-3-large,再配合BM25做混合检索,能救回不少分。
再说分块策略。固定256字符切?那是给玩具用的。代码库按函数切,法律合同按章节切,问“怎么部署模型”,结果召回的是安装教程里的版权声明,这不搞笑么?建议根据文档结构动态分块,或者用语义分割。
最后,别忽视“检索后处理”。很多开源RAG框架只给Top-K文档拼Prompt,但文档里80%都是废话。加个reranker(比如bge-reranker-v2)重排,再做个摘要压缩,生成质量直接跳一个台阶。
总之,RAG不是玄学,是系统工程。问个问题:你们在实际生产里,是用Chunk还是直接用文档全文做检索?我目前还在纠结,想听听老哥们实战经验。 |