使用以下技术栈,部署本地LLM
应用框架:Dify(Docker版) 本地大模型:Ollama部署deepseek,嵌入模型:BGEM3 文档处理:Dify内置文本分割与向量化
Dify是什么? 相当于免编程的简单AI助手开发框架
Dify的缺点:大规模系统,性能要求过高(算法、延迟),资源受限(嵌入式、边缘计算),高度定制化
向量数据库:语义相似度检索
通过比对向量的"距离",也就是相似度进行检索。
每个数据数据(语句)中的词都对应一个已经生成的向量,然后再通过一系列复杂操作生成该句子的向量,在数据库中检索"距离"更近的向量
余弦相似度只关心方向,不关心长度。
测试问题
简单事实查询(测试基础检索)
“什么是人工智能?”
多文档信息整合(测试跨文档能力)
“RAG是什么意思?”
推理受限or出错(测试推理能力)
我把手机放在一本打开的书下面,然后合上了书。手机现在在哪里?
太阳什么时候时候从西边升起?
测试长文本细节丢失
问题1:“星穹项目的总负责人和预算是多少?”
模型可能回答: “总负责人是张三,预算为500万元。”
分析: 这两个信息都位于文档的开头部分。模型的注意力机制在开始时最为集中,因此很容易捕获并记住这些信息。此时没有细节丢失。
问题2(综合性问题,考验长距离信息整合):“请总结一下项目中需要与其他部门或外部供应商协作的关键点。”
模型理想答案应包含:
与风控部的李四合作解决金融模型偏差。(少了这个!!!!!!)
与王五的团队协作进行音频模块集成。
依赖外部供应商 “天眼”数据源的API服务。
模型可能回答(整合失败): “项目需要与王五的团队合作,并且依赖‘天眼’数据源。”
分析: 模型丢失了位于文档中部的“风控部李四” 这一关键协作方。因为它无法同时将文档开头、中部、末尾的稀疏信息点有效地关联和整合在一起。它只能抓取到最容易记住的(末尾的)和可能还记得的(开头附近的)信息,而中间部分的信息已经“蒸发”了。
测试全过程体现统计响应速度受限
本次部署所用的本地部署LLM流程总结和排错指南可以点击以下链接下载