大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法行业就业。希望和大家一起成长进步。
本文主要介绍了大模型文档神器:合合信息大模型加速器,希望对学习大语言模型的同学们有所帮助。
文章目录
1. 前言
最近和搞大模型的同学聊天,发现大家在实践中遇到了很多难以解决的问题。有说现在训练数据质量不佳,很多高质量的语料存在于文档中,难以提取出来,类似问题还存在于大模型解析文档场景,用户要求大模型根据上传的文件完成知识问答,但大模型无法准确提取出文档中的信息,也就没办法给出正确的回答。还有的同学说,在RAG领域,知识库和文本向量化已经是绕不开的步骤,但文本向量模型质量参差不齐,模型经常出现“已读乱回”的“幻觉”问题,因此,寻找一个好的文本向量模型是提升大模型效果的关键环节。
不用担心,以上所有问题,合合信息TextIn都帮我们解决了,其最新推出的“大模型加速器”系列包含了通用文档解析、通用文本向量等产品,一站式解决大模型实践中的各种问题。
2. TextIn大模型 “加速器”简介
合合信息是一家人工智能公司,TextIn为合合信息旗下的智能文档处理平台,在智能文字识别领域深耕17年,致力于图像处理、模式识别、神经网络、深度学习、STR、NLP、知识图谱等人工智能领域研究,官网地址为https://www.textin.com/。凭借行业领先的技术实力,为扫描全能王、名片全能王等智能文字识别产品提供强大的底层技术支持,并对企业、开发者、个人用户提供智能文字识别引擎、产品、云端服务。
近期,TextIn推出大模型“加速器”。其文档解析产品可在训练阶段,通过文档解析引擎最快在1.5s内识别出百页文档中的文本、表格、图像等,甚至可以将论文中的柱状图、折线图、饼图、雷达图等十余种表格“还原”成大模型理解的markdown格式,适用于市面上大多数模型。
此外,大模型“加速器”还推出通用文本向量产品,通过自研的acge_text_embedding模型(简称“acge”模型)提升语料质量,解决制约大模型发展的“幻觉”问题。acge模型将高维离散数据转换为低维连续向量(嵌入embedding),在相似性搜索、信息检索、推荐系统等多个领域提供强有力的技术支撑,曾经获得 Massive Text Embedding Benchmark (MTEB) 中文榜单(C-MTEB)第一名 的优异成绩。
3. 通用文档解析实践
3.1 理论及实践综述
目前,传统的文档解析技术主要是PDF提取和OCR识别。PDF提取侧重从结构化文档中快速抓取信息,但面对复杂版式和多媒体内容时,性能受限。OCR技术则通过图像识别技术将文档图像中的文字信息提取出来,虽然应用较为广泛,但是识别速度及对图像质量的依赖限制了其应用范围。
合合信息TextIn大模型“加速器”之文档解析产品超越了传统PDF提取和OCR技术的局限,融合先进的人工智能算法,如深度学习、模式识别,自研版面分析和多元素识别技术,实现对文档中复杂元素的高准确度识别。
合合信息文档解析技术不仅能识别文字,还能处理表格、公式、图表等复杂元素;通过版面分析技术,为长文档构建文档树,判断逻辑结构,为后续embedding优化提供基础,还原原文档阅读顺序,即使在多栏、多图表的复杂版面中也能保持内容的逻辑结构,面对无线表、跨页表格、合并单元格、密级表格等复杂情况,TextIn也能实现高准确度的表格数据还原;支持Markdown、Json等多种格式输出,满足不同场景的需求。
TextIn在训练、开发、体验等不同阶段加速了文档应用落地。一周可解析三千万页的预训练语料,不仅提高了质量,还大大减少了后处理时间;仅需几小时即可刷完一遍知识库,且不需兼容长尾case,真正实现了开箱即用;TextIn将100页文档的解析速度提升至最快1.5秒以内,全方面提升了用户体验显著提高了效率;支持Markdown、Json等多种格式输出,满足不同场景的需求。
3.2 在线体验
TextIn通用文档解析官方体验网址为通用文档解析(记得先要注册哦),可以看到,通用文档解析支持我们上传本地文档(支持png、jpg、jpeg、pdf、bmp、tiff格式),还可以直接输入在线的图片URL,输出结果为json格式,并贴心地将json以人看得懂的形式呈现给我们,同时支持导出结果和复制结果。整体来看做得相当人性化了,下面我们通过亲身实验来具体看看效果吧!
先尝试一个简单的例子,从网上找到一个纯文本的图片(下图)image,包含了中文和英语两种语言,可以看到TextIn完美的识别了出来,甚至连斜杠(/
)都保留了下来,效果棒棒滴!
下面我们上点难度,他不是号称能识别公式和表格嘛,下面我们也试一试,图片地址image。哇,效果真的很不错,所有的公式都正确地识别了出来,表格也保留了下来,点个赞!
继续上难度,普通文字能识别,那么繁体+手写+倾斜+水印干扰(难度有点高哦)呢,千言不如一试,来看实际效果吧,如下图image,全都识别正确了,而且自动去除了水印,棒!
最后我们上个大招,上传一篇论文看看效果,论文中包含了文字,表格,公式等,可以说集齐了各种元素。那我们就以大模型的开山之作的《Attention Is All You Need》为例进行实践。不同场景下的效果图如下所示,首先是图片内容完美保留:
然后在没有边框和内部分隔线的条件下,依然有效提取出了表格内容。
文字识别正确,尤其值得称道的是论文中复杂数学公式的精确识别。系统展现出卓越的通用文档解析能力,这一点通过多个不同类型的示例得到了充分体现。
实际使用大模型时,我们可能更多的是上传一篇文档,问大模型问题。在这一过程中,大模型首先要识别原文档的内容,然后输出答案,但大模型可能无法很好地识别文档,因此,可以用TextIn先将文档转换为markdown格式,再上传给大模型问问题,下面是一组对比图:
3.3 API实践
除了在线体验,合合信息还提供了API:说明文档,供开发者使用,并支持API在线调试(感叹句:很贴心)
-
API介绍:
-
功能描述:上传图片/pdf,进行版面检测,文字识别,表格识别,版面分析等,生成markdown文档
-
请求url:
https://api.textin.com/ai/service/v1/pdf_to_markdown
-
请求方法:POST
-
请求头:
- x-ti-app-id:登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-app-id
- x-ti-secret-code:登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-secret-code
-
请求体说明:
- Content-Type: application/octet-stream
- 支持的文件格式:png, jpg, jpeg, pdf, bmp,tiff
- 请求体的数据格式为文件的二进制流,非 FormData 或其他格式。文件大小不超过 500M,图像宽高须介于 20 和 10000(像素)之间
-
参数:(下述均为非必填参数)
-
返回结果:json格式
-
返回结果示例:
{ "code": 200, "message": "success", "result": { "markdown": "", "detail": [ { "content": 0, "text": "", "paragraph_id": -61400229, "position": [ 40899388 ], "image_url": "", "page_id": -6047593, "outline_level": -1, "type": "paragraph" } ] }, "metrics": [ { "status": "", "page_id": 87061001.97445199, "image_id": "", "durations": -2794433.3013762534 } ], "duration": 7360488, "version": "" }
-
错误码:
-
-
在线调试结果如下:
-
待识别的图片:
-
结果:
-
-
python代码示例如下:
import requests
import json
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
class CommonOcr(object):
def __init__(self, img_path):
# 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-app-id
# 示例代码中 x-ti-app-id 非真实数据
self._app_id = 'xxxxxxxxxx'
# 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-secret-code
# 示例代码中 x-ti-secret-code 非真实数据
self._secret_code = 'xxxxxxxx'
self._img_path = img_path
def recognize(self):
# 通用文档解析
url = 'https://api.textin.com/ai/service/v1/pdf_to_markdown'
head = {}
try:
image = get_file_content(self._img_path)
head['x-ti-app-id'] = self._app_id
head['x-ti-secret-code'] = self._secret_code
result = requests.post(url, data=image, headers=head)
return result.text
except Exception as e:
return e
if __name__ == "__main__":
response = CommonOcr(r'1719975172446.jpg')
print(response.recognize())
4. 通用文本向量实践
4.1 理论综述及API简介
Embedding将高维离散数据转换为低维的连续向量,捕捉数据的语义特征和关系。从早期的Word2Vec模型到BERT及其衍生模型,再到当前的大型语言模型(LLM),Embedding技术不断演进,在各种NLP任务如分类、聚类、检索和句子相似性判断等均起到了至关重要的作用。目前,Embedding技术面临的主要挑战包括处理大规模数据集时的计算效率、模型的泛化能力、以及对新数据的适应性。此外,传统的Embedding模型可能在处理长文本和多语言文本时存在局限性。
合合信息推出acge_text_embedding模型,简称"acge模型",在中文文本向量化领域取得了显著成就,曾经获得Massive Text Embedding Benchmark (MTEB)中文榜单(C-MTEB)第一名的成绩。acge模型通过采用对比学习技术,最小化正样本间的距离,同时最大化负样本间的距离,有效提升了文本语义表示的质量。此外,模型在开发过程中重视数据挖掘,构建了多场景、大规模的数据集,提升了模型的泛化能力,并采用多任务混合训练和多loss适配,适应不同的下游任务。acge模型相较于其他模型,在多个方面展现出优越性。首先,模型体积较小,占用资源少,这使得它在部署和维护方面更为高效。其次,模型支持最大1024 tokens的输入,能够处理更长的文本,满足大多数场景需求。此外,acge模型支持可变输出维度,允许应用者根据具体场景合理分配资源,这在资源受限的环境中尤为重要。
acge模型还引入了持续学习训练方式,改善了模型在引入新数据时可能出现的灾难性遗忘问题。同时,运用MRL技术训练可变维度的嵌入,提高了处理速度,降低了存储需求。这些特点使得acge模型在文档分类、长文档信息抽取和知识问答等多个应用场景下展现出显著的优势。合合信息的acge模型通过其创新的技术应用和优化的设计,解决了传统Embedding技术面临的一些关键问题,在提升检索召回能力的同时,也为用户提供了一个高效、灵活且适应性强的文本向量化工具。这不仅体现了合合信息在智能文档处理领域的技术实力,也为构建LLM+文档交互的智能生态提供了强有力的支持。
合合信息acge模型目前支持API使用和私有化部署两种模式,现在我们详细看下API。
合合信息acge模型API说明文档链接:https://www.textin.com/document/acge_text_embedding,供开发者使用,并支持API在线调试。
-
API说明:
-
功能描述:通过自研的acge模型将文本转化成向量形式。目前支持简体中文,适用于文本检索、文本分类等任务
-
请求URL:
https://api.textin.com/ai/service/v1/acge_embedding
-
请求方法:POST
-
请求头:
- x-ti-app-id:登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-app-id
- x-ti-secret-code:登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-secret-code
-
请求体说明:
-
Content-Type: application/octet-stream
-
json示例:
{ "input": [ "这是一个示例文本,来自上海合合信息ACG团队" ], "matryoshka_dim": 1792 }
-
-
返回结果:json格式
-
返回结果示例:
{ "code": 200, "message": "success", "duration": "v0.0.7", "result": { "embedding": [ [ 0.7, 0.8, 0.05, 0.03 ], [ 0.7, 0.8, 0.05, 0.03 ] ], "matryoshka_dim": 4 } }
-
错误码:
-
- python代码示例如下:
import requests
import json
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
class CommonOcr(object):
def __init__(self, img_path):
# 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-app-id
# 示例代码中 x-ti-app-id 非真实数据
self._app_id = 'c81f*************************e9ff'
# 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-secret-code
# 示例代码中 x-ti-secret-code 非真实数据
self._secret_code = '5508***********************1c17'
self._img_path = img_path
def recognize(self):
# 通用文本向量
url = 'https://api.textin.com/ai/service/v1/acge_embedding'
head = {}
try:
image = get_file_content(self._img_path)
head['x-ti-app-id'] = self._app_id
head['x-ti-secret-code'] = self._secret_code
result = requests.post(url, data=image, headers=head)
return result.text
except Exception as e:
return e
if __name__ == "__main__":
response = CommonOcr(r'example.jpg')
print(response.recognize())
4.2 huggingface acge_text_embedding模型
-
目前,合合信息的acge_text_embedding模型已经放到了huggingface中,由于国内使用huggingface受限,所以首先把模型下载到本地,具体下载方式如下:
- 方法一:找到模型文件的地址(huggingfce、modescope等),使用git clone
git clone https://huggingface.co/aspire/acge_text_embedding
- 方法二:使用GIT LFS加速
# 首先安装GIT LFS yum install git-lfs -y # 使用GIT LFS加速 git lfs install git clone https://huggingface.co/aspire/acge_text_embedding
- 方法三:使用https://hf-mirror.com/镜像站,可查看官网三种下载方法
- 方法四:参考博客https://blog.csdn.net/herosunly/article/details/135879220代码形式,支持多线程下载和断点续传
-
下面是acge_text_embedding模型代码使用示例:
from sentence_transformers import SentenceTransformer
sentences = ["男孩们正在操场打篮球", "操场上很多孩子在玩捉迷藏"]
model = SentenceTransformer('acge_text_embedding')
print(model.max_seq_length)
embeddings_1 = model.encode(sentences, normalize_embeddings=True)
embeddings_2 = model.encode(sentences, normalize_embeddings=True)
similarity = embeddings_1 @ embeddings_2.T
print(similarity)
5. 大模型加速器行业应用
合合信息TextIn,作为智能文档处理的领先平台,通过其创新的大模型“加速器”,在金融、医疗、法律、媒体与出版以及学术研究等多个行业中展现了其强大的应用潜力和实际价值。
金融行业中,大模型“加速器”的应用尤为显著,它能够快速准确地解析复杂的金融报表和行业报告,提取关键数据指标,为金融机构提供决策支持,降低风险管理成本。在医疗领域,其高准确性的文档解析能力,辅助医生和研究人员快速获取关键信息,提升医疗服务质量和研究效率。法律行业也受益于大模型“加速器”的快速文档解析能力,它帮助法律专业人士提高工作效率,优化案件处理流程。媒体与出版行业在内容创作和编辑过程中,需要处理大量的文本内容。合合信息TextIn的大模型“加速器”提供了高效的文本编辑和校对服务,帮助编辑和作者快速发现并纠正文档中的错误,提升内容质量。学术研究领域中,研究人员面对的大量文献和数据,通过大模型“加速器”的辅助,能够快速整合关键信息,促进知识的创新与传播。
合合信息TextIn与百川智能等行业领导者的合作,不仅提升了文档解析的速率和准确性,还通过构建“行业级知识库”,为企业实现知识资产管理、搜索效率提升,优化业务沟通流程。这标志着大模型技术在各行各业的深入应用,推动了整个社会的数字化转型,加速了智能化的进程。
合合信息TextIn的大模型“加速器”以其卓越的技术实力和广泛的行业应用,为不同领域的企业和专业人员提供了前所未有的便利和效率。随着技术的不断进步和应用的不断拓展,大模型“加速器”有望在未来成为更多行业数字化转型的重要推手,开启智能文档处理和知识管理的新篇章。