基于论文的大模型应用:基于SmartETL的arXiv论文数据接入与预处理(二)

发布于:2025-04-17 ⋅ 阅读:(29) ⋅ 点赞:(0)

上一篇 文章介绍了arXiv采集处理的任务背景、整体需求,并对数据进行了调研。

本文介绍整体方案设计。

4.整体方案设计

4.1.总体流程

基于上述调研了解的情况,针对工作需求设计处理流程如下:

  1. 下载kaggle数据集作为流程输入,出发采集任务。优先采集最新的论文,因此需要对数据集按时间重排。每周下载一次最新数据集,通过记录处理上次处理的论文ID,提取出增量数据加入流程处理。
  2. 基于输入数据拼接HTML页面的URL、PDF页面的URL(备用)。
  3. 下载HTML页面,保存到MinIO系统中。
  4. 下载PDF文件,保存到MinIO系统中。这一步可选,主要是对缺失HTML页面的补充,以及用于做PDF抽取实验。
  5. 基于HTML网页解析标题、作者、摘要、正文、参考文献、表格和图像地址,形成层级化的文档结构。
  6. 下载图像,保存为base64字段,或保存到MinIO系统中。
  7. 保存完整记录:基于MinIOMongoDB存储论文完整结构。
  8. 建立ES全文索引:论文ID、标题、摘要、作者、正文等写入ES
  9. 建立正文Qdrant向量化索引:对论文摘要、正文建立向量化索引。文本向量化模型可采用bge-large-en-v1.5(arXiv论文主要为英文,针对中文需要换成bge-large-zh-v1.5)。
  10. 建立图片Qdrant向量化索引:对论文图片建立向量化索引。图片向量化模型可采用BGE-VL-large。

4.2.任务解耦

由于流程较为复杂,如果采用普通的串行流程,虽然可以实现业务功能,但存在性能不佳、更新数据不及时、添加采集任务不灵活等问题。(思考:为什么会有这些问题?

很容易想到的解决办法是将流程拆分,分为论文采集流程、论文解析流程和建索引流程,通过不同的并行调度策略,分别进行优化。

但是流程拆分马上产生一个问题:**前后流程如何衔接?**即前一个流程的数据如何输入到后一个流程中。

这里通过引入Kafka消息队列进行解决。

部署kafka服务(单节点或集群)并建立3个消息队列:

  • 采集任务队列(arxiv_task):将下载的kaggle数据集排序后写入此队列中。对已经采集处理的论文任务可以丢弃,后续定期下载最新的数据集,但只需要将新增的部分数据写入消息队列,避免重复。由采集程序进行消费。
  • 采集结果队列(arxiv_html):完成HTML(或/和PDF文件)后,在此队列中插入一条消息,从而通知HTML解析消费者。
  • 解析结果队列(arxiv_parsed):完成文件解析后,在此队列中插入一条消息,从而通知索引构建消费者。

整体流程如下图所示:
在这里插入图片描述

4.3.细化向量索引

为了提升向量检索效果,优化向量索引方式。考虑到论文中不同章节的内容类型不同,建立以下不同的索引,支持应用端根据需要进行检索:

  • 论文摘要索引(paper_abstract):对论文摘要信息创建索引,可用于论文概要信息查找。
  • 论文引言索引(paper_introduction):引言涉及到问题背景、研究领域、主要方法和贡献等。
  • 论文方法索引(paper_method):方法章节具体描述论文采用的方法,方便用户查看论文方法细节。
  • 论文实验索引(paper_experiment):实验方法介绍了论文的实验相关内容,方便用户查看论文实验细节。
  • 论文讨论索引(paper_discusss):讨论章节对某些问题进行阐述,可用于启发相关研究。
  • 论文图片索引(paper_figure):对论文中的图片建立向量化索引,支持进行跨模态检索。

4.4.存储结构设计

4.4.1.数据结构

采集任务数据结构:

{
"id": "2501.00468", //论文ID
"title": "Non-perturbative self-consistent electron-phonon spectral functions and transport", //标题
    "authors": "Jae-Mo Lihm and Samuel Ponce", //作者
    "submitter": "Jae-Mo Lihm", //提交者
    "categories": "cond-mat.mtrl-sci", //分类
    "abstract": "  Electron-phonon coupling often dominates the electron spectral functions and\ncarrier transport properties. However, studies of this effect in real materials\nhave largely relied on perturbative one-shot methods due to the lack of a\nfirst-principles theoretical and computational framework. Here, we present a\nself-consistent theory and implementation for the non-perturbative calculations\nof spectral functions and conductivity due to electron-phonon coupling.\nApplying this method to monolayer InSe, we demonstrate that self-consistency\nqualitatively affects the spectral function and transport properties compared\nto state-of-the-art one-shot calculations and allow one to reconcile\nexperimental angle-resolved photoemission experiments. The developed method can\nbe widely applied to materials with dominant electron-phonon coupling at\nmoderate computational cost.\n", //摘要
    "versions": [  //提交版本
        {
            "version": "v1",
            "created": "Tue, 31 Dec 2024 14:39:52 GMT"
        },
        {
            "version": "v2",
            "created": "Thu, 20 Mar 2025 15:18:07 GMT"
        }
    ],
"update_date": "2025-03-21", //更新日期
"_id": "2501.00468v2", //文档ID
"url_pdf": "http://arxiv.org/pdf/2501.00468", //PDF链接
"url_html": "http://arxiv.org/html/2501.00468v2" //HTML链接
}

解析结果数据结构:

{
  "title": "Non-perturbative self-consistent electron-phonon spectral functions and transport", //标题
  "authors": [ //作者列表
   "Jae-Mo Lihm \\orcidlink0000-0003-0900-0405\n\njaemo.lihm@gmail.com\n\nEuropean Theoretical Spectroscopy Facility, Institute of Condensed Matter and Nanosciences, Université catholique de Louvain, Chemin des Étoiles 8, B-1348 Louvain-la-Neuve, Belgium"
  ],
  "abstract": "Electron-phonon coupling often dominates the electron spectral functions and carrier transport properties.……",
  "sections": [//正文各个章节
   {
     "title": "title", //章节标题
     "content": "content" //章节正文内容,段落间用换行符分割
     "figures": [//图表列表
       {
         "caption": "caption", //图表标题
         "url": "https://....", //图片绝对地址
}
] , 
     "tables": [ //表格列表
        {
           "caption": "caption", //表格标题
           "rows": [//表格的行 包括标题行
             {
               "v": "cell value", //单元格内容
               "rowspan": 1, //跨行数 字段不存在标识不跨行 
               "colspan": 1, //跨列数 字段不存在标识不跨列
             }
           ]
        }
]
}
  ],
  "references": [//参考文献列表
    "Damascelli et al. [2003] A. Damascelli, Z. Hussain, and Z.-X. Shen, Angle-resolved photoemission studies of the cuprate superconductors, Rev. Mod. Phys. 75, 473 (2003)."
  ]
}

4.4.2.对象存储结构

采用MinIO文件系统对解析后的完整数据结构进行存储,方便应用获取论文详情。

MinIO对象存储模型为桶(bucket)-键-值相当于顶层目录,一个应用通常对应一个桶。可以根据需要设计为多级,以/进行分隔。就是对象的内容。

本系统中设计桶为 goinv3-arxiv-2504。键设计为 YYMM/nnn/nn.json,即将论文ID分为年月、前三位顺序号、后两位顺序号3级,方便以浏览器进行直接查看。值设计为JSON格式(通过键名设计也可以看出来),即将解析后的对象做JSON序列化,以及附加gzip压缩,减小存储空间。

4.4.3.传统索引结构

采用ElasticSearch对解析后的论文内容建立传统索引(包括普通索引和文本倒排索引),方便对论文进行条件检索和关键词匹配。

ElasticSearch按照索引(index)对JSON文档进行管理,通过指定索引的设置(settings)和映射(mapping),实现更加准确的检索。
本系统中设计索引名为goinv3-arxiv-2504。映射设计如下:

  • _id 直接采用论文ID。如果新版本,直接更新。
  • title: text;索引源为论文标题字符串。
  • authors:text;索引源为论文作者拼接字符串。
  • abstract: text;索引源为论文摘要拼接字符串。
  • content: text;索引源为论文正文拼接字符串。
  • created_time: datetime;索引源为论文第一个版本的发布时间。
  • updated_time: datetime;索引源为论文最新版本的发布时间。

4.4.4.向量索引结构

采用Qdrant向量数据库对论文建立向量化索引,支撑应用进行语义检索。

Qdrant采用集合(collection)对向量进行索引管理,通过创建集合时指定向量维度、相似度计算方法等参数,满足向量检索要求。由于向量化的复杂性,Qdrant(以及其他大多数向量库)并不直接提供向量化模型,应用系统需要单独对数据进行向量化,在实际场景中这样更加灵活。

向量索引与文档内容拆分(chunk)粒度密切相关。chunk如果太长,则可能包含更混杂的语义;如果太短,则可能因为没有足够的上下文而语义信息不足。对于论文而言,各个章节的内容、长度、焦点主题、相关内容等情况非常复杂,可能需要在实际应用中不断尝试,或者通过一些实验评估,才能确定最佳方案。

本系统初步设计针对论文摘要引言方法实验讨论等章节分别建立索引(如前文“细化向量索引”一节所述)。每个索引除了向量本身,还包括一个载荷(payload)对象,包括doc_idcontent字段,方便快速获取当前向量对应的原文(针对文本)以及论文编号。

由于Qdrant的集合仅支持数字IDUUID,为了方便与论文对象关联,采用论文ID的数字化形式,如论文2502.18864,对应的记录ID为250218864。考虑chunk长度,在记录ID后面附加两位数字序号,如25021886401表示论文中相应部分的第一个chunk。(payload中的doc_id仍然需要,后续如果变更记录ID设计,也不影响与论文的对应关系。)

此外,为了便于对论文图片进行语义检索(以文搜图、以图搜图),对论文中的图表也建立向量化索引,其记录ID设计与上述类似。

4.4.5.文件存储结构

为了简化设计,采用MinIO对相关文件进行存储,包括HTML文件PDF文件图表文件等。

采用与前文对象存储结构的文件存储结构,分别设计桶为goinv3-arxiv-html-2504goinv3-arxiv-pdf-2504goinv3-arxiv-figure-2504。键设计分别为YYMM/nnn/nn.htmlYYMM/nnn/nn.pdfYYMM/nnn/nn_xx.png,其中xx是图表文件序号,从01开始编号。对于HTML文件,可采用gzip进行压缩以减小存储空间。

4.5.向量化模型

影响向量语义检索质量的因素除了chunk拆分设计,另一个重要因素就是向量化模型选择,向量化模型直接影响对数据内容的语义捕获的准确性。对于如何选择向量化模型,并没有简单答案,与应用场景密切相关,需要根据经验或实验评估进行权衡。

本系统中采用bge-large-en-v1.5 对论文文本进行向量化,在这里查看模型 ;采用BGE-VL-large对论文图表进行向量化,在这里查看模型


网站公告

今日签到

点亮在社区的每一天
去签到