ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

lm-evaluation-harness 中的 NollySenti 情感分类任务:尼日利亚五语电影评论基准的配置与实现解析

2026/9/14 22:50:11 拓冰建站 浏览量
lm-evaluation-harness 中的 NollySenti 情感分类任务:尼日利亚五语电影评论基准的配置与实现解析 lm-evaluation-harness 中的 NollySenti 情感分类任务尼日利亚五语电影评论基准的配置与实现解析【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harnessNollySenti 是面向尼日利亚电影Nollywood评论情感分类的多语言数据集覆盖英语English、豪萨语Hausa、伊博语Igbo、尼日利亚皮钦语Nigerian Pidgin和约鲁巴语Yoruba五种尼日利亚广泛使用的语言。在 lm-evaluation-harness 仓库中它以 AfroBench 基准的情感分类子任务形式落地提供了从原始论文元数据到可运行 YAML 任务配置的完整链路。读完本文你将掌握 NollySenti 任务的文件组织结构、五种语言 × 五种 prompt 变体的配置细节、加权 F1 与准确率的指标聚合方式以及如何在本地命令行中运行该基准。NollySenti 数据集论文背景与研究动机lm_eval/tasks/afrobench/nollysenti/README.md记录了 NollySenti 的原始出处论文NollySenti: Leveraging Transfer Learning and Machine Translation for Nigerian Movie Sentiment ClassificationACL 2023 Short Papers原文链接。该论文的动机建立在两个现实之上非洲语言在 NLP 研究中长期被低估非洲拥有超过 2000 种本土语言但受限于标注数据稀缺这些语言在 NLP 研究中代表性严重不足已有非洲语言数据集往往局限于单一领域即便近年来出现了若干带标注的非洲语言语料它们通常只覆盖单一领域泛化到其他领域的能力存疑。为此论文构建了一个全新的 Nollywood 电影评论数据集覆盖上述五种尼日利亚语言并围绕跨领域情感分类cross-domain sentiment classification展开实验。论文的实证结论包括与从 Twitter 领域的同语言迁移相比从英语向同一目标领域迁移能带来超过 5% 的准确率提升利用英语到其他尼日利亚语言的机器翻译来弥合领域差异相比跨语言评估又进一步提升了约 7%尽管面向低资源语言的机器翻译质量往往不佳但分析显示情感相关词汇通常能得到保留。数据集主页位于https://github.com/IyanuSh/NollySenti见 README.md。在 AfroBench 基准中见 afrobench/README.mdNollySenti 被归类到afrobench_sentiment_tasks标签之下与 AfriSenti 等同属情感分类任务族。任务目录结构五语言 × 五 prompt 的组织方式在 lm-evaluation-harness 中NollySenti 位于lm_eval/tasks/afrobench/nollysenti/其组织方式体现了 AfroBench 基准一个数据集、多种 prompt、多种语言的设计理念lm_eval/tasks/afrobench/nollysenti/ ├── README.md # 论文信息与引用 ├── nollysenti.yaml # 分组配置聚合 5 个 prompt 变体 └── prompt_1/ ~ prompt_5/ # 5 个 prompt 变体每个含 5 种语言 ├── nollysenti # 核心任务配置无扩展名 YAML ├── nollysenti_eng.yaml ├── nollysenti_hau.yaml ├── nollysenti_ibo.yaml ├── nollysenti_pcm.yaml ├── nollysenti_yor.yaml └── utils.py # 自定义指标聚合函数这种prompt 变体 × 语言的二维矩阵结构让研究者可以独立评估提示模板与语言两个维度对模型性能的影响——这正是 AfroBench 论文衡量 LLM 在非洲语言上表现的核心实验设计。分组配置nollysenti.yaml 的聚合逻辑顶层文件 nollysenti.yaml 定义了一个名为nollysenti的分组group: nollysenti task: - nollysenti_prompt_1 - nollysenti_prompt_2 - nollysenti_prompt_3 - nollysenti_prompt_4 - nollysenti_prompt_5 aggregate_metric_list: - metric: acc aggregation: mean weight_by_size: true metadata: version: 1关键点task列表列出 5 个子任务分别对应 5 个 prompt 变体每个变体内部又通过include机制引入 5 种语言的细分任务aggregate_metric_list在分组层面对acc准确率做按样本量加权的均值聚合weight_by_size: true保证样本量较大的语言在分组得分中占据与其规模相称的权重与 afrobench/README.md 中的说明一致nollysenti属于数据集专属分组方便用户单独审查或编辑该数据集的全部 prompt。核心任务配置详解每个 prompt 变体目录下的无扩展名文件如 prompt_1/nollysenti是真正的任务定义。以 prompt_1 为例tag: - afrobench_sentiment_tasks - nollysenti_prompt_1 dataset_path: Davlan/nollysenti output_type: multiple_choice validation_split: validation test_split: test fewshot_split: validation doc_to_text: Does this movie description {{review}} have a Positive or Negative sentiment? Labels only\n doc_to_target: label doc_to_choice: - positive - negative should_decontaminate: true doc_to_decontamination_query: review metric_list: - metric: f1 aggregation: !function utils.weighted_f1_score average: weighted hf_evaluate: true higher_is_better: True ignore_case: true ignore_punctuation: true regexes_to_ignore: - , - \\$ - metric: acc aggregation: mean higher_is_better: true ignore_case: true ignore_punctuation: true regexes_to_ignore: - , - \\$ metadata: version: 1.0各字段的含义与作用如下配置字段取值作用tagafrobench_sentiment_tasks、nollysenti_prompt_1为任务打标签便于按任务族批量筛选或运行如情感分类全部任务dataset_pathDavlan/nollysentiHugging Face 数据集仓库路径运行时自动下载output_typemultiple_choice输出类型为多项选择模型对doc_to_choice中每个候选计算概率validation_split/test_splitvalidation/test验证集与测试集划分验证集用于 few-shot 示例采样fewshot_splitvalidationfew-shot 示例的来源划分doc_to_text模板字符串把样本字段{{review}}注入提示模板仅 prompt_1 显式给出其余 prompt 由变体各自定义或依赖默认模板doc_to_targetlabel样本中的答案字段doc_to_choice[positive, negative]二分类候选项正面 / 负面should_decontaminatetrue启用去污染检查doc_to_decontamination_queryreview去污染时用于 n-gram 匹配的文本字段值得注意的细节prompt_1 的模板为Does this movie description {{review}} have a Positive or Negative sentiment? Labels only\n要求模型仅输出标签Labels only这是标准的判别式情感分类提示prompt_2 ~ prompt_5见 prompt_2/nollysenti 至 prompt_5/nollysenti未显式定义doc_to_text这意味着它们采用与 prompt_1 不同的模板策略或依赖 few-shot 上下文5 个变体共同构成对提示敏感性的稳健评估doc_to_text字段在 config/task.py 中被类型化为str | Callable[..., str] | None即既支持静态模板字符串也支持动态可调用函数。指标配置加权 F1 与准确率任务同时报告两个指标f1使用自定义聚合函数!function utils.weighted_f1_score它从 lm_eval/utils.py 中导入每个变体的 utils.py 都只有一行from lm_eval.utils import weighted_f1_score。配置中average: weighted与hf_evaluate: true表明该 F1 采用按类别加权的计算方式并复用 Hugging Faceevaluate库的底层实现acc直接以mean聚合的准确率。两个指标都设置了ignore_case: true、ignore_punctuation: true并配置regexes_to_ignore忽略逗号与$符号用于在字符串匹配前归一化模型输出容忍大小写、标点等轻微格式差异——这对皮钦语、豪萨语等非标准拼写的文本尤为重要。语言变体配置include 机制的五语言展开每个 prompt 目录下通过 5 个语言 YAML 展开多语言评估以 prompt_1 为例nollysenti_eng.yamldataset_name: en include: nollysenti task: nollysenti_eng_prompt_1nollysenti_hau.yamldataset_name: ha include: nollysenti task: nollysenti_hau_prompt_1该模式的要点include: nollysenti引用同目录下的无扩展名核心配置文件实现配置继承避免在 5 个语言文件中重复编写全部字段dataset_name指定Davlan/nollysenti数据集中的语言子集en/ha/ig/pcm/yo对应英语、豪萨语、伊博语、尼日利亚皮钦语、约鲁巴语task为每个语言变体分配唯一任务名格式为nollysenti_语言缩写_prompt_N。由此生成的完整任务清单包括nollysenti_eng_prompt_1、nollysenti_hau_prompt_1、nollysenti_ibo_prompt_1、nollysenti_pcm_prompt_1、nollysenti_yor_prompt_1以及 prompt_2 至 prompt_5 的对应变体共25 个细粒度任务全部归入顶层分组nollysenti。运行方式在 lm-evaluation-harness 中运行 NollySenti 与运行其他任务一致通过lm_eval命令指定--tasks参数即可命令行接口定义见 lm_eval/_cli/。例如# 运行整个 nollysenti 分组25 个语言 × prompt 变体的加权聚合 lm_eval --model hf --model_args pretrainedyour-model --tasks nollysenti # 只运行英语 prompt_1 的变体 lm_eval --model hf --model_args pretrainedyour-model --tasks nollysenti_eng_prompt_1 # 通过标签运行所有 AfroBench 情感分类任务 lm_eval --model hf --model_args pretrainedyour-model --tasks afrobench_sentiment_tasks由于任务设置了fewshot_split: validation还可以配合--num_fewshot参数从验证集采样 few-shot 示例复现 AfroBench 论文中的提示式prompting评估设定。更完整的命令行参数说明可参考 docs/interface.md 与 docs/task_guide.md。引用方式在论文或技术报告中引用 NollySenti 数据集时请使用 README.md 中给出的 BibTeX 条目Shode et al., ACL 2023DOI: 10.18653/v1/2023.acl-short.85同时若使用 AfroBench 整体基准还应引用 afrobench/README.md 中的 AfroBench 论文arXiv:2311.07978并遵循各数据集各自的引用要求。小结NollySenti 在 lm-evaluation-harness 中的实现是论文元数据 → 基准分组 → 多 prompt 变体 → 多语言展开 → 指标聚合这一任务接入范式的典型样本。它一方面完整保留了原始论文的研究背景跨领域、跨语言迁移与机器翻译对低资源语言情感分类的提升另一方面通过include继承、tag标签、加权 F1 与按规模加权聚合等机制为研究者提供了即插即用、可独立复现 25 个细粒度结果的多语言情感分类评估入口。【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考