新闻详情

新闻详情

首页 / 资讯中心 / 详情

BasqueGLUE 巴斯克语 NLU 基准在 lm-evaluation-harness 中的任务实现与评测指南

发布时间:2026/9/15 5:14:37来源:尧图网络
BasqueGLUE 巴斯克语 NLU 基准在 lm-evaluation-harness 中的任务实现与评测指南
BasqueGLUE 巴斯克语 NLU 基准在 lm-evaluation-harness 中的任务实现与评测指南【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness导读本文围绕 BasqueGLUE README 展开介绍 lm-evaluation-harness 中针对巴斯克语Basque自然语言理解基准 BasqueGLUE 的六个评测子任务bhtc_v2、bec2016eu、vaxx_stance、qnlieu、wiceu、epec_koref_bin的配置实现、提示词模板、评测指标与底层源码逻辑。读完本文你将掌握如何直接用lm_eval命令一键复现 BasqueGLUE 的完整评测理解每个 YAML 任务的字段含义与utils.py中函数的作用并清楚该基准与 GLUE、SuperGLUE、BasqueBench 之间的承接关系。1. BasqueGLUE 基准是什么BasqueGLUE 是面向巴斯克语一种低资源语言的首个自然语言理解NLU多任务基准由 Urbizu 等人在 LREC 2022 上提出论文标题BasqueGLUE: A Natural Language Understanding Benchmark for Basque论文页代码与数据发布在 orai-nlp/BasqueGLUE。它参照 GLUE / SuperGLUE 的构建准则从既有公开数据集中挑选并整理了覆盖不同 NLU 能力的子任务用于稳健、通用地评估模型的语言理解能力而不仅仅是识别表面文本线索。在 lm_eval/tasks/basqueglue/README.md 中同时收录了第二篇论文Latxa: An Open Language Model and Evaluation Suite for BasquearXiv: 2403.20266论文页项目主页。该论文展示了如何使用 BasqueGLUE 评估巴斯克语解码器模型decoder-only models的性能并提供了强基线结果这与 lm-evaluation-harness 的 few-shot 解码器评测定位一致。引用信息README 提供了两篇论文的 BibTeX 引文详见 basqueglue/README.md 的 Citation 小节研究复现时建议一并引用。1.1 与 GLUE / SuperGLUE 的承接关系BasqueGLUE 的若干子任务直接沿用了 GLUE 与 SuperGLUE 的任务形式qnlieu问答式自然语言推理对齐 glue/qnliwiceu词义消歧Word-in-Context对齐 super_glue/wicepec_koref_bin指代消解对齐 super_glue/wsc。这种对齐关系在 lm-evaluation-harness 中有直接代码佐证如 glue/qnli/default.yaml 使用doc_to_choice: [yes, no]metric: acc而 BasqueGLUE 的qnlieu使用巴斯克语提示词与[bai, ez]“是/否”任务形态完全一致。2. 六个子任务总览在 README 的 Groups, Tags, and Tasks 小节中BasqueGLUE 在 lm-evaluation-harness 中的注册信息如下项目说明Groups无六个子任务独立注册不构成 groupTagsbasque-glue第一版实现调用所有子任务但不做平均聚合Tasksbhtc_v2、bec2016eu、vaxx_stance、qnlieu、wiceu、epec_koref_bin各子任务与对应 YAML 配置文件均位于 lm_eval/tasks/basqueglue/ 目录汇总如下任务名配置文件评测内容类别bhtc_v2bhtc.yaml新闻片段主题分类12 个类别主题分类bec2016eubec.yaml2016 年巴斯克选举期间推文情感分析情感分析vaxx_stancevaxx.yaml反疫苗运动相关推文的立场检测立场检测qnlieuqnli.yaml问答式 NLI同 GLUE 的 QNLI自然语言推理wiceuwic.yamlWord-in-Context 词义消歧词汇语义epec_koref_bincoref.yaml指代消解二分类同 SuperGLUE 的 WSC指代消解2.1 Tagbasque-glue所有六个 YAML 的头部都声明了tag: basque-glue。从源码结构看tag 用于按标签批量调用任务例如在命令行中用--task配合标签展开。README 特别注明该 tag 会调用全部子任务但不会对结果做平均聚合——这一点与basque_bench等带 group 聚合的基准不同后者通过 group 汇总分数参见 basque_bench/README.md。需要对比总分时需要自行对六个子任务的结果进行加权或平均。3. YAML 任务配置逐项解析六个 YAML 均遵循 lm-evaluation-harness 的标准任务格式。下面逐项拆解核心字段以 bhtc.yaml 为例tag: basque-glue task: bhtc_v2 dataset_path: orai-nlp/basqueGLUE dataset_name: bhtc output_type: multiple_choice validation_split: validation test_split: test doc_to_text: Testua: {{text}}\nGaldera: Zein da aurreko testuaren gaia?\nErantzuna: doc_to_target: label doc_to_choice: [Ekonomia, Euskal Herria, Euskara, Gizartea, Historia, Ingurumena, Iritzia, Komunikazioa, Kultura, Nazioartea, Politika, Zientzia] metric_list: - metric: f1 aggregation: !function utils.micro_f1_score higher_is_better: true metadata: version: 1.0字段取值含义tagbasque-glue任务标签用于按标签批量运行taskbhtc_v2任务唯一标识CLI 中使用的名字dataset_pathorai-nlp/basqueGLUEHugging Face 数据集仓库路径dataset_namebhtc数据集子配置config名对应 HF 上的 subsetoutput_typemultiple_choice输出类型多选式计算各候选答案的对数概率validation_splitvalidation验证集划分名可用于 few-shot 示例采样test_splittest测试集划分名最终评测对象doc_to_text巴斯克语提示词模板将样本渲染为提示词{{...}}为字段插值doc_to_targetlabel正确答案对应的数据字段doc_to_choice12 个巴斯克语类别名候选答案列表其索引即 label 的编码metric_listf1micro F1评测指标及聚合函数metadata.version1.0任务配置版本3.1 数据来源orai-nlp/basqueGLUE六个任务统一使用dataset_path: orai-nlp/basqueGLUE仅dataset_name不同bhtc、bec、vaxx、qnli、wic、coref。运行时会通过 Hugging Facedatasets库在线加载该数据集因此首次运行需要网络连接。数据集的字段结构如下可由 YAML 中的模板推断bhtctext新闻文本、label0–11对应 12 个主题类别bectext推文、label0–2负面/中立/正面vaxxtext推文、label0–2反对/中立/支持qnliquestion、sentence、label0/1wicsentence1、sentence2、word、label0/1coreftext、span1_index、span1_text、span2_index、span2_text、label0/1。3.2 提示词模板doc_to_textBasqueGLUE 任务全部使用巴斯克语提示词这保证了评测不依赖英语模板能真实衡量模型的巴斯克语理解能力。各任务的提示词如下bhtc主题分类Testua: {{text}} Galdera: Zein da aurreko testuaren gaia? Erantzuna:“文本… 问题上文文本的主题是什么 答案”bec情感分析Testua: {{text}} Galdera: Nolako jarrera agertzen du aurreko testuak? Erantzuna:“文本… 问题上文文本表现出怎样的态度 答案”候选为[negatiboa, neutrala, positiboa]。vaxx立场检测Testua: {{text}} Galdera: Nolako jarrera agertzen du aurreko testuak txertoei buruz? Erantzuna:“…上文文本对疫苗持何种立场 答案”候选为[aurka, neutrala, alde]。qnli问答式 NLI{{question}} {{sentence}} Galdera: aurreko galderari erantzuten al dio emandako testuak? Erantzuna:“问题给定文本是否回答了前述问题 答案”候选为[bai, ez]。wic词义消歧1. esaldia: {{sentence1}} 2. esaldia: {{sentence2}} Galdera: Aurreko bi esaldietan, {{word}} hitzak esanahi berdina du? Erantzuna:“句子 1… 句子 2… 问题在上述两个句子中“{{word}}”一词含义是否相同 答案”候选为[ez, bai]。coref指代消解提示词由函数动态生成见第 5 节格式为“测试文本 两个用*标注的指代片段 巴斯克语问题 Erantzuna:”候选为[ez, bai]。3.3 评测指标micro-F1 与准确率BasqueGLUE 按任务类型采用两套指标分类任务bhtc / bec / vaxx使用micro-F1聚合函数为utils.py中的自定义函数micro_f1_score或vaxx_f1_scorehigher_is_better: true二分类判断任务qnli / wic / coref使用准确率acc聚合方式为标准mean。这与原基准仓库eval_basqueglue.py的评分方式保持一致utils.py中注释明确写道“Measure F1 as in the benchmark repo”。4. 从命令行运行 BasqueGLUE 评测由于六个任务共享basque-glue标签可以通过标签一键调用全部子任务# 调用全部 BasqueGLUE 子任务按 tag lm_eval --model hf \ --model_args pretrainedHiTZ/Latxa-7B-v1.1 \ --tasks basque-glue \ --device cuda \ --batch_size auto也可以按任务名单独或组合运行# 只评测单个任务 lm_eval --model hf \ --model_args pretrainedHiTZ/Latxa-7B-v1.1 \ --tasks bhtc_v2 \ --device cuda \ --batch_size auto # 只评测三个 NLU 判断类任务 lm_eval --model hf \ --model_args pretrainedHiTZ/Latxa-7B-v1.1 \ --tasks qnlieu,wiceu,epec_koref_bin \ --device cuda \ --batch_size auto参数说明与 lm-evaluation-harness 通用 CLI 一致--model hf使用 Hugging Face Transformers 模型后端--model_args pretrained...指定模型名称或本地路径Latxa 系列是 README 引用的 Basqu 语开源模型Latxa 项目--tasks任务名或标签多个用逗号分隔--device cuda/--batch_size auto推理设备与自动批大小如需 few-shot可追加--num_fewshot 5等参数。注意由于 tag 不聚合分数运行--tasks basque-glue后会在输出中看到六个独立任务各自的指标需要自行汇总。与 BasqueBench 的对比basque_bench标签见 basque_bench/README.md包含 30 任务并支持 group 聚合其中也复用了qnlieuBasqueGLUE 则是更聚焦的六任务基准。5. 源码级解析utils.py 中的处理逻辑utils.py 承担了三个任务的数据预处理与指标聚合工作是 BasqueGLUE 实现的核心辅助模块。以下逐函数解读。5.1 文本清理process_doc 与 general_detokenizedef general_detokenize(string): string re.sub(r\s([.,;:!?)]), r\1, string) # 标点前去除多余空格 string re.sub(r(\s|^)\(\s([^)])\s\), r\1(\2), string) # 括号 string re.sub(r(\s|^)\[\s([^)])\s\], r\1[\2], string) # 方括号 string re.sub(r(\s|^)\s([^])\s, r\1\2, string) # 双引号 string re.sub(r(\s|^)\s([^])\s, r\1\2, string) # 单引号 return string def process_doc(string): string html.unescape(string) # HTML 实体解码 string general_detokenize(string) return string作用html.unescape还原amp;、quot;等 HTML 实体general_detokenize通过正则消除标点、括号、引号两侧的多余空格让提示词中的文本更接近自然书写形式。5.2 wic 数据修复process_wic_docsdef process_wic_docs(dataset): def _helper(doc): # theres some issues with the encoding on this one doc[sentence1] ( process_doc(doc[sentence1]).encode(latin-1).decode(utf-8) ) doc[sentence2] ( process_doc(doc[sentence2]).encode(latin-1).decode(utf-8) ) return doc return dataset.map(_helper)在 wic.yaml 中通过process_docs: !function utils.process_wic_docs挂接。该函数对每条样本先做process_doc清理再以latin-1 → utf-8的方式强制重新编码——源码注释表明 wic 子集存在编码问题这一步骤用于修复乱码。5.3 coref 提示词生成coref_doc_to_textdef coref_doc_to_text(x): def _span_in_context(span_index, span_text): span_start span_index span_end span_start len(span_text.split( )) - 1 tokens[span_start] f*{tokens[span_start]} tokens[span_end] f{tokens[span_end]}* tokens x[text].split( ) _span_in_context(x[span1_index], x[span1_text]) _span_in_context(x[span2_index] - 1, x[span2_text]) # span1_index is 0-based but span2_index is 1-based ?? context process_doc( .join(tokens)) span_1 process_doc(x[span1_text]) span_2 process_doc(x[span2_text]) text ( fTestua: {context}\n fGaldera: Aurreko testuan, *{span_1}* eta *{span_2}* gauza bera dira?\n Erantzuna: ) return text在 coref.yaml 中通过doc_to_text: !function utils.coref_doc_to_text挂接。逻辑要点将原文按空格切分为 token 列表根据span1_index/span2_index在原文中用*星号标注出两个待判断的指代片段注意源码注释提示span1_index是 0 基、span2_index是 1 基故第二个索引减 1 对齐生成巴斯克语提示词先给出标注后的上下文再提问“上文文本中*片段1* 与 *片段2* 是否指同一事物”候选[ez, bai]。这种把 span 直接标注进上下文的做法与 super_glue/wsc 的preprocess_wsc.default_doc_to_text思路一致SuperGLUE WSC 同样把候选代词/名词在上下文中高亮后提问。5.4 指标聚合micro_f1_score 与 vaxx_f1_scoredef micro_f1_score(items): f1_metric load_metric(f1) golds, preds list(zip(*items)) f1_score f1_metric.compute(referencesgolds, predictionspreds, averagemicro)[f1] return f1_score def vaxx_f1_score(items): f1_metric load_metric(f1) golds, preds list(zip(*items)) f1_class f1_metric.compute(referencesgolds, predictionspreds, labels[0, 2], averageNone)[f1] f1_score sum(f1_class) / len(f1_class) return f1_scoremicro_f1_score对bhtc_v2、bec2016eu使用 micro 平均 F1对所有类别的预测/真实标签总体计算与原基准一致vaxx_f1_scorevaxx_stance特化的 F1——仅计算labels[0, 2]两个类别的 F1 后取平均。这意味着立场检测任务忽略“中立”label1类别仅评估“反对”与“支持”两类立场与 BasqueGLUE 原基准的立场检测评分设定保持一致。两者都依赖 Hugging Facedatasets的load_metric(f1)因此运行这些任务时同样需要联网获取指标实现。6. 评测流程小结与注意事项一次完整的 BasqueGLUE 评测流程可概括为加载数据从 Hugging Faceorai-nlp/basqueGLUE加载对应 subsetbhtc/bec/vaxx/qnli/wic/coref预处理仅部分任务wiceu经process_wic_docs修复编码epec_koref_bin经coref_doc_to_text生成标注提示词构造提示词按各任务的doc_to_text模板 doc_to_choice候选组成 multiple-choice 问题推理模型对每个候选答案计算对数概率取最高者为预测评分分类任务用 micro-F1vaxx 特化为两类 F1判断任务用准确率全部以validation作为 few-shot 示例来源、test作为评测集汇总输出六个任务的独立分数tag 不聚合。注意事项数据与 F1 指标均来自 Hugging Face首次运行需联网wic 与 coref 的提示词生成依赖utils.py中的函数引用!function语法运行时会自动加载同目录下的 Python 模块无需手动干预若需与论文Latxa中的基线对比建议使用同一模型架构与 few-shot 设置并引用 basqueglue/README.md 中的 BibTeX。7. 相关资源索引任务配置与辅助代码lm_eval/tasks/basqueglue/README.md、bhtc.yaml、bec.yaml、vaxx.yaml、qnli.yaml、wic.yaml、coref.yaml、utils.py任务形态对齐的英文基准glue/qnli、super_glue/wic、super_glue/wsc更广泛的巴斯克语评测套件basque_bench/README.md其中复用了qnlieuCLI 使用方式README.md 与 docs/interface.md 中关于lm_eval --tasks的参数说明【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

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

较早相关资讯

最新相关资讯

Dart Skills CLI:用AI技能包重构Dart项目交付链路 2026/9/15 6:20:41

Dart Skills CLI:用AI技能包重构Dart项目交付链路

不用绕弯子,直接说正题。我最近把手里一个断断续续维护了大半年的命令行工具整理成了 1.0 版本,名字叫 Dart Skills CLI。这名字乍看有点绕,简单解释就是:一个跑在终端里、专门服务 Dart 项目交付流程的 AI 辅助工具集。我在 Flut…

阅读更多 →
棉花叶子病害检测数据集VOC+YOLO格式处理与YOLOv8训练指南 2026/9/15 6:20:41

棉花叶子病害检测数据集VOC+YOLO格式处理与YOLOv8训练指南

简介:棉花叶部病害检测专用标注数据集,面向计算机视觉与智慧农业方向的研究者、学生及开发者,可用于目标检测模型的训练与评测。资源内含977张640640分辨率的棉花叶片jpg图像,并为每张图片配备Pascal VOC格式xml标注文件与YOLO格式…

阅读更多 →
YOLO旋转目标检测实战:航拍影像OBB标注训练与调优全流程 2026/9/15 6:20:41

YOLO旋转目标检测实战:航拍影像OBB标注训练与调优全流程

从航拍影像里把目标精确框出来,和普通街景检测完全是两回事。同一架无人机飞过一片停车场,正上方视角看下去,车辆排列方向各不相同,用普通水平框去框,很容易把相邻两辆车一起包进去,算 IoU 时全是误检&…

阅读更多 →
Kubernetes 1.13.3离线部署电商微服务实战:镜像导入与Ingress排错 2026/9/15 6:20:41

Kubernetes 1.13.3离线部署电商微服务实战:镜像导入与Ingress排错

简介:针对Kubernetes 1.13.3部署电商微服务的实战场景,面向云计算运维与K8s初中级学习者,整合了部署过程中的各类安装包与配置文档。包内共6个文件,以tar.gz压缩包和yaml配置为主,涵盖JDK、Maven、Nginx Ingress Contr…

阅读更多 →
Python第五次作业复盘:从类型转换到数据可视化的完整流程 2026/9/15 6:20:41

Python第五次作业复盘:从类型转换到数据可视化的完整流程

批第五次作业的时候,我注意到一件很有意思的事:前几次作业还在同一个水平线上的学生,到这一次开始明显分层了。有人交上来的代码能看到清晰的结构,函数拆得干净利落;有人交上来的则是一大段从上往下怼到底的脚本&#…

阅读更多 →
仿小米官网静态模板:Bootstrap+Swiper前端实战 2026/9/15 6:17:41

仿小米官网静态模板:Bootstrap+Swiper前端实战

简介:这是一套专为前端初学者与移动端网页开发者设计的仿小米官网风格HTML静态模板,聚焦手机端适配与品牌视觉还原,帮助用户快速搭建具备专业UI体验的响应式电商类站点。资源共59个文件,包含16个HTML页面(如index.html…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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