新闻详情

新闻详情

首页 / 资讯中心 / 详情

lm-evaluation-harness 实战:用 ASK-GEC 任务评估挪威语语法纠错(GEC)能力并接入 ERRANT 评分

发布时间:2026/9/15 12:42:52来源:尧图网络
lm-evaluation-harness 实战:用 ASK-GEC 任务评估挪威语语法纠错(GEC)能力并接入 ERRANT 评分
lm-evaluation-harness 实战用 ASK-GEC 任务评估挪威语语法纠错GEC能力并接入 ERRANT 评分【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness导读本文聚焦 lm-evaluation-harness 中的ask_gec任务族介绍如何对一个语言模型执行挪威语语法纠错Grammatical Error CorrectionGEC评估。任务以 Hugging Face 数据集 ltg/ask-gec 中挪威语语言知识类别下的序列到序列生成任务。文章将完整复现文档给出的两步评估流程第一步用--predict_only让模型只生成纠错文本而不计算指标第二步调用任务目录下的 errant.py 脚本借助 ERRANT 工具计算 GEC 领域标准的 F0.5 指标。读完本文你将掌握该任务的五种提示模板、命令行参数语义、预测文件格式以及 ERRANT 评分的完整调用链。ASK-GEC 任务概述与配置结构ASK-GECask_gec是 NorEval 基准LM Evaluation Harness 集成入口中的序列到序列生成任务评估模型对挪威语书面语标准 Bokmål文本进行语法纠错的能力。在 lm-evaluation-harness 中该任务由一组 YAML 配置文件定义位于 lm_eval/tasks/noreval/ask_gec/ 目录_ask_gec_yaml公共配置数据集、输出类型、生成参数、划分等ask_gec_p0.yaml ask_gec_p4.yaml五个提示prompt变体通过include: _ask_gec_yaml继承公共配置errant.py离线计算 ERRANT 指标的评估脚本。公共配置解读_ask_gec_yaml 是任务的核心完整内容如下tag: ask_gec dataset_path: ltg/ask-gec output_type: generate_until training_split: train validation_split: validation test_split: test doc_to_target: correction generation_kwargs: until: - \n do_sample: false num_beams: 1 max_new_tokens: 256 metadata: version: 1.0各字段的语义与影响tag: ask_gec任务标签便于在评测中按标签聚合或筛选同时被五个ask_gec_p*变体共享五个子任务可归入同一组。dataset_path: ltg/ask-gec指定 Hugging Face 数据集仓库评测时由 lm-evaluation-harness 自动下载。数据集的源文本字段为source纠错目标字段为correction。output_type: generate_until声明这是自由生成文本生成任务而非 loglikelihood 打分任务模型需要持续生成 token直到遇到终止符。training_split / validation_split / test_split显式声明数据划分。注意测试划分test_split: test的存在是后续生成预测文件的数据来源。doc_to_target: correction将数据集correction字段映射为参考目标预测结果将与之比较。generation_kwargs生成阶段的关键约束until: [\n]遇到换行符即停止生成保证输出是单句纠错结果do_sample: false、num_beams: 1采用贪心解码不做采样、不做 beam search保证可复现性max_new_tokens: 256单条生成的最大新 token 数足够覆盖长句纠错。从这些配置可以推断任务设计为给定一句挪威语原文模型输出其纠错后的版本与 NorEval 论文中挪威语语言知识任务类别的定位一致。五个提示变体ask_gec_p0.yaml 至 ask_gec_p4.yaml 仅覆盖task名称与doc_to_text提示模板其余全部继承公共配置任务名提示模板doc_to_text语义ask_gec_p0Tekst: {{source}}\nKorreksjon:文本… 纠错简洁直白ask_gec_p1Tekst: {{source}}\nRettet versjon:文本… 修正版ask_gec_p2Skriv om følgende tekst slik at den blir grammatisk korrekt: {{source}}\nKorreksjon:改写以下文本使其语法正确… 纠错ask_gec_p3Original versjon: {{source}}\nKorrekturlest og rettet versjon:原始版本… 校对并修正后的版本ask_gec_p4Rett opp grammatiske feil i denne teksten: {{source}}\nKorreksjon:纠正这段文本中的语法错误… 纠错这五个变体正是 NorEval提示敏感性prompt sensitivity原则在 GEC 任务上的体现同一模型在不同提示下表现可能有差异评测时可通过--tasks ask_gec_p0,ask_gec_p1,...一次跑完五种模板对比。此外NorEval 的 README 明确记录ask_gec任务支持k 0的 few-shot 评测其 k-shot 列标记为 ✅可搭配--num_fewshot使用。完整评估流程两步法任务 README 给出的评估思路非常清晰先让模型只生成、不算分把预测落盘为 JSONL再用 ERRANT 离线计算 GEC 指标。原因是 GEC 领域的标准指标ERRANT F0.5依赖编辑级对齐lm-evaluation-harness 内置的简单字符串指标无法直接套用因此文档选择--predict_only 外部脚本的分离式评估。Step 1生成预测在仓库根目录执行以下命令将模型替换为你要评估的 HF 模型lm_eval \ --model hf \ --model_args pretrainedAI-Sweden-Models/Llama-3-8B \ --tasks ask_gec \ --output results/ask_gec/0-shot/ \ --log_samples \ --show_config \ --write_out \ --predict_only \ --batch_size auto \ --num_fewshot 0逐项说明各参数的作用其定义可在 CLI 参数解析源码 中核对--model hf使用 Hugging Face Transformers 模型--model_args pretrained...指定模型标识。--tasks ask_gec评测任务名。传ask_gec表示包含全部五个提示变体若只想测单个模板可改为ask_gec_p0等具体任务名。--output results/ask_gec/0-shot/结果输出目录预测样本文件会按模型名/子目录组织。--log_samples启用样本级日志这是--write_out与后续 ERRANT 评估的前提——预测需要逐样本落盘。--show_config评测结束后打印完整任务配置即上文 YAML 解析结果便于核对生成参数、数据划分是否与预期一致。--write_out别名-wCLI 定义为Print prompts for first few documents实际作用是把带预测的样本输出到 JSONL 文件供外部脚本读取。--predict_only别名-xCLI 定义为Save predictions only, skip metric computation即跳过指标计算、只保存预测——这是整个两步流程的关键开关。--batch_size auto让 harness 自动探测可放入显存/内存的最大 batch 大小提升吞吐。--num_fewshot 0零样本评测ask_gec支持k 0如需 few-shot 可改为 1、2、5 等值NorEval 默认以零样本为主见 NorEval README 的 k-shot 说明。命令运行完毕后预测文件将出现在类似以下路径文件名含任务名、采样参数与时间戳实际以--output下生成的文件为准results/ask_gec/0-shot/AI-Sweden-Models__Llama-3-8B/samples_ask_gec_p0_2025-01-28T01-08-13.454441.jsonl注意由于模型组织名中的/被替换为__目录名为AI-Sweden-Models__Llama-3-8B。预测文件格式errant.py 的 read_examples 函数揭示了 JSONL 样本文件的结构每一行是一个样本对象脚本读取三个字段doc[source]原始挪威语句子对应数据集的source字段doc[correction]参考纠错目标对应配置中的doc_to_target: correctionresps[0][0]模型生成的预测文本脚本将其中的连续换行\n\n规整为单个\nerrant.py 第 43 行再写入临时预测文件。这也是为什么必须使用--predict_only而非普通评测普通评测模式不保证把source/correction/resps以可复用的样本级结构完整落盘。Step 2用 ERRANT 评估ERRANT 是 GEC 评测的行业标准工具errant_parallel负责把原文改写对齐成 M2 编辑格式errant_compare负责比对参考与预测的编辑并输出 P/R/F 指标。运行前请先安装 ERRANT确保errant_parallel与errant_compare两个命令在 PATH 中可用errant.py 启动时会打印安装提醒见 errant.py 主入口。安装完成后在仓库根目录执行--fpath换成 Step 1 实际生成的预测文件路径--out_fdir换成希望保存结果的目标目录python3 ask_gec/errant.py --fpath results/ask_gec/0-shot/AI-Sweden-Models__Llama-3-8B/samples_ask_gec_p0_2025-01-28T01-08-13.454441.jsonl --out_fdir results/ask_gec/0-shot/AI-Sweden-Models__Llama-3-8B/结果将保存为与预测文件同名的_errant.jsonresults/ask_gec/0-shot/AI-Sweden-Models__Llama-3-8B/samples_ask_gec_p0_2025-01-28T01-08-13.454441_errant.json该 JSON 文件内容形如{errant: 0.xx}即 ERRANT F0.5 分数。errant.py 脚本原理errant.py 本身是轻量级封装整个评估管线清晰可循解析参数parse_args接收--fpath预测文件与--out_fdir结果输出目录当前版本仅用于打印实际输出路径由--fpath推导。读取样本read_examples用 pandas 逐行读取 JSONL抽出source、correction、resps[0][0]三列。写临时文件把原文、参考、预测分别写入tmp/目录下的_sources.txt、_targets.txt、_predictions.txt。M2 对齐调用两次errant_parallel -orig ... -cor ... -out ... -lev -tok分别把原文, 参考和原文, 预测转成 M2 编辑文件。-levLevenshtein 对齐与-toktokenize是 GEC 评测常用的对齐配置。指标计算调用errant_compare -ref 参考 M2 -hyp 预测 M2从输出的倒数第二行解析 F0.5 分数errant.py 第 86 行。保存与清理将{errant: f_05}写入fpath 去 .jsonl_errant.jsonmain 函数随后删除tmp/中的临时文件。值得注意的实现细节F0.5 是从errant_compare输出的倒数第二行的最后一个字段解析而来errant.py 第 86 行这符合 ERRANT 的典型输出格式末尾几行为 P/R/F 汇总。此外脚本通过subprocess.run(..., shellTrue)串起命令行工具因此要求这些命令可被 shell 直接调用。评测设计要点与实践建议结合 NorEval 总览文档 与任务配置可以提炼出几条可落地的实践建议提示敏感性对比ask_gec一次提供五种挪威语提示变体建议在报告中分别给出五个变体以及可能的 k-shot 设置的 ERRANT F0.5观察提示对 GEC 质量的影响这正是 NorEval 基准的核心评测原则之一。零样本为主NorEval 文档说明各任务默认以零样本评测为主ask_gec因拥有训练/验证划分而支持 k-shot需要 few-shot 演示样本时可参考任务划分training_split: train、validation_split: validation自行构造。可复现性配置中do_sample: false、num_beams: 1与固定的--batch_size auto搭配可保证同一模型在同一硬件上结果稳定--show_config可帮助核对实际生效的生成参数。与 NorEval 其余任务组合ask_gec是 NorEval 24 个数据集之一若需整体评估模型挪威语能力可将其与 NoReC Sentence、NorIdiom、NorSumm 等任务一并传入--tasks详见 NorEval 任务总表并按各任务 README 的说明分别处理生成类与分类类任务的评分。总结ASK-GEC 评测展示了 lm-evaluation-harness 与领域专用评分工具协同的典型范式用--predict_only--log_samples--write_out让框架专注完成加载模型—构造提示—生成文本—落盘样本的流水线再用 errant.py 把预测接入 ERRANT 完成 GEC 标准的 F0.5 评估。五个提示变体与公共配置分离的设计也让多提示对比这一 NorEval 评测原则变得极易执行。这套流程同样适用于其他生成 外部指标的任务场景只需替换任务配置与对应的评分脚本即可复用。【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

ScyllaDB Nodetool statusbackup 详解:增量备份状态查询命令的用法与底层原理 2026/9/15 13:40:02

ScyllaDB Nodetool statusbackup 详解:增量备份状态查询命令的用法与底层原理

ScyllaDB Nodetool statusbackup 详解:增量备份状态查询命令的用法与底层原理 【免费下载链接】scylladb NoSQL data store using the Seastar framework, compatible with Apache Cassandra and Amazon DynamoDB 项目地址: https://gitcode.com/GitHub_Trending/…

阅读更多 →
ModNet轻量级人像抠图模型在安卓端的Paddle Lite部署全流程解析 2026/9/15 13:40:02

ModNet轻量级人像抠图模型在安卓端的Paddle Lite部署全流程解析

简介:这份资源是基于飞桨PaddleSeg的ModNet算法实现的人像抠图安卓版Demo,面向移动端视觉开发者、AI应用学习者以及嵌入式系统工程师。它能帮助解决在手机等移动设备上高效分离人物与背景的问题,直观演示深度学习大模型在资源受限环境中的部署…

阅读更多 →
Midday 的 Runway 计算为什么把负债排除在现金余额之外? 2026/9/15 13:40:02

Midday 的 Runway 计算为什么把负债排除在现金余额之外?

Midday 的 Runway 计算为什么把负债排除在现金余额之外? 【免费下载链接】midday Invoicing, Time tracking, File reconciliation, Storage, Financial Overview & your own Assistant made for Freelancers 项目地址: https://gitcode.com/GitHub_Trending/…

阅读更多 →
NocoBase FlowEngine 事件流(Event Flow)全解析:静态流、动态流与联动规则的事件驱动编排 2026/9/15 13:40:02

NocoBase FlowEngine 事件流(Event Flow)全解析:静态流、动态流与联动规则的事件驱动编排

NocoBase FlowEngine 事件流(Event Flow)全解析:静态流、动态流与联动规则的事件驱动编排 【免费下载链接】nocobase NocoBase is an open-source AI no-code platform for building business systems fast. Instead of generating everythi…

阅读更多 →
Cataclysm-DDA 模组实战解析:Backrooms 全室内世界生成转换模组 2026/9/15 13:40:02

Cataclysm-DDA 模组实战解析:Backrooms 全室内世界生成转换模组

Cataclysm-DDA 模组实战解析:Backrooms 全室内世界生成转换模组 【免费下载链接】Cataclysm-DDA Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world. 项目地址: https://gitcode.com/GitHub_Trending/ca/Cataclysm-DDA …

阅读更多 →
用C++编写2048小游戏:数组设计、合并算法与实现全解析 2026/9/15 13:37:01

用C++编写2048小游戏:数组设计、合并算法与实现全解析

翻到两年前写的2048小游戏代码,忍不住还是觉得这个项目对C新手来说太合适了。当时我刚学完C语法,指针、引用、vector这些概念背得滚瓜烂熟,但让我独立写点东西就发懵。后来在地铁上玩了几把2048,突然意识到这个游戏逻辑并不复杂&a…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞