恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

在 lm-evaluation-harness 中评测 MasakhaPOS:非洲语言词性标注任务的配置、提示设计与指标实现

  • 首页
  • 资讯中心
  • /
  • 在 lm-evaluation-harness 中评测 MasakhaPOS:非洲语言词性标注任务的配置、提示设计与指标实现

相关资讯

Spring事务管理从原理到实战:@Transactional失效场景与排查指南 2026/9/15 8:15:19
LeetCode 972 相等有理数:分数法破解循环小数与字符串解析 2026/9/15 8:15:19
AD多域管理工具选型:从ADUC到平台化治理的实战指南 2026/9/15 8:15:19

最新资讯

C++初阶——list、stack和queue
最小能耗与有效付出能力双约束网格建模方法
如何解决顽固高AI率?实测8款热门降AI工具,附3个核心降AI技巧
手把手教你C++——类和对象
二叉树后序遍历非递归实现:从递归到三种迭代方法的深度解析
Oracle AWR 自动巡检报告

今日推荐

GDPR下大数据架构重构与隐私保护实践
多组学数据平台架构设计与优化实践
企业主数据管理系统架构设计与实施全解析

本周热门

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化
Flutter应用改名全指南:从Android到iOS的配置与工具实践

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

在 lm-evaluation-harness 中评测 MasakhaPOS:非洲语言词性标注任务的配置、提示设计与指标实现

发布时间:2026/9/15 8:15:19
在 lm-evaluation-harness 中评测 MasakhaPOS:非洲语言词性标注任务的配置、提示设计与指标实现 在 lm-evaluation-harness 中评测 MasakhaPOS非洲语言词性标注任务的配置、提示设计与指标实现【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness本篇指南聚焦lm-evaluation-harness仓库中lm_eval/tasks/afrobench/masakhapos任务实现完整解析 MasakhaPOSAfricaPOS词性标注评测的目录组织、YAML 配置、五种提示模板、标签映射与准确率聚合逻辑。读完本文你将掌握如何在 AfroBench 基准框架下运行、复现并扩展这一覆盖 20 种非洲语言的 POS 标注评测。MasakhaPOS 任务背景AfricaPOS 数据集与论文MasakhaPOS 是面向类型学上高度多样的非洲语言的词性标注Part-of-Speech Tagging任务其论文发表于 ACL 2023Long Papers核心贡献是 AfricaPOS——当时规模最大的、覆盖 20 种非洲语言的 POS 标注数据集。根据本任务目录下 README.md 中收录的论文摘要数据集遵循通用依存关系Universal Dependencies, UD标注指南构建论文同时讨论了在多种非洲语言上应用 UD 指南进行标注时遇到的实际挑战作者使用条件随机场CRF与多种多语言预训练语言模型开展了系统的基线实验在单源single-source与多源multi-source两种设置下选择最优迁移语言能够显著提升目标语言的 POS 标注性能尤其是与参数微调方法结合时关键结论是与目标语言在语系和形态句法属性上匹配的迁移语言对未见语言的 POS 标注更有效。在 AfroBench 基准中MasakhaPOS 被归入masakhapos_tasks标签与masakhaner命名实体识别等任务并列作为 15 个任务之一用于评测 LLM 在非洲语言上的表现见 afrobench/README.md。在仓库的评测体系里afrobench组运行该基准的全部任务而masakhapos组则只运行 POS 任务相关的全部提示变体便于单独审查和调试。任务目录结构分组、语言与提示变体lm_eval/tasks/afrobench/masakhapos/目录采用分组配置 按提示变体分目录的组织方式masakhapos/ ├── masakhapos.yaml # 顶层 group 定义聚合 5 个提示变体 ├── utils.py # doc_to_text / doc_to_target 基础实现 ├── gen_utils.py # 批量生成各语言 YAML 的脚本含全部提示模板 ├── prompt_1/ ~ prompt_5/ # 每种提示变体一个目录 │ ├── masakhapos_yaml # 共享任务模板无扩展名 │ ├── masakhapos_{lang}.yaml # 20 种语言各自的任务配置 │ └── utils.py # 该变体下的标签映射与聚合函数 └── README.md # 论文与引用信息其中prompt_1至prompt_5五个目录结构完全对称每个目录内都包含 20 个语言文件如masakhapos_bam.yaml、masakhapos_yor.yaml、masakhapos_zul.yaml以及一个无扩展名的共享模板文件masakhapos_yaml。这种设计让研究者既可以按语言、按提示逐一评测也可以通过顶层 group 一次跑完全部组合。顶层分组配置masakhapos.yamlmasakhapos.yaml 定义了masakhapos组group: masakhapos task: - masakhapos_prompt_1 - masakhapos_prompt_2 - masakhapos_prompt_3 - masakhapos_prompt_4 - masakhapos_prompt_5 aggregate_metric_list: - metric: acc aggregation: mean weight_by_size: true metadata: version: 1该配置的核心语义task列出五个子任务每个提示变体本身也是由 20 种语言聚合而成的组组名通过{dataset}_{lang}_{mode}规则生成aggregate_metric_list声明组的聚合指标为acc使用mean聚合并开启weight_by_size: true——意味着按各语言样本量加权平均避免小语种主导整体分数这种组套组的层级group → prompt → language是 lm-evaluation-harness 处理大规模多语言评测的典型结构。共享任务模板解析masakhapos_yaml每个prompt_N/目录下的无扩展名模板masakhapos_yaml是任务的骨架全部 20 个语言文件都通过include: masakhapos_yaml继承它再覆写dataset_name、doc_to_text与task三个字段。以 prompt_1/masakhapos_yaml 为例tag: - masakhapos_tasks - masakhapos_prompt_1 dataset_path: masakhane/masakhapos dataset_name: null dataset_kwargs: {trust_remote_code: True} output_type: generate_until generation_kwargs: do_sample: false until: - /s - |im_end| validation_split: validation test_split: test fewshot_split: train doc_to_target: !function utils.doc_to_target should_decontaminate: true doc_to_decontamination_query: Sentence: {{token}}\nOutput: filter_list: - filter: - function: regex_pos name: flexible-extract metric_list: - metric: acc aggregation: !function utils.acc_score higher_is_better: true ignore_case: true ignore_punctuation: true regexes_to_ignore: - , metadata: version: 1.0各字段作用如下配置项值说明tagmasakhapos_tasks、masakhapos_prompt_N任务标签masakhapos_tasks供 AfroBench 总标签体系索引dataset_path/dataset_namemasakhane/masakhapos/null数据集来源为 Masakhane 社区发布的 AfricaPOS 数据集具体语言由语言文件中的dataset_name如bam指定dataset_kwargstrust_remote_code: True数据集需远程加载代码需显式信任output_typegenerate_until生成式任务模型自由生成直到遇到停止符generation_kwargsdo_sample: false、until: [/s, |im_end|]贪心解码同时覆盖 Llama 系/s与 Chat 系|im_end|两种结束符validation_split/test_split/fewshot_splitvalidation/test/trainfew-shot 示例取自训练集验证/测试使用官方划分doc_to_target!function utils.doc_to_target从样本读取upos整数标签并映射为 POS 标签串should_decontaminatetrue开启去污染检查见 docs/decontamination.mdfilter_listregex_posflexible-extract用正则从模型输出中提取(word, TAG)元组列表容忍格式噪声metric_listacc!function utils.acc_score词级准确率按句子逐对计算后取均值值得注意metric_list中同时出现了ignore_case: true、ignore_punctuation: true与regexes_to_ignore: [,]——这三者主要作用于原始字符串匹配类指标而 POS 任务实际分数由utils.acc_score计算regex_pos过滤函数负责把模型输出的自由文本解析成结构化标签序列是生成式输出能够被逐词打分的桥梁。五种提示模板从通用指令到专家角色任务设计了 5 种提示变体全部集中在 gen_utils.py 的prompt_func()中。它们共享同一套 POS 标签集合ADJ, ADP, ADV, AUX, CCONJ, DET, INTJ, NOUN, NUM, PART, PRON, PROPN, PUNCT, SCONJ, SYM, VERB, X对应 UD 通用标签体系并要求模型输出按输入词序排列的(word, tag)元组列表prompt_1通用指令式。Please provide the POS tags for each word in the input sentence…直接面向任意语言文本作为基线提示prompt_2专家角色 语言注入。You are an expert in tagging words and sentences in {lang} with the right POS tag.其中{lang}会替换为目标语言的英文名如Bambara提示模型以该语言专家身份标注prompt_3语言学家角色。Acting as a {lang} linguist and without making any corrections or changes to the text…强调只做标注、不改动原文约束模型不擅自改写句子prompt_4任务式指令。Annotate each word in the provided sentence with the appropriate POS tag.措辞更简洁弱化角色设定prompt_5带标签定义的详解式。NOUN: Noun (person, place, thing), VERB: Verb (action, state)…——为 17 个标签逐一给出英文释义对能力较弱的模型更友好但提示更长。prompt_2与prompt_3中的语言名在 YAML 生成阶段由languages字典如bam: Bambara、zul: isiZulu、pcm: Nigerian Pidgin注入因此同一变体下每种语言的提示文本不同。生成后的实际效果可从 prompt_1/masakhapos_bam.yaml 与 prompt_2/masakhapos_bam.yaml 中对照查看——前者是通用指令后者带有 expert in tagging words and sentences in Bambara 的角色前缀。数据转换与标签映射utils.pymasakhapos/utils.py 提供两个核心函数doc_to_text(doc)将样本构造成提示文本以多行指令 标签集合开头然后以Input: {tokens}填入样本的 token 序列最后以Output:收尾引导模型开始生成。从format(subjectdoc[tokens])的写法看该函数直接使用样本中的tokens字段作为输入词表。doc_to_target(doc)完成整数标签到 POS 标签的映射pos_tag_map { 0: NOUN, 1: PUNCT, 2: ADP, 3: NUM, 4: SYM, 5: SCONJ, 6: ADJ, 7: PART, 8: DET, 9: CCONJ, 10: PROPN, 11: PRON, 12: X, 13: _, 14: ADV, 15: INTJ, 16: VERB, 17: AUX, } return [pos_tag_map[tag] for tag in doc[upos]]它把数据集中upos字段的整数编码逐一映射为 17 个 UD 标签另有13: _表示空标注返回与输入词序严格对应的标签列表。prompt_2等目录内的utils.py保留了完全相同的映射同时额外实现聚合函数。词级准确率聚合acc_score在每个prompt_N/utils.py中acc_score(items)定义了该任务的准确率聚合逻辑核心步骤见 prompt_2/utils.py将评测样本解包为golds与preds两组用chain.from_iterable把模型输出中嵌套的标签序列展平对每条样本将 gold 与 pred截断到相同长度min_length min(len(gold), len(pred))避免模型多生成或少生成标签导致长度不匹配调用sklearn.metrics.accuracy_score计算该句的词级准确率对所有句子取平均得到任务的acc分数higher_is_better: true。这种先逐句对齐、再逐句打分、最后全局平均的方式配合regex_pos过滤使生成式 POS 标注既能容忍输出格式抖动又能精确反映标签预测的正确率。此外utils.py顶部还引入了weighted_f1_score来自lm_eval.utils说明该任务体系同样预留了 F1 类指标的计算能力。批量生成语言配置gen_utils.py由于 20 种语言 × 5 种提示 100 个 YAML 文件结构高度重复仓库用 gen_utils.py 自动化生成。其关键机制prompt_func(mode, lang)维护五种提示模板其中{lang}由语言全名注入languages字典列出 20 种 ISO 语言代码及其英文名bam(Bambara)、bbj(Ghomala)、ewe(Ewe)、fon(Fon)、hau(Hausa)、ibo(Igbo)、kin(Kinyarwanda)、lug(Luganda)、luo(Dholuo)、mos(Mossi)、nya(Chichewa)、pcm(Nigerian Pidgin)、sna(chiShona)、swa(Kiswahili)、tsn(Setswana)、twi(Twi)、wol(Wolof)、xho(isiXhosa)、yor(Yoruba)、zul(isiZulu)——涵盖西非、东非、中非与南部非洲多个语系每个生成文件通过include: masakhapos_yaml继承共享模板仅覆写dataset_name语言代码、taskmasakhapos_{lang}_{mode}与doc_to_text对应提示文本命令行接口支持--output-dir、--modeprompt_1~prompt_5与--overwrite默认写入当前目录文件已存在且未加--overwrite时抛出FileExistsError并列出冲突文件。生成的文件头部均带有# Generated by utils.py注释便于区分手写配置与生成产物。运行评测与进一步阅读在仓库根目录运行python -m lm_eval --model hf --model_args pretrained模型名 --tasks masakhapos即可评测全部 5 种提示、20 种语言组合如需单独调试某个提示变体或语言可将--tasks指定为masakhapos_prompt_1、masakhapos_bam_prompt_2等粒度。AfroBench 基准还提供了afrobench全量与afrobench_lite精简版两组入口见 afrobench/README.md如需了解命令行接口细节可参考 docs/interface.md任务与配置文件规范见 docs/new_task_guide.md 与 docs/config_files.md。本任务完整覆盖了数据源、提示设计、标签映射、过滤与聚合五个环节是从头理解生成式结构化标注任务如何在 lm-evaluation-harness 中落地的典型范例。引用 MasakhaPOS 论文时可使用 masakhapos/README.md 中给出的 BibTeX 条目Dione et al., ACL 2023。【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号