企业级智能知识库:基于RAG的垂直领域问答系统 (LLM Engineering)
项目背景
针对企业内部海量、碎片化且更新频繁的非结构化数据(如PDF技术手册、法务合同、历史工单),传统关键词搜索召回率低且无法推理。我主导构建了一套检索增强生成(RAG)系统,旨在解决通用大模型(LLM)“幻觉”严重及私域知识缺失的问题,实现企业知识的精准问答与推理。
技术栈
PythonLangChainLlamaIndexChromaDBMilvusElasticsearchvLLMQwen-72BDockerFastAPI
核心难点与解决方案
1. 文档切片与语义提取(Pre-processing)
痛点:长文档切片导致上下文断裂,表格与公式丢失。
方案:放弃通用切片器,自研层级化分块(Hierarchical Chunking)策略。利用Unstructured库解析文档结构,保留章节父子关系;针对技术文档,引入Latex公式识别与表格结构还原,将非文本内容转化为LLM可读的描述性文本。
2. 混合检索与重排序(Retrieval Optimization)
痛点:单一向量检索精度不足,召回结果相关性差。
方案:构建Hybrid Search(混合检索)管道。结合Elasticsearch(关键词精确匹配)与Milvus(向量语义相似度),利用RRF(Reciprocal Rank Fusion)算法融合结果。引入BGE-Reranker模型对Top-K候选集进行二次精排,将检索准确率(Hit Rate)从65%提升至92%。
3. 提示词工程与上下文压缩(Generation)
痛点:无关上下文干扰LLM判断,导致幻觉。
方案:设计Context Compression(上下文压缩)机制,利用小型LLM(如Phi-3)对检索到的冗余文档进行摘要提炼后再喂给主模型。采用Few-Shot CoT(思维链)提示词模板,强制模型标注引用来源,增强答案的可解释性。
4. 模型加速与服务化(Inference)
痛点:大模型推理慢,无法满足高并发生产需求。
方案:基于vLLM部署千问(Qwen-72B)模型,开启PagedAttention与Continuous Batching技术,将Token生成速度提升至120 tokens/s,支持百人并发访问。