兄弟们,最近群里天天有人问RAG怎么搞,今天来点干货。RAG(检索增强生成)不是简单地把文档塞进向量库就完事,调参和部署才是分水岭。
先说检索层:Embedding模型别无脑选text-embedding-ada-002,试试bge-large或E5,尤其中文场景,效果差10%不夸张。chunk size控制在256-512 tokens,重叠20%能减少边界丢失。检索top-k设3-5,太多噪音稀释回答质量。
再看生成层:LLM建议用Qwen2或Llama3-8B,微调时加个“根据检索内容回答”的prompt模板。注意!温度设0.1-0.3,别让模型自由发挥瞎编。生成长度匹配检索内容,避免幻觉。
部署坑点:向量库用FAISS或Milvus,别用内存列表。生产环境加个rerank模块(比如bge-reranker),把top-10重排成top-3,召回率直接翻倍。显存不够?量化检索+模型蒸馏,4bit Qwen跑得飞起。
最后问个问题:你们在实际项目中,RAG的检索失败(比如召回全是噪音)怎么兜底?是降级到纯生成还是加人工审核?评论区聊聊。 |