设计波斯语合成数据流水线
训练 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 对齐的完整引擎。
Optional learning community: https://t.me/GyaanSetuAi
