「古法」数据清洗:让大模型更懂它收到的论文

引言

在这个大语言模型上下文窗口动辄数百 k 的时代,让它帮忙做文献阅读和总结早已司空见惯。最省事的做法就是直接把 PDF 扔进对话框,期待模型能完美解析其中的一切。

然而,PDF 本质上是一种面向人类阅读的排版格式。即便现在模型的视觉能力已经很强,为了区分页码、页眉、页脚、多栏布局等人类一眼就能忽略的视觉元素,模型仍然需要分配额外的注意力去理解它们与正文无关。就像一个人在左手画圆、右手画方,对核心内容的关注自然打了折扣。

因此,先将文献进行适当的清洗和转写,再喂给模型,不仅显著提升了信噪比,对模型充分理解论文、准确回答问题也大有裨益。理想的输入应该具有两个特点:一是清晰的结构化层次,能够让模型快速把握文章脉络;二是极简的语法表达,最大限度剥离 LaTeX 排版带来的冗余。这个角色,非 Markdown 莫属了。

方案一:有 LaTeX 源码,最佳情况

在 arXiv 上发布的论文都会公开 LaTeX 源码,这是高质量转写的最佳起点。我使用如下命令将 tex 文件转换为大模型友好的 Markdown:

pandoc main.tex \
  --from=latex \
  --to=markdown-simple_tables-multiline_tables-raw_tex \
  --wrap=none \
  -o main.md

pandoc 是文档转换工具中的瑞士军刀,安装方法有完善的文档与教程可供参考,此处不再赘述。

方案二:只有 PDF,事先规定转写规范

没有工具能将 PDF 结构在 Markdown 中完美还原。此时的最佳策略还是利用大模型,但将转写作为一个独立任务,单开一个对话,事先约定转写规范,将 PDF 逐页截图发送。对转换结果进行人工审核和微调,再将清洗好的 Markdown 文档喂给模型进行阅读和分析。

以下是我实际使用的转写规范,作为示例(也是 AI 生成😅)

#**Markdown 转写规范**

## 1. **层级结构与标题**

| 文本结构   | Markdown 格式               | 说明               |
| ------ | ------------------------- | ---------------- |
| 论文标题   | `# Title`                 | 若截图中有论文标题,使用一级标题 |
| 一级节标题  | `## 1. Section Name`      | 若原文有编号,保留编号      |
| 二级节标题  | `### 1.1 Subsection Name` | 同上               |
| 三级标题以上 | `#### 1.1.1 ...`          | 保持结构即可           |

## 2. **正文格式**

* 使用普通 Markdown 段落。
* 不改变原文的换行逻辑(段落间空一行)。
* **不添加额外解释或改写**,保持内容原汁原味。

## 3. **数学公式**

### ⭐️ 行内公式

*`$ ... $` 包裹
* 尽量忠实保持符号、上下标、希腊字母

### ⭐️ 独立公式(display)

* 使用:

$$
公式内容
$$

* 如果有编号,例如 "(1)",保留在公式同一行右侧:

$$
E = mc^2 \tag{1}
$$

## 4. **表格**

若截图含表格:

### ⭐️ 表格内容

* 使用标准 Markdown 表格
* 若列数较多导致 Markdown 难渲染,使用 **纯文本 ASCII 表格**

### ⭐️ 表格标题 / 下标说明(caption)

* 使用如下格式置于表格下方:

**Table 1: Caption text**

## 5. **图形 / 图片**

若出现图片,可以略过或保留占位符;但若出现图标题:

**Figure 2: Caption text**

## 6. **参考文献**

保持如下格式:

[1] Author, Title, Venue, Year.

## 7. **特殊符号、格式**

* **粗体**`**bold**`
* *斜体*`*italic*`
* 代码片段 / 伪代码:使用 ``` 或者 ` 单行
* 算法环境(如 Algorithm 1):以标题 + 代码块形式呈现

实用工具推荐

除了转换工作,我还会用到这些辅助工具,提高对话质量、合理规划对话。

RepoMix

Repomix 提供在线网页服务和 CLI 工具,能将整个 GitHub 仓库压缩、扁平化为一个包含目录结构的文本文件。将此文件与论文一起提供给大模型,有助于其建立论文思想与代码实现间的深刻联系。

Token Calculator

上下文窗口再大也不是无限的。更何况有效的上下文往往小于真实的窗口大小1,说人话就是大模型聊着聊着逐渐变傻。Token Calculator 可以快速估算文本将消耗的 Token 数量,以帮助你合理规划对话。

Footnotes

  1. Cheng-Ping Hsieh, Simeng Sun, Samuel Kriman, Shantanu Acharya, Dima Rekesh, Fei Jia, and Boris Ginsburg. Ruler: What’s the real context size of your long-context language models? In First Conference on Language Modeling, 2024.


学习笔记