K-ON111111/FoMo-0D
模型介绍
文件和版本
Pull Requests
讨论
分析

FoMo-0D — 昇腾 NPU 适配模型

赛事: 昇腾 Model Agent 模型适配大赛(第二季) 引擎: torch_npu + PFN Transformer 硬件: Ascend 910B 系列(实测 Ascend910B4) 标签: npu ascend pytorch transformers

📖 模型简介

属性值
原始模型YuchenShen/FoMo-0D
架构FoMo-0D(PFN Transformer,Prior-Fitted Network)
参数量4.9M
任务类型零样本表格离群检测(Tabular Outlier Detection)
输入格式参考样本矩阵 [num_train, num_features] + 待检测矩阵 [num_test, num_features]
输出格式每个待检测样本的离群概率 [num_test, 2]

🔧 环境依赖

pip install -r requirements.txt -i https://repo.huaweicloud.com/repository/pypi/simple/

🚀 推理步骤

⚠️ 本仓库不包含模型权重(交付件仅 inference.py / readme.md / requirements.txt / assets/), 推理前必须先从原始模型仓单独下载权重。 inference.py 首次运行会自动下载 PFN 依赖代码(pfns/ + fomo_hub.py,来自官方 GitHub)并注入 NPU 兼容补丁。

# 1. 下载模型权重(仓库不含权重,必须单独下载)
git clone https://gitcode.com/hf_mirrors/YuchenShen/FoMo-0D.git .
git lfs pull

# 2. 运行 NPU 推理(默认 20 参考样本 + 10 待检测样本,100 维特征)
python3 inference.py --model_path . --device npu:0

🧪 测试用例

用例 1: 表格离群检测

python3 inference.py --model_path . --device npu:0

预期输出:

[Model Agent] ✅ NPU 设备就绪: Ascend910B4
[Model Agent] ✅ 模型加载完成 → npu:0
[Model Agent] 📊 参考样本 20 个, 待检测 10 个, 特征 100 维
[Model Agent] ✅ 推理完成 → 耗时 204 ms
[Model Agent] 📈 离群概率(前5): [0.999, 1.0, 0.997, 1.0, 0.998]
[Model Agent] 📈 离群概率(后2,注入离群): [1.0, 1.0]
[Model Agent] ✅ 结果已保存 → inference_result.json

📁 目录结构

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

📝 适配说明

本模型由 昇腾 Model Agent 自动完成 NPU 适配。 FoMo-0D(PFN 少样本表格离群检测)迁移至昇腾 NPU:

  • inference.py 首次运行自动下载官方 pfns/ 依赖与 fomo_hub.py,并注入 NPU 兼容补丁:
    1. 依赖代码按 torch 2.9 要求修正 MultiheadAttention 输入维度(2-D 输入自动补 batch 维);
    2. fomo_hub.py 兼容 from_pretrained 传入的 config 参数。
  • 调用 torch_npu 完成设备初始化,model(train_x, test_x) 输出各样本离群概率。