K-ON111111/sap-rpt-1-oss
模型介绍
文件和版本
Pull Requests
讨论
分析

SAP/sap-rpt-1-oss — 昇腾 NPU 适配模型

赛事: 昇腾 Model Agent 模型适配大赛(第二季) 引擎: torch_npu + sap_rpt_oss(ConTextTab) 硬件: Ascend 310P / 910B 标签: npu ascend pytorch tabular foundation-model

📖 模型简介

sap-rpt-1-oss(原名 ConTextTab,NeurIPS 2025)是语义感知的表格上下文学习基础模型。 通过专门的列名/内容语义嵌入 + 12 层跨行跨列 Transformer 编码器, 在大型真实世界表格数据上训练,支持少样本表格分类与回归(含语义丰富的 CARTE 基准)。

属性值
原始模型https://ai.gitcode.com/hf_mirrors/SAP/sap-rpt-1-oss
参数量~400M(12 层编码器 + 语义嵌入)
任务类型表格分类 / 回归(In-Context Learning)
输入格式表格数据(特征 X + 标签 y,训练/测试切分)
输出格式预测标签 / 概率 / 回归值 + 准确率/R² 指标

🔧 环境依赖

pip install -r requirements.txt -i https://repo.huaweicloud.com/repository/pypi/simple/
pip install git+https://github.com/SAP-samples/contexttab.git  # sap_rpt_oss 核心库

🚀 推理步骤

⚠️ 本仓库不包含模型权重(交付件仅 inference.py / readme.md / requirements.txt / assets/), 推理前必须先从原始模型仓单独下载权重。

# 1. 下载模型权重(仓库不含权重,必须单独下载)
git clone https://gitcode.com/hf_mirrors/SAP/sap-rpt-1-oss.git ./sap-rpt-1-oss

# 2. 运行 NPU 推理(分类)
python3 inference.py --model_path ./sap-rpt-1-oss \
  --data data.npz --task classification \
  --device npu:0 --output inference_result.json

🧪 测试用例

用例 1: 乳腺癌分类(30 特征,569 样本)

python3 inference.py --model_path ./sap-rpt-1-oss \
  --data test_data.npz --task classification \
  --device npu:0 --output inference_result.json

预期输出:

[Model Agent] ✅ NPU 设备就绪: Ascend310P3
[Model Agent] ✅ 数据加载: 共 569 行, 训练 398, 测试 171, 特征 30
[Model Agent] ✅ 分类完成: 准确率 0.9942, 推理耗时 31.441s
[Model Agent] ✅ 结果已保存 → inference_result.json

推理结果摘要:

{
  "model": "SAP/sap-rpt-1-oss",
  "engine": "torch_npu",
  "device": "npu:0",
  "task": "classification",
  "n_train": 398,
  "n_test": 171,
  "n_features": 30,
  "accuracy": 0.9942,
  "inference_time_s": 31.441
}

📁 目录结构

.
├── inference.py          # NPU 推理脚本
├── readme.md             # 本文件
├── requirements.txt      # 依赖清单
└── assets/               # 截图素材

📝 适配说明

本模型由 昇腾 Model Agent 自动完成 NPU 适配:

  • 本地化补丁:checkpoint 与句子嵌入模型(all-MiniLM-L6-v2)走本地目录, 避免离线环境 HF 下载
  • SDPA 兼容补丁:torch_npu 不支持 F.scaled_dot_product_attention, 全局替换为手动 matmul 实现
  • NPU 设备适配:库内部仅支持 cuda/cpu,加载后将模型迁移至 NPU(float32)
  • 已在 Ascend 310P3 上实跑验证通过(分类准确率 0.9942),输出合法