Felladrin/ChatML-reddit-instruct-curated
收藏Hugging Face2024-02-17 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/Felladrin/ChatML-reddit-instruct-curated
下载链接
链接失效反馈官方服务:
资源简介:
---
license: mit
language:
- en
size_categories:
- 10K<n<100K
task_categories:
- question-answering
- text-generation
---
[euclaise/reddit-instruct-curated](https://huggingface.co/datasets/euclaise/reddit-instruct-curated) in ChatML format, ready to use in [HuggingFace TRL's SFT Trainer](https://huggingface.co/docs/trl/main/en/sft_trainer).
Python code used for conversion:
```python
from datasets import load_dataset
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("Felladrin/Llama-160M-Chat-v1")
dataset = load_dataset("euclaise/reddit-instruct-curated", split="train")
def format(columns):
post_title = columns["post_title"].strip()
post_text = columns["post_text"].strip()
comment_text = columns["comment_text"].strip()
if post_text:
user_message = f"{post_title}\n{post_text}"
else:
user_message = post_title
messages = [
{
"role": "user",
"content": user_message,
},
{
"role": "assistant",
"content": comment_text,
},
]
return { "text": tokenizer.apply_chat_template(messages, tokenize=False) }
dataset.map(format).select_columns(['text', 'post_score', 'comment_score']).to_parquet("train.parquet")
```
许可证:MIT许可证
语言:英语
样本量范围:1万至10万之间
任务类别:问答任务、文本生成任务
本数据集为 [euclaise/reddit-instruct-curated](https://huggingface.co/datasets/euclaise/reddit-instruct-curated) 的聊天标记语言(ChatML)格式版本,可直接用于 [HuggingFace TRL的监督微调训练器(SFT Trainer)](https://huggingface.co/docs/trl/main/en/sft_trainer)。
用于格式转换的Python代码如下:
python
from datasets import load_dataset
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("Felladrin/Llama-160M-Chat-v1")
dataset = load_dataset("euclaise/reddit-instruct-curated", split="train")
def format(columns):
post_title = columns["post_title"].strip()
post_text = columns["post_text"].strip()
comment_text = columns["comment_text"].strip()
if post_text:
user_message = f"{post_title}
{post_text}"
else:
user_message = post_title
messages = [
{
"role": "user",
"content": user_message,
},
{
"role": "assistant",
"content": comment_text,
},
]
return { "text": tokenizer.apply_chat_template(messages, tokenize=False) }
dataset.map(format).select_columns(['text', 'post_score', 'comment_score']).to_parquet("train.parquet")
提供机构:
Felladrin原始信息汇总
数据集概述
许可证
- MIT许可证
语言
- 英语
数据规模
- 数据量介于10K到100K之间
任务类别
- 问答
- 文本生成
数据集名称
- euclaise/reddit-instruct-curated
数据格式
- ChatML格式
适用场景
- 适用于HuggingFace TRL的SFT Trainer
数据处理代码
python from datasets import load_dataset from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("Felladrin/Llama-160M-Chat-v1")
dataset = load_dataset("euclaise/reddit-instruct-curated", split="train")
def format(columns): post_title = columns["post_title"].strip() post_text = columns["post_text"].strip() comment_text = columns["comment_text"].strip()
if post_text:
user_message = f"{post_title}
{post_text}" else: user_message = post_title
messages = [
{
"role": "user",
"content": user_message,
},
{
"role": "assistant",
"content": comment_text,
},
]
return { "text": tokenizer.apply_chat_template(messages, tokenize=False) }
dataset.map(format).select_columns([text, post_score, comment_score]).to_parquet("train.parquet")
搜集汇总
数据集介绍

构建方式
在自然语言处理领域,高质量的指令微调数据集对于提升模型对话能力至关重要。Felladrin/ChatML-reddit-instruct-curated 数据集基于 euclaise/reddit-instruct-curated 源数据集,通过精心设计的转换流程构建而成。具体而言,该数据集利用 HuggingFace Transformers 库中的 AutoTokenizer,对原始数据中的帖子标题、帖子正文和评论内容进行结构化重组,将其转换为 ChatML 格式的对话模板。转换过程中,若帖子正文存在,则将标题与正文拼接为用户消息;否则仅使用标题。最终,每条数据以 tokenizer.apply_chat_template 方法生成标准化的文本字段,并保留帖子得分和评论得分作为辅助特征,形成可直接用于监督式微调的高质量数据。
特点
该数据集的核心特点在于其格式统一性与实用性。所有样本均采用 ChatML 对话模板,清晰区分用户与助手的角色,使得模型能够直接学习多轮交互中的上下文依赖关系。数据规模介于 1 万至 10 万条之间,兼顾了训练效率与多样性。每条记录不仅包含经过格式化的对话文本,还附带 post_score 和 comment_score 两个数值特征,为研究者提供了评估数据质量和进行难度筛选的潜在依据。此外,数据集源自 Reddit 社区的真实问答,覆盖广泛的主题领域,有助于增强模型在开放式指令理解与生成上的泛化能力。
使用方法
使用该数据集进行模型训练时,推荐结合 HuggingFace TRL 的 SFT Trainer 框架。用户可直接加载数据集中的 'text' 字段作为输入,配合对应的 tokenizer 进行批处理与动态填充。训练前,可依据 post_score 或 comment_score 对数据进行筛选或加权,以优先利用高质量样本。数据集的 ChatML 格式天然适配于因果语言模型的监督式微调流程,无需额外预处理。研究者亦可将其作为基准数据,用于评估不同模型在指令遵循和对话连贯性上的表现,或与其他格式的数据集混合使用以增强训练多样性。
背景与挑战
背景概述
Felladrin/ChatML-reddit-instruct-curated数据集诞生于大语言模型指令微调需求蓬勃发展的背景下,由研究者Felladrin于2023年基于euclaise/reddit-instruct-curated原始语料转换而来。该数据集旨在将Reddit社区中丰富的问答对转化为标准化的ChatML格式,以适配HuggingFace TRL的SFT Trainer训练框架。其核心研究问题在于如何利用社交平台上的自然对话数据,构建高质量、结构化的指令微调样本,从而提升语言模型对开放式指令的理解与生成能力。作为Reddit语料库与高效微调工具之间的桥梁,该数据集为小型语言模型(如Llama-160M)的轻量化对齐训练提供了便捷资源,在开源社区中推动了指令微调数据标准化进程。
当前挑战
该数据集面临的挑战首先体现在领域问题层面:Reddit对话天然包含大量非正式表达、噪声和话题漂移,从海量用户生成内容中提取具有明确指令-回应逻辑的高质量样本,并确保其覆盖多样化的知识领域与推理类型,是提升模型泛化能力的关键难题。在构建过程中,原始数据需经过格式转换与字段筛选,这一流程面临多重技术挑战:过滤低质量或重复对话以避免过拟合,平衡post_score与comment_score等元数据权重以保留有意义的交互,以及设计统一的ChatML模板以兼容不同分词器(如Llama系列)的对话格式。此外,数据规模限制在10K至100K之间,如何在有限样本中实现指令分布的充分性,避免模型对特定话题产生偏见,同样是数据工程中需要精细权衡的挑战。
常用场景
经典使用场景
Felladrin/ChatML-reddit-instruct-curated 数据集以 ChatML 格式精心封装了 Reddit 平台上的指令-回复对,为大型语言模型的指令微调提供了高质量的训练素材。在自然语言处理领域,该数据集最经典的使用场景是作为监督式微调(SFT)的输入,借助 HuggingFace TRL 的 SFT Trainer,研究者能够高效地将预训练语言模型适配为具备指令理解与对话生成能力的对话代理,从而在问答、文本生成等任务中显著提升模型的表现。
衍生相关工作
基于该数据集衍生了一系列具有影响力的工作,包括对指令微调中数据质量与模型对齐效果的实证研究,以及探索不同聊天模板对模型输出风格的影响。此外,研究者还利用其构建了针对 Reddit 领域知识的专用对话模型,并在此基础上进一步开发了多轮对话的评估基准。这些工作不仅验证了 ChatML 格式在标准化训练流程中的有效性,也为后续探索更大规模、多源异构数据的融合训练提供了方法论参考。
数据集最近研究
最新研究方向
当前,基于Reddit社区的高质量指令数据正成为大语言模型对齐训练的关键资源。Felladrin/ChatML-reddit-instruct-curated数据集通过将原始Reddit问答对转化为ChatML格式,为监督式微调提供了标准化的对话模板,显著降低了模型训练的数据预处理门槛。该数据集聚焦于10K至100K规模的中小型样本,特别适用于资源受限场景下的模型适配与快速迭代。在最近的研究中,这类结构化指令数据被广泛应用于提升模型在开放域问答、文本生成等任务上的指令遵循能力,并常与HuggingFace TRL的SFT Trainer等工具链协同,推动高效、可复现的对齐训练流程。该数据集的发布不仅促进了Reddit社区知识向可训练对话数据的转化,也为探索低成本、高质量指令数据的构建范式提供了重要参考,对推动大模型在真实用户场景中的实用化具有积极意义。
以上内容由遇见数据集搜集并总结生成



