每天,科学界都会发表成千上万篇新论文。从量子计算的突破到新颖的流行病学研究,产生的知识体量惊人。对于研究人员、数字图书馆和搜索引擎而言,整理这些海量信息是一个巨大的挑战。我们需要能够阅读摘要并立即将其归类为精确主题 (如“密码学”或“软件工程”) 的自动化系统。
标准的机器学习模型可以做到这一点,但它们通常需要数千个带标签的示例才能有效学习。在快速发展的领域,我们根本没有那么多标注数据。谁有时间为了训练一个模型识别 AI 的某个新子领域而去手动标注 5000 篇摘要呢?
这就引出了论文 “SCIPROMPT: Knowledge-augmented Prompting for Fine-grained Categorization of Scientific Topics” 中提出的一个迷人的解决方案。研究人员提出了一个框架,允许语言模型在极少数据 (小样本,Few-shot) 甚至无数据 (零样本,Zero-shot) 的情况下对复杂的科学文本进行分类。他们实现这一点并非通过增大模型体积,而是通过让模型变得更聪明——具体来说,是在提示过程中注入外部领域知识。
在这篇深度文章中,我们将拆解 SCIPROMPT 的工作原理,探讨标准方法为何在科学术语面前失效,以及这种新方法如何弥合通用语言模型与专家级分类之间的鸿沟。
背景: 为什么要用提示 (Prompting) ?
要理解 SCIPROMPT,我们首先需要了解从“微调 (Fine-tuning) ”到“提示 (Prompting) ”的转变。
传统上,如果你想用 BERT 这样的模型分类文本,你会在模型顶部添加一个分类层,并在标注数据集上对其进行训练。这种方法有效,但对数据需求量大。
最近,研究人员转向了 基于提示的微调 (Prompt-based Fine-tuning) 。 这种方法不再改变模型结构,而是将任务重新表述为“完形填空 (Cloze) ”测试,这正是这些模型进行预训练的方式。
例如,要对电影评论进行分类,你可能会给模型输入:
“This movie was terrible. The sentiment of this review is [MASK].” (这部电影糟透了。这篇评论的情感是 [MASK]。)
模型 (掩码语言模型或 MLM) 随后尝试预测 [MASK] 位置的单词。如果它预测是 “bad”,我们将其映射为“负面”类别。如果预测是 “good”,我们将其映射为“正面”。
科学领域的难题
这种方法在简单的情感分析中效果极佳。然而,在科学文献中它却碰了壁。
科学分类是 细粒度 的。识别一篇论文属于“计算机科学”很容易;但要区分它是“密码分析 (Cryptanalysis) ”还是“信息理论安全 (Information Theoretic Security) ”则很难。
连接模型预测的单词 (token) 与实际类别标签的核心组件被称为 Verbalizer (映射器) 。
- 标签: “Cryptography” (密码学)
- Verbalizer: 将单词 “crypto”、“encryption” 或 “secret” 映射 \(\rightarrow\) “Cryptography” 类别。
在标准方法中,这些 Verbalizer 通常是手工制作的。但在科学领域,手动映射是不可能的。一篇关于“密码学”的论文可能包含 *Hill cipher (希尔密码) *、*symmetric encryption (对称加密) * 或 *ciphertext (密文) * 等术语。如果 Verbalizer 不知道这些特定术语映射到“密码学”,模型就会失败。
这就是 SCIPROMPT 登场的地方。SCIPROMPT 不需要人类为每个科学领域编写关键词列表,而是自动构建一个“知识增强 Verbalizer”。
SCIPROMPT 方法
该框架旨在低资源环境 (小样本或零样本) 下运行。它主要分为两个阶段: 科学知识检索 和 模型预测 。
让我们看看该系统的高层架构:

如图 1 所示,左侧代表与语言模型的标准提示交互。右侧代表了新颖的贡献: 一个用于检索和过滤科学术语的管道,以帮助模型做出更好的决策。
让我们分解这个方法的三个不同阶段。
第一阶段: 科学知识检索
第一步是扩展模型关于特定主题的词汇量。如果类别标签是“密码学 (Cryptography) ”,模型需要知道“解密 (decryption) ”和“密码 (cipher) ”是相关的同义词或子概念。
研究人员使用类别标签作为查询词来搜索外部知识库 (KBs) 。他们利用了两个特定来源:
- Related Words: 基于向量相似度 (如 Word2Vec) 和 ConceptNet 查找术语。
- Reverse Dictionary (反向词典) : 一个根据定义查找单词的搜索引擎。这对于查找简单的同义词查找可能遗漏的短语 (例如“网络与互联网架构”) 至关重要。
这一步生成了“标签术语 (Label Terms) ”的原始列表——这些是填充 Verbalizer 的潜在候选词。
第二阶段: 领域自适应过滤
检索是有噪声的。如果你搜索与“Network (网络) ”相关的术语,可能会得到“社交网络”、“神经网络”和“计算机网络”。对于一篇关于分布式计算的论文,“社交网络”就是噪声。
为了清理检索到的术语,作者采用了一种使用 自然语言推理 (NLI) 的过滤机制。NLI 是一项任务,模型需要判断一个句子是否蕴含 (implies) 另一个句子。
他们使用一个名为 SciNLI 的数据集微调了两种类型的模型:
- Bi-encoder (\(M_{be}\)): 将句子转换为嵌入 (向量) 。它速度快,用于初步语义搜索,计算类别标签与检索术语之间的相似度得分。
- Cross-encoder (\(M_{ce}\)): 同时处理句子对。计算量更大但更准确。它对术语进行重排序,确保它们在上下文中是相关的。
过滤过程对于 NLI 模型来说本质上是一个二分类任务:

不满足特定相似度阈值的术语会被丢弃。结果是为每个类别标签生成一份高质量的、领域特定的短语精选列表。
第三阶段: 加权 Verbalizer
现在系统拥有了一份丰富的、经过过滤的术语列表 (例如,对于“密码学”,它有 {encryption, cipher, security…}) ,它需要使用这些术语对新的摘要进行分类。
系统使用 完形填空式提示 (Cloze-style Prompt) 。 摘要 \(a_n\) 被输入模型,模板如下:
“[Abstract]. The field of this article is related to: [MASK].” ([摘要]。这篇文章的领域与 [MASK] 有关。)
掩码语言模型 (\(\mathcal{M}\)) 预测用于填充掩码的单词的概率分布。
校准 (Calibration)
在做出最终决定之前,系统会应用 校准 。 这是一种去除偏差的统计技巧。无论上下文如何,有些单词本身就比其他单词更常见。系统通过将预测术语的概率除以其“先验”概率 (它通常出现的频率) 来进行调整。

最终预测
预测阶段的核心创新是 加权 Verbalizer 。 在传统方法中,Verbalizer 中的每个单词权重相等。在 SCIPROMPT 中,术语根据过滤阶段计算出的语义相似度得分 (\(w_l\)) 进行加权。
这意味着如果模型预测出 “cipher”,且 “cipher” 与 “Cryptography” 高度相关,它会将分类结果强烈推向该类别。
特定类别 \(y_i\) 的概率使用以下公式计算:

这里,\(v_{y_i}\) 代表标签术语嵌入,\(h_{mask}\) 是 [MASK] token 的隐藏状态,而 \(w_l\) 是语义权重。
SCIPROMPT-Soft: 基于向量的映射
作者还介绍了一个名为 SCIPROMPT-Soft 的变体。这种方法不是将离散的单词映射到类别,而是将所有检索到的标签术语聚合成类别的单个向量表示。它在训练期间优化这个向量,允许类别之间存在更“软”、更灵活的边界。
实验与结果
研究人员将 SCIPROMPT 与几个基线进行了对比测试,包括:
- Fine-tuning SciBERT: 标准 (非提示) 方法。
- Prompt-tuning (Manual): 仅使用类别名称作为 Verbalizer。
- KPT (Knowledgeable Prompt-tuning): 一种最先进的通用领域方法。
他们使用了三个主要的科学数据集: SDPRA 2021 (计算机科学论文) 、arXiv (53 个子类别) 和 S2ORC (19 个学科) 。
小样本 (Few-Shot) 性能
在“小样本”学习中,模型每个类别只看到 \(K\) 个示例 (\(K\) 为 1, 5, 10 等) 。
结果详见下方的表 1,显示 SCIPROMPT 始终优于基线。

表 1 的关键结论:
- 低资源优势: 在 1-shot 设置中 (模型每个类别只看一个示例) ,SCIPROMPT 平均击败标准 KPT 方法近 9%。在机器学习中这是一个巨大的差距。
- 稳定性: 随着样本数量增加 (5, 10, 20) ,SCIPROMPT 保持领先地位。
- Soft 与 Hard: “Soft”变体 (SCIPROMPT-Soft) 表现与主方法相当,在 SDPRA 数据集上表现出色,但在其他数据集上略有落后。
为了可视化这些方法的稳定性,作者分析了不同运行中的准确率分布。

图 2 强调了 SCIPROMPT 不仅平均准确率更高,而且波动更小。标准提示微调 (PT) 显示出很大的方差 (长箱体) ,这意味着它的好坏取决于你随机选择了哪些训练样本。SCIPROMPT 则非常稳健。
零样本 (Zero-Shot) 性能
如果我们完全不给模型任何训练示例呢?
研究人员将 SCIPROMPT 与大型语言模型 (LLMs) 进行了比较,如 Llama 2 (700 亿参数) 、ChatGPT 和 Llama 3。SCIPROMPT 使用的是 SciBERT,其体量要小得多 (数百万参数,而非数十亿) 。

令人惊讶的是,SCIPROMPT 在零样本设置下的 arXiv 和 S2ORC 数据集上优于 Llama 2 (70B)。虽然 Llama 3 最终凭借其巨大的体量和先进的训练反超,但一个专门的、知识增强的小模型能如此越级挑战,令人印象深刻。
新兴主题的挑战
科学发展迅速。新的领域不断涌现,而在模型预训练时这些领域可能还不存在。作者创建了一个名为 Emerging NLP 的数据集,专注于“提示工程 (Prompt Engineering) ”或“大型语言模型”等主题——这些是 SciBERT (多年前训练的) 原本不知道的术语。

图 3 显示了一场戏剧性的胜利。在新兴主题的零样本设置中,SCIPROMPT 优于标准提示微调超过 6%。这证明了 检索 组件的有效性: 模型从外部数据库中提取更新的知识,以此即时“学习”这些新主题的含义。
效率
最后,关于计算成本。运行 Llama 2 70B 需要庞大的 GPU 集群。SCIPROMPT 设计为轻量级。

如表 4 所示,这些方法的 GPU 效率很高。特别是 SCIPROMPT-Soft,与标准版本相比显著降低了内存使用量,因为它优化的是向量,而不是管理庞大的离散标签术语列表。
为什么这很重要
SCIPROMPT 论文展示了现代 AI 中的一个关键概念: 语境为王 (Context is King) 。
我们并不总是需要更大的模型 (伴随着巨大的环境和财务成本) 来解决难题。有时,我们只需要提供正确的语境。通过将科学分类不仅仅视为模式匹配任务,而是视为知识检索任务,研究人员使一个小模型能够理解复杂的、细粒度的和新兴的科学领域。
这种方法——将特定的外部知识 (Verbalizer) 与强大的预训练模型相结合——为自动化系统跟上科学发现的飞速步伐铺平了道路。无论是整理预印本服务器还是帮助研究人员查找相关的前期工作,知识增强提示都提供了一条更智能、更高效的前进道路。
](https://deep-paper.org/en/paper/2410.01946/images/cover.png)