当前位置:   article > 正文

【LLM落地应用实战】LLM + TextIn文档解析技术实测_llm 上传多个文件 做分析

llm 上传多个文件 做分析

赋予机器类人的多模态信息解析能力是实现通用人工智能的一大基石。

一、现有大模型文档解析的挑战

1.1、文档解析技术流程

随着信息化和数字化的飞速发展,我们每天都面临着包括财务报表、商业合同、技术报告等海量的文档数据。从研究价值的角度来看,这些文档不仅蕴含了各行业处理内外部事务的详尽细节和深厚的知识积累,更汇聚了丰富的行业相关实体和数字信息。而在形式上,这些文档则呈现出多元化的复杂性,如双栏排版、手写字体、印章标记、有线表格与无线表格等元素的交织,使得文档解析和信息提取成为一项极具挑战和价值的任务。

文档解析技术是从这些海量且复杂的数据中高效准确地提取有价值信息的关键。它从输入文档图像开始,经过图像处理版面分析内容识别语义理解等流程,最终输出结构化电子文档或语义信息。通过文档解析技术,我们能够深入理解文档的结构、内容和主题,使得信息更易于检索、分析和利用。其中:

  • 图像处理:将文档从原始形式转换为可处理的数字数据,包括去除文档中的噪声和失真、图像矫正、文本抽取以及框线去除等。

  • 版面分析:确定文档中各个元素的位置、大小和关系,如文本、图片、表格等。包括物理版面分析(页面分割,包括区域分割与分类、文本检测/定位、文本行分割)和逻辑版面分析(区域语义分类、阅读顺序)。

  • 内容识别:识别文档中的具体内容,如文字、表格、图表等,将文档中的文字转换为计算机可处理的文本,以及表格和图像的识别,进而进行进一步的分析和处理。

  • 语义理解:理解文档的语义信息,即文档中所表达的意义和内容,包括理解文档中的语言结构、语义关系和逻辑连接,提取出特定的信息元素,并识别文档中不同部分之间的关联和逻辑关系。

1.2、LLM + 文档解析技术挑战

现如今,以ChatGPT为代表的先进大语言模型(LLM)已经能够胜任复杂的自然语言处理任务。将LLM与文档解析技术相结合,不仅能够显著提升文档解析的准确性和效率,还能挖掘出更广阔的应用场景,降低文档理解的门槛,从而有力推动自然语言处理领域的蓬勃发展。

尽管当前国内外的大模型纷纷加入了文档解析功能,然而,在对照文档解析的四个关键步骤(图像处理、版面分析、内容识别、语义理解)时,这些大模型并未展现出无懈可击的解决能力。

它们在实际应用中仍然面临着一定的挑战和限制,下面我们使用LLM对文档解析中的一些经典问题进行分析:

图像处理难题——图像倾斜矫正

下面,我们尝试将一段具有倾斜角度的文档图片输入到LLM中,如下图所示,由于文档图像存在显著的倾斜度,LLM在自动进行图像倾斜矫正时遇到了困难,导致了内容解析的失败。这一挑战凸显了当前LLM在图像预处理和矫正方面仍面临一定的困难。

版面分析难题——逻辑结构识别

在下图所示的示例中,我们尝试将一篇具有无线有线混排的表格文档输入给LLM中,并就其中的“AdaBoost需要使用到的特征”进行提问,可以发现,在使用大模型自带的解析时,找到的信息与原始文档相悖,这一错误信息无疑给用户带来严重的误导。

内容识别难题——公式识别解析

数学公式,作为文本中独特的元素,通常融合了文字和符号,呈现出复杂的二维结构关系。在识别这些公式时,不仅需要对构成其基础的文字和符号进行精确识别,还需深入分析这些元素之间的二维结构,准确描述它们之间的关系。

在如下图示的案例中,我们将一篇包含中等难度公式的文档输入到LLM中,希望它能协助总结节点定位误差的公式。尽管LLM输出了相应的公式,但仔细观察后不难发现,该公式明显缺少一个关键的根号,产生一定的误导。这一疏忽表明,LLM在结构化符号和图形识别方面仍有待提高,在处理数学公式这类具有严格结构和逻辑的文本元素时,其准确性和完整性仍需进一步加强。

语义理解难题——阅读顺序推断

语义理解阶段的核心任务是识别并理解文档中不同部分之间的内在关联和逻辑关系。在原始文档中,“把握跨境支付数据取得与流量数据价值定位的主动权”这一关键论点与第⑦篇《大力增强支付产业国际竞争力》之间存在明确的对应关系。

而当我们将此文档输入到LLM系统时,它未能按照人类的思维逻辑来正确解析和展示文档内容。相反,其错误地编造了一篇文献作为回应,这凸显了当前LLM在语义理解,尤其是阅读顺序与逻辑关联推断方面的不足。

二、TextIn文档解析实测流程

针对以上痛点,合合信息凭借其强大的研发实力,成功自研出TextIn文档解析技术。该技术深度融合了文字识别、计算机图形图像技术以及智能图像处理引擎,使得纸质文档或图片中的文字信息能够迅速、精准地转化为计算机易于处理的文本格式。目前,TextIn平台已经开放了通用文档解析的试用权限和API调试接口,任何开发者都可以注册账号并开通使用。

2.1、网页在线调用效果

首先进入TextIn官网:https://www.textin.com/console/recognition/robot_struct?service=pdf_to_markdown

选择1千页的套餐进行试用。

点击开通试用,然后进入工作台,找到已开通机器人-公有云API-通用文档解析-在线使用。

进入网页后,上传一份检索报告的扫描件,可以看到,TextIn通用文档解析能够精准地识别扫描件中的表格元素。不论是简单的单行表格还是复杂的跨页表格,它都能准确地捕捉并创建出结构清晰、布局合理的电子表格,还能将单元格的内容一一对应解析,确保数据项都被准确无误地提取。

不仅如此,它还能够将解析结果导出为Markdown或JSON格式。Markdown格式的输出具有直观性和编辑便捷性,特别适用于解析结果的查看、修改及后续处理。而JSON格式在数据交换中具有相当的通用性和易用性,它能够与主流数据处理软件或平台无缝对接,确保数据的流畅交换和共享。通过这两种格式的输出选项,我们可以将解析结果直接应用于数据分析和处理,并且能够轻松实现与其他系统的数据交换和集成。

2.2、本地API调试效果实测

除了在线调用,TextIn通用文档解析还提供了API调试与示例代码,首先点击API集成,进入API文档。

API文档给出了**请求头、URL参数、请求体说明、响应体说明和错误码说明,**包括必要的认证信息、内容类型、清晰的示例和说明、字段的含义和格式。

这里我使用JS设计一个简单的demo,其中onload事件处理函数用于获取读取到的文件数据(ArrayBuffer),XMLHttpRequest对象向服务器发送数据后,onreadystatechange事件处理函数检查请求的readyState属性并对返回内容进行解析,主要核心代码如下:

<!DOCTYPE html>  
<html lang="zh-CN">  
  
<head>  
  <meta charset="UTF-8">  
  <title>文档解析演示</title>  
  
</head>  
  
<body>  
  <div class="container">  
    <h2>上传文件</h2>  
    <div class="file-upload">  
      <input type="file" id="fileInput">  
      <label for="fileInput">选择文件</label>  
    </div>  
  </div>  
  
  <script>  
    document.querySelector('#fileInput').addEventListener('change', function (e) {  
      var file = e.target.files[0];  
      var reader = new FileReader();  
  
      reader.readAsArrayBuffer(file);  
      reader.onload = function (e) {  
        var fileData = this.result;  
        var xhr = new XMLHttpRequest();  
        var appId = '4956***********************f0';  
        var secretCode = '10be2*********************c18';  
        var url = 'https://api.textin.com/ai/service/v1/pdf_to_markdown';  
        xhr.open('POST', url);  
        xhr.setRequestHeader('x-ti-app-id', appId);  
        xhr.setRequestHeader('x-ti-secret-code', secretCode);  
        console.log("loading")  
        xhr.onreadystatechange = function () {  
          if (xhr.readyState === 4) {  
            var response = xhr.response;  
            var obj = {};  
            try {  
              obj = JSON.parse(response);  
            } catch (e) {  
              console.error('Error parsing JSON response:', e);  
            }  
            console.log("success")  
            console.log(obj.result)  
            if (obj.result && obj.result.item_list && obj.result.item_list.length > 0) {  
              console.log(obj.result.item_list);  
            }  
          }  
        };  
        xhr.send(fileData);  
      };  
    });  
  </script>  
</body>  
  
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57

实际使用时,只需要点击选择文件,然后上传需要解析的PDF或图片,在右侧就会打印出对应的解析结果。

2.3、初步实践——基于TextIn文档解析 + Kimi的智能文档解析助手

文档解析技术以其精湛的技能,致力于将多样化格式的文档转化为计算机易于理解和操作的文本格式。而强大的大型语言模型则以其卓越的能力,能够深入理解和把握不同文本格式的上下文脉络,精准捕捉文本中蕴含的深层语义,从而生成更加贴合用户需求的下游任务输出。

那么,我不禁思考:是否有可能将TextIn文档解析API与LLM的语言理解能力巧妙结合,打造出一个高效且强大的文档处理流程?话不多说,让我们立即付诸实践。

首先,我们调用TextIn文档解析API,将原本难以直接使用的文档(如PDF和图片格式)转化为计算机易于理解的信息,选择输出Markdown或JSON格式的文档内容,为后续的数据分析和处理提供清晰、结构化的数据支持。

接下来,我们将TextIn API生成的Markdown数据或JSON数据作为输入传递给LLM,本次实践选用了moonshot的Kimi。通过这一步骤,我们为Kimi提供了丰富的结构化数据,使其能够深入分析文档内容,并为后续处理提供更为全面和准确的上下文支持。

最后利用LLM的能力,对输入的JSON数据进行处理,根据特定的业务场景和用户需求,我们可以让LLM执行一系列高级任务,如生成摘要、提取关键信息、分类总结等。

以下图的乡村旅游热度季节变化规律为例,我们可以将包含乡村旅游数据的JSON文件输入给LLM。LLM会利用其深度学习和自然语言处理的能力,分析这些数据,识别出乡村旅游热度的季节性趋势和变化规律,基于这些分析,生成一份详尽的分析报告,包含乡村旅游热度的季节分析、未来趋势预测以及相应的建议或策略,从而为乡村旅游的决策者提供有价值的参考,帮助规划和管理乡村旅游资源,提升游客的满意度和体验。

通过以上体验,可以看到,TextIn文档解析API以其卓越的性能为我们提供了强大的文档解析工具,而Kimi智能文档助手则以其对文本深层语义的精准捕捉和理解能力,进一步提升了文档内容的下游任务处理水平,结合两者,不仅打破了传统文档处理的局限,还可以实现对文档更深层次的理解和处理,并且能够应对各种类型文档处理需求。

想象一下,当你面对一堆繁杂的PDF文件、图片或扫描件时,你不再需要逐页翻阅、手动输入或依赖低效的OCR工具,而是可以借助TextIn文档解析 + LLM将其迅速转化为结构化的文本数据,进而提取关键信息、生成摘要、分类归档,甚至进行更复杂的文本挖掘和数据分析。

如果你对智能图像处理、文字表格识别、文档内容提取感兴趣,那么我强烈推荐你前往TextIn的官方网站进行亲身体验。让TextIn成为你文档处理的得力助手,让智能化、高效化的文档解析成为你工作的新常态吧!

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/725600
推荐阅读
相关标签
  

闽ICP备14008679号