第一周(3月23日 - 3月29日)
本周目标
完成项目立项、环境搭建、技术选型和初步原型开发
完成工作
一、项目启动与团队组建
本周完成了团队组建和角色分工。李飞负责RAG系统开发,张子昊负责知识工程与数据整理,黎鉴桐负责前端与集成。三人明确了各自职责和协作方式,建立了Git仓库用于代码共享,使用腾讯文档进行文档协作。团队确定了项目名称为船舶装备故障诊断智能问答系统,并完成了项目概要介绍和需求分析文档。
二、环境搭建
完成了Python 3.10.11的安装和环境变量配置,创建了venv虚拟环境,安装了项目所需的全部依赖包,包括langchain、chromadb、sentence-transformers、transformers、torch、streamlit、flask、flask-cors等核心库。配置了PyCharm开发环境,确保虚拟环境正确识别。搭建了Git环境,在Gitee上创建了私有仓库,完成了代码的初始提交和推送。
三、技术调研与选型
对比了多个开源大语言模型,最终选择Qwen2.5-3B-Instruct作为生成模型,bge-large-zh-v1.5作为嵌入模型。确定了ChromaDB作为向量数据库,Flask作为API框架,Streamlit作为前端框架。完成了技术选型报告,论证了各技术选型的合理性和可行性。
四、向量检索原型开发
开发了向量检索原型代码vector_store.py,实现了以下功能:使用bge-large-zh-v1.5嵌入模型将故障案例文本转换为向量,存入ChromaDB向量数据库,支持基于余弦相似度的语义检索。使用模拟的4条故障案例进行了测试,检索效果良好,验证了技术方案的可行性。学习了sentence-transformers库的使用方法和ChromaDB的API接口。
五、混合检索实现
开发了混合检索模块hybrid_search.py,实现了BM25关键词检索和向量检索的融合。使用jieba分词库对中文文本进行分词处理,使用rank_bm25实现BM25检索,通过加权平均策略融合两种检索结果,提高了检索的召回率。使用测试数据验证了混合检索的效果,相比纯向量检索有所提升。
六、知识图谱设计
与张子昊协作,完成了知识图谱的本体设计,定义了装备类型、故障现象、故障原因、维修步骤、零部件、注意事项等核心实体类型,以及属于装备、表现为、由引起、包含步骤、涉及部件、需注意等关系类型。制定了知识表示规范,统一了故障描述术语。
七、模型下载与配置
使用国内镜像源hf-mirror.com下载了bge-large-zh-v1.5嵌入模型,使用ModelScope平台下载了Qwen2.5-3B-Instruct大语言模型。解决了网络超时和下载中断问题,配置了模型本地缓存路径,确保模型可离线加载。
八、数据收集与整理
张子昊收集整理了50余条真实船舶故障案例,覆盖发动机、液压系统、电气设备、甲板机械、辅助设备五大类装备。每个案例包含故障名称、故障现象、故障原因、解决方案、涉及部件和注意事项等完整信息。将数据整理为JSON格式,便于程序读取和导入。
遇到的问题及解决方案
第一,PyTorch版本与CUDA不匹配导致GPU无法使用的问题。解决方案是卸载CPU版本PyTorch,安装对应CUDA 12.4的版本。
第二,模型下载速度慢和网络超时的问题。解决方案是配置国内镜像源hf-mirror.com和ModelScope平台进行下载。
第三,JSON解析中文乱码问题。解决方案是在文件读写时指定encoding=utf-8。
第四,Git推送时虚拟环境文件夹过大。解决方案是创建.gitignore文件,排除venv、chroma_db、__pycache__等不需要版本控制的目录。
第五,Streamlit启动时自动打开两个浏览器窗口的问题。解决方案是修改启动脚本,使用--server.headless true参数禁止Streamlit自动打开浏览器。
冲刺记录
本周完成了多个技术难点的攻克。在模型下载方面,从HuggingFace直接下载速度极慢且频繁超时,切换到国内镜像后成功下载。在GPU加速方面,成功配置了CUDA环境,使模型推理速度从CPU的60秒提升到GPU的3-5秒。在数据导入方面,编写了import_real_data.py脚本,实现了JSON数据到ChromaDB向量库的自动化导入,支持增量更新和重建两种模式。
下周计划
下周计划完成大模型接入,实现完整的RAG问答链路,包括检索和生成的整合。计划开发API服务,将RAG系统封装为HTTP接口,供前端调用。计划开发Streamlit前端界面,提供用户友好的问答交互体验。计划优化Prompt模板,使输出更加结构化和专业。
本周工作小结
本周是项目的启动阶段,完成了从零到一的基础搭建。环境配置顺利,技术选型合理,原型开发验证了技术方案的可行性。团队协作顺畅,三人各自完成任务并进行了有效沟通。目前项目进度符合预期,为后续开发奠定了良好基础。
浙公网安备 33010602011771号