🚀 Longformer-base-4096在SQuAD v2上微调
本项目是将 Longformer-base-4096模型 在 SQuAD v2 数据集上进行微调,以用于**问答(Q&A)**下游任务。
✨ 主要特性
- 适用于长文档:Longformer 是一种用于处理长文档的Transformer模型。
longformer-base-4096
是一个类似BERT的模型,它基于RoBERTa的检查点,并在长文档上进行了掩码语言模型(MLM)预训练,支持长度达4096的序列。
- 独特的注意力机制:Longformer结合了滑动窗口(局部)注意力和全局注意力。全局注意力可根据任务进行用户配置,使模型能够学习特定任务的表示。
📦 安装指南
若要从 datasets 加载数据集,可按以下步骤操作:
!pip install datasets
from datasets import load_dataset
dataset = load_dataset('squad_v2')
💻 使用示例
基础用法
以下是使用该模型进行问答任务的示例代码:
import torch
from transformers import AutoTokenizer, AutoModelForQuestionAnswering
ckpt = "mrm8488/longformer-base-4096-finetuned-squadv2"
tokenizer = AutoTokenizer.from_pretrained(ckpt)
model = AutoModelForQuestionAnswering.from_pretrained(ckpt)
text = "Huggingface has democratized NLP. Huge thanks to Huggingface for this."
question = "What has Huggingface done ?"
encoding = tokenizer(question, text, return_tensors="pt")
input_ids = encoding["input_ids"]
attention_mask = encoding["attention_mask"]
start_scores, end_scores = model(input_ids, attention_mask=attention_mask)
all_tokens = tokenizer.convert_ids_to_tokens(input_ids[0].tolist())
answer_tokens = all_tokens[torch.argmax(start_scores) :torch.argmax(end_scores)+1]
answer = tokenizer.decode(tokenizer.convert_tokens_to_ids(answer_tokens))
高级用法
使用HF pipleine
进行问答任务:
from transformers import AutoTokenizer, AutoModelForQuestionAnswering, pipeline
ckpt = "mrm8488/longformer-base-4096-finetuned-squadv2"
tokenizer = AutoTokenizer.from_pretrained(ckpt)
model = AutoModelForQuestionAnswering.from_pretrained(ckpt)
qa = pipeline("question-answering", model=model, tokenizer=tokenizer)
text = "Huggingface has democratized NLP. Huge thanks to Huggingface for this."
question = "What has Huggingface done?"
qa({"question": question, "context": text})
如果在给定的上下文中询问不存在的内容,无答案的输出将是 <s>
。
📚 详细文档
数据集详情
- 数据集ID:
squad_v2
,来自 HuggingFace/Datasets
| 数据集 | 划分 | 样本数量 |
| ------ | ---- | -------- |
| squad_v2 | 训练集 | 130319 |
| squad_v2 | 验证集 | 11873 |
你可以在 Datasets Viewer 中查看更多关于此数据集及其他数据集的信息。
模型微调
训练脚本是 此脚本 的略微修改版本。
模型指标
任务类型 |
数据集 |
指标类型 |
指标值 |
指标名称 |
验证状态 |
问答 |
squad_v2 |
exact_match |
79.9242 |
Exact Match |
已验证 |
问答 |
squad_v2 |
f1 |
83.3467 |
F1 |
已验证 |
其他信息