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)评估框架。有关wnli
Unitxt 卡的更多信息,请参阅 Unitxt 网站。 -
以下
multi_class.relation
Unitxt 任务的默认参数:f1_micro
、f1_macro
和accuracy
。此模板可以在 Unitxt 网站中找到:单击 Catalog,然后单击 Tasks,然后从菜单中选择 Classification。
以下是 LMEvalJob
对象示例:
应用示例 LMEvalJob
后,使用以下命令检查其状态:
oc get lmevaljob evaljob-sample
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'
oc get lmevaljobs.trustyai.opendatahub.io evaljob-sample \
-o template --template={{.status.results}} | jq '.results'
该命令返回类似以下示例的结果:
有关结果的备注
-
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 挂载为模型和数据集的本地存储。 |