内容提要
本文介绍了企业智能知识问答助手的开发案例,通过关键词匹配、语义匹配和大语言模型的应用,问答准确率从不到30%提升到了80%以上。优化过程中采用了多种手段,如选择更佳的Embedding模型、合理拆分数据、多路召回扩大范围、微调Embedding模型等。同时,通过混合搜索和重排序提升搜索性能。优化数据质量的经验包括避免无内容页面、保持标题风格一致、使用markdown格式等。企业内部的智能知识问答系统提供了更智能、人性化的服务。
延伸解读
从55%到84%:召回优化的关键步骤
文章披露了召回准确率提升的具体路径:最初按段落切分时召回准确率为55%,改为整篇短文章作为一个chunk后提升至79%,引入BM25与向量混合召回并重排序后达到84%。这组数据表明,对于主题集中、语义连贯的短文本,避免过度切分比单纯更换模型更有效。同时,混合搜索和重排序的增益约5个百分点,与官方数据基本吻合,说明该组合策略具有可复现性。
模型选型:为何放弃中文大模型而选Mixtral
项目组测试了Baichuan2-13B、ChatGLM2-6B、ChatGLM3-6B、YI-34B等中文模型,发现各自存在理解不足、幻视、回答过于活跃或复读等问题。最终选择Mixtral-8x7B,主要因为其稀疏混合专家架构在46.7B总参数下仅激活12.9B,响应速度接近13B模型,且多语言支持好、采用Apache 2.0许可。这提示选型不能只看排行榜,需结合业务对严谨性、多语言和响应速度的实际要求。
部署实践:显存计算与推理库选择
文章给出了Mixtral-8x7B-4bit量化版部署的显存估算方法:每个token占用约0.00013GB,若单请求输入输出共1000 token,则约需0.13GB。据此可推算max_rolling_batch_size的理论上限。项目组选用ml.g5.12xlarge(4块A10G)并设置tensor_parallel_degree=4,同时因请求长度变化大而选择vLLM推理库并开启continuous batching。这些细节对计划自部署大模型的企业具有直接参考价值。
数据质量:被忽视的准确率杠杆
文章强调最终准确率很大程度上依赖知识库文档质量,并总结出可操作规范:避免无内容母页面、标题风格一致、缩写同时给出全称、分段方式统一、尽量使用markdown格式、图片信息配文字描述、合并相似文章、设备故障类文章需描述设备类型而非仅型号。这些经验既可用于修正存量文章,也可作为未来撰写的规范,说明在RAG系统中数据治理与模型优化同等重要。
Q&A
如何提高企业智能知识问答助手的问答准确率?
通过选择更佳的Embedding模型、合理拆分数据、多路召回、微调Embedding模型等手段,问答准确率从不到30%提升至80%以上。
选择大语言模型时需要考虑哪些因素?
需要考虑模型规模、预训练语料质量、评估方法及实际需求等因素。
在优化数据质量方面有哪些经验?
避免无内容页面、保持标题风格一致、使用markdown格式等。
项目中使用了哪些模型来提升问答系统的性能?
项目中使用了BGE系列Embedding模型和Mixtral-8x7B大语言模型。
如何实现混合搜索以提升搜索性能?
将传统的BM25算法与向量相似性检索结合,实现混合搜索。
项目组在问答系统中遇到的主要挑战是什么?
主要挑战包括召回精度不够、LLM输出结果不理想和数据质量不佳。