小飞侠 - 语言大模型2
type: channel
link: http://kexue.love/index.php/category/dmx/
items: 政策文档到大模型自动化抽取部署方案

政策文档到大模型自动化抽取部署方案
type: item
date: 2023-11-17T07:00:00+00:00
description: 本文档分三个阶段：1、政策文档抽取QA问答 2、结构化数据融合大语言模型问答 3、自动化部署一、政策文档抽取QA问答由于格式复杂、标准多样，非结构化数据处理起来既困难又耗时。面对海量非结构化数据，如果没有自动化解决方案，人工手动处理将面临巨大挑战。1.传统的QA问答抽取算法(非大模型)传统的QA生成框架需要三个流程：pdf/word问答转txt、文档分块、问题生成，三个流程分别涉及到不同的技术1.pdf问答转txt文本转化：可以通过技术PyPDF2,pdfminer,textract,slate，直接提取文本内容。2.文档分块通过规则,通过分割算法方案参考：https://github.com/chschock/textsplit有相关论文在做文本分割算法3.Learning to Ask模型基于模型在中文问答语料DuReader数据上和已经结构化的政策QA问答数据集上微调，得到通用Learning to Ask模型；DuReader数据数据集主要包含的QA问答对，可以用此数据集中的答案生成问题来微调模型。此模型的输入为：上面文档分块的txt文本输出为：对应的问题Q2.基于大模型的QA问答抽取算法本版本只实现了word文档的抽取，(1)读取word文档内容注意通过python-docx可以读取docx文件pip install python-docx (2)清洗待抽取的文档内容去除无法提取(容易出错的)的部分：表格、图片、流程图(3)对待抽取内容分块python-docx 可以提取word文档的段落，按照段落组待提取的内容分块，经过实验每个块字数，实验结果每块在500-600左右的字数提取效果最好。(4)写prompt内容，抽取返回特定格式本版本使用百川2-13b模型作为抽取大模型，关键的prompt为：prompt = "你是湖南省政策文档QA问答提取助手,需要提取的内容如下：" + cont + "抽取的内容结束" new_query = [{"role":"system","content":prompt},{"role":"user","content":"参考上面内容，尽可能多的提取QA问答json数据,Q为对应问题，以问号结尾，A为对应答案，必须返回json格式 ,格式为：[{\"Q\":抽取的问题,\"A\":抽取的答案},{\"Q\":抽取的问题,\"A\":抽取的答案}]"}] 其中，cont为待提取块文本内容。实例：待提取内如如下：3 政策总体情况 【长沙市】个人待遇政策 （1）目前辖区内已开展的业务 职工：药店购药、普通门诊、普通住院、单病种住院、意外伤害住院、门特、特殊药品、门诊急诊、 生育门诊、生育住院 离休：普通门诊、普通住院 居民：门诊统筹、门特、普通住院、单病种住院、意外伤害住院、门诊两病、特殊药品、居民生育 住院、门诊急诊 （2）参保人存在险种划分 职工：职工基本医疗保险、职工大病互助保险、公务员医疗补助保险、职工生育保险。 离休：离休基本医疗保险 居民：居民基本医疗保险、居民大病 （3）具体基金分类和享受待遇人群分类 职工基金分类：职工基本医疗保险统筹基金、职工大病互助保险基金、公务员医疗补助基金、职工 享受待遇人群：在职、退休 离休基金分类：离休基金、个人账户金 离休享受待遇人群：离休、老红军、二乙伤残军人 居民基金分类：居民统筹基金、居民大病保险基金、医疗救助基金、特惠保金、医院减免金、财政 兜底金 居民享受待遇人群：新生儿、在校学生、大学生、未成年人、农村居民、非从业居民、老年居民。提取之后的结果如下：{ "data": [ { "question": "长沙市的个人待遇政策有哪些业务项目？", "answer": "目前辖区内已开展的业务包括：职工的药店购药、普通门诊、普通住院、单病种住院、意外伤害住院、门特、特殊药品、门诊急诊、生育门诊、生育住院；离休人员的普通门诊和普通住院；居民的门诊统筹、门特、普通住院、单病种住院、意外伤害住院、门诊两病、特殊药品、居民生育住院、门诊急诊。" }, { "question": "职工参保人存在哪些险种划分？", "answer": "职工参保人存在以下险种划分：职工基本医疗保险、职工大病互助保险、公务员医疗补助保险、职工生育保险。" }, { "question": "离休参保人存在哪些险种划分？", "answer": "离休参保人存在以下险种划分：离休基本医疗保险。" }, { "question": "居民参保人存在哪些险种划分？", "answer": "居民参保人存在以下险种划分：居民基本医疗保险、居民大病保险。" }, { "question": "职工基金的分类和享受待遇人群有哪些？", "answer": …