Python 如何解释fairseq生成的P数?
使用fairseq-generate.py和transformer体系结构,每次转换都会生成如下部分:Python 如何解释fairseq生成的P数?,python,pytorch,transformer,Python,Pytorch,Transformer,使用fairseq-generate.py和transformer体系结构,每次转换都会生成如下部分: Why is it rare to discover new marine mammal species? S-0 Why is it rare to discover new marine mam@@ mal species ? H-0 -0.0643349438905716 Pourquoi est-il rare de découvrir de nouvelles
Why is it rare to discover new marine mammal species?
S-0 Why is it rare to discover new marine mam@@ mal species ?
H-0 -0.0643349438905716 Pourquoi est-il rare de découvrir de nouvelles espèces de mammifères marins?
P-0 -0.0763 -0.1849 -0.0956 -0.0946 -0.0735 -0.1150 -0.1301 -0.0042 -0.0321 -0.0171 -0.0052 -0.0062 -0.0015
与:
H是假设和平均对数似然;P是每个标记位置的位置分数,包括句末标记
我想知道,如果说p行中的一个低(绝对)数字意味着对这个特定单词的信心更高,这是否合理?例如,“Pourquoi”的-0.07是否意味着它比“est il”的-0.1849更快乐?最后的低-0.0015意味着它确信判决应该在这里结束
背景:我想弄清楚的是,我是否可以使用H数,或者以某种方式使用单个的p数,来获得其翻译的置信度。我一直在根据H数分析一些翻译,并没有注意到它和我对翻译质量的主观看法之间有多少对应关系。但我有一对夫妇,我认为它特别差-它错过了一些关键信息-最终的P值相对较高-0.6099
和-0.3091
(最终的P值是-0.11
,大多数都是如此。)
问:我想知道说p行中的一个低(绝对)数字意味着对这个词有更高的信心是否合理
- 对。正如文档所说,“P是每个标记位置的位置分数”。分数实际上是对数概率,因此越高(即绝对数越低)越“自信”。源代码可能不那么容易理解,但是分数是由生成的,在那里您可以看到分数是标准化的(如果使用a或a,则包括
)。此外,在打印分数时,他们:log
print('P-{}\t{}'。格式( 样本编号:, ''加入(地图)( lambda x:'{.4f}'。格式(x), #从基数e转换为基数2 hypo['positional_scores'].div_(math.log(2)).tolist(), ))
- 结果表明,H值只是p值的平均值,如您所见:
此外,您可以在示例中检查:score\u i=avg\u probs\u i.sum()/tgt\u len
另一个常用于评估语言模型性能的度量是。一件好事是,可以根据p值轻松计算复杂度,如fairseq存储库的中所示:将numpy导入为np 印刷品(np.平均值([-0.0763,-0.1849,-0.0956,-0.0946,-0.0735,-0.1150,-0.1301,-0.0042,-0.0321,-0.0171,-0.0052,-0.0062,-0.0015])) # >>> -0.06433076923076922
我不是NLP方面的专家,所以我真的不能告诉你在你的案例中应该使用哪一个#计算序列的复杂度 en_lm.score(‘巴拉克·奥巴马即将来到悉尼和新西兰’)[‘位置得分’].mean().neg().exp() #张量(15.1474)