去年(2023年)是大模型爆发元年。但是大模型具有两个缺点:缺失私有领域知识和幻觉。缺失私有领域知识是指大模型训练时并没有企业私有数据/知识,所以无法正确回答相关问题。并且在这种情况下,大模型会一本正经地胡说八道(即幻觉),给出错误的回答。
那么如何解决这两个缺点?目前主要有两种方法,微调和RAG。微调是指使用企业私有数据/知识基于现有大模型训练出一个新的模型,然后我们使用这个新的模型来回答用户问题。RAG是检索增强生成(Retrieval-Augmented Generation)的缩写,是指在用户提问时系统后台根据用户问题检索相关数据/知识,然后将所检索到的相关数据/知识加上用户问题一起交给大模型处理。
我们可以看到,无论是哪种方法,将企业私有数据/知识传给大模型都是位于整个流程的上游,这个阶段的任何失误都会直接影响到整个流程的下游,最终影响整个问答的准确率。
为了让读者更形象地了解这个环节,本文将以一份上市公司年报PDF为例进行讲解。
本文选择了恒生电子(600570)2022年的年度报告(修订版)做为示例,大家可以在巨潮资讯搜索下载这份PDF文件。
使用传统PDF解析工具解析PDF
首先我们使用传统的PDF解析工具解析PDF。
传统的PDF解析库相当地多,我们就不一一罗列和分析了。这里我们仅以目前最流行的大模型框架LangChain所支持的其中一个解析库PyPDF为例。
我们使用LangChain并选择PyPDFLoader来读取文件“恒生电子:恒生电子股份有限公司2022年年度报告(修订版).PDF”
from langchain_community.document_loaders import PyPDFLoader
loader = PyPDFLoader("example_data/恒生电子:恒生电子股份有限公司2022年年度报告(修订版).PDF")
pages = loader.load_and_split()
存在的问题
我们发现通过PyPDFLoader读取的结果存在很多问题,这里仅以PDF第6页和第7页的“七、近三年主要会计数据和财务指标”为例:
通过PyPDFLoader读取的结果为(为节省篇幅,这里去除了所有空白换行符):
七、 近三年主要会计数据和财务指标
(一) 主要会计数据
单位:元 币种:人民币
主要会计数据 2022年 2021年
本期比上年 同期增减
(%)
2020年
营业收入 6,502,387,143.49 5,496,578,624.88 18.30 4,172,645,156.56
归属于上市公司股东的 净利润 1,091,088,379.58 1,463,538,930.14 -25.45 1,321,735,522.48
归属于上市公司股东的 扣除非经常性损益的净 利润
1,144,419,161.05 946,569,672.55 20.90 733,590,924.61
经营活动产生的现金流 1,138,192,779.96 956,789,306.14 18.96 1,397,902,270.41
2022 年年度报告
**7** /
**211** 量净额
2022年末 2021年末
本期末比上 年同期末增
减(%)
2020年末
归属于上市公司股东的 净资产 6,811,761,050.50 5,695,031,051.05 19.61 4,554,029,323.59
总资产 13,004,578,298.67 12,079,908,312.76 7.65 9,971,144,688.34
我们可以发现以下问题:
- PDF换页导致表格行头被断开:第四行的行头“经营活动产生的现金流量净额”被断成两截,生生加入了“1,138,192,779.96 956,789,306.14 18.96 1,397,902,270.41 2022 年年度报告 **7** /**211** ”一长串内容。我们可以看到,这一段内容中,干扰信息比正常信息还要多一两倍。遇到这种问题,再强大的大模型都无法正确处理!
- 丢失表格列头信息:表格最后几行数据完全无法与表格列头建立关系。从而导致大模型无法识别这些数据所代表的意义。
除了PyPDFLoader之外,其它传统的PDF解析工具的处理结果也差不多。
计算机科学与信息通信技术领域有一句习语:垃圾进,垃圾出 ( Garbage in, garbage out ,缩写GIGO )。我们可以看到,在这个示例中,因为传统PDF解析工具的局限性,生生地把精华处理成垃圾喂给了大模型,大模型自然而然地只能给出垃圾给用户了。那么,我们如何解决这些问题呢?
使用大模型时代的PDF解析工具
既然传统的PDF解析工具跟不上时代的发展,那么我们就使用大模型时代的PDF解析工具。
截至目前为止,大模型时代的PDF解析工具有两类:
- 原生支持英文,对中文支持尚待改进的:Marker、nougat(Facebook)、Layoutlmv3(Microsoft)、DocLayNet(IBM)、ByT5(Google)
- 原生支持中文,并以中文大模型为试验对象的:Vary、PDF4AI.cn
这里以Marker(https://github.com/VikParuchuri/marker)为代表简单描述一下第一类工具。Marker的原理是将PDF解析成Markdown喂给大模型。因为Markdown可以保留表格的结构信息,所以能够解决前面示例中的问题。
然而很遗憾的是,Marker目前尚未支持中文,所以无法用于本文中的示例。不过大模型时代技术发展迅速(LangChain几乎每天更新一个版本),Marker才诞生三个月就已经更新多个版本,相信很快就会支持中文了。
至于nougat、Layoutlmv3、DocLayNet、ByT5都是类似于Marker的工具,因为篇幅原因,这里就不过多描述了。
这些工具有些明确表示目前不支持中文,有些虽然支持中文,但是实际效果可能不能满足读者们的预期。
既然以上工具对中文支持不友好,那么有没有支持中文的类似工具呢?旷视推出了Vary。
Vary是以中文大模型(阿里巴巴的通义千问Qwen)为试验对象的,并且优先和原生支持中文,从Vary的官网可以看到,Vary的Demo都是先展示中文再展示英文的。
Vary的官网是https://varybase.github.io/ , 比较奇怪的是,虽然各大自媒体号说这是旷视推出的模型,然而这个官网并没有表现出这一点。同时Vary推出没多久,目前改进空间还很大,笔者将持续关注。
另一个工具是PDF4AI.cn(https://www.pdf4ai.cn)。PDF4AI.cn的原理与Marker、Vary是一样的,都是将PDF解析成Markdown喂给大模型。
PDF4AI.cn分为免费版和专业版。截止目前为止,PDF4AI.cn的免费版未能解决以上示例中的问题。
PDF4AI.cn专业版可以解决以上示例中的问题。以下是PDF4AI.cn专业版的处理结果(为节省篇幅,这里去除了所有空白换行符):
七、 近三年主要会计数据和财务指标
(一) 主要会计数据
单位:元 币种:人民币
| 主要会计数据 | 2022年 | 2021年 | 本期比上年同期增减 (%) | 2020年 |
| ------ | ----- | ----- | -------------- | ----- |
| 营业收入 | 6,502,387,143.49 | 5,496,578,624.88 | 18.30 | 4,172,645,156.56 |
| 归属于上市公司股东的净利润 | 1,091,088,379.58 | 1,463,538,930.14 | -25.45 | 1,321,735,522.48 |
| 归属于上市公司股东的扣除非经常性损益的净利润 | 1,144,419,161.05 | 946,569,672.55 | 20.90 | 733,590,924.61 |
| 经营活动产生的现金流量净额 | 1,138,192,779.96 | 956,789,306.14 | 18.96 | 1,397,902,270.41 |
| 归属于上市公司股东的净资产 | 6,811,761,050.50 | 5,695,031,051.05 | 19.61 | 4,554,029,323.59 |
| 总资产 | 13,004,578,298.67 | 12,079,908,312.76 | 7.65 | 9,971,144,688.34 |
熟悉Markdown的朋友们可以看出,以上处理结果将PDF里面的表格转换为Markdown里面的表格。
为了让不熟悉Markdown的朋友们有一个直观的认识,笔者使用Markdown编辑工具将以上结果可视化一下:
现在我们可以清晰地看到,表格信息被完整保留,从而解决了以上示例中的问题。
总结
与传统的PDF解析工具相比,大模型时代的PDF解析工具将PDF解析成Markdown,从而保留一些结构化的信息(例如表格和图片),再喂给大模型,从而避免把精华处理成垃圾,避免垃圾进,垃圾出。
去年(2023年)大模型才爆发,因此这些大模型时代的PDF解析工具都是新生产物,有很多地方尚待改进,不过它们也更新迅速,感兴趣的读者可以持续关注。
如何系统的去学习大模型LLM ?
作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。
但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料
包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~
👉[CSDN大礼包🎁:[[全网最全《LLM大模型入门+进阶学习资源包》免费分享**]]👈
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
阶段1:AI大模型时代的基础理解
- 目标:了解AI大模型的基本概念、发展历程和核心原理。
- 内容:
- L1.1 人工智能简述与大模型起源
- L1.2 大模型与通用人工智能
- L1.3 GPT模型的发展历程
- L1.4 模型工程
- L1.4.1 知识大模型
- L1.4.2 生产大模型
- L1.4.3 模型工程方法论
- L1.4.4 模型工程实践 - L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
- 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
- 内容:
- L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具类框架
- L2.1.4 代码示例 - L2.2 Prompt框架
- L2.2.1 什么是Prompt
- L2.2.2 Prompt框架应用现状
- L2.2.3 基于GPTAS的Prompt框架
- L2.2.4 Prompt框架与Thought
- L2.2.5 Prompt框架与提示词 - L2.3 流水线工程
- L2.3.1 流水线工程的概念
- L2.3.2 流水线工程的优点
- L2.3.3 流水线工程的应用 - L2.4 总结与展望
- L2.1 API接口
阶段3:AI大模型应用架构实践
- 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
- 内容:
- L3.1 Agent模型框架
- L3.1.1 Agent模型框架的设计理念
- L3.1.2 Agent模型框架的核心组件
- L3.1.3 Agent模型框架的实现细节 - L3.2 MetaGPT
- L3.2.1 MetaGPT的基本概念
- L3.2.2 MetaGPT的工作原理
- L3.2.3 MetaGPT的应用场景 - L3.3 ChatGLM
- L3.3.1 ChatGLM的特点
- L3.3.2 ChatGLM的开发环境
- L3.3.3 ChatGLM的使用示例 - L3.4 LLAMA
- L3.4.1 LLAMA的特点
- L3.4.2 LLAMA的开发环境
- L3.4.3 LLAMA的使用示例 - L3.5 其他大模型介绍
- L3.1 Agent模型框架
阶段4:AI大模型私有化部署
- 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
- 内容:
- L4.1 模型私有化部署概述
- L4.2 模型私有化部署的关键技术
- L4.3 模型私有化部署的实施步骤
- L4.4 模型私有化部署的应用场景
学习计划:
- 阶段1:1-2个月,建立AI大模型的基础知识体系。
- 阶段2:2-3个月,专注于API应用开发能力的提升。
- 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
- 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的所有 ⚡️ 大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
全套 《LLM大模型入门+进阶学习资源包》↓↓↓ 获取~
👉[CSDN大礼包🎁:[全网最全《LLM大模型入门+进阶学习资源包》免费分享**]👈