6.2. LM-Eval 评估作业
LM-Eval 服务定义一个名为 LMEvalJob 的新自定义资源定义(CRD)。LMEvalJob 对象代表评估作业。LMEvalJob 对象由 TrustyAI Kubernetes operator 监控。
要运行评估作业,请使用以下信息创建一个 LMEvalJob 对象: model, model parameters, task, 和 secret。
创建 LMEvalJob 后,LM-Eval 服务将运行评估作业。当信息可用时 ,LMEvalJob 对象的状态和结果会更新。
其他 TrustyAI 功能(如 bias 和 drift metrics)不支持非稳定模型(包括 LLM)。在包含非稳定模型(如执行评估作业的命名空间)的命名空间中部署 TrustyAIService 自定义资源(CR)可能会导致 TrustyAI 服务中的错误。
LMEvalJob 对象示例
LMEvalJob 对象示例包含以下功能:
-
Hugging Face 的
google/flan-t5-base模型。 -
由
wnli卡中的数据集,部分来自 Hugging Face 的 GLUE (General Language Understand assessment)评估框架。有关wnliUnitxt 卡的更多信息,请参阅 Unitxt 网站。 -
以下
multi_class.relationUnitxt 任务的默认参数:f1_micro、f1_macro和accuracy。此模板可以在 Unitxt 网站中找到:单击 Catalog,然后单击 Tasks,然后从菜单中选择 Classification。
以下是 LMEvalJob 对象示例:
apiVersion: trustyai.opendatahub.io/v1alpha1
kind: LMEvalJob
metadata:
name: evaljob-sample
spec:
model: hf
modelArgs:
- name: pretrained
value: google/flan-t5-base
taskList:
taskRecipes:
- card:
name: "cards.wnli"
template: "templates.classification.multi_class.relation.default"
logSamples: true
应用示例 LMEvalJob 后,使用以下命令检查其状态:
oc get lmevaljob evaljob-sample
显示类似于如下的输出: NAME: evaljob-sample STATE: Running
当对象状态变为 Complete 时,可以使用评估结果。本例中的 model 和 dataset 都很小。评估作业应在仅 CPU 节点的 10 分钟内完成。
使用以下命令获取结果:
oc get lmevaljobs.trustyai.opendatahub.io evaljob-sample \
-o template --template={{.status.results}} | jq '.results'
该命令返回类似以下示例的结果:
{
"tr_0": {
"alias": "tr_0",
"f1_micro,none": 0.5633802816901409,
"f1_micro_stderr,none": "N/A",
"accuracy,none": 0.5633802816901409,
"accuracy_stderr,none": "N/A",
"f1_macro,none": 0.36036036036036034,
"f1_macro_stderr,none": "N/A"
}
}
有关结果的备注
-
f1_micro、f1_macro和准确性分数为 0.56、0.36 和 0.56。 -
完整结果存储在
LMEvalJob对象的.status.results中,作为 JSON 文档。 - 以上命令仅检索 JSON 文档的 results 字段。
LMEvalJob 属性
下表列出了 LMEvalJob 及其用法中的每个属性:
| 参数 | 描述 |
|---|---|
|
|
指定评估哪个模型类型或供应商。此字段直接映射到
|
|
| 模型类型的对名称和值参数的列表。每种模型类型或供应商都支持不同的参数。您可以在 GitHub 上 LM 评估 Harness 库的 models 部分找到更多详细信息。
|
|
|
指定 |
|
| 使用 Unitxt method 格式指定任务:
|
|
|
设置上下文中要放入的几片示例的数量。如果您使用来自 Unitxt 的任务,请不要使用此字段。在 |
|
| 设置限制以运行任务,而不是运行整个数据集。接受 0.0 到 1.0 之间的整数或浮点值。 |
|
|
映射到 |
|
| 如果传递此标志,则模型输出并将文本保存到模型中,按文档粒度保存。 |
|
|
以整数格式指定评估的批处理大小。 |
|
|
指定
|
|
| 此参数定义用于存储评估结果的自定义输出位置。仅支持持久性卷声明(PVC)。 |
|
|
创建一个 Operator 管理的 PVC 来存储作业结果。PVC 被命名为 &
|
|
| 通过指定其名称来将现有 PVC 绑定到作业。PVC 必须单独创建,且必须在创建作业时已存在。 |
|
|
如果此参数设为 |
|
|
如果此参数设为 |
|
| 将 PVC 挂载为模型和数据集的本地存储。 |