数据处理工具
convmerge:将异构对话与文本数据集转换为统一 LLM 训练 JSONL
snowmuffin/convmerge · Merge heterogeneous chat/text sources into a single LLM training format (JSONL)
ELI5:它是什么,解决什么问题
convmerge 是一个面向 LLM 监督微调的数据准备命令行工具与 Python 库,可把 Alpaca、ShareGPT、原始聊天 JSONL、工具调用、偏好数据以及 Parquet 等多种格式的数据集统一转换为 messages(SFT)或 {prompt, chosen, rejected}(DPO)格式的 JSONL。它支持从 HuggingFace 与 GitHub 拉取数据、格式归一化、按权重混合多个领域来源、去重、规则过滤、去污染、按目标模型聊天模板校验长度与格式,并提供面向 TRL、LLaMA-Factory、axolotl 的接入指南。项目定位于训练循环之前的数据整理环节,不负责模型训练或编排,过滤为基于规则,不包含基于模型的质量判断,也不做个人隐私信息移除,且为单机逐行流式处理而非分布式处理。
核心能力与快速开始
★ 0 · Python
- 能做什么
- 将 Alpaca、ShareGPT、chat JSONL、模板渲染文本列、工具调用数据(OpenAI、Hermes、Glaive、xLAM、LLaMA-Factory)及偏好数据(UltraFeedback、HH-RLHF、Orca DPO、Arena)等 65 种已测试布局转换为统一的 messages 或偏好对格式;支持从 HuggingFace 和 GitHub 按 YAML manifest 拉取数据;对 Parquet、杂乱 JSON、数组行 JSONL、CSV/TSV/XLSX 做归一化整理;按行或按字符/Token 权重混合多来源数据并输出可复现的混合记录;支持精确与近似去重、规则过滤、对照评测集去污染;按目标模型的聊天模板检查 Token 长度并处理连续角色、思考内容字段等约束。
- 适用场景
- 在将多个不同布局的公开指令微调数据集汇入同一次 SFT 或 DPO 训练前,统一格式并控制各领域混合比例;为 TRL、LLaMA-Factory、axolotl 准备可直接加载的训练文件;整理包含工具调用或多模态引用的对话数据,并校验其是否符合目标模型聊天模板;从 HuggingFace 或 GitHub 复现性地抓取并清洗原始数据。
- 项目形态
- 可直接使用的工具
- 部署方式
- 以 pip 安装的 Python 命令行工具与库形式本地运行,单机逐行流式处理;未说明其他部署方式。
- 主要依赖
- Python 环境;核心安装涵盖 JSONL 相关命令、YAML 配方、GitHub 拉取;使用 HuggingFace 拉取、Parquet、XLSX、Token 统计、近似去重等能力需安装对应 extras(如 fetch-all、parquet、xlsx、tokens、quality)及相应依赖。
- 使用限制
- 项目明确不训练模型、不编排训练任务,本版本也不运行模型;过滤仅基于规则,不提供基于模型的质量分类、LLM 评判或主题、安全标签;不做个人隐私信息移除;不适用于网页规模语料,单机逐行处理无法替代分布式流水线;README 引用的两项小型预注册研究未观察到清洗数据带来模型行为提升。
- 许可证
- MIT
- 最近推送
- 2026-10-31 19:40
资料检查:2026-11-01 07:00 · 卡片整理:2026-11-08 07:00
卡片由 AI 根据仓库资料整理,未进行安装或运行验证
职业应用
程序员
在训练或微调 LLM 之前,用命令行把 Alpaca、ShareGPT、工具调用、偏好数据等多种异构数据集统一转换为 messages(SFT)或 {prompt, chosen, rejected}(DPO)格式的 JSONL,并做去重、规则过滤、去污染和按目标模型聊天模板校验长度与格式,供 TRL、LLaMA-Factory、axolotl 等框架直接使用。
查看内容依据
convmerge 是一个面向 LLM 监督微调的数据准备命令行工具与 Python 库,可把 Alpaca、ShareGPT、原始聊天 JSONL、工具调用、偏好数据以及 Parquet 等多种格式的数据集统一转换为 messages(SFT)或 {prompt, chosen, rejected}(DPO)格式的 JSONL。
由 AI 根据来源材料整理,未进行安装或运行验证
讨论 0
登录后参与讨论,阅读资讯无需注册。
还没有评论,来分享第一个看法。