6.3. LM-Eval 场景
以下过程概述了对 ML-Eval 设置非常有用的示例场景。
6.3.1. 配置 LM-Eval 环境 复制链接链接已复制到粘贴板!
如果 LMEvalJob
需要通过访问令牌访问 HuggingFace 上的模型,您可以将 HF_TOKEN
设置为 lm-eval
容器之一。
先决条件
- 已登陆到 Red Hat OpenShift AI。
- 您的 OpenShift 集群管理员已安装了 OpenShift AI,并为部署模型的数据科学项目启用了 TrustyAI 服务。
流程
要为
huggingface
模型启动评估作业,请应用以下 YAML 文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)您还可以创建一个 secret 来存储令牌,然后使用以下引用语法从
secretKeyRef
对象中引用密钥:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3.2. 使用自定义 Unitxt 卡 复制链接链接已复制到粘贴板!
您可以使用自定义 Unitxt 卡运行评估。要做到这一点,请在 LMEvalJob
YAML 中以 JSON 格式包括自定义 Unitxt 卡。
先决条件
- 已登陆到 Red Hat OpenShift AI。
- 您的 OpenShift 集群管理员已安装了 OpenShift AI,并为部署模型的数据科学项目启用了 TrustyAI 服务。
流程
以 JSON 格式传递自定义 Unitxt 卡:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在自定义卡中,指定 Hugging Face dataset 加载程序:
"loader": { "__type__": "load_hf", "path": "glue", "name": "wnli" },
"loader": { "__type__": "load_hf", "path": "glue", "name": "wnli" },
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
(可选)您可以使用其他 Unitxt 加载程序(可在 Unitxt 网站中找到),其中包含
卷和
volumeMounts
参数从持久性卷挂载数据集。例如,如果使用LoadCSV
Unitxt 命令,请将文件挂载到容器,并使 dataset 可供评估过程访问。
6.3.3. 使用 PVC 作为存储 复制链接链接已复制到粘贴板!
要将 PVC 用作 LMEvalJob
结果的存储,您可以使用受管 PVC 或现有的 PVC。管理的 PVC 由 TrustyAI operator 管理。现有 PVC 由最终用户创建,然后再创建 LMEvalJob
。
如果在输出中同时引用受管和现有的 PVC,则 TrustyAI operator 默认为受管 PVC。
先决条件
- 已登陆到 Red Hat OpenShift AI。
- 您的 OpenShift 集群管理员已安装了 OpenShift AI,并为部署模型的数据科学项目启用了 TrustyAI 服务。
6.3.3.1. 管理的 PVC 复制链接链接已复制到粘贴板!
要创建受管 PVC,请指定其大小。受管 PVC 名为 < ;job-name>-pvc
,在作业完成后可用。删除 LMEvalJob
时,受管 PVC 也会被删除。
流程
输入以下代码:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
代码备注
-
输出
是指定自定义存储位置的部分 -
pvcManaged
将创建一个 Operator 管理的 PVC -
大小
(与标准 PVC 语法兼容)是唯一支持的值
6.3.3.2. 现有 PVC 复制链接链接已复制到粘贴板!
要使用现有的 PVC,将其名称作为引用传递。创建 LMEvalJob
时 PVC 必须存在。PVC 不是由 TrustyAI 操作器管理,因此在删除 LMEvalJob
后可用。
流程
创建 PVC。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 引用
LMEvalJob
中的新 PVC。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3.4. 使用 InferenceService 复制链接链接已复制到粘贴板!
要在命名空间中已部署并运行的 InferenceService
上运行评估作业,请定义您的 LMEvalJob CR,然后将此 CR 应用到与模型相同的命名空间中。
先决条件
- 已登陆到 Red Hat OpenShift AI。
- 您的 OpenShift 集群管理员已安装了 OpenShift AI,并为部署模型的数据科学项目启用了 TrustyAI 服务。
- 您有一个包含带有 vLLM 模型的 InferenceService 的命名空间。本例假定 vLLM 模型已在集群中部署。
流程
定义
LMEvalJob
CR:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将此 CR 应用到与您的模型相同的命名空间中。
验证
在名为 evaljob
的模型命名空间中启动 pod。在 pod 终端中,您可以通过 tail -f output/stderr.log
来查看输出。
代码备注
-
BASE_
URL 应设置为模型的路由/服务 URL。确保在 URL 中包含/v1/completions
端点。 -
env.valueFrom.secretKeyRef.name
应该指向包含可向模型进行身份验证的令牌的机密。secretRef.name
应该是命名空间中的 secret 名称,而secretRef.key
应该指向 secret 中的令牌密钥。 secretKeyRef.name
可以等于以下的输出:oc get secrets -o custom-columns=SECRET:.metadata.name --no-headers | grep user-one-token
oc get secrets -o custom-columns=SECRET:.metadata.name --no-headers | grep user-one-token
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
secretKeyRef.key
设置为token