摩洛哥达里贾语的 Atlaset 数据集:从数据收集、分析到模型训练

社区文章 发布于 2025 年 3 月 6 日

TL;DR

我们提供了一个全面的摩洛哥达里贾语数据集,以解决该广泛使用的方言资源匮乏的问题。我们详细介绍了数据收集方法,提供了彻底的数据分析,并展示了在该数据集上训练后,掩码语言模型和因果语言模型性能的提高。

  1. 试用我们的演示,展示我们用于摩洛哥达里贾语的AlAtlas LLM
  2. 试用我们的演示,展示我们用于摩洛哥达里贾语的掩码语言模型
  3. 我们的 Hugging Face 上的 Atlaset 数据集
  4. 代码可在Github上获取。

1. 摩洛哥达里贾语面临的挑战

摩洛哥达里贾语处于一个迷人的语言十字路口,它融合了阿拉伯语的基础,并与柏柏尔语、法语和西班牙语元素交织在一起,形成了一幅丰富的语言图景。这种充满活力的方言虽然在摩洛哥各地广泛使用,但在计算语言学领域却面临独特的挑战。

image/png

与现代标准阿拉伯语 (MSA) 和其他资源充足的语言不同,摩洛哥达里贾语处于数字资源匮乏的状态,**没有标准化的书写系统**来指导其表达。这种**正字法的流动性**,即文本可能以阿拉伯文字、拉丁字母或创造性的混合形式出现,给传统的自然语言处理 (NLP) 方法带来了巨大的障碍。该方言固有的**语码转换**和**地域变异**趋势进一步加剧了这些挑战,尽管摩洛哥达里贾语在日常生活中**具有文化意义并广泛使用**,但它仍被归类为**资源不足的语言**。

这些挑战为为数百万摩洛哥达里贾语使用者开发人工智能应用程序制造了重大障碍,凸显了对数据集、基础模型和自然语言处理工具等**专用资源的需求**。

2. 数据收集:Atlaset,一个母数据集

我们收集了我们认为最完整的公开摩洛哥达里贾语文本数据。我们的数据集 **Atlaset** 包含了所有已知的公共资源,创建了一个全面的预训练语料库。我们欢迎社区贡献,以识别任何被忽视或新发布的数据集。

除了现有资源,我们还仔细整理了来自多个来源的其他多样化内容。完整的数据集包括来自以下文本:

  • 网站: 新闻门户、本地论坛和文化博客。
  • 博客: 个人叙述和本地故事平台。
  • 社交媒体帖子: 提供口语表达的公开帖子。
  • 其他潜在数据集: 调查了现有与摩洛哥达里贾语相关的可用资源。

值得一提的是,我们发现数据集之间存在重叠,特别是与 M-A-D/DarijaBridge。这些重复数据已被删除,我们保留了原始来源。

语料库统计

  • 总大小:1.13 GB
  • 总行数:1.17M
  • 总标记数(使用Jais-13B分词器)
    • 训练集:155,501,098 个标记
    • 测试集:19,187 个标记

3. 数据分析

标记和词语度量

该数据集显示了多种文本长度。下图分别展示了标记和词汇计数的分布。

image/png image/png

视觉洞察

为了直观地了解数据集中最常见的词语和词语序列(n-gram),我们提供了:

  • 词云: 数据集中最常见词语的可视化。

    image/png

  • Top k n-grams: 分析最常见的 n-gram,以揭示语言模式。

    image/png

词云和低阶n-gram(1-gram和2-gram)有效地捕捉了常见的日常口语模式,但对于k > 2的更高值,这种趋势就会失效。这种不一致性揭示了当前数据集版本中的一个局限性,需要进一步调查和完善。

值得注意的是,词云识别出“ديال”(发音为“dial”)是 Atlaset 中最常用的词。这种主导地位源于其作为所有格词的功能,这是大多数语言中功能词主导自然语言频率分布的典型特征。

主题分析

我们现在将对数据集中主要主题进行简要探讨。我们抽取了 1,000 个元素,并使用 BERTTopic 和 DBSCAN 进行高效聚类。过程如下:

  1. 我们从Atlaset 数据集中抽取了 1,000 个元素(使用 seed=1998)。
  2. 我们使用专门针对摩洛哥达里贾语的嵌入模型计算了嵌入。
  3. 我们使用均匀流形逼近和投影(UMAP)将维度降低到 $\mathbb{R}^2$。
  4. 我们根据 silhouette_score 优化了 DBSCAN 的 $\epsilon$ 和 min_samples 参数。
  5. 我们绘制了结果

(您可以在 这个 GitHub 仓库中找到代码)

image/png

结果显示,讨论的主题涵盖了摩洛哥新闻和政治、气候变化、体育、艺术、电影、摩洛哥食谱以及日常需求。

值得注意的是,这项分析得益于我们的嵌入模型,它有效地提取了相关的语言特征。该模型是一个建立在下一节详述的掩码语言模型之上的句子转换器。实现细节、评估指标和技术规范将包含在我们的下一次发布中。

4. 训练

我们训练了两种不同的模型,一个掩码语言模型和一个因果语言模型。

掩码语言模型

我们选择 FacebookAI/xlm-roberta-large 作为我们的基础模型,因为它具有强大的多语言性能。我们对该模型在 Atlaset 数据集上进行了微调。

在微调过程中,我们使用了 128 的总批大小,并进行了学习率优化,测试了 {1e-4, 5e-5, 1e-5} 范围内的值。我们的实验表明,使用 1e-4 的学习率进行训练产生了最佳性能。

因果语言模型 (SLM)

对于我们的因果语言建模(小型语言模型)方法,我们选择了 Qwen2.5,因为它具有卓越的多语言能力和强大的基线性能(来源)。我们专注于对基础 Qwen2.5-0.5B 模型变体进行持续预训练,使用 Atlaset 数据集,上下文长度为 2048

该模型以 128 的总批大小和 1e-4 的学习率进行微调,这通常被认为是 Qwen2.5 模型有效的学习率。

5. 评估

为了验证在 Atlaset 数据集上训练是否能带来有意义的改进,我们通过一个专门的 Hugging Face 空间进行了一项全面的人工评估。排行榜结果总结如下:

掩码语言模型排行榜

模型 胜场 总比较次数 胜率 (%)
atlasia/XLM-RoBERTa-Morocco 72 120 60
aubmindlab/bert-base-arabertv02 63 114 55.26
SI2M-Lab/DarijaBERT 55 119 46.22
FacebookAI/xlm-roberta-large 51 120 42.5
google-bert/bert-base-multilingual-cased 29 120 24.17

因果语言模型排行榜

模型 胜场 总比较次数 胜率 (%)
atlasia/Al-Atlas-0.5B 105 120 87.5
MBZUAI-Paris/Atlas-Chat-2B 99 127 77.95
Qwen/Qwen2.5-0.5B 19 130 14.62

结果分析

评估结果显示,在掩码语言模型和因果语言模型方法中,相对于基线模型,性能均有显著提升。

  • 因果语言模型:我们对 Atlaset 数据集进行微调的 Qwen2.5-0.5B 模型,与基线模型相比,性能提升了 72.88%。此外,它在多个提示中均提高了困惑度和上下文理解能力。

  • 掩码语言模型:我们对 Atlaset 数据集进行微调的 FacebookAI/xlm-roberta-large 模型,在理解和生成摩洛哥达里贾语文本方面,准确性和流畅性均有提高。与基线模型相比,性能提升了 17.5%

也许最值得注意的是,我们拥有 0.5B 参数的因果语言模型比 MBZUAI-Paris/Atlas-Chat-2B 提升了近 10%,这表明了在高质量、特定领域数据上进行有针对性预训练的有效性。这一显著成果表明,我们的模型在同类模型中表现出色,仅用四分之一的参数就实现了卓越的性能。

这些发现验证了 Atlaset 数据集的质量和实用性,它作为开发更有效的摩洛哥达里贾语语言模型的重要资源。显著的改进突出表明,在方言数据上进行专门的预训练可以显著提升性能,即使是使用较小的模型架构。

结论

本项目强调了利用摩洛哥达里贾语目标预训练数据集的潜力:

  • 我们通过多样化的数据收集细致的预处理解决了语言挑战。
  • 深入的数据分析证实了数据集的丰富性和复杂性。
  • 使用掩码和因果语言模型进行的训练实验表明,与基线模型相比,性能显著提高。
  • 未来的工作将通过更多资源扩展该数据集,并进一步微调下游任务以及开发基于聊天的模型。

致谢

非常感谢摩洛哥达里贾语背后充满活力的研究社区。特别感谢 Nouamane TaziAli Nirheche 的有趣讨论,以及 Hugging Face我们社区的赞助,以及构建如此出色的生态系统,使这项研究成为可能。

加入我们

引用

@article{atlasia2025atlasetblog,
  title={Atlaset Dataset for Moroccan Darija: From Data Collection, Analysis, to Model Trainings},
  author={Abdelaziz Bounhar and Abdeljalil El Majjodi},
  year={2025},
  journal={Hugging Face Blog},
  url={https://huggingface.co/blog/atlasia/atlaset-dataset-moroccan-darija},
  organization={AtlasIA}
}

社区

注册登录 发表评论