> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tuneplane.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 数据集

> 有版本的数据集资产、文件清单，以及数据质量报告。

<Frame caption="数据集版本，含文件清单与质量指标。">
  <img src="https://mintcdn.com/starforge/GatXR2rI5-_Vm4_H/images/console/datasets.png?fit=max&auto=format&n=GatXR2rI5-_Vm4_H&q=85&s=1a111ce729c2bf41b4baf6c6ba7409c6" alt="TunePlane 数据集页" width="2160" height="1350" data-path="images/console/datasets.png" />
</Frame>

## 你会看到什么

| 区域       | 显示什么                       |
| -------- | -------------------------- |
| **版本**   | 每个不可变版本及其校验和               |
| **文件清单** | 这个版本里有什么，以及每个文件的大小         |
| **预览**   | 控制台能渲染的格式的样本记录——且仅在策略允许时   |
| **数据质量** | 推送时对全量数据计算                 |
| **使用情况** | 哪些作业引用过它，这是判断某个版本能否安全删除的依据 |

## 质量报告

在推送时算一次，覆盖全量数据——只有非常大的数据集才采样。
它统计的是机器能统计的东西，不假装能判断内容。

| 指标               | 为什么有它                                      |
| ---------------- | ------------------------------------------ |
| **记录数**          | 确认你以为自己上传的那个数                              |
| **重复**           | 近似重复和完全字节相同分开统计。重复率高意味着模型会对重复样本过拟合         |
| **空记录**          | 没有可用内容的记录                                  |
| **长度 p50 / p95** | 用 p95 而不是均值来定 `max_seq_len`——按均值会截掉五分之一的数据 |
| **字段漂移**         | 字段集合与多数派不同的记录，以及它们缺了哪些字段                   |

<Tip>
  字段漂移是最能抓到真 bug 的那一项。几百条记录缺了你的 loss 要读的字段，作业不会失败；
  它们会安静地在空值上训练，然后把曲线拖下去。
</Tip>

## 受保护的数据集

一个数据集可以被治理成「可以用于训练，但读不到内容」。这样的数据集在控制台上只显示
身份、版本、schema、血缘和授权状态——没有预览、没有样本记录、没有下载。

这是在服务端强制的，不是把按钮藏起来。日志、验证样本和产物受同一套策略约束，
所以它们不会变成另一条导出通道。

## 从控制台上传

数据集列表页的**上传数据集**用来新建一个数据集和它的第一个版本；数据集详情页的**上传新版本**
是给已有数据集加一个版本。两者问的是 `tp dataset push` 一样的三个问题——哪个数据集、哪个版本、
哪些文件——文件也一样是用预签名 URL 直传对象存储。`index.json` 是「这个版本已完整」的标记，
也因此让版本不可变，所以它只在全部文件都落盘之后才写：中途失败留下的是一个仍然空着的版本号，
而不是一个自称已完成的版本。

文件里如果有 `README.md`，会一并作为数据集说明发布，和 CLI 推送的行为一致。

质量报告和污染指纹不在浏览器里算——一个页面不会为了切 n-gram 去读几个 GB。版本出现之后，
worker 会在扫描它的同一趟里从对象存储把它们算出来，写在版本旁边，位置和 CLI 推送时写的一样。
超过单版本的读取预算时，报告会把自己标成**抽样**，而不是拿半个文件算出来的重复率当全量。

<Note>
  控制台上传拒绝超过 512 MB 的单个文件：浏览器要算校验和就得把整个文件读进内存，而这个校验和
  正是作业侧用来验证下载完整性的东西。`tp dataset push` 是流式的，没有这个限制——它也是在推送
  时就把两份报告按全量算出来，而不是事后按预算算。
</Note>

## 你可以做什么

* 在配置里或用 `--train-dataset` **引用某个版本**。
* 在这一页，或用 `tp dataset push` **推送新版本**。
* 推送前用 `tp dataset check` 和 `tp dataset quality` **先检查质量**。

完整流程见[数据集](/zh-Hans/guides/datasets)。
