ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

lm-evaluation-harness 多语言 LAMBADA 评测指南:StableLM 变体任务与配置详解

lm-evaluation-harness 多语言 LAMBADA 评测指南:StableLM 变体任务与配置详解 lm-evaluation-harness 多语言 LAMBADA 评测指南StableLM 变体任务与配置详解【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness本文以 lm-evaluation-harness 仓库中的lambada_multilingual_stablelm任务组为主线系统讲解 LAMBADA 数据集的评测原理、该任务组在仓库中的 YAML 实现细节、运行方式与指标含义。读者在读完本文后将能够理解多语言 LAMBADA 任务的构造逻辑机器翻译变体、词级 log-likelihood 评测并掌握在本地运行该任务组、解读 perplexity 与 acc 结果的完整实战方案。LAMBADA 数据集需要跨句语篇上下文的词预测任务LAMBADALAnguage Modeling Broadened to Account for Discourse Aspects是一个通过预测最后一个词来评估模型文本理解能力的基准数据集。它的核心设计思想体现在数据的构造方式上数据集中每个样本都是一段叙事文本narrative passage这些文本具有一个共同特征——人类被试只有在看到完整段落时才能猜出最后一个词如果只看到目标词之前的那一句话则无法猜出。这意味着要在 LAMBADA 上取得好的表现模型不能只依赖局部上下文例如紧邻目标词的句子而必须能够跨句子追踪信息、在更广阔的语篇broader discourse中建立联系。用评测领域的术语来说LAMBADA 检验的是模型的长程语篇建模能力而不是简单的局部语言模型困惑度。该数据集最初由 Paperno 等人提出《The LAMBADA dataset: Word prediction requiring a broad discourse context》2016 年发布官方托管于 Zenodo。在 lm-evaluation-harness 仓库中围绕 LAMBADA 存在多个任务目录本文聚焦的是lm_eval/tasks/lambada_multilingual_stablelm/下的 StableLM 多语言变体。任务定位OpenAI 变体与 StableLM 报告中的机器翻译版本在 LAMBADA 的评测历史上OpenAI 曾发布过一个广为人知的变体即lambada_openai该变体在原始数据集基础上做了清洗与过滤是社区评测语言模型时最常使用的版本。lm-evaluation-harness 仓库中至少有三个与 LAMBADA 相关的目录lm_eval/tasks/lambada/原始英文变体包含lambada_openai与lambada_standard两个任务lm_eval/tasks/lambada_multilingual/OpenAI 变体的早期机器翻译版本lambada_mt_{en, fr, de, it, es}lm_eval/tasks/lambada_multilingual_stablelm/本文主角StableLM 报告使用的机器翻译版本。lambada_multilingual_stablelm任务组所评测的是OpenAI LAMBADA 变体的多语言机器翻译版本其来源与报告口径直接对应 Stable LM 2 1.6B 技术报告Bellagente 等人arXiv:2402.17834中所报告的评测设置。换言之该任务组复刻了一个已在公开论文中发布过的评测协议如果研究者希望让自己的模型结果与 Stable LM 2 系列技术报告中的多语言 LAMBADA 分数直接可比就应该使用这个任务组。组与任务清单根据 README 的官方说明组Grouplambada_multilingual_stablelm—— 运行该组会一次评估其下所有的lambada_mt_stablelm_X任务任务Taskslambada_openai_mt_stablelm_{en, fr, de, it, es}—— OpenAI LAMBADA 变体的机器翻译版本。需要说明的是README 中列举的语言集合为 5 种en/fr/de/it/es而从仓库的实际配置文件来看该任务目录 下共存在7 个 YAML 文件除上述 5 种语言外还包含nl荷兰语与pt葡萄牙语任务名配置文件数据集语言lambada_openai_mt_stablelm_enlambada_mt_stablelm_en.yamlenlambada_openai_mt_stablelm_delambada_mt_stablelm_de.yamldelambada_openai_mt_stablelm_frlambada_mt_stablelm_fr.yamlfrlambada_openai_mt_stablelm_itlambada_mt_stablelm_it.yamlitlambada_openai_mt_stablelm_eslambada_mt_stablelm_es.yamleslambada_openai_mt_stablelm_nllambada_mt_stablelm_nl.yamlnllambada_openai_mt_stablelm_ptlambada_mt_stablelm_pt.yamlpt评测时只需指定组名lambada_multilingual_stablelmharness 会自动展开并逐个运行组内全部语言的任务最终按语言分别汇报指标。YAML 配置逐项解析该任务组以lambada_mt_stablelm_en.yaml为主配置文件base config其余 6 个语言文件均通过 YAMLinclude机制继承它只覆盖task名与dataset_name两个字段。以德语为例lambada_mt_stablelm_de.yaml 全文如下include: lambada_mt_stablelm_en.yaml task: lambada_openai_mt_stablelm_de dataset_name: de这种一个主文件 多个薄覆盖文件的组织方式是 lm-evaluation-harness 任务目录中的常见模式它极大减少了多语言任务间的重复配置也保证了各语言任务在评测协议上完全一致除数据集语言外其余字段全部继承。下面逐字段解读基础配置 lambada_mt_stablelm_en.yamltag: lambada_multilingual_stablelm task: lambada_openai_mt_stablelm_en dataset_path: EleutherAI/lambada_multilingual_stablelm dataset_name: en output_type: loglikelihood test_split: test doc_to_text: {{text.split( )[:-1]|join( )}} doc_to_target: {{ text.split( )[-1]}} should_decontaminate: true doc_to_decontamination_query: {{text}} metric_list: - metric: perplexity aggregation: perplexity higher_is_better: false - metric: acc aggregation: mean higher_is_better: true metadata: version: 1.0各字段含义如下tag将任务归入lambada_multilingual_stablelm标签/组供分组评测与任务索引使用task任务唯一标识CLI 与 Python API 中引用该任务的名字dataset_pathHuggingFace Hub 上的数据集标识符本任务使用EleutherAI/lambada_multilingual_stablelmdataset_name数据集内部的子集config名对应语言代码如en、deoutput_typeloglikelihood表示本任务按对每个候选续写计算对数似然的方式评测词预测任务的标准配置test_split使用数据集的test划分doc_to_text/doc_to_target从样本构造 prompt 与目标的关键字段。doc_to_text取样本text去掉最后一个词text.split( )[:-1]|join( )作为输入上下文doc_to_target取最后一个词并前置一个空格 text.split( )[-1]作为待预测目标。这种输入前 N-1 个词、目标最后一个词的切分方式正是 LAMBADA 词预测任务的核心实现should_decontaminatetrue表示启用训练数据去污染检查doc_to_decontamination_query提供去污染查询所用的原始文本完整的textmetric_list声明两个评测指标——perplexity困惑度聚合函数为perplexity越低越好与acc准确率聚合方式为mean越高越好。其中perplexity聚合函数在 lm_eval/api/metrics.py 中定义它会综合每个样本的 log-likelihood 计算困惑度acc则统计模型赋予最后一个词最高似然或匹配目标词的样本占比。两个指标从不同角度刻画模型的语言建模质量acc反映词预测的硬准确率perplexity反映整体概率质量分配的好坏。如何在本地运行该任务组方式一CLI 命令行lm-evaluation-harness 安装后提供lm-eval命令行入口见 pyproject.toml 中的[project.scripts]配置。运行整个多语言 StableLM LAMBADA 组的最简命令为lm-eval --model hf \ --model_args pretrained你的模型名或路径 \ --tasks lambada_multilingual_stablelm \ --device cuda也可以只评测单个语言任务例如仅评测英语lm-eval --model hf \ --model_args pretrained你的模型名或路径 \ --tasks lambada_openai_mt_stablelm_en \ --device cuda参数说明--model模型后端hf表示使用 HuggingFace Transformers 模型--model_args以逗号分隔的模型加载参数pretrained必填可传模型名或本地路径--tasks逗号分隔的任务或组名列表传组名lambada_multilingual_stablelm即评测全部 7 个语言任务--device推理设备cuda/cpu也支持--batch_size等更多参数控制批量大小与内存占用。方式二Python API在脚本中使用simple_evaluate接口来自 lm_eval/evaluator.py可得到同样的结果便于二次处理from lm_eval import simple_evaluate results simple_evaluate( modelhf, model_argspretrained你的模型名或路径, tasks[lambada_multilingual_stablelm], devicecuda, ) # results[results] 中按任务名如 lambada_openai_mt_stablelm_en # 保存了 perplexity 与 acc 等指标与仓库中其他 LAMBADA 任务的关系为帮助读者在仓库中准确选择任务这里给出三个相关目录的对比从配置内容看目录任务命名数据集特点lambada/lambada_openai、lambada_standardEleutherAI/lambada_openai 等英文原始/OpenAI 变体lambada_multilingual/lambada_mt_{en,fr,de,it,es}EleutherAI/lambada_openaiOpenAI 变体的早期机器翻译版本共 5 种语言lambada_multilingual_stablelm/lambada_openai_mt_stablelm_{...}EleutherAI/lambada_multilingual_stablelm独立的多语言数据集对应 Stable LM 2 1.6B 报告口径实际配置覆盖 7 种语言从配置结构看lambada_multilingual_stablelm与早期lambada_multilingual的评测协议loglikelihood、同样的词切分方式、相同的两个指标一脉相承但数据集源不同——前者使用独立的多语言数据集EleutherAI/lambada_multilingual_stablelm后者仍基于英文EleutherAI/lambada_openai的翻译版本。因此若要与 Stable LM 2 系列技术报告中的多语言结果对齐应选择lambada_multilingual_stablelm。去污染与评测完整性该任务组在所有语言的配置中都开启了should_decontaminate: true并提供了doc_to_decontamination_query完整的原始文本。这意味着评测时 harness 会将测试样本的原始文本与模型的预训练语料进行比对帮助识别测试数据是否已被模型在训练阶段见过的潜在污染问题。对于语篇级词预测任务样本可能以近似形式出现在训练语料中因此这一检查对结果可信度具有重要意义。此外README 的 Checklist 部分说明该任务对 Evaluation Harness 而言属于新增任务并已对照 harness v0.3.0 版本完成校验同时任务明确标注了其主变体定位并说明了各语言变体的评测目标与对应的已发布评测协议即 Stable LM 2 1.6B 技术报告方便后续维护者与使用者溯源。引用方式在论文或技术报告中引用该任务背后的数据集与评测口径时可使用 README 中提供的两条文献misc{ author{Paperno, Denis and Kruszewski, Germán and Lazaridou, Angeliki and Pham, Quan Ngoc and Bernardi, Raffaella and Pezzelle, Sandro and Baroni, Marco and Boleda, Gemma and Fernández, Raquel}, title{The LAMBADA dataset}, DOI{10.5281/zenodo.2630551}, publisher{Zenodo}, year{2016}, month{Aug} } article{bellagente2024stable, title{Stable LM 2 1.6 B Technical Report}, author{Bellagente, Marco and Tow, Jonathan and Mahan, Dakota and Phung, Duy and Zhuravinskyi, Maksym and Adithyan, Reshinth and Baicoianu, James and Brooks, Ben and Cooper, Nathan and Datta, Ashish and others}, journal{arXiv preprint arXiv:2402.17834}, year{2024} }前者对应 LAMBADA 原始论文后者对应 Stable LM 2 1.6B 技术报告——即该多语言评测任务所匹配的已发布评测设置。在复现对比实验时请同时引用这两篇文献以保证评测口径可追溯。【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表