分享好友 最新动态首页 最新动态分类 切换频道
利用生成式 AI 技术构建结构化信息提取任务的应用与实践
2024-12-26 08:33

背景

在如今生成式 AI 变革的时代浪潮下,大语言模型(LLM)已经深刻影响了信息处理。信息的提取和处理工作已从原来匹配规则或依靠人工操作,转变为可以由 LLM 对文本数据进行处理,同时也可以通过构建训练数据集对模型进行微调来进一步提升大语言模型对下游特定任务的准确性。这一变化的原因在于

  • LLM 拥有大量预训练的知识背景,以及超强的语义理解能力,可以精确匹配文本中的信息,进行信息抓取和组织。

  • LLM 强大的能力减轻了对文本处理和理解的模型定制需要,通过有序调用 LLM,可以在很短的时间内完成大规模的信息抽取任务,实现对海量文本的高效信息处理和提取。

应用场景

假设我们的使用场景是从海量的 HTML 网页文件中提取有价值的内容,保存成结构化信息,以方便后续的统计与分析。这类应用场景通常具有以下特点

  1. 数据量庞大

  2. 数据需要进行预处理

  3. 数据提取复杂,可能需要解析 HTML

  4. 需要兼容不同的数据格式

在这种场景下,由于数据量庞大、格式复杂,如果采用传统的人工处理或定制化程序的方法,需要投入大量的时间和成本。利用大语言模型 LLM 的能力实现自动化信息抽取,通过 LLM 强大的自然语言理解和总结能力,可以实现对海量文本的高效信息处理。

我们以一篇亚马逊云科技官方博客为例,目标是提取文章中 Amazon EC2 实例的相关信息,如实例类型、CPU 型号等信息。

亚马逊云科技官方博客

扫码了解更多

由此示例可见,我们需要提取的内容分布在文章标题和段落中,且没有标准格式。必须通过语义理解的方式对其进行分析之后才能进行信息提取。针对数据源复杂、数据结构复杂、语义复杂的这种场景,我们接下来的步骤需要

01

数据预处理,减少对 LLM 的干扰,进行必要的清洗,以提取出文本的核心内容。

02

将文本输入 LLM 进行针对性的内容提取。利用 LLM 强大的语义理解能力,分析文本中的语义关系,提取出所需的关键信息。

03

对提取结果进行过滤和整理,生成最后的结构化数据,进行存储。

04

根据实际需求,迭代优化 LLM 的提取策略,以提高提取精度。

05

构建信息提取的管道系统,实现大规模自动化处理。

本文通过结合工作流编排和大语言模型(LLM)的方法, 高效地从复杂语义文本中提取结构化信息,大幅降低手工处理的工作量,实现自动化信息提取。

解决方案概述

在生成式 AI 应用中,LLM 模型只是冰山一角,本文所描述的场景需要实现批量推理并从大量文本中提取结构化信息进行存储,如果需要构建端到端的应用,还有很多工程化的问题需要考虑。比如我们需要提供安全的调用接口、创建编排任务执行高效可扩展的批量推理任务、以弹性可扩展的方式部署大语言模型的算力资源,以及考虑如何减轻后期运维的复杂度和成本。云平台本身提供了各类托管服务,无疑是我们实现类似方案的不二之选,以下根据本文的需求实现的一套基于亚马逊云科技平台的无服务器(Serverless)部署架构。

架构图

上述架构图中用到的主要云服务和承担的作用如下

Amazon API Gateway 是一项完全托管的 API 网关服务,本身支持多种身份验证方式,用于提供安全的网关接口,可以和亚马逊云科技内部服务和外部系统进行无缝集成。在这个方案里,API Gateway 承担着对外触发访问的功能,用户可以根据这个 API 进行工作流的触发。

Amazon Lambda 是一项无服务器计算服务,用户无需配置或管理服务器即可运行基于各种开发语言代码。在此方案中,它负责了大部分的核心任务,在触发批量信息提取任务前,我们可以在 Preprocess Funcation 中自定义一些预处理逻辑或者进行调用前的状态检查等。同时在后续的任务编排中,Amazon Lambda 负责实现核心的原子化操作,如调用 LLM 进行推理,以及将推理结果保存在数据库等。

Amazon S3 是一项安全可靠且可扩展的文件存储服务,具备极高的吞吐量,本方案中,S3 用于存储待处理和推理的海量 HTML 文件。

Amazon SageMaker 是面向所有数据科学家和开发人员的托管的机器学习服务。在此方案中我们使用 Amazon SageMaker 部署 LLM 推理端点,支持弹性 GPU 扩展。后续也可以用 Amazon SageMaker 所提供的 Notebook 实例或者模型训练任务等功能进行模型的调优。本方案中 SageMaker 用于托管 LLM 模型服务。

Amazon DynamoDB 是一项快速灵活的,无服务器 NoSQL 数据库,本方案中 DDB 用于保存从 HTML 文件中提取的结构化信息。

Amazon Step Functions 是一项可视化的无服务器任务编排服务,帮助用户以声明性方式定义和协调多个任务,构建具有状态管理和错误处理的工作流,本方案使用三个 Lambda 组成 Step function 工作流,实现如下的自动化流程。构建基于 Amazon Lambda 的 Step Functions 工作流耗时短,灵活度高,减少运维,对后续流程的搭建修改都很方便。其中使用 Map state 可以帮助我们实现分布式计算,在本方案中,Map state 使用 JSON file 作为输入类型进行任务分发。

  1. MetaDataGeneration 函数负责收集 Amazon S3 中待处理的文件对象信息,生成 JSON file,传递给 Step Function 下一步的 Map state。

  2. Map state 负责实现并发文本信息提取任务,对于单个 HTML 文件的处理逻辑主要包括两个 Lambda 函数。

  3. InvokeSageMaker 函数负责将 Amazon S3 上的文件下载到 Lambda 本地存储,进行数据预处理后,调用 LLM 推理端点,提取结构化信息。

  4. SaveResultToDB 函数负责将最终的结果保存在 Amazon DynamoDB 数据库。

接下来我们将继续介绍基于上述方案进行实施的过程中,需要关注的相关技术点。

数据预处理

考虑到大语言模型一般对输入文本(token)有长度限制,同时文件中的 HTML 标签所包含的信息也会造成输入的冗余,甚至会对推理性能造成干扰。因此通常需要在推理前对网页源内容进行处理,整体思路是过滤掉和待提取内容无关的 HTML 标签和标签下所包含的信息等,如果过滤后的内容还是超过了所选用模型的 token 最大长度限制,后续还需要进行更多的工程化处理,如采用类似 MapReduce 等方法对大文本进行分片推理再进行合并等。

我们还以上面提到的博客为例,这里我们简单用 Beautiful Soup 对原始网页进行内容过滤,其中 Beautiful Soup 是一个可以轻松从网页中抓取信息的 Python 库。

Beautiful Soup

扫码了解更多

代码示例:过滤掉全部的 HTML 标签,获取网页中的纯文字内容

输出结果

LLM部署

本方案目前采用私有化部署 LLM 的方式将模型部署至 VPC 私有环境的 Amazon SageMaker 中,模型选择的是 baichuan2-7b-chat。

Hugging Face

扫码了解更多

baichuan2-7b-chat 

参考部署脚本

扫码了解更多

同样我们也可以采用模型及服务的方式(MaaS)来使用 Amazon Bedrock。Amazon Bedrock 是一项完全托管的服务,通过单个 API 提供来自 AI21 Labs、Anthropic、Cohere、Meta、Stability AI 和 Amazon 等领先人工智能公司的高性能基础模型(FM,以及通过安全性、隐私性和负责任的 AI 构建生成式人工智能应用程序所需的一系列广泛功能。

LLM提示词

提示工程(Prompt Engineering)是一个较新的学科,应用于开发和优化提示词(Prompt,帮助用户有效地将语言模型用于各种应用场景和研究领域。掌握了提示工程相关技能将有助于用户更好地了解大型语言模型的能力和局限性。研究人员可利用提示工程来提高大语言模型处理复杂任务场景的能力,如问答和算术推理能力。开发人员可通过提示工程设计和研发出强大的技术,实现和大语言模型或其他生态工具的高效接轨。

提示词可以包含以下任意要素

  • 指令想要模型执行的特定任务或指令。

  • 上下文包含外部信息或额外的上下文信息,引导语言模型更好地响应。

  • 输入数据用户输入的内容或问题。

  • 输出指示指定输出的类型或格式。

注意,提示词所需的格式取决于您想要语言模型完成的任务类型,并非所有以上要素都是必须的。

提示工程(Prompt Engineering)的类别包含零样本提示、单样本提示、少样本提示、链式思考提示、思维树、检索增强生成、自动推理并使用工具(ART)等等。不同 LLM 所适合的 PE 会略有不同,本场景以 baichuan2-7b-chat 为例,在信息提取场景下我们的 PE 为

在上述 PE 中,“你是一名 Amazon EC2 的专家,请从以下内容中提取 EC2 实例,处理器,睿频这三种信息” 为指令;<网页内容>为上下文;“将输出结果格式化成 JSON,包含以下 key”为输出提示,输出提示中明确了我们需要提取的内容和输出的格式要求。

将本文在上一步骤中过滤后的网页文字信息作为 Prompt 上下文的一部分进行输入 填充在<网页内容>中,从而得到我们想要的关键信息,并按照 JSON 的格式输出。如下是我们得到的 LLM 输出结果。

模型微调

模型微调技术在一定程度上可以提升大语言模型对特定任务的推理性能,使得在特定任务下,推理结果以及模型输出格式更精确。如本文描述的信息提取类任务,可以通过对预训练模型(Foundation Model)进行微调,使得微调后的模型对此任务更加聚焦。通常进行模型微调主要包含三个主要步骤:训练数据清洗、模型训练以及模型评估。其中模型训练有非常多的方案和训练框架,这里我们用开源模型训练框架 LLaMA-Factory 举例说明如何对信息提取任务进行微调。

1.数据清洗打标,构建训练数据集

针对网页信息提取任务,对训练数据进行清洗打标,处理后的数据集需要包含以下三个条目

  •     instruction用户指令,即 Prompt

  •     input经过处理过滤后的网页原始内容

  •     output期望提取的信息和输出格式,如 JSON

2.对预训练模型进行有监督微调(SFT

LLaMA-Factory 是开源大模型训练框架,它集成了业界最广泛使用的微调方法和优化技术,并支持业界众多的开源模型的微调和二次训练(如开源大语言模型 Baichuan、ChatGLM 等) 。本文不过多赘述各种大语言模型训练框架的原理及实现,有兴趣的读者可以参考 LLaMA-Factory 项目地址。

LLaMA-Factory

扫码了解更多

此外为了在有限的 GPU 资源下提升训练效率,可以结合 LoRA 等高效微调技术以及分布式训练框架 DeepSpeed 实现对特定任务的微调。最后将 LoRA 的权重(Weights)合并到原始模型并导出

参考命令

总结

生成式 AI 技术日新月异,各行各业已经开始尝试利用大语言模型的能力,实现各种业务场景。无论是哪种场景,我们都需要合理的评估和使用各类模型。同时如本文所提到的观点,创建生成式 AI 应用所需要的不仅仅是大语言模型,我们还需要全方位地考虑各种因素,例如

模型选择

不同的 LLM 模型针对不同的下游任务通常有性能差异,建议针对实际的业务场景进行测试,选择最优的模型至关重要,甚至在某些业务场景中我们需要选择多个模型相互配合,从而实现最优效果。

信息安全

在调用模型时,通常会将一些信息作为 Prompt 传给 LLM,需要对应用场景以及数据进行分级分类,对于敏感的数据,建议使用 Amazon SageMaker 对部署进行私有化模型,或者使用 Amazon Bedrock 保护数据的安全。

运维效率

在调用模型时,通常会将一些信息作为 Prompt 传给 LLM,需要对应用场景以及数据进行分级分类,对于敏感的数据,建议使用 Amazon SageMaker 对部署进行私有化模型,或者使用 Amazon Bedrock 保护数据的安全。

算力扩张

构建生成式 AI 应用,通常需要使用到 GPU 算力,此外以信息提取场景为例,我们还需要其他算力进行推理的前置和后置处理,当待处理的文件数据巨大时,本方案采用 Amazon Lambda 和 Amazon SageMaker 作为核心服务,能够很好的支持算力的弹性扩展。

本篇作者

孙大木

亚马逊云科技资深解决方案架构师,负责基于亚马逊云科技方案架构的咨询和设计,在国内推广亚马逊云科技云平台技术和各种解决方案。

原媛

亚马逊云科技解决方案架构师,负责基于亚马逊云科技方案的架构咨询和设计实现,具有丰富的解决客户实际问题的经验,同时热衷于时间序列数据分析的相关研究与应用。

肖冰

亚马逊云科技解决方案架构师,负责基于亚马逊云科技方案的咨询与架构设计。在应用现代化改造,Serverless,云迁移,大数据等方向具有丰富的实践经验。在加入亚马逊云科技之前,曾就职于 EMC、微软,西云数据、腾讯等科技公司,拥有丰富的公有云领域的架构优化和技术支持经验。

听说,点完下面4个按钮

就不会碰到bug了

最新文章
网站收录提交,提升在线可见性的关键步骤,网站收录提交入口
在当今数字化时代,拥有一个网站仅仅是企业或个人在线存在的起点,为了确保您的网站能够被目标受众发现,将其提交给搜索引擎进行收录是至关重要的一步,本文将深入探讨网站收录提交的重要性、流程、技巧以及常见问题解答,帮助您更好地理解
独立站提交谷歌收录的三种方式
UEESHOP第三期直播的时候有提到最近因为谷歌的一些规则调整,导致了大家的网站收录比较慢,甚至出现没有收录的情况。如果有出现类似情况的朋友可以了解一下,UEESHOP教您尝试不同的方式提交谷歌收录。分割线第一种:域名提交法这是最简便、
什么是百度的竞价排名(百度竞价排名又称为)
好友写了篇文章,控诉网易与。事情大概就是道师的小孩按照学校要求下载上网课,结果百度搜索下载下来的却是。显然,网易云信通过百度竞价排名买了腾讯会议的关键词,让用户搜索腾讯会议时 第一的是自己的产品。道师认为此事网易应负80%的责
誉辰智能涨0.03%,成交额851.82万元,近3日主力净流入5.68万
12月16日,涨0.03%,成交额851.82万元,换手率1.60%,总市值17.15亿元。根据AI大模型测算誉辰智能后市走势。短期趋势看,该股当前无连续增减仓现象,主力趋势不明显。主力没有控盘。中期趋势方面,下方累积一定获利筹码。近期该股有吸筹现
信息流投放优化师岗位职责
回馈你【福利】:六险一金:广州社保+广州住房公积金+商业险(入职即购); 全勤奖:100~300元/月; 工龄津贴:100~300元/月; 任期津贴:任主管级以上管理层达到期限者200~500元/月; 伙食补贴:16元/天; 法定假期:与国家法定节假日同步
家庭医生签约服务知识问答
(—)什么是家庭医生签约服务?答:家庭医生签约服务是以村医或者全科医生为核心,通过签约的方式,促使具备签约服务能力的全科医生及乡村医生与居民家庭建立起一种长期、稳定的服务关系,以便对签约居民家庭的健康进行全过程的维护, 为签
首发解析:大数据助力站长深挖网站用户价值
  在当今数字化时代,大数据已经成为了网站运营中不可或缺的一部分。通过收集和分析用户数据,站长可以更好地了解用户需求,提升用户体验,并进而挖掘用户价值。那么,大数据在网站运营中具体有哪些应用呢?  大数据可以帮助站长进行用
进口泰国夏威夷果香港转口资料报关,进口干果清关代理
2015年02月10日钱小玮1000上海代理报关,上海报关公司,上海港进口报关公司从事货物及技术进出口业务,预包装食品(含熟食卤味、冷冻冷藏)的批发非实物方式,酒类、化工原料及产品(除危险化学品、监控化学品、烟花爆竹、民用爆炸物品、易制
六安外贸网站优化的技巧
外贸网站优化是现在很多企业选择的获客方法,因为其不需要每年向b2b平台加纳高额的入驻费用,且询盘质量高,大单多而被企业青睐。那么外贸网站的优化有哪些技巧呢?我们为大家介绍一下。  二、选好关键词  关键词的选择包括核心关键词和
相关文章
推荐文章
发表评论
0评