首页 > 解决方案 > BERT 确定性 (iOS)

问题描述

我目前正在将https://developer.apple.com/machine-learning/models/#text上列出的 BERT 模型集成到 iOS 应用程序中,并且难以删除确定性较低的答案。

我使用了上面链接中的示例代码,但是因为我想根据大量文本来回答问题,所以我遍历了一组段落并预测每个段落的答案。但是,如果未找到答案,模型不会返回 nil 或“No Answer”,而是返回(看似)随机子字符串。我想我想问的是:是否有可能获得 BERT 响应的确定性以过滤掉不太可能的结果?还是有另一种方法让 BERT 只返回高于设定确定性阈值的结果?

标签: iosmachine-learningbert-language-model

解决方案


经过数小时的搜索,我现在找到了解决方案。具有讽刺意味的是,它只用了三行代码,但无论如何:

if bestSum < 7.5 {
    return nil
}

findBestLogitPair()在文件中的方法中实现了这一点,BERTOutput.swift如 Apple 使用 BERT 进行文本分析的示例代码中提供的那样。我现在发现 logit 这个词在统计学中确实意味着概率——但作为一名程序员,我不知道!


推荐阅读