sample 节点从数据中随机采样指定比例或数量的记录。支持全局采样和分组采样,可与聚类节点组合实现多样性采样。
功能说明
sample 节点支持两种采样模式:
全局采样:从整体数据中随机采样指定比例(
ratio)或数量(n)的记录。分组采样:按指定分组列(
by)分组后,每组内独立随机采样。
常与上游 semantic-cluster 组合使用,先聚类再按簇分组取样,在降采样的同时保证语义多样性。
适用场景
大规模数据的快速下采样。
与 semantic-cluster 组合实现多样性采样。
按类别、标签或簇 ID 等维度均匀抽样。
LLM 处理前控制数据量,降低调用成本。
节点配置
以下为 sample 节点的基本配置格式:
{
"id": "node_1",
"type": "sample",
"parameters": {
"ratio": "<采样率>",
"n": "<采样条数>",
"by": "<分组列>",
"output": "<输出列列表>"
}
}参数说明
参数 | 类型 | 必填 | 默认值 | 说明 |
| String/Number | 与 | - | 采样率,取值范围 (0, 1]。例如 |
| Integer | 与 | - | 采样条数,固定输出指定数量的记录。与 |
| String | 否 | - | 分组列名,多列时使用英文逗号分隔。指定后启用分组采样模式,每组内独立采样。 |
| String | 否 |
| 节点输出列,多列时使用英文逗号分隔。默认值 |
ratio 与 n 的选择
场景 | 推荐参数 | 说明 |
保留指定百分比的数据 |
| 输出量随输入量自动伸缩。 |
获取固定条数的数据 |
| 输出量固定,不受输入规模影响。 |
每组取固定条数 |
| 配合聚类实现多样性采样。 |
每组保留指定百分比 |
| 按类别均匀采样。 |
输入和输出
输入要求
上游节点输出的任意列数据。
启用
by参数时,输入数据中必须包含指定的分组列。
输出说明
不产生扩展列,仅根据采样规则过滤行。
output参数控制最终输出的列。默认值*保留全部列,指定列名时仅输出对应的列。
行数变化:M → N(M ≥ N),采样后输出行数小于或等于输入行数。
效果预览
以下示例演示分组采样的效果:每个聚类簇中随机取 1 条记录。
处理前(6 条)
question | output | __cluster_id |
什么是机器学习? | 机器学习是... | 0 |
机器学习有哪些类型? | 监督/无监督/强化... | 0 |
如何学习Python? | 推荐从官方教程... | 1 |
Python有哪些库? | NumPy, Pandas... | 1 |
什么是深度学习? | 深度学习是... | 2 |
神经网络是什么? | 神经网络由多层... | 2 |
处理后(3 条)
配置 n = 1,by = "__cluster_id",每个簇随机取 1 条:
question | output | __cluster_id |
机器学习有哪些类型? | 监督/无监督/强化... | 0 |
如何学习Python? | 推荐从官方教程... | 1 |
什么是深度学习? | 深度学习是... | 2 |
每个簇随机取 1 条,6 条数据采样后变为 3 条。本节点不产生扩展列,仅过滤行。
使用示例
示例 1:全局随机采样 10%
从整体数据中随机采样 10% 的记录:
{
"id": "n5",
"type": "sample",
"parameters": {
"ratio": 0.1
}
}示例 2:全局采样固定条数
从整体数据中固定采样 100 条记录:
{
"id": "n5",
"type": "sample",
"parameters": {
"n": 100
}
}示例 3:聚类 + 分组采样(推荐)
先通过 semantic-cluster 聚为 100 簇,再每簇取 1 条,实现多样性采样:
{
"nodes": [
{
"id": "n4",
"type": "semantic-cluster",
"parameters": {
"field": "__dedup_emb",
"n": 100
}
},
{
"id": "n5",
"type": "sample",
"parameters": {
"by": "__cluster_id",
"n": 1
}
}
]
}先聚为 100 簇,每簇取 1 条,最终输出约 100 条多样性样本。
示例 4:按类别分组采样
按 category 列分组,每组保留 20% 的记录:
{
"id": "n5",
"type": "sample",
"parameters": {
"by": "category",
"ratio": 0.2
}
}示例 5:多维分组
按 category 和 difficulty 两列组合分组,每组取 10 条:
{
"id": "n5",
"type": "sample",
"parameters": {
"by": "category,difficulty",
"n": 10
}
}限制与最佳实践
最佳实践
在 LLM 处理前使用 sample 节点降采样,可控制 AI 调用成本。
多样性采样推荐组合:semantic-cluster →
sample(按by = "__cluster_id"分组取样)。分层均匀采样:使用
by按类别或标签列分组,每组独立采样。
采样具有随机性,每次执行结果可能不同。
边界行为
场景 | 行为 |
| 校验失败。 |
| 校验失败。 |
| 校验失败。 |
| 校验失败。 |
| 运行时报错。 |
| 返回全部数据。 |
输入数据为空 | 正常返回空结果集。 |