模型:

allenai/specter2_classification

英文

适配器 allenai/specter2_classification 适用于 allenai/specter2 模型

这是一个针对 allenai/specter2 模型在 allenai/scirepeval 数据集上进行训练的适配器。

该适配器适用于 adapter-transformers 库。

使用方法

首先,安装 adapter-transformers:

pip install -U adapter-transformers

注意:adapter-transformers 是 transformers 的一个分支,可作为支持适配器的直接替代品。

现在,可以像这样加载和激活适配器:

from transformers import AutoAdapterModel

model = AutoAdapterModel.from_pretrained("allenai/specter2")
adapter_name = model.load_adapter("allenai/specter2_classification", source="hf", set_active=True)

许可证:Apache-2.0 数据集:

  • allenai/scirep
  • en

SPECTER 2.0

SPECTER 2.0 是 SPECTER 的后继版本,与 adapters 结合使用时,能够为科学任务生成特定任务的嵌入向量。通过标题和摘要组合的科学论文或短文本查询,该模型可以生成有效的嵌入向量,用于下游应用。

模型详细信息

模型描述

SPECTER 2.0 在超过 600 万个科学论文引用的三元组数据上进行了训练,这些数据可以通过 here 获得。之后,该模型使用任务格式特定的适配器在所有 SciRepEval 训练任务上进行了训练。

训练过的任务格式有:

  • 分类
  • 回归
  • 接近度
  • Adhoc 搜索

这是一个特定于分类的适配器,可生成可用作下游分类器(如 SVM)输入的嵌入向量。请注意,嵌入向量已经经过线性分类器的评估,与非线性分类器的性能可能不一致。

它基于 SciRepEval: A Multi-Format Benchmark for Scientific Document Representations 中的工作,并且我们也在该基准测试中评估了训练的模型。

  • 开发者:Amanpreet Singh,Mike D'Arcy,Arman Cohan,Doug Downey,Sergey Feldman
  • 分享者:Allen AI
  • 模型类型:bert-base-uncased + 适配器
  • 许可证:Apache 2.0
  • 从模型微调: allenai/scibert

模型来源

用途

直接使用

Model Name and HF link Description
Retrieval* 12318321 Encode papers as queries and candidates eg. Link Prediction, Nearest Neighbor Search
Adhoc Query 12319321 Encode short raw text queries for search tasks. (Candidate papers can be encoded with proximity)
Classification 12320321 Encode papers to feed into linear classifiers as features
Regression 12321321 Encode papers to feed into linear regressors as features

*检索模型对于上述未提及的下游任务类型应该足够。

from transformers import AutoTokenizer, AutoModel

# load model and tokenizer
tokenizer = AutoTokenizer.from_pretrained('allenai/specter2')

#load base model
model = AutoModel.from_pretrained('allenai/specter2')

#load the adapter(s) as per the required task, provide an identifier for the adapter in load_as argument and activate it
model.load_adapter("allenai/specter2_classification", source="hf", load_as="classification", set_active=True)

papers = [{'title': 'BERT', 'abstract': 'We introduce a new language representation model called BERT'},
          {'title': 'Attention is all you need', 'abstract': ' The dominant sequence transduction models are based on complex recurrent or convolutional neural networks'}]

# concatenate title and abstract
text_batch = [d['title'] + tokenizer.sep_token + (d.get('abstract') or '') for d in papers]
# preprocess the input
inputs = self.tokenizer(text_batch, padding=True, truncation=True,
                                   return_tensors="pt", return_token_type_ids=False, max_length=512)
output = model(**inputs)
# take the first token in the batch as the embedding
embeddings = output.last_hidden_state[:, 0, :]

下游使用

有关评估和下游使用,请参考 https://github.com/allenai/scirepeval/blob/main/evaluation/INFERENCE.md

训练详细信息

训练数据

基础模型的训练数据是论文之间的引用链接,适配器在四个格式的 8 个大规模任务上进行了训练。所有数据都是 SciRepEval 基准测试的一部分,可以通过 here 获得。

引用链接是这样的三元组:

{"query": {"title": ..., "abstract": ...}, "pos": {"title": ..., "abstract": ...}, "neg": {"title": ..., "abstract": ...}}

由查询论文、正向引用和负向引用组成,这些引用可以来自查询的同一/不同研究领域或引用的引用。

训练过程

请参考 SPECTER paper

训练超参数

模型使用 SciRepEval 进行两个阶段的训练:

  • 基础模型:首先,在上述引用三元组上训练基础模型。

批量大小=1024,最大输入长度=512,学习率=2e-5,epochs=2,热身阶段=10% fp16

  • 适配器:然后,在 SciRepEval 训练任务上对特定任务格式的适配器进行训练,从上述数据中随机抽取 60 万个三元组并将其添加到训练数据中。

批量大小=256,最大输入长度=512,学习率=1e-4,epochs=6,热身阶段=1000步 fp16

评估

我们在 SciRepEval 上评估模型,这是一个针对科学嵌入任务的大规模评估基准测试,其中包含 [SciDocs] 作为子集。我们还在 MDCR 上评估并建立了新的 SoTA,这是一个大规模引文推荐基准测试。

Model SciRepEval In-Train SciRepEval Out-of-Train SciRepEval Avg MDCR(MAP, Recall@5)
12328321 n/a n/a n/a (33.7, 28.5)
12329321 54.7 57.4 68.0 (30.6, 25.5)
12330321 55.6 57.8 69.0 (32.6, 27.3)
12331321 61.9 59.0 70.9 (35.3, 29.6)
12332321 62.3 59.2 71.2 (38.4, 33.0)

如果您使用 SPECTER 2.0,请引用以下作品:

SPECTER paper

@inproceedings{specter2020cohan,
  title={{SPECTER: Document-level Representation Learning using Citation-informed Transformers}},
  author={Arman Cohan and Sergey Feldman and Iz Beltagy and Doug Downey and Daniel S. Weld},
  booktitle={ACL},
  year={2020}
}

SciRepEval paper

@article{Singh2022SciRepEvalAM,
  title={SciRepEval: A Multi-Format Benchmark for Scientific Document Representations},
  author={Amanpreet Singh and Mike D'Arcy and Arman Cohan and Doug Downey and Sergey Feldman},
  journal={ArXiv},
  year={2022},
  volume={abs/2211.13308}
}