如何配置RASA实现总和不为100%的不归一化意图排序?
RASA非归一化意图得分配置方案
要实现意图得分不归一化、总和不为100%、单个得分取值范围0~100%的效果,核心是替换默认的多分类交叉熵损失(带Softmax激活,会强制所有意图得分总和为1),改为二元交叉熵损失(带Sigmoid激活,每个意图独立计算置信度)。
完整config.yml配置示例
适用于RASA 3.x及以上版本:
recipe: default.v1 language: zh pipeline: - name: WhitespaceTokenizer - name: LexicalSyntacticFeaturizer - name: CountVectorsFeaturizer - name: CountVectorsFeaturizer analyzer: char_wb min_ngram: 1 max_ngram: 4 - name: DIETClassifier epochs: 100 # 核心配置:使用二元交叉熵损失,每个意图独立预测 intent_classification_loss: bce_with_logits # 关闭全局置信度归一化 normalize_confidences: none policies: - name: MemoizationPolicy - name: TEDPolicy epochs: 100 - name: RulePolicy
效果说明
- 单个意图输出得分范围为01,直接乘以100即可得到0100%的百分比形式
- 所有意图得分总和不为1,无全局归一化逻辑
- 意图排序按照各意图独立置信度从高到低排列,符合常规业务使用需求
内容的提问来源于stack exchange,提问作者Iwona Anna
相关产品推荐
相关产品推荐

