Step-TP
收藏StepTP 数据集详情
数据集概述
StepTP 数据集旨在学习张量程序变换中的单步和多步变换,包含用于训练和推理的代码及数据集。
- 数据集文件:
dataset.zip包含一个聊天模板格式的 JSONL 文件,用于微调:train_dataset_with_CoT_in_chattemplate.jsonl。 - 数据集状态:当前公开版本仅包含微调用聊天模板数据集,完整的档案字典数据集及中间构件将在论文被接收后发布。
环境要求
开发和测试环境如下:
- 操作系统:Ubuntu 22.04.4
- CUDA:12.4
- LLVM:17.0.6
- Python:3.10.20
- PyTorch:2.6.0+cu124
- TVM:0.21.dev0
- 其他 Python 包:
tqdm,transformers,sympy,ms-swift
代码仓库结构
仓库包含以下核心模块和脚本:
| 文件/目录 | 功能描述 |
|---|---|
pytorch_model_to_IR.py |
使用 torch.fx 追踪 PyTorch 程序并转换为 LEIR |
ops/ |
解析 PyTorch 操作并生成 LEIR 表达式的工具 |
strategies/ |
实现变换策略(strategy.py, utils.py) |
apply_strategy_to_IR.py |
将选定策略应用于 LEIR,生成单步变换 LEIR |
construct_CoT_dataset.py |
为变换后的 LEIR 构建推理链 |
transform_IR_to_TIR.py |
将 LEIR 转换为 TVM TIR 并执行策略级检查 |
TIR/ |
LEIR 到 TIR 的降级、TVM 构建辅助和验证工具 |
eval_verification.py 等 |
验证和评估入口点 |
filtering.py 等 |
数据集后处理和过滤工具 |
swift_Qwen.py |
使用 MS-Swift 微调 Qwen 模型 |
swift_inference.py |
单步变换推理 |
swift_*_optimization.py |
多步优化搜索变体(chain、DFS、BFS、BS、GS、MCTS) |
model_codes/ |
PyTorch 模型/算子程序,用作源工作负载 |
dataset.zip |
公开的聊天模板训练数据集 |
流水线映射
论文描述的四个阶段及其对应代码:
-
PyTorch 到 LEIR 翻译
- 主入口:
pytorch_model_to_IR.py - 辅助代码:
ops/,model_codes/,level1_model_name.json,level2_model_name.json
- 主入口:
-
单步策略驱动的变换
- 主入口:
apply_strategy_to_IR.py - 策略实现:
strategies/strategy.py,strategies/utils.py - 推理链构建:
construct_CoT_dataset.py - 策略列表:
strategy_names.json
- 主入口:
-
LEIR 到 TIR 翻译
- 主入口:
transform_IR_to_TIR.py - 辅助代码:
TIR/IR_to_TIR.py,TIR/utils.py
- 主入口:
-
验证与过滤
- 验证:
TIR/IR_verfication.py,eval_verification.py,eval_verification_main.py,eval_verification_update.py - 过滤与数据集处理:
filtering.py,handle_dataset_v2.py,handle_dataset_multi_IRs.py,further_handle_dataset.py
- 验证:
训练
使用 MS-Swift 微调 Qwen 模型示例:
bash python swift_Qwen.py --train_dataset dataset/train_dataset_with_CoT_in_chattemplate.jsonl --model_id_or_path /path/to/Qwen3-8B --output_dir /path/to/output/sft_8B_CoT_filtered --cuda_visible_devices 0,1 --batch_size 1 --epochs 1 --gradient_accumulation_steps 16 --max_length 10240
推理与评估
- 单步变换推理:
python swift_inference.py --cuda 0 --batch_size 16 - 多步优化:使用基于搜索的脚本(如
swift_chain_based_optimization.py、swift_DFS_based_optimization.py等),需替换默认路径为本地评估提示和生成的 store-dictionary 文件。
验证
首先生成 store-dictionary 文件(由 pytorch_model_to_IR.py 在 PyTorch 到 LEIR 翻译阶段产生):
bash python pytorch_model_to_IR.py --level level1 --model_index 0 --dtype float64 --store_dict_dir store_dict
然后使用 TVM 验证变换后的 LEIR:
bash python eval_verification.py --idx 0 --transformed_IR "<TRANSFORMED_LEIR>" --info store_dict/<MODEL_NAME>original<MODEL_INDEX>.pkl.gz --num_IRs 1 --cuda 0 --error_record_dir /path/to/error_record.jsonl
可重现性说明
- 当前
dataset.zip足以使用swift_Qwen.py进行训练。 - 完整的档案字典数据集将在论文被接收后发布。
- 单步和多步推理/评估可使用用户创建的评估提示和本地生成的 store-dictionary 文件运行,论文评估文件将在被接收后发布。
- TVM 验证脚本需要启用 CUDA 和 LLVM 的 TVM,并访问每个数据条目引用的 store-dictionary。
- 部分推理和优化脚本使用硬编码的作者路径,在新环境中运行前需更新这些路径。

- 1Step-TP: A Grounded, Step-Level Dataset with Chain-of-Thought Reasoning for LLM-Guided Tensor Program Optimization香港大学; 蚂蚁集团; 中国科学技术大学 · 2026年



