随后进行数据采集,爬取加人工采集。对两种方式采集的文献数据进行整理,将元数据记录好,并统一格式,用于后续的检索。最后是文献的精细筛选。因为RAG技术就是要增加大语言模型在专业领域的可信程度,解决大语言模型的幻觉问题。那在数据的选取上就要偏向于更为全面的文献数据。生命周期评价的本质是用来评估产品或服务从生产到消费再到废弃的整个过程对环境和社会的影响,它考虑了资源使用、能源消耗、排放物的产生等方面。那么为了提高最后基于电力LCA这个领域搭建的专业模型的准确度,对文献进行精细筛选,选取同时包括流程图,数据,各单元过程投入产出详细数据,数据时间地点落去方法,技术细节的文献,作为最终的数据。将精细筛选后的论文数据,结合unstructed库进行数据处理。进行信息精细化拆解与清洗,使以pdf形式存储的文献数据通过分割,分区,变成便于嵌入模型的结构化数据。对文字进行筛选与清理,图像的内容进行识别,存储图像的解释信息,表格转化为HTML格式。最后统一变成标题加内容的格式。在这里我列举了简单的数据处理流程。首先是对数据进行分割。随后是对文本进行拆分,识别内容是否为文本,如果是,就填进text_list。将表格转化为HTML格式,将图片变为图片解释信息。第二部分是知识库的构建。向量知识库,能将各类数据(如文本、图像、音频等)转化为向量形式进行存储。数据之间的相似性和关联性得以量化,不像平时你存储你的,我存储我的,向量数据库给予了一个统一的标准。也正是因为统一了格式,利用相似度对比,检索更加高效。构建知识库的流程首先是提取分割文本进行向量化的操作。向量化的本质是将离散的符号信息,如词或句子,映射到连续的向量空间中,以便计算机能够处理。向量化将高维数据转化为低维数据,保留了数据的关键特征又降低了数据的复杂度。选择pipecone存储向量数据,它支持查询,插入,删除等一些列操作。选择weaviate作为向量搜索引擎,可以通过主题的分类检索,进行语义搜索、问答提取等等功能。第三部分是chatbot的构建。先前已经构建好了针对电力LCA领域的专业大模型,但是缺少检验模型的手段,即缺少模型优化环节,本项目设置通过Chatbot模式,通过与用户进行问答的形式,检验模型是否能调用电力行业LCA领域向量数据库回答该领域专业性问题和时效性问题的有效性。Chatbot是模拟人类对话的一种形式,就我们平时能使到的chatgpt就是以chatbot的形式来呈现的,而chatbot在这里的功能实现主要是为了体现检索功能,大致可分为知识库检索功能和在线搜索。那么就产生了三种检索模式。
仅基于大语言模型,连接知识库搜索,和在线搜索。前端部分我采用streamlit来完成,UI设计如图所示。这边是功能按钮,中间是对话框。先前有讲到了,我们来检测针对专业领域的大模型的标准就是检测是否有能力回答专业领域的问题,并针对结果进行优化。这里我向chatbot提出同一个问题。只采用大语言模型,采用知识库与大语言模型结合,和联网搜索与大语言模型结合。三种功能下获得的回答是完全不同的,后面两个检索功能均为大语言模型优化了生成回答的准确性,对大语言模型的专业领域知识做了补充和改善。可以看到普通的大语言模型回答的是最简短的,采用了知识库的回答,将答案细分,扩充,并添加了新的内容,附上参考文献。最后的联网搜索,将答案分为了几类,更加全面,但是每类回答点到即止。最后就是向量知识库进行优化。对于准确率低的查询,分析模型回应错误的原因。如果是由于知识库中缺少相关信息,可以通过添加更多相关文档和数据来增强向量知识库的覆盖范围。用户反馈是对输入的问题和产生的回答进行记录,方便针对性进行调整。反馈可以直接用于指导向量知识库的更新和优化。不断地测试来完善我的专业领域大模型。最后一部分是我本次研究的总结。首先创建了一个能被大语言模型直接调用的专业知识库,在电力LCA这个专业性较高的领域填补了大语言模型的空白。其次是采用RAG技术,将知识库,联网与大语言模型相结合,增强了大语言模型在特定领域的可信度和实用性。最后就是本次研究虽然是针对电力LCA领域,但其背后的构架适用于各个领域,构建了一个完整的体系,可以进行修改,全方面的辅助大语言模型,应用广泛。以下就是我的全部研究内容请各位老师批评指正。
3.3.2数据预处理
Unstructured库是一个强大的工具,专为处理非结构化数据设计,具体流程如图3.7所示,
如从文本文档、PDF文件或网页中提取数据。它支持多种数据提取方法,包括正则表达式匹配、自
然语言处理(NLP)技术等。
数据预处理步骤如下:
步骤一:数据清洗
去除杂质:从文本中去除无关的字符,如特殊符号、空白行等。
格式统一:将所有文本统一为相同的编码格式,通常为UTF-8,以避免编码错误。
语言标准化:统一不同术语的使用,例如将所有"photovoltaic"统一替换为"PV",确保术语的
一致性。