如何在GLM-130B大模型上评估自定义任务

如何在GLM-130B大模型上评估自定义任务

GLM-130B GLM-130B: An Open Bilingual Pre-Trained Model (ICLR 2023) GLM-130B 项目地址: https://gitcode.com/gh_mirrors/gl/GLM-130B

前言

GLM-130B作为千亿参数规模的双语大语言模型,其评估过程需要特殊的配置和处理。本文将详细介绍如何在GLM-130B上评估自定义任务,包括任务配置、数据准备、指标实现等关键环节。

任务配置基础

评估任务通过YAML文件进行定义,这种配置方式具有以下优势:

  • 支持批量评估多个任务
  • 允许递归扫描目录下的所有YAML文件
  • 便于任务参数的独立配置

基本配置参数

每个任务YAML文件都需要包含以下核心参数:

name: '任务名称'  # 如glue_cola
type: 'mul'      # 任务类型:'gen'(生成)或'mul'(多选)
path: '数据路径'  # 相对于DATA_PATH的路径
use_task_mask: False  # 是否使用[gMASK]标记
unidirectional: False # 是否使用单向注意力
max_seq_length: 2048  # 最大序列长度
micro-batch-size: 30  # 微批次大小(生成任务目前仅支持1)

数据准备规范

推荐目录结构

为便于管理不同提示模板(prompt)的评估数据,建议采用以下目录结构:

数据根目录
└── 任务名称
    ├── prompt_1
    │   ├── test.jsonl  # 测试集
    │   └── val.jsonl   # 验证集
    ├── prompt_2
    │   ├── test.jsonl
    │   └── val.jsonl
    └── prompt_3
        ├── test.jsonl
        └── val.jsonl

数据文件格式

多选任务格式

每行JSON数据应包含:

{
    "inputs_pretokenized": "上下文和问题",
    "choices_pretokenized": ["选项1", "选项2", "选项3"],
    "label": 正确答案索引
}

默认评估指标为准确率(Accuracy)。

生成任务格式

每行JSON数据应包含:

{
    "inputs_pretokenized": "上下文和问题",
    "targets_pretokenized": ["目标答案1", "目标答案2"],
    "label": 正确答案索引
}

默认评估指标为精确匹配(EM)和F1值。

自定义评估指标

如需实现自定义评估指标,可按以下步骤操作:

  1. 在metrics.py文件中实现您的指标函数
  2. 将函数名添加到DEFAULT_METRICS字典中
  3. 在任务YAML文件中通过metric参数指定您的指标名称

高级定制评估流程

对于需要特殊处理的评估任务,可以通过继承基础任务类实现完全定制:

可继承的基础类

  1. MultiChoiceTask: 多选任务基类
  2. GenerationTask: 生成任务基类

关键方法实现

需要重写process_single_batch方法,定义如何处理输入批次并获取预测结果。GLM-130B提供了两个核心API:

  1. cond_log_prob(): 计算给定输出的条件概率
  2. generate_text(): 根据输入生成文本

配置方法

实现自定义任务类后,需要在YAML文件中通过module字段指定类的导入路径。例如LAMBADA任务就定制了beam search生成策略。

评估执行命令

单节点评估

bash scripts/evaluate.sh 任务配置.yaml

多节点评估

bash scripts/evaluate_multiple_node.sh 任务配置.yaml

最佳实践建议

  1. 对于生成任务,建议先在小规模验证集上测试不同参数配置
  2. 多选任务可以尝试更大的micro-batch-size以提高评估效率
  3. 复杂任务建议先实现简化版本,再逐步增加功能
  4. 注意max_seq_length的设置,过长会影响性能,过短可能导致截断

通过以上方法,您可以充分利用GLM-130B的强大能力,对各种自定义任务进行专业、高效的评估。

GLM-130B GLM-130B: An Open Bilingual Pre-Trained Model (ICLR 2023) GLM-130B 项目地址: https://gitcode.com/gh_mirrors/gl/GLM-130B

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戴洵珠Gerald

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值