PCVR 数据管道¶
PCVR 数据管道由多个可组合的增强组件构成,通过 PCVRDataPipeline 统一编排。
实验侧组合¶
各实验包在 PCVRTrainConfig 中配置数据管道组件:
PCVRTrainConfig(
data=PCVRDataConfig(batch_size=256, num_workers=0),
sequence_crop=PCVRSequenceCropConfig(strategy="tail", max_len=50),
feature_mask=PCVRFeatureMaskConfig(mask_prob=0.1),
domain_dropout=PCVRDomainDropoutConfig(dropout_prob=0.05),
data_cache=PCVRDataCacheConfig(enabled=True, max_batches=100),
data_pipeline=PCVRDataPipelineConfig(shuffle_buffer_batches=8),
)
组件说明¶
PCVRDataPipelineConfig¶
| 参数 | 类型 | 说明 |
|---|---|---|
shuffle_buffer_batches |
int | Shuffle Buffer 窗口大小(batch 数) |
seed |
int | 随机种子 |
PCVRDataCacheConfig¶
| 参数 | 类型 | 说明 |
|---|---|---|
enabled |
bool | 是否启用内存缓存 |
max_batches |
int | LRU 缓存最大 batch 数 |
PCVRSequenceCropConfig¶
| 参数 | 类型 | 说明 |
|---|---|---|
strategy |
str | 裁剪策略:tail / random_tail / rolling |
max_len |
int | 最大序列长度 |
seed |
int | 随机种子 |
PCVRFeatureMaskConfig¶
| 参数 | 类型 | 说明 |
|---|---|---|
mask_prob |
float | 特征掩码概率 |
seed |
int | 随机种子 |
PCVRDomainDropoutConfig¶
| 参数 | 类型 | 说明 |
|---|---|---|
dropout_prob |
float | 域 Dropout 概率 |
seed |
int | 随机种子 |
PCVRShuffleBuffer¶
Row-level shuffle,在 shuffle_buffer_batches 窗口内随机打乱样本。稳定种子由文件 CRC、Worker ID、Row Group ID、Batch Index 计算。
组合例子¶
保守鲁棒性组合¶
仅启用 Shuffle,不使用增强。
强鲁棒性组合¶
PCVRTrainConfig(
sequence_crop=PCVRSequenceCropConfig(strategy="tail", max_len=50),
feature_mask=PCVRFeatureMaskConfig(mask_prob=0.1),
domain_dropout=PCVRDomainDropoutConfig(dropout_prob=0.05),
data_cache=PCVRDataCacheConfig(enabled=True, max_batches=100),
data_pipeline=PCVRDataPipelineConfig(shuffle_buffer_batches=8),
)
全部组件启用,适合大规模训练。
消融用单组件组合¶
# 仅序列裁剪
PCVRTrainConfig(
sequence_crop=PCVRSequenceCropConfig(strategy="tail", max_len=50),
)
# 仅特征掩码
PCVRTrainConfig(
feature_mask=PCVRFeatureMaskConfig(mask_prob=0.1),
)
# 仅域 Dropout
PCVRTrainConfig(
domain_dropout=PCVRDomainDropoutConfig(dropout_prob=0.05),
)
后续可扩展的增广组件¶
当前管道支持的组件已在 data_pipeline.py 中实现。未来可扩展:
- 序列 Mask(随机遮蔽序列中的部分行为)
- 特征交叉增强
- 负采样策略
时间安全¶
所有随机操作的种子由以下因素确定性计算:
- 文件 CRC32
- Worker ID
- Row Group ID
- Batch Index
确保不同 Worker 和不同 Epoch 的随机性独立且可复现。
内存 Cache¶
PCVRMemoryBatchCache 是 LRU 缓存,缓存已构建的基础 batch(增强前)。适用于:
- 数据集较小,可以全部缓存到内存
- 增强操作开销较大,需要加速基础数据加载
吞吐压测¶
uv run taac-benchmark-pcvr-data-pipeline \
--dataset-path data/sample_1000_raw/demo_1000.parquet \
--schema-path data/sample_1000_raw/schema.json \
--preset augment
预设:none(纯加载)、cache(缓存)、augment(全增强)。