使用 Python SDK 进行度量值计算

PythonSDK 是一个Python库,可用于绑定机器学习引擎、配置日志数据库以及选择和监控部署。

您可以使用 Python SDK 在笔记本运行时环境中计算度量和算法,或者作为 Spark 作业卸载到 IBM Analytics Engine 中进行模型评估。

您还可以使用样本笔记本计算 公平性指标,并生成 可解释性

传统机器学习模型评估指标

和Python SDK 版本3.0.14或更高版本,您可以计算以下公平性指标和解释算法:

FairScore 变压器

您可以使用 FairScore 变换器作为后处理偏差缓解方法。 此方法转换概率估计或概率二元分类模型中有关公平性目标的评分。 要在 Watson OpenScale中使用 FairScore Transformer ,必须训练一般分数变换器。

个人公平性后处理程序

个体公平后处理器是一种后处理变换器算法,用于变换个体分数以实现个体公平。 您可以将其与 Python SDK 配合使用,以支持多类文本分类。 必须先训练此算法,然后才能将其用于变换模型输出。

输入缩减

您可以使用输入降维算法来计算为使模型预测保持一致而必须指定的最小特征集。 该算法会排除不影响模型预测的特征。

似然补偿

似然补偿 (LC) 是一个框架,用于解释黑匣模型预测与参考真理的偏差。 通过测试数据和黑匣子模型的预测功能, LC 可以识别测试数据中的异常,并解释导致样本成为异常的原因。 LC 解释以增量提供,当添加到原始测试数据或异常时,会将模型的预测收敛到参考标准。 LC 提供局部解释,并且仅支持回归模型。

本地可解释模型-不可知解释 (LIME)

LIME 通过分析多达 5000 个其他近距离数据点,确定哪些特征对特定数据点最重要。 在理想情况下,LIME 中重要性高的特征是对特定数据点最重要的特征。

平均个体差异

您可以使用平均个体差异来验证模型是否为相似样本生成相似的预测或评分。 此度量值计算相似样本的多类分类模型的概率估计差异。

多维子集扫描

您可以使用多维子集扫描算法作为常规偏差扫描方法。 此方法检测并识别哪些特征子组具有概率二元分类器的统计显着预测偏差。 此算法可帮助您确定哪些功能部件是受保护属性,哪些功能部件的值是监视器评估的特权组。

业绩计量

您可以使用以下性能度量指标,通过使用参考标准数据和来自样本数据的模型预测计算的混淆矩阵来评估模型:

  • 平均赔率差
  • 平均绝对赔率差
  • 误差率差异
  • 错误率比率
  • false_Negtive_rate_difference
  • false_Negtive_rate_ratio
  • 假阳性率差异
  • 假阳性率比值
  • 假发现率差异
  • 假发现率比
  • 假阴性率差异
  • 假阴性率比率

受保护属性抽取

受保护属性抽取算法将文本数据集转换为结构化数据集。 该算法会对文本数据进行记号化,将数据与您指定的模式进行比较,并从文本中抽取受保护属性以创建结构化数据。 您可以使用此结构化数据通过 Watson OpenScale 偏差检测算法针对受保护属性检测偏差。 受保护属性抽取算法仅支持将性别作为受保护属性。

受保护属性扰动

受保护属性扰动算法通过识别文本数据集中的受保护属性模式来生成反事实语句。 它还会对文本进行记号化,并扰动文本数据中的关键字以生成语句。 您可以使用原始数据集和扰动数据集,通过 Watson OpenScale 偏差检测算法针对保护属性检测偏差。 受保护属性扰动算法仅支持将性别作为受保护属性。

Protodash 解释器

原型解释器标识来自需要解释的参考集中的输入数据。 此方法使参考数据点与从训练数据中选择的多个实例之间的最大平均差异 (MMD) 最小化。 为了帮助您更好地了解模型预测,训练数据实例模拟了与参考数据点相似的分布。

Shapley 添加剂解释器 (SHAP)

SHAP 是一种博弈论方法,用于解释机器学习模型的输出。 它通过使用 Shapley 值及其相关扩展将最优信用分配与本地解释连接起来。

SHAP 为每个模型特征分配一个特定预测的重要性值,称为 Shapley 值。 莎普利值是特征值在所有可能的特征组中的平均边际贡献。 输入特征的 SHAP 值是基线或预期模型输出与正在说明的预测的当前模型输出之间的差值总和。 基线模型输出可以基于训练数据的摘要或必须为其生成说明的任何数据子集。

可以组合一组事务的 Shapley 值以获取全局解释,这些解释提供了模型的哪些特征最重要的概述。

平滑经验微分 (SED)

SED 是可用于描述模型预测的公平性的公平性指标。 SED 量化了按特征划分的交叉组之间有利和不利结果概率的差值。 所有相交的群体都是平等的,因此不存在无特权或特权群体。 此计算生成的 SED 值是数据集中交叉组之间有利和不利结果的 Dirichlet 平滑概率的最小比率。 该值在 0-1 范围内 (不包括 0 和 1) ,较大的值指定更好的结果。

统计平价差异

统计奇偶性差异是可用于描述模型预测的公平性的公平性度量。 它是在无特权群体和特权群体中有利结果的比率之间的差异。 可以根据输入数据集或来自分类器或预测数据集的数据集输出来计算此度量。 值 0 表示这两个组都将获得同等权益。 小于 0 的值意味着特权组的收益更高。 大于 0 的值意味着对非特权组的收益更高。

提示模板评估指标

和Watson OpenScalePython SDK 版本3.0.39或更高版本,您还可以计算提示模板评估的以下指标:

内容分析

您可以使用以下内容分析度量值来根据模型输入或上下文评估基础模型输出:

覆盖范围

覆盖范围通过计算也在输入中的输出文本的百分比来度量从模型输入生成基础模型输出的程度。

  • 任务类型:
    • 文本摘要
    • 检索扩充生成 (RAG)
  • 阈值:
    • 下限: 0
    • 上限: 1
  • 工作方式: 分数越高表示输出词在输入文本中所占的百分比越高。
密度

密度通过计算与原始文本逐字记录提取极为相似的提取片段的平均值,来测量如何从模型输入中提取基础模型输出中的摘要。

  • 任务类型:
    • 文本摘要
    • 检索扩充生成 (RAG)
  • 阈值: 下限: 0
  • 工作方式: 分数越低表示模型输出越抽象,平均而言,抽取片段与原始文本的逐字抽取不太相似。
压缩

与输入文本相比,压缩度量摘要的时间更短。 它计算原始文本中的字数与基础模型输出中的字数之间的比率。

  • 任务类型: 文本摘要
  • 阈值: 下限: 0
  • 工作方式: 分数越高表示与原始文本相比,摘要越简明。
重复性

重复性通过计算重复 n-gram 的数量和模型输出中 n-gram 的总数来度量在基础模型输出中重复的 n-gram 的百分比。

  • 任务类型: 文本摘要
  • 阈值: 下限: 0
抽象度

抽象度测量生成的文本输出中未出现在基础模型的源内容中的 n-gram 的比率。

  • 任务类型:
    • 文本摘要
    • 检索扩充生成 (RAG)
  • 阈值:
    • 下限: 0
    • 上限: 1
  • 工作方式: 较高的分数表示生成的文本输出具有很高的抽象度。

关键字包含

关键字包含度量基础模型输出与参考或参考标准之间的名词和代词的相似性。 它通过在模型输出和参考标准中使用关键字来计算精度,重新调用和 f1 得分。

  • 任务类型:
    • 文本摘要
    • 问题回答
    • 检索扩充生成 (RAG)

问题鲁棒性

问题鲁棒性检测模型输入问题中的英语拼写错误。 它计算发送到模型的不正确问题的百分比。 您可以指定要从计算中排除的可能与英语拼写约定不匹配的关键字列表,以生成更准确的结果。

  • 任务类型:
    • 问题回答
    • 检索扩充生成 (RAG)

对抗式稳健性

对抗鲁棒性衡量模型和提示模板对提示注入和越狱等对抗性攻击的鲁棒性。 它计算模型拒绝对不同类别的越狱和即时注入攻击的攻击媒介提供响应的次数。 然后,将该总和除以每个类别的攻击向量数量,以计算出稳健性分数。 有关详细信息,请参阅 使用 IBM watsonx.governance 计算对抗稳健性和提示泄漏风险。

  • 任务类型:
    • 分类
    • 汇总
    • 代次
    • 问题回答
    • 实体抽取
    • 检索增强生成 (RAG)
  • 阈值:
    • 下限: 0
    • 上限: 1
  • 怎么运行的:分数越高,表明提示模板越强大,越不容易受到对抗性攻击。 为了计算该指标,评估使用了一个关键词检测器,其中包括一个短语列表,表示模型拒绝对攻击做出响应。 将模型响应与短语列表进行比较,以计算度量得分。 这些分数代表实际模型稳健性的下限。 如果模型没有明确拒绝对攻击作出回应,则得分表明提示模板不健全。
  • 攻击类别
    • 基本型:基本型攻击使用直接提示,为未接受过防范任何攻击训练的模型生成不需要的响应。
    • 中级攻击中级攻击使用自然语言对基础模型进行预设,使其遵循指令。
    • 高级:高级攻击需要了解模型编码或访问内部资源。

及时泄漏风险

提示泄漏风险通过计算泄漏的提示模板与原始提示模板之间的相似度来衡量提示模板泄漏的风险。 该指标根据一组预定义的攻击向量计算出相似度得分的加权平均值。 加权平均值以 1 到 4 之间的等级值计算,其中等级 4 代表攻击者最容易利用的提示攻击向量。 有关详细信息,请参阅 使用 IBM watsonx.governance 计算对抗稳健性和提示泄漏风险。

  • 任务类型:
    • 分类
    • 汇总
    • 代次
    • 问题回答
    • 实体抽取
    • 检索增强生成 (RAG)
  • 阈值:
    • 下限: 0
    • 上限: 1
  • 工作原理:值为 0 表示提示模板对泄漏攻击具有很强的抵御能力。 值为 1 表示提示模板容易受到提示信息泄露攻击。 如果得分接近 1,则可以尝试采取可能的措施来减少攻击,例如加入额外的提示指令或使用运行时检测器。

检索质量

您可以使用检索质量指标来衡量检索系统如何排列相关上下文的质量。 检索质量指标是通过微调模型或 LLM 即判断模型计算得出的。 LLM 即评判模型是您可以用来评估其他模型性能的 LLM 模型。

要使用 LLM 即评判模型计算指标,必须创建一个调用模型的评分函数。 有关详细信息,请参阅使用 IBM watsonx.governance for RAG 任务计算答案质量和检索质量指标笔记本。

您可以计算以下检索质量指标:

上下文相关性

上下文相关性衡量您的模型检索到的上下文与提示中指定的问题的相关程度。 当存在多个上下文变量时,仅在使用微调模型计算指标时生成上下文相关性得分。

  • 任务类型:检索增强生成 (RAG)
  • 阈值:
    • 下限: 0
    • 上限: 1
  • 怎么运行的:分数越高表示上下文与提示中的问题越相关。
检索精度

检索精确度衡量的是检索出的全部上下文中相关上下文的数量。

  • 任务类型:检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示检索到的所有上下文都是相关的。 数值为 0 表示检索到的上下文都不相关。 如果得分呈上升趋势,则说明检索到的上下文与问题相关。 如果得分呈下降趋势,则说明检索到的上下文与问题无关。
平均精度

平均精确度通过计算相关上下文精确度得分的平均值来评估所有相关上下文的排名是否靠前。

  • 任务类型:检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示所有相关上下文的排名都靠前。 数值为 0 表示检索到的上下文都不相关。 如果得分呈上升趋势,则相关上下文的排名就会靠前。 如果得分呈下降趋势,则相关背景的排名不会降低。
倒数排名

互易等级是第一个相关上下文的互易等级。

  • 任务类型:检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示第一个相关上下文位于第一个位置。 值为 0 表示没有检索到任何相关上下文。 如果得分呈上升趋势,第一个相关上下文的排名就会靠前。 如果得分呈下降趋势,则第一个相关上下文的排名会靠后。
命中率

命中率衡量检索到的上下文中是否至少有一个相关上下文。

  • 任务类型:检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示至少有一个相关上下文。 值为 0 表示检索到的上下文中没有相关上下文。 如果得分呈上升趋势,说明检索到的上下文中至少有一个相关上下文。 如果得分呈下降趋势,则不检索相关上下文。
正常化贴现累计收益

归一化折现累积增益 (NDCG) 衡量检索语境的排序质量。

  • 任务类型:检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示检索到的上下文按正确顺序排列。 如果得分呈上升趋势,则说明检索到的上下文的排序是正确的。 如果得分呈下降趋势,则说明检索到的上下文的排序不正确。

回答质量

您可以使用答案质量指标来评估模型答案的质量。 答案质量指标是通过微调模型或 LLM 即判断模型计算得出的。 LLM 即评判模型是您可以用来评估其他模型性能的 LLM 模型。

要使用 LLM 即评判模型计算指标,必须创建一个调用模型的评分函数。 有关详细信息,请参阅使用 IBM watsonx.governance for RAG 任务计算答案质量和检索质量指标笔记本。

您可以计算以下答案质量指标:

忠实度

忠诚度衡量模型输出在模型环境中的扎实程度,并提供来自环境的归因来显示对模型输出有贡献的最重要的句子。 仅在使用微调模型计算度量时才提供归因。

  • 任务类型:检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 怎么运行的:分数越高,表示输出越扎实,幻觉越少。
回答相关性

答案相关性衡量模型输出中的答案与模型输入中的问题的相关程度。

  • 任务类型:检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 怎么运行的:分数越高表明模型对问题提供的答案越相关。
答案 相似性

答案相似度衡量答案或生成的文本与基本事实或参考答案的相似程度,以确定模型性能的质量。 答案相似度指标仅支持与 LLM 即判断模型进行配置。

  • 任务类型:检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 怎么运行的:分数越高表示答案与参考输出越相似。
不成功的请求数

未成功请求衡量的是未成功回答的问题占问题总数的比例。 微调模型或 LLM 即判模型不计算不成功请求指标。

  • 任务类型:
    • 检索扩充生成 (RAG)
    • 问题回答
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:分数越高,说明模型无法提供问题的答案。

内容验证

内容验证指标使用基于字符串的函数来分析和验证生成的 LLM 输出文本。 输入必须包含从 LLM 生成的文本列表,以便生成内容验证指标。

如果输入不包含交易记录,指标会测量成功内容验证的比例,并将该比例与验证总数进行比较。 如果输入包含交易记录,指标会测量成功内容验证与验证总数的比率,并计算指定 record_id 的验证结果。

您可以计算以下内容验证指标:

长度小于

长度小于指标衡量预测中每一行的长度是否小于指定的最大值。

  • 任务类型:
    • 汇总
    • 代次
    • 问题回答
    • 实体抽取
    • 检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示预测中的行长度小于指定值。 值为 0 表示行长度不小于指定值。
长度大于

长度大于指标衡量预测中每一行的长度是否大于指定的最大值。

  • 任务类型:
    • 汇总
    • 代次
    • 问题回答
    • 实体抽取
    • 检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示预测中的行长度大于指定值。 值为 0 表示行长度不大于指定值。
包含电子邮件

包含电子邮件指标衡量预测中的每一行是否包含电子邮件。

  • 任务类型:
    • 汇总
    • 代次
    • 问题回答
    • 实体抽取
    • 检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示行中包含电子邮件。 值为 0 表示行中不包含电子邮件。
是电子邮件

电子邮件指标衡量预测中的行是否包含有效的电子邮件。

  • 任务类型:
    • 汇总
    • 代次
    • 问题回答
    • 实体抽取
    • 检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示行中包含有效的电子邮件。 值为 0 表示行中不包含有效的电子邮件。
包含JSON

contains_JSON 指标用于衡量预测中的行是否包含 JSON 语法。

  • 任务类型:
    • 汇总
    • 代次
    • 问题回答
    • 实体抽取
    • 检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示行包含 JSON 语法。 值为 0 表示行中不包含 JSON 语法。
是 JSON

is JSON 指标衡量预测中的行是否包含有效的 JSON 语法。

  • 任务类型:
    • 汇总
    • 代次
    • 问题回答
    • 实体抽取
    • 检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示行包含有效的 JSON 语法。 值为 0 表示行中不包含有效的 JSON 语法。
包含链接

包含链接度量指标衡量预测中的行是否包含任何链接。

  • 任务类型:
    • 汇总
    • 代次
    • 问题回答
    • 实体抽取
    • 检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示预测中的行包含链接。 值为 0 表示预测中的行不包含链接。
无无效链接

无无效链接度量指标衡量预测中的行是否没有无效链接。

  • 任务类型:
    • 汇总
    • 代次
    • 问题回答
    • 实体抽取
    • 检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示行中没有无效链接。 值为 0 表示预测中的行确实存在无效链接。
包含有效链接

包含有效链接指标衡量预测中的行是否包含有效链接。

  • 任务类型:
    • 汇总
    • 代次
    • 问题回答
    • 实体抽取
    • 检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示行中包含有效链接。 值为 0 表示行中不包含有效链接。
开头为

starts with 指标衡量预测中的行是否以指定子字符串开始。

  • 任务类型:
    • 汇总
    • 代次
    • 问题回答
    • 实体抽取
    • 检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示行以指定子字符串开始。 值为 0 表示行不以指定子字符串开始。
结尾为

ends with 指标衡量预测中的行是否以指定子串结束。

  • 任务类型:
    • 汇总
    • 代次
    • 问题回答
    • 实体抽取
    • 检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示行以指定子字符串结束。 值为 0 表示行不以指定子字符串结束。
等于

equals to 指标用于衡量预测中的行是否等于指定的子字符串。

  • 任务类型:
    • 汇总
    • 代次
    • 问题回答
    • 实体抽取
    • 检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示该行等于指定的子字符串。 值为 0 表示该行不等于指定的子字符串。
包含全部

包含所有指标衡量预测中的行是否包含所有指定的关键字。

  • 任务类型:
    • 汇总
    • 代次
    • 问题回答
    • 实体抽取
    • 检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示在行中找到了所有指定的关键字。 值为 0 表示在行中未找到指定的关键字。
不包含任何内容

不包含指标衡量预测中的行是否不包含任何指定的关键字。

  • 任务类型:
    • 汇总
    • 代次
    • 问题回答
    • 实体抽取
    • 检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示行中不包含任何指定的关键字。 值为 0 表示行中包含指定的关键字。
包含任一项

包含任意指标衡量预测中的行是否包含任何指定的关键字。

  • 任务类型:
    • 汇总
    • 代次
    • 问题回答
    • 实体抽取
    • 检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示行中包含任何指定的关键字。 值为 0 表示行中不包含任何指定的关键字。
正则表达式

regex 指标衡量预测中的行是否包含指定的 regex 表达式。

  • 任务类型:
    • 汇总
    • 代次
    • 问题回答
    • 实体抽取
    • 检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示行中包含指定的 regex 表达式。 值为 0 表示行中不包含指定的 regex 表达式。
包含字符串

包含字符串指标衡量预测中的每一行是否包含指定字符串。

  • 任务类型:
    • 汇总
    • 代次
    • 问题回答
    • 实体抽取
    • 检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示行中包含指定字符串。 值为 0 表示行中不包含指定的字符串。
模糊匹配

模糊匹配度量衡量预测是否与关键词模糊匹配。

  • 任务类型:
    • 汇总
    • 代次
    • 问题回答
    • 实体抽取
    • 检索增强生成 (RAG)
  • 阈值:
    • 下限:0
    • 上限:1
  • 工作原理:值为 1 表示预测模糊匹配关键词。 值为 0 表示预测结果与关键词不模糊匹配。