gpt4 book ai didi

自然语言处理 : Get 5 best candidates from QuestionAnsweringPipeline

转载 作者:行者123 更新时间:2023-12-05 05:01:47 27 4
gpt4 key购买 nike

我正在使用 huggingface transformers 库开发法语问答模型。我使用的是预训练的 CamemBERT 模型,它与 RoBERTa 非常相似,但适用于法语。

目前,我能够使用 transformers 库中的 QuestionAnsweringPipeline 为我自己的文本问题获得最佳候选答案。

这是我的代码的摘录。

QA_model = "illuin/camembert-large-fquad"
CamTokQA = CamembertTokenizer.from_pretrained(QA_model)
CamQA = CamembertForQuestionAnswering.from_pretrained(QA_model)

device_pipeline = 0 if torch.cuda.is_available() else -1
q_a_pipeline = QuestionAnsweringPipeline(model=CamQA,
tokenizer=CamTokQA,
device=device_pipeline)

ctx = open("text/Sample.txt", "r").read()
question = 'Quel est la taille de la personne ?'
res = q_a_pipeline({'question': question, 'context': ctx})
print(res)

我目前得到这个:{'score': 0.9630325870663725, 'start': 2421, 'end': 2424, 'answer': '{21'} ,这是错误的。

因此,我想获得 5 个最佳候选答案。有谁知道如何做到这一点?

最佳答案

调用管道时,您可以通过topk 参数指定结果数。例如,对于五个最可能的答案:

res = q_a_pipeline({'question': question, 'context': ctx}, topk=5)

这将生成字典列表:[{'score': 0.0013586128421753108, 'start': 885, 'end': 896, 'answer': "L'ingénieur"}, {'score' : 0.0011120906285982946, 'start': 200, 'end': 209, 'answer': 'français.'}, {'score': 0.00010808186718235663, 'start': 164, 'end': 209, 'answer': 'ingénieur hydraulien et essayiste français.'}, {'score': 5.0453970530228015e-05, 'start': 153, 'end': 209, 'answer': 'urbaniste, ingénieur hydraulien et essayiste français.'}, {'score' : 4.455333667193265e-05, 'start': 190, 'end': 209, 'answer': 'essayiste français.'}]

当您查看 code ,您可以看到 QuestionAnsweringPipeline 接受一个名为 topk 的参数。

关于自然语言处理 : Get 5 best candidates from QuestionAnsweringPipeline,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62591068/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com