@PyTorch:PyTorch原生的NeMo AutoModel在@nvidia的端到端工作流中处理transformer预训练,用于构建交易…
摘要
NVIDIA的博客文章描述了一个端到端的工作流,使用PyTorch原生的NeMo AutoModel预训练一个交易基础模型。该工作流使用GPU加速的数据处理和分词、仅解码器模型预训练以及嵌入提取,在IBM TabFormer数据集上将欺诈分类性能提升了超过40%。
查看缓存全文
缓存时间: 2026/06/30 23:49
PyTorch原生的NeMo AutoModel在@nvidia的端到端工作流中处理Transformer预训练,用于构建交易基础模型。
该工作流程结合了GPU加速的数据处理与分词、仅解码器模型预训练、嵌入提取以及XGBoost欺诈分类。
在合成的@IBM TabFormer数据集上,将原始特征与学习到的嵌入结合,使得平均精度(Average Precision)相较于原始特征基线提升了41.76%。
阅读完整博文:
构建自有交易基础模型,赋能金融智能
来源:https://developer.nvidia.com/blog/build-your-own-transaction-foundation-model-for-financial-intelligence 现代金融网络中的每一次刷卡、转账和支付都编码了人类行为的模式。交易数据是企业拥有的最丰富的信号之一。然而,大多数此类表格数据的生产用例仍然依赖于手工设计的特征和规则集,这些规则脆弱、维护成本高,并且无法看到客户历史中存在的序列结构。
基础模型在大量未标记的交易序列上进行预训练,通过生成金融行为的通用表示,改变这一局面,这些表示可以迁移到各种下游任务。单个基础模型即可覆盖欺诈检测、信用评分、生命周期价值预测、客户细分、个性化推荐、循环交易检测等众多任务。
行业信号强劲且正在加速。创新的金融公司正在数十亿笔交易上训练基于Transformer的模型,在生产规模任务上报告两位数的相对提升,同时简化运营。参见Stripe的支付基础模型 (https://stripe.com/us/newsroom/news/sessions-2025)、Nubank的NuFormer (https://arxiv.org/abs/2507.23267)、Visa的TransactionGPT (https://arxiv.org/abs/2511.08939)、Mastercard的大表格模型 (https://www.mastercard.com/global/en/news-and-trends/stories/2026/mastercard-new-generative-ai-model.html)、Revolut的PRAGMA (https://arxiv.org/abs/2604.08649)、Plaid的交易基础模型 (https://plaid.com/blog/building-transaction-foundation-model-intelligent-finance/) 等。
NVIDIA 构建自有交易模型开发者示例 (https://build.nvidia.com/nvidia/build-your-own-transaction-foundation-model) 演示了如何使用加速计算端到端构建交易基础模型。
您将在此工作流中逐步完成五个步骤:
- 使用 NVIDIA CUDA-X 库 cuDF (https://developer.nvidia.com/topics/ai/data-science/cuda-x-data-science-libraries/cudf) 进行 GPU 加速数据处理
- 使用 NVIDIA CUDA-X 库 cuDF (https://developer.nvidia.com/topics/ai/data-science/cuda-x-data-science-libraries/cudf) 和 cuML (https://developer.nvidia.com/topics/ai/data-science/cuda-x-data-science-libraries/cuml) 进行自定义分词
- 使用 NVIDIA NeMo AutoModel (https://docs.nvidia.com/nemo/automodel/latest/index.html) 开源库(NVIDIA NeMo框架 (https://github.com/NVIDIA-NeMo/) 的一部分)从头开始预训练Transformer解码器模型
- 提取学习到的嵌入
- 使用嵌入增强下游欺诈分类器
最后,您将在 IBM TabFormer (https://github.com/IBM/TabFormer) 欺诈数据集上,相对于强大的 XGBoost (https://www.nvidia.com/en-us/glossary/xgboost/) 基线,复现平均精度(“AP”)——精确率-召回率曲线下的面积,衡量模型在所有操作阈值下的欺诈排名能力——接近50%的提升。下图1显示了端到端流水线。
架构图从左至右显示五个阶段——原始表格交易经过处理(NVIDIA CUDA-X)、GPU分词器将其转换为令牌序列(NVIDIA CUDA-X)、交易基础模型进行预训练(NVIDIA NeMo AutoModel)、提取嵌入、以及各种下游模型将其用于金融用例,如欺诈检测、个性化等图1. 端到端交易基础模型流水线:原始交易流经使用NVIDIA CUDA-X库的GPU加速数据处理和领域分词,使用NeMo AutoModel预训练的交易基础模型,以及嵌入提取到下游表格模型中
为什么Transformer适合交易历史https://developer.nvidia.com/blog/build-your-own-transaction-foundation-model-for-financial-intelligence#why_transformers_fit_transaction_histories
大型语言模型从单词序列中学习。在预训练期间,模型看到文本并学习到单词、短语和句子通过顺序和上下文承载意义。交易基础模型将相同的原理应用于金融行为。一个序列如“工资存款、杂货购买、交通费、定期订阅、卡消费餐厅支付”携带的信息是任何单个交易行无法单独表达的。
Transformer非常适合这种结构,因为自注意力可以连接历史上相隔很远的事件。一笔欺诈交易可能只有与近期的旅行模式或突然的小额授权爆发配对时才会看起来可疑。传统的表格特征可以近似这些模式,但工程师必须预先决定构建哪些窗口、聚合和规则。而预训练的Transformer直接从序列中学习这些关系。
这种方法补充了其他NVIDIA金融AI工作流,包括使用图神经网络(GNN)的金融欺诈检测NVIDIA AI蓝图 (https://developer.nvidia.com/blog/supercharging-fraud-detection-in-financial-services-with-graph-neural-networks/)。GNN捕获跨连接实体(如账户、商户、设备和交易)的关系。交易基础模型则专注于客户或账户序列内的行为历史。在实践中,两种方法都产生丰富的嵌入,其信息互补,自然可以配对使用。
加载数据并设定基线https://developer.nvidia.com/blog/build-your-own-transaction-foundation-model-for-financial-intelligence#load_the_data_and_set_a_baseline
笔记本 01_dataset_baseline.ipynb 使用 cuDF (https://developer.nvidia.com/topics/ai/data-science/cuda-x-data-science-libraries/cudf) 直接将 IBM TabFormer 数据集 (https://github.com/IBM/TabFormer)(约2440万笔合成卡交易,欺诈率约0.12%)加载到GPU内存中。
数据集的划分按累积交易数量进行时间分区:按日期排序的前80%交易用于训练;接下来10%用于验证;最后10%用于测试。因此这些划分占据不相交且有序的时间窗口,防止数据泄露,并反映真实世界的生产环境。
划分完成后,笔记本在100万行平衡训练样本上训练一个XGBoost分类器,利用原生GPU加速,使用 tree_method="hist" 和 device="cuda"。评估在一个10万行分层保留集上进行,保留了约0.1%的真实欺诈比例。
基线数字为教程后续部分设定了标准:
- 测试 ROC-AUC:0.9885
- 测试 AP:0.1238
请关注AP而非ROC-AUC。在低于0.1%的类别不平衡下,ROC-AUC会迅速饱和,并掩盖高评分区域中的有意义差异。AP衡量整个召回曲线,并对操作上重要的改进做出响应。本教程中的每个后续模型首先以AP评判。
在GPU上对交易进行分词https://developer.nvidia.com/blog/build-your-own-transaction-foundation-model-for-financial-intelligence#tokenize_transactions_on_the_gpu
通用LLM分词器在表格金融数据上浪费容量。例如,字节对编码(BPE)分词器将单笔交易分割成大约39个子词令牌,其中大部分编码逗号和美元符号而非行为。笔记本 02_seq_preproc_tokenization.ipynb 引入了一个自定义领域分词器,将每笔交易转换为大约12个语义令牌,词汇量小得多(6,251个符号 vs. BPE的50,257个)。
除了令牌信息密度之外,这种效率还使得在固定的令牌预算下可以处理超过3倍的交易数量。实际上,一个上下文窗口为4,092的模型可以容纳领域分词器处理的大约315笔交易的历史,而BPE分词器只能处理大约102笔交易。
下面的图2比较了在相同记录上两种分词方法每笔交易的令牌数量。
领域分词器在 src/tokenizer/financial_pipeline.py (https://github.com/NVIDIA-AI-Blueprints/transaction-foundation-model/blob/main/src/tokenizer/financial_pipeline.py) 中实现。这个灵活的流水线处理金额分箱、商户哈希、小时/天、月份、卡身份、芯片类型、ZIP3和州、以及客户身份。每个步骤都通过cuDF在GPU上运行。
通过添加或替换模块化流水线中的单个步骤,可以轻松地将分词器适应不同的交易模式。每个步骤实现一个小的 BaseTokenizer (https://github.com/NVIDIA-AI-Blueprints/transaction-foundation-model/blob/main/src/tokenizer/base.py) 接口,因此将覆盖范围扩展到新字段(如设备ID或受益国)只需要一个简短的子类。
比较显示领域分词器每笔交易约12个令牌,而GPT-2 BPE每笔交易约39个令牌,且领域词汇表比GPT-2词汇表小一个数量级图2. 在同一批TabFormer记录上,领域分词器(每笔交易~12个令牌,6,251符号词汇表)与GPT-2 BPE(每笔交易~39个令牌,50,257符号词汇表)的令牌效率比较
使用NeMo AutoModel进行预训练https://developer.nvidia.com/blog/build-your-own-transaction-foundation-model-for-financial-intelligence#pretrain_with_nemo_automodel
NeMo AutoModel是一个PyTorch原生的开源训练库,属于NVIDIA NeMo框架,旨在简化和扩展LLM和VLM的训练与微调。
笔记本 03_foundation_model_training.ipynb 使用因果语言建模在分词后的语料库上预训练一个仅解码器的基础模型。目标很简单——根据每个之前的令牌预测下一个令牌——但监督信号是密集的。序列中的每个位置都贡献一个梯度,因此单个打包的交易序列可以产生数千个下一事件的预测。
该模型是一个紧凑的Llama解码器,在 configs/pretrain_financial_decoder.yaml (https://github.com/NVIDIA-AI-Blueprints/transaction-foundation-model/blob/main/configs/pretrain_financial_decoder.yaml) 中定义:
- 约29M参数
- 隐藏大小512,8个Transformer层
- 分组查询注意力,8个查询头和2个KV头
- 8,192令牌RoPE上下文窗口
- SwiGLU激活,RMSNorm,领域词汇表6,251个令牌
NeMo AutoModel处理其余堆栈。启动单GPU sanity运行。
python scripts/train_decoder_model.py \
--config configs/pretrain_financial_decoder.yaml \
--step_scheduler.max_steps 30
30步演示将训练损失从 ln(6251)≈8.74(该词汇表的随机猜测基线)降低到大约6.0。要将相同的运行扩展到8个GPU,只需在命令前加上 torchrun --nproc-per-node=8 ——无需更改脚本或分布式样板代码。多节点扩展也很简单。NeMo AutoModel从YAML中自动配置FSDP2分片、混合精度、梯度累积和检查点合并。
检查点以标准的 safetensors 文件格式保存,这意味着训练好的主干可以在安装了HuggingFace Transformers的任何地方通过一行代码加载:
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("models/decoder-foundation-model")
该仓库提供了一个训练了3,000步的完整检查点,笔记本04和05将加载它;30步测试仅用于演示和验证目的。
要更换架构,在YAML中编辑 model._target_ 和 model.config._target_。任何兼容HuggingFace的解码器都可以直接插入,无需更改训练代码。
笔记本 04_inference_embedding_extraction.ipynb 将预训练的主干转变为特征提取器。它使用 AutoModelForCausalLM 加载检查点,设置 output_hidden_states=True,并将最终隐藏层池化为每个用户历史512维的向量。
对于仅解码器模型(使用因果注意力),只有最后一个位置观察到了整个序列,而较早的位置看不到后面的令牌。因此最后令牌池化选择序列中信息最丰富的位置。src/decoder_inference.py (https://github.com/NVIDIA-AI-Blueprints/transaction-foundation-model/blob/main/src/decoder_inference.py) 中的实现使用注意力掩码找到每行最后一个非填充令牌,并获取其隐藏状态。
提取循环是一个单次调用:
embeddings = inference.extract_embeddings_batched(
padded_ids, batch_size=1024, show_progress=True
)
笔记本提取并保存训练、验证和测试嵌入为 .npy 文件。此外,还保存了一个 metadata.json 文件,描述形状和行对齐,稍后在笔记本05中用于将嵌入与关联的原始表格特征连接。
下面的图3显示了50k验证嵌入的3D UMAP投影,按商户行业类别和邮政编码着色。每个字段中可见的簇证实,主干已经学习了语义上连贯的表示,而从未在预训练期间看到任何目标标签。
嵌入的三维散点图,通过UMAP降维到三个维度,显示对应于不同商户行业和用户位置的明显簇嵌入的三维散点图,通过UMAP降维到三个维度,显示对应于不同商户行业和用户位置的明显簇图3. 50,000个验证集交易嵌入的3D UMAP投影。按商户行业和用户邮政编码着色的点在学习到的表示空间中显示出清晰的行为簇
衡量下游任务上的提升https://developer.nvidia.com/blog/build-your-own-transaction-foundation-model-for-financial-intelligence#measure_lift_on_a_downstream_task
笔记本 05_xgboost_fraud_detection.ipynb 回答了一个价值千金的问题:交易基础模型嵌入能否提升下游指标?
它训练了三个GPU XGBoost分类器,并在相同的10万行分层测试集上评估它们:
- 原始特征——13个人工设计的表格特征(来自步骤1的基线)
- 嵌入——512维基础模型向量通过PCA压缩为64维(保留约78%方差)
- 组合——原始特征与64维嵌入连接,总共77维
下面的表1总结了测试结果。
| 模型 | 特征维度 | 测试ROC-AUC | 测试AP |
|---|---|---|---|
| 原始(基线) | 13 | 0.9885 | 0.1238 |
| 仅嵌入 | 64 | 0.8775 | 0.0123 |
| 组合 | 77 | 0.9925 | 0.1755 |
| 表1. TabFormer时间测试集上的下游欺诈检测结果。组合模型相较于原始特征基线,ROC-AUC提升+0.41%,AP提升+41.76% |
组合模型相较于基线,ROC-AUC提升0.41%,AP提升41.76%。这个AP增量是操作上的胜利:一个固定日处理能力的审核团队,在相同工作量下可以捕获多得多的欺诈。
嵌入编码了用户的交易历史,提供了预测能力,但作为单独特征时表现不如基线。组合模型利用了事件级
相似文章
使用 NVIDIA NeMo AutoModel 加速 Transformer 微调
NVIDIA NeMo AutoModel 利用 HuggingFace Transformers v5,在微调 Mixture-of-Experts 模型时,无需修改代码(只需一个导入),即可实现 3.4 至 3.7 倍的训练吞吐量提升和 29% 至 32% 的 GPU 内存减少。
使用NVIDIA NeMo训练视频基础模型
本文介绍了一种可扩展的开源管道,利用NVIDIA NeMo进行视频基础模型的训练和推理,通过加速数据集管理和并行化训练来解决生成高质量视频的挑战。
NVIDIA Nemotron 3.5 Lightning and NeMo Switchyard Deliver Faster, Smarter, More Efficient Agentic AI
NVIDIA announced Nemotron 3.5 Lightning, a 30B mixture-of-experts open model optimized for high-volume agentic AI workloads, alongside NeMo Switchyard, an open-source library for intelligent model routing across heterogeneous model ecosystems.
使用合成数据构建快速多语言OCR模型
NVIDIA推出Nemotron OCR v2,一个使用合成数据生成技术构建的快速多语言OCR模型。该模型通过采用统一的基于FOTS的架构,在检测、识别和关系组件之间实现特征复用,在单个A100 GPU上达到34.7页/秒的性能。
使用 NVIDIA NeMo Automodel 和 🤗 Diffusers 大规模微调视频和图像模型
NVIDIA NeMo Automodel 与 Hugging Face Diffusers 集成,支持对扩散模型进行可扩展的分布式微调,用于图像和视频生成,支持的模型包括 FLUX.1-dev、Wan 2.1 和 HunyuanVideo。