「古法」数据清洗:让大模型更懂它收到的论文
引言
在这个大语言模型上下文窗口动辄数百 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
--wrap=none禁止自动折行simple_tables,multiline_tables生成更简洁的表格raw_tex保留\cite{},\ref{}等原始命令便于后续整理参考文献或引用图表
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
-
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. ↩