模型:
cmarkea/distilcamembert-base-qa
我们介绍DistilCamemBERT-QA,该模型是针对法语问答任务进行微调的。该模型使用了两个数据集,FQuAD v1.0和Piaf,包含了上下文、问题和其在上下文中的答案。
这种模型化与基于 CamemBERT 的模型相似。基于CamemBERT的模型化存在一个问题,在生产阶段,尤其是在跨编码任务中,推理成本可能成为技术问题。为了抵消这种影响,我们提出了这种模型化方法,通过DistilCamemBERT将推理时间缩短了一半,消耗同样的计算资源。
数据集包括FQuAD v1.0和Piaf,其中训练集有24,566个问题和答案,评估集有3,188个问题和答案。
我们将 DistilCamemBERT-QA 与另外两个针对法语的模型进行了比较。第一个模型 etalab-ia/camembert-base-squadFR-fquad-piaf 基于 CamemBERT ,即法语RoBERTa模型;第二个模型 fmikaelian/flaubert-base-uncased-squad 则基于 FlauBERT ,另一个基于BERT架构的法语模型。
对于我们的基准测试,我们对预测的答案和真实答案进行逐字比较。我们还使用f1-score来衡量预测答案与真实答案之间的交集质量。最后,我们使用包含度分数来衡量预测答案中是否包含真实答案。平均推理时间使用了一台AMD Ryzen 5 4500U @ 2.3GHz,拥有6个核心。
model | time (ms) | exact match (%) | f1-score (%) | inclusion-score (%) |
---|---|---|---|---|
12311321 | 216.96 | 25.66 | 62.65 | 59.82 |
12312321 | 432.17 | 59.76 | 79.57 | 69.23 |
12313321 | 875.84 | 0.22 | 5.21 | 3.68 |
请不要考虑FlauBERT模型的结果。模型化似乎存在问题,因为结果似乎非常低。
from transformers import pipeline qa_engine = pipeline( "question-answering", model="cmarkea/distilcamembert-base-qa", tokenizer="cmarkea/distilcamembert-base-qa" ) result = qa_engine( context="David Fincher, né le 28 août 1962 à Denver (Colorado), " "est un réalisateur et producteur américain. Il est principalement " "connu pour avoir réalisé les films Seven, Fight Club, L'Étrange " "Histoire de Benjamin Button, The Social Network et Gone Girl qui " "lui ont valu diverses récompenses et nominations aux Oscars du " "cinéma ou aux Golden Globes. Réputé pour son perfectionnisme, il " "peut tourner un très grand nombre de prises de ses plans et " "séquences afin d'obtenir le rendu visuel qu'il désire. Il a " "également développé et produit les séries télévisées House of " "Cards (pour laquelle il remporte l'Emmy Award de la meilleure " "réalisation pour une série dramatique en 2013) et Mindhunter, " "diffusées sur Netflix.", question="Quel est le métier de David Fincher ?" ) result {'score': 0.7981914281845093, 'start': 61, 'end': 98, 'answer': ' réalisateur et producteur américain.'}
from optimum.onnxruntime import ORTModelForQuestionAnswering from transformers import AutoTokenizer, pipeline HUB_MODEL = "cmarkea/distilcamembert-base-qa" tokenizer = AutoTokenizer.from_pretrained(HUB_MODEL) model = ORTModelForQuestionAnswering.from_pretrained(HUB_MODEL) onnx_qa = pipeline("question-answering", model=model, tokenizer=tokenizer) # Quantized onnx model quantized_model = ORTModelForQuestionAnswering.from_pretrained( HUB_MODEL, file_name="model_quantized.onnx" )
@inproceedings{delestre:hal-03674695, TITLE = {{DistilCamemBERT : une distillation du mod{\`e}le fran{\c c}ais CamemBERT}}, AUTHOR = {Delestre, Cyrile and Amar, Abibatou}, URL = {https://hal.archives-ouvertes.fr/hal-03674695}, BOOKTITLE = {{CAp (Conf{\'e}rence sur l'Apprentissage automatique)}}, ADDRESS = {Vannes, France}, YEAR = {2022}, MONTH = Jul, KEYWORDS = {NLP ; Transformers ; CamemBERT ; Distillation}, PDF = {https://hal.archives-ouvertes.fr/hal-03674695/file/cap2022.pdf}, HAL_ID = {hal-03674695}, HAL_VERSION = {v1}, }