文章目录
题目
食品测试的大型语言模型
论文地址:https://arxiv.org/abs/2308.10173
摘要
目前,特定领域的大型语言模型的构建是通过在基础模型上进行微调来完成的。有些模型还包含知识库,无需预先训练。这是因为基础模型在预训练过程中已经包含了特定领域的知识。我们构建了一个用于食品测试的大语言模型。与上述方法不同,该域中的大量数据以域标准文档的扫描格式存在。此外,还存在大量未经训练的结构化知识。因此,我们引入了增量预训练步骤,将这些知识注入到大语言模型中。在本文中,我们提出了一种在增量预训练中处理结构化知识和扫描文档的方法。为了克服机器幻觉的问题,我们构建了一个知识图作为外部知识库来支持大语言模型中的检索。值得一提的是,这篇论文是我们预发布版本的技术报告,我们将在未来的版本中报告我们的具体实验数据。
方法
ChatGPT、LLaMA、GPT-4、ChatGLM 和 PaLM 等模型在下游任务中表现出了出色的性能。 LLM在理解人类指令方面的强大能力导致了各个垂直领域对LLM的不断研究。ChatLaw 基于Ziya-LLaMA-13B,利用法律数据进行指令微调,结合向量数据库检索来创建合法的LLM。 DoctorGLM基于 ChatGLM-6B 构建,并使用中文医疗对话数据集进行微调,创建中文医疗咨询模型。 BenTsao基于LLaMA-7B,利用医学知识图谱和GPT-3.5 API构建中医教学数据集,构建中医LLM。而Cornucopia则基于LLaMA-7B,利用中国金融公开数据和爬取的金融数据构建了指令数据集,专注于金融领域的问答。
之前的研究假设基础模型已经注入了相应的领域知识,因此没有对基础模型进行增量预训练。然而,在某些领域,例如食品检测,大量的大量知识存在于非文本图像、扫描文档和私有结构化数据中。为了在这些领域建立LLM,我们认为基础模型中的知识是不够的,因此增量预训练至关重要。因此,我们以食品检测领域为代表,从增量预训练阶段开始构建中国食品检测LLM。
总之,本文在以下方面做出了贡献:
• 我们开发了一个名为 FoodGPT 的食品检测LLM,据我们所知,这是食品检测领域的第一个LLM。
• 我们从增量预训练开始构建垂直领域LLM,据我们所知,这是目前罕见的努力。
• 对于扫描格式域标准文档和结构化数据,我们提出了一种新的数据收集方法,在增量预训练阶段成功地将上述知识注入FoodGPT。
• 食品检测领域法学硕士需要精确的数字输出。因此,我们构建了一个知识图谱作为 FoodGPT 的检索库,以减少机器幻觉现象。
在食品检测领域,大量数据存在于图像或扫描文档中,而另一部分数据则存储在私有结构化数据库中。这些数据尚未用于LLM的预培训。如果我们直接对基础模型进行微调,由于缺乏领域知识,它可能很难表现良好。因此,在 FoodGPT 的训练中,我们结合了增量预训练步骤,将领域知识注入 FoodGPT。
图像和扫描文档的存储包含大部分域标准文档信息。我们将这两类数据归为一类,因为我们使用光学字符识别 (OCR) 技术来处理这两种数据。由于无法直接从这些图像和扫描文档中提取文本,我们对其中上万张图像和扫描文档应用了 OCR。具体处理流程如上图所示。每个文档代表一个领域标准文档,并且超过了用于训练模型的最大序列长度。因此,我们根据文档的部分将文档分成章节。研究发现,不同文件中对同一检测项目的描述存在差异,因为不同文件中同一检测项目针对的是不同的食品。为了防止这些描述发生冲突,我们在每章数据之前添加前缀来指示相应的文档。我们微调 UIE 模型以从文本中提取文档名称,并使用启发式生成方法构造提取的文档名称的前缀,然后将其与文本连接起来。此外,文本的每一章可能包括表格和公式等数据。这些类型的数据在通过 OCR 处理时会显着影响文本的流畅性。因此,我们使用BERT和GPT-2来计算文本每一章中每个句子的困惑度,并排除困惑度高的句子。
食品检测领域的大量知识也存在于私有结构化数据库中。这些数据由从广泛的食品测试中获得的手动输入表格组成,并存储在测试机构或中介机构的私人数据库中。它们包含丰富的可学习知识。除了将这些知识整合到外部知识库之外,我们认为还应该将其纳入LLM的增量预训练中。我们在增量预训练中处理结构化数据的方式如下图所示。
我们创建两个版本的结构化数据:Datav1 和 Datav2,用于增量预训练。在Datav1中,我们首先从表中删除机密和隐私信息字段。然后,我们通过字典构造每个数据。值得注意的是,在这个领域中,一种食品可以对应多个检测项目。我们以“测试项”为键,以markdown格式的表格为值来表示对应的多个具体测试项。我们认为这种结构化数据可能会损害模型,因此有必要对结构化知识进行序列化。据我们所知,目前结构化数据是使用模板手动转换为自然语言。然而,手动模板的数量相当有限,在序列化大量结构化知识时可能会出现模糊重复和模型性能下降的情况。因此,我们的 Datav2 采用了一种新颖的方法来序列化结构化数据。 Datav2的构建过程如下:
• 与Datav1类似,我们从表中删除机密和私人信息字段。
• 由于原始数据中的某些字段没有单独的含义,因此我们合并某些字段以确保每个字段都有单独的含义。
• 我们将每个数据点输入ChatGPT,根据特定规则随机生成文本。随机文本生成的规则如下: 1)随机选择每个数据点的字段进行输入。 2)在[0.5,1.0]范围内随机选择温度参数进行文本生成。 3)确保在文本生成过程中数据点中的每个字段至少被选择一次且不超过两次,以包含所有字段信息并避免过度重复。
除了上面提到的两类数据外,我们还结合其他数据来构建 FoodGPT 的增量预训练数据集。具体来源如下:食品检测词典。每个数据条目都提供了专业术语的解释。
• 食品检测领域的中文教程和研究论文。我们根据段落将它们分成单独的数据条目。
• 食品情绪数据。每个数据条目均包含与食品舆论相关的新闻文章,涵盖过去五年。
• 食品安全相关法律。每个数据条目都代表法律中的一项规定。
• 食品安全相关考试题。每个数据条目对应一个问题,我们努力为每个问题提供详细的解释。
我们选择Chinese-LLaMA2-13B作为基础模型,并使用LoRA方法进行增量预训练。我们将在未来版本的技术报告中详细阐述具体的实验结果。在指令微调阶段,我们通过两个通道构建用于指令微调的数据集。 LoRA 方法用于微调 FoodGPT。
我们使用两种方法来构建 FoodGPT 的指令微调数据集。首先,我们从美食论坛中选择相关主题并抓取大量问答对。为了保证高质量的答案,我们优先考虑发布频率较高的用户,旨在包含经常发布优质内容的用户的答案。其次,我们与食品检测领域的行业专家合作,设计了100份高质量的种子说明书。使用 evol-instruct 方法进一步扩展和多样化这些种子指令,从而产生更全面和更广泛的指令数据集。我们利用LoRA方法对Chinese-LLaMA2-13B的指令进行微调。指令微调的整个流程如上图所示。
食品检测对输出的要求非常严格。例如,不准确的数据输出可能会导致严重的后果。为了保证FoodGPT生成的数据质量并减少机器幻觉,我们通过从结构化数据中提取大量知识来构建知识图谱并文本。该知识图谱作为外部知识库,支持FoodGPT的检索和输出。合并知识图的过程如下图所示。当用户向 FoodGPT 输入查询时,我们利用检索模型来解析查询并从知识图中检索相关知识。然后将检索到的知识与查询连接起来并输入到 FoodGPT 中。 FoodGPT配备了参数化知识和外部知识,可以理解用户的意图并生成响应。
在本文中,我们提出了 FoodGPT,一个用于食品测试领域的大型语言模型。 FoodGPT 基于 Chinese-LLaMA2-13B 基础模型构建,具有增量预训练、指令微调和外部知识图集成。由于图像、扫描文档和私有结构化知识库中存在大量知识,而基础模型缺乏这些知识,因此我们认为有必要进行增量预训练。我们提出了处理这些数据的新方法,并将它们与其他数据一起合并到我们的增量预训练数据库中。在指令微调阶段,我们从论坛中抓取问题答案对,并在领域专家提供的种子指令的指导下,使用 evol-instruct 构建微调数据集。鉴于食品检测领域对输出指标的严格要求,我们还构建了一个知识图作为外部数据库,以协助FoodGPT生成输出。值得一提的是,本文是FoodGPT预发布版本的技术报告,我们将在未来的版本中详细阐述实验细节和分析。
标签:PRE,...,DOMAIN,模型,知识,文档,FoodGPT,数据,我们 From: https://blog.csdn.net/weixin_43961909/article/details/140184290