- 数据集
- 微调
- 人工智能
【免费下载链接】fable-5-premium
fable-5-premium是一个从 Claude Fable-5 Agent 对话轨迹中严格清洗而成的高质量监督微调(SFT)数据集,共12,730 条记录,分为 train / validation / test 三个切片。每条样本都带有quality_scores(质量分数)字段,让你可以直接按分数筛选微调数据、做分层采样。下面手把手带你用质量分数选出最优质的训练样本。
📦 数据集速览:12,730 条已分好的 SFT 数据
| 属性 | 数值 |
|---|---|
| 总记录数 | 12,730 |
| 训练集(train) | 5,728 条(45.0%) |
| 验证集(validation) | 318 条(2.5%) |
| 测试集(test) | 319 条(2.5%) |
| 许可证 | MIT |
数据集提供两种开箱即用的格式,train / validation / test 三个切片齐全:
| 格式 | 适用场景 | 数据文件 |
|---|---|---|
openai_chat | OpenAImessages数组格式(user / assistant / tool 角色),可直接对接 Axolotl、Unsloth、OpenAI 微调 API | openai_chat/train.jsonl、openai_chat/train.parquet |
agent_traces | Hugging Face 原生 Agent Traces 格式,可在 Data Studio 中直接浏览 | agent_traces/train.jsonl、agent_traces/train.parquet |
🧹 质量分数从哪来:六步清洗流水线
fable-5-premium 在入库前经过了一条完整的六步质量流水线(见 README.md),quality_scores 是其中最后一步"多维质量评分"的产物:
- Deduplication(去重)— SHA-256 内容哈希,跨数据源去重
- Structural Validation(结构校验)— 消息 schema、tool call ID、角色顺序全部合法
- Content Filtering(内容过滤)— 剔除空响应、截断响应、纯报错会话
- PII Scrubbing(隐私清洗)— 移除本地路径、API 密钥等敏感信息
- Tool Call Validation(工具调用校验)— 确保每个工具调用都有对应的工具响应
- Quality Scoring(质量评分)— 多维质量指标打分,写入
quality_scores字段
💡 换句话说,
quality_scores不是随意标注的分数,而是经过结构、内容、隐私、工具调用四重把关后,再用多维指标量化出来的"含金量指数"。
📈 质量分数分布速览:88% 样本在 0.8 分以上
先看全库的分数分布图(原始文件见 quality_distribution.png):
对照 README.md 中的统计表格:
| 分数区间 | 样本数 |
|---|---|
| 0.3 – 0.5 | 448 |
| 0.7 – 0.8 | 532 |
| 0.8 – 0.9 | 3,736 |
| 0.9 – 1.0 | 6,740 |
两个直观结论:
- 高分区是绝对主力:0.8 分以上的样本合计 10,476 条,占比约八成,整体"高质量偏向"非常明显
- 低分区极少:0.7 分以下的样本不足 500 条,可以放心大胆地按分数阈值做过滤
🧩 quality_scores 字段在哪、长什么样
两种格式都带quality_scores字段(dtype 为 string,承载多维质量指标),字段定义见 dataset_infos.json:
openai_chat格式:dataset_infos.json,与messages、source、model、reasoning并列agent_traces格式:dataset_infos.json,与session_id、messages等并列
另外两条配套字段值得了解:
reasoning— 独立的思维链字段,适配支持显式思考 token 的模型messages— 标准多轮对话,assistant 消息可携带tool_calls(含 id、function.name、function.arguments)
🎯 分层采样实战:一行 filter 筛出高分样本
用 Hugging Facedatasets库加载后,解析quality_scores字段并按分数区间过滤即可。下面是一个可直接运行的最小示例:
import json from datasets import load_dataset # 加载 openai_chat 格式的训练集 ds = load_dataset("saidutta69/fable-5-premium", "openai_chat", split="train") def quality(row) -> float: """解析 quality_scores(字符串字段)为数值分数""" raw = row["quality_scores"] try: obj = json.loads(raw) return float(obj["overall"]) if isinstance(obj, dict) else float(obj) except (ValueError, KeyError): return float(raw) # 策略一:阈值过滤 —— 只保留 0.8 分以上的高分样本 ds_hi = ds.filter(lambda r: quality(r) >= 0.8) # 策略二:分层采样 —— 按区间各自取样,兼顾质量与多样性 hi_mid = ds.filter(lambda r: 0.8 <= quality(r) < 0.9) hi_top = ds.filter(lambda r: quality(r) >= 0.9) print(len(ds_hi), len(hi_mid), len(hi_top))⚠️ 提示:
quality_scores的具体维度结构以实际数据为准,如果字段内是多维 JSON,可先打印一条样本ds[0]["quality_scores"]查看键名,再把quality()函数里的取值键换成对应维度。
💡 四种常见筛选策略怎么选
| 目标 | 建议策略 | 预期样本量 |
|---|---|---|
| 最省心 | 直接全量使用,高分占比已近八成 | ≈ 5,728(train) |
| 最极致质量 | quality >= 0.9阈值过滤 | ≈ 6,700 条(全库口径) |
| 质量 + 多样性平衡 | 分层采样:0.8–0.9 与 0.9–1.0 区间按比例各取一份 | 按需组合 |
| 快速验证流程 | 参考官方 demo 的max_train_samples = 500小批量试跑 | 500 条 |
想快速跑通整条微调链路,可以直接参考官方演示脚本 scripts/finetune_demo.py:它默认加载openai_chat格式、只取 500 条样本做 4-bit LoRA 微调,并自动对比微调前后的工具调用准确率——在 MacBook 上约 10 分钟即可看到效果。
📚 相关资料速查
| 资料 | 说明 |
|---|---|
| README.md | 数据集总览、质量流水线、使用方式 |
| dataset_infos.json | 两种格式的完整字段 schema |
| dataset_config.json | 数据集构建配置(来源、CoT 策略) |
| quality_distribution.png | 质量分数分布图原图 |
| scripts/finetune_demo.py | 端到端微调 + 评测演示脚本 |
掌握quality_scores分层采样之后,你就拥有了把这份"精选级"SFT 数据集价值榨干的钥匙:想要更稳,就全量上车;想要更狠,就只留 0.9 分以上的"尖子生"。🚀
- 数据集
- 微调
- 人工智能
【免费下载链接】fable-5-premium
相关推荐
如何快速读懂Fable-5 Premium V2的数据字段:messages、tool_calls与quality_scores逐项拆解
如何快速读懂Fable 5 Premium V2的数据字段:messages、tool_calls与quality_scores逐项拆解 Fable 5 Pre
Fable-5 Premium V2完全解析:10万条Agent Traces高质量SFT数据集终极指南
Fable 5 Premium V2完全解析:10万条Agent Traces高质量SFT数据集终极指南 🎯 想微调一个会"用工具"的 AI Agent,最难
如何用Axolotl配合Fable-5 Premium V2做SFT微调?从零到出效果的完整教程
如何用Axolotl配合Fable 5 Premium V2做SFT微调?从零到出效果的完整教程 Fable 5 Premium V2 是一个经过严格清洗的 1
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考