设计波斯语合成数据流水线

训练 LLM 不再仅仅关乎模型规模的扩大,而在于提升数据质量。

大多数波斯语数据集缺乏结构化。这导致模型在遵循指令方面表现不佳。问题在于数据的匮乏,而非模型的大小。

我构建了一个流水线来解决这个问题。它涵盖了从主题图谱到 QLoRA 微调的全过程。

流水线流程:

  • 主题树构建
  • LLM 生成
  • 去重
  • 质量评分
  • 数据集导出
  • QLoRA 微调
  • 评估

核心设计规则:

  • 51 个领域以确保覆盖范围的平衡。
  • 语义去重以消除重复观点。
  • 使用 GPT 模型进行多模型生成,以减少偏差。
  • 使用 Qwen2.5 3B Instruct 进行最终微调。

数据引擎的工作原理: 我使用多个模型来创造多样性。GPT 模型提供推理能力和变化,这在保持低成本的同时实现了高多样性。

我使用语义过滤来清洗数据。如果两条指令的相似度得分超过 0.75,我会删除其中一条。这可以防止模型对相同模式产生过拟合。

我使用 LLM 作为评判者来对质量进行评分。它检查:

  • 流利度
  • 相关性
  • 完整性

只有得分在 3.5 或以上的数据才会保留在数据集中。

微调结果: 我通过 Google Colab 对 Qwen2.5 3B Instruct 模型使用了 QLoRA。QLoRA 训练的是小型适配器 (adapters) 而非全量权重。这在保持高性能的同时节省了内存。

结果显示出了巨大的差异:

  • 基座模型经常切换到阿拉伯语。
  • 微调后的模型能够说流利且连贯的波斯语。

主要的教训很明确:数据工程比模型规模扩展更重要。数据质量是主要的瓶颈。

核心洞察:

  • 双重过滤对于获取干净的数据是必要的。
  • 结构化的主题图谱比自由提示词效果更好。
  • LLM 评判者是系统中的关键组成部分。

该系统是一个用于低资源 LLM 对齐的完整引擎。

Source: https://dev.to/mohammadheydari/designing-a-synthetic-data-pipeline-for-persian-llm-fine-tuning-from-topic-graphs-to-qlora-5cg5

Optional learning community: https://t.me/GyaanSetuAi