标签:
- 问答系统
- BERT
许可证: Apache-2.0
数据集:
- SQuAD
语言:
- 英语
模型索引:
- 名称: dynamic-tinybert
结果:
- 任务:
类型: 问答系统
名称: 问答系统
指标:
模型详情:Dynamic-TinyBERT:通过动态序列长度提升TinyBERT的推理效率
Dynamic-TinyBERT已针对问答这一自然语言处理任务进行了微调,训练数据为SQuAD 1.1数据集。Guskin等人(2021)指出:
Dynamic-TinyBERT是一种TinyBERT模型,通过序列长度缩减和超参数优化,可在任何计算预算下提升推理效率。Dynamic-TinyBERT仅需训练一次,其性能与BERT相当,且在准确性与加速比之间的权衡优于其他任何高效方法(最高可达3.3倍加速,准确率损失小于1%)。
模型详情 |
描述 |
模型作者 - 公司 |
英特尔 |
模型卡作者 |
英特尔与Hugging Face合作 |
日期 |
2021年11月22日 |
版本 |
1 |
类型 |
自然语言处理 - 问答系统 |
架构 |
"我们的Dynamic-TinyBERT模型采用TinyBERT6L架构:一个小型BERT模型,包含6层,隐藏层大小为768,前馈网络大小为3072,12个头。" Guskin等人(2021) |
论文或其他资源 |
论文; 海报; GitHub仓库 |
许可证 |
Apache 2.0 |
问题或评论 |
社区讨论区 和 英特尔开发者Discord |
预期用途 |
描述 |
主要预期用途 |
可用于问答任务:给定一段文本,可以询问关于该文本的问题,模型将在文本中找到答案。 |
主要目标用户 |
任何进行问答任务的人员 |
超出范围用途 |
该模型不应被用于故意制造敌对或疏远他人的环境。 |
使用方法
以下是导入该模型的Python代码示例:
点击展开
import torch
from transformers import AutoTokenizer, AutoModelForQuestionAnswering
tokenizer = AutoTokenizer.from_pretrained("Intel/dynamic_tinybert")
model = AutoModelForQuestionAnswering.from_pretrained("Intel/dynamic_tinybert")
context = "记住数字123456,我稍后会问你。"
question = "我告诉你的数字是多少?"
tokens = tokenizer.encode_plus(question, context, return_tensors="pt", truncation=True)
input_ids = tokens["input_ids"]
attention_mask = tokens["attention_mask"]
outputs = model(input_ids, attention_mask=attention_mask)
start_scores = outputs.start_logits
end_scores = outputs.end_logits
answer_start = torch.argmax(start_scores)
answer_end = torch.argmax(end_scores) + 1
answer = tokenizer.convert_tokens_to_string(tokenizer.convert_ids_to_tokens(input_ids[0][answer_start:answer_end]))
print("答案:", answer)
影响因素 |
描述 |
群体 |
训练数据包含许多带有问答标签的维基百科文章 |
工具 |
- |
环境 |
训练在Titan GPU上完成。 |
卡片提示 |
在不同硬件和软件上部署模型会影响模型性能 |
指标 |
描述 |
模型性能指标 |
F1值 |
决策阈值 |
- |
不确定性和变异性处理方法 |
- |
训练与评估数据 |
描述 |
数据集 |
SQuAD1.1:"斯坦福问答数据集(SQuAD)是一个阅读理解数据集,由众包工作者在维基百科文章上提出的问题组成,每个问题的答案是对应阅读段落中的一段文本,或称为跨度,或者问题可能无法回答。" (https://huggingface.co/datasets/squad) |
动机 |
构建一个高效且准确的问答任务模型。 |
预处理 |
"我们从预训练的通用TinyBERT学生模型开始,该模型通过TinyBERT提出的通用蒸馏方法学习了BERT的通用知识。我们按照原始TinyBERT的训练步骤,从微调的BERT教师模型向学生模型进行Transformer蒸馏:(1) 中间层蒸馏(ID)——学习隐藏状态和注意力矩阵中的知识,(2) 预测层蒸馏(PD)——拟合教师的预测。" (Guskin等人, 2021) |
模型性能分析:
模型 |
最大F1值(完整模型) |
在BERT-1%内的最佳加速比 |
Dynamic-TinyBERT |
88.71 |
3.3倍 |
伦理考量 |
描述 |
数据 |
训练数据来自维基百科文章 |
人类生活 |
该模型不用于影响人类生活或繁荣的核心决策。它是一个带有标签的维基百科文章的聚合集。 |
缓解措施 |
模型开发过程中未考虑额外的风险缓解策略。 |
风险与危害 |
已有大量研究探讨了语言模型的偏见和公平性问题(参见,例如,Sheng等人, 2021和Bender等人, 2021)。模型生成的预测可能包含针对受保护类别、身份特征以及敏感、社会和职业群体的令人不安和有害的刻板印象。除此之外,使用该模型所涉及的风险程度尚不明确。 |
使用场景 |
- |
注意事项与建议 |
用户(包括直接用户和下游用户)应了解模型的风险、偏见和局限性。该模型无其他注意事项或建议。 |
BibTeX条目及引用信息
@misc{https://doi.org/10.48550/arxiv.2111.09645,
doi = {10.48550/ARXIV.2111.09645},
url = {https://arxiv.org/abs/2111.09645},
author = {Guskin, Shira and Wasserblat, Moshe and Ding, Ke and Kim, Gyuwan},
keywords = {计算与语言(cs.CL),机器学习(cs.LG),FOS: 计算机与信息科学,FOS: 计算机与信息科学},
title = {Dynamic-TinyBERT:通过动态序列长度提升TinyBERT的推理效率},
publisher = {arXiv},
year = {2021},