Hotdry.
ai-systems

实时多模型协作的银行交易分类流水线与异常检测集成

基于Tally的LLM代理架构,设计实时多模型协作流水线,结合LLM分类、规则引擎与异常检测模型,实现高吞吐量银行交易处理与实时风险监控。

从批处理到实时流水线:Tally 架构的演进挑战

Tally 作为一个开源工具,其核心价值在于帮助 AI 代理(如 Claude Code、GitHub Copilot)理解并分类那些看似乱码的银行交易记录。正如 Hacker News 上讨论的,Tally 通过简单的三步工作流解决了传统分类工具的痛点:下载 CSV 文件 → tally init创建配置 → AI 协作编写规则 → tally run生成报告。然而,这种批处理模式在面对现代金融系统的实时性需求时显露出明显不足。

传统批处理架构的局限性在于处理延迟。用户需要手动导出 CSV 文件,等待 AI 代理分析,然后才能获得分类结果。在金融欺诈检测场景中,这种延迟可能是致命的。根据 FinAI 框架的研究,现代金融系统需要处理高达 12,800 笔交易 / 秒的吞吐量,同时保持平均 47 毫秒的延迟。Tally 的现有架构显然无法满足这样的实时性要求。

实时多模型协作流水线架构设计

三层架构模型

为了将 Tally 从批处理工具升级为实时处理系统,我们需要设计一个三层流水线架构:

  1. 流处理层:使用 Apache Kafka 或 Apache Pulsar 作为消息队列,接收来自银行系统的实时交易流。这一层负责数据的分区、序列化和初步过滤。

  2. 多模型处理层:这是架构的核心,包含三个并行处理模块:

    • LLM 分类模块:基于 Tally 原有的 AI 代理能力,但需要优化为流式处理。采用轻量级 LLM 模型(如 GPT-3.5-turbo 或 Claude Instant)进行实时语义分析。
    • 规则引擎模块:将用户定义的分类规则(如 "ZELLE to Sarah is babysitting → Childcare")编译为高效的状态机,支持实时模式匹配。
    • 异常检测模块:集成深度学习模型,实时分析交易模式异常,如高频交易、异常金额、地理位置跳跃等。
  3. 聚合与输出层:将三个模块的结果进行融合决策,输出最终分类结果和异常标记,同时将数据写入时间序列数据库供监控使用。

状态管理策略

实时流水线的关键在于状态管理。Apache Flink 提供了强大的状态管理能力,允许系统记住每个账户的交易历史。例如,要检测 "同一信用卡在 10 分钟内在 5 个不同城市交易" 的欺诈模式,系统需要维护每个信用卡的近期交易状态。

在 Tally 的扩展架构中,我们为每个用户账户维护以下状态:

  • 交易频率时间窗口(如最近 1 小时、24 小时)
  • 地理位置历史
  • 商户类别分布
  • 金额分布模式

LLM 分类与规则引擎的并行处理优化

流式 LLM 推理优化

传统的 LLM 调用存在延迟高、成本贵的问题。在实时流水线中,我们需要采用以下优化策略:

  1. 请求批量化:将多个交易请求合并为单个 LLM 调用,利用模型的并行处理能力。研究表明,批量处理可以将吞吐量提升 3-5 倍。

  2. 缓存策略:建立商户名称到分类结果的缓存层。例如,"WHOLEFDS MKT 10847 SEATTLE WA" 一旦被分类为 "Groceries > Whole Foods",后续相同商户的交易可以直接从缓存获取结果。

  3. 模型蒸馏:将大型 LLM 的知识蒸馏到小型专用模型中,专门用于交易分类任务,减少推理延迟。

规则引擎的流式编译

Tally 使用纯文本文件存储分类规则,这种设计在实时场景下需要重新思考。我们提出规则引擎的流式编译方案:

# 规则示例
rules = [
    {"pattern": "ZELLE to Sarah", "category": "Childcare"},
    {"pattern": "COSTCO.*GAS", "category": "Fuel"},
    {"pattern": "COSTCO", "category": "Groceries"}
]

# 编译为确定性有限自动机(DFA)
dfa_engine = compile_rules_to_dfa(rules)

通过将规则编译为 DFA,我们可以在 O (n) 时间内完成模式匹配,其中 n 是交易描述的长度,与规则数量无关。这种编译一次、多次使用的策略特别适合实时处理。

异常检测模块的深度集成

多维度异常检测

异常检测模块需要分析多个维度的异常模式:

  1. 时序异常:检测交易频率的突然变化。例如,一个通常每月交易 10 次的账户突然在 1 小时内交易 20 次。

  2. 金额异常:基于历史交易金额分布,检测异常大额或小额交易。采用 Z-score 或 IQR(四分位距)方法进行统计检测。

  3. 地理位置异常:结合 IP 地址、GPS 数据和商户位置,检测不可能的地理位置跳跃。

  4. 行为模式异常:使用 LSTM 或 Transformer 模型学习用户的正常交易模式,检测偏离该模式的行为。

实时特征工程

在流处理环境中,特征工程需要实时计算:

class RealTimeFeatureEngine:
    def __init__(self, window_sizes=[3600, 86400]):  # 1小时,24小时
        self.windows = window_sizes
        
    def extract_features(self, transaction, user_history):
        features = {}
        
        # 时间窗口特征
        for window in self.windows:
            recent_tx = self.get_recent_transactions(user_history, window)
            features[f'tx_count_{window}'] = len(recent_tx)
            features[f'tx_amount_sum_{window}'] = sum(tx.amount for tx in recent_tx)
            features[f'tx_amount_avg_{window}'] = features[f'tx_amount_sum_{window}'] / max(1, features[f'tx_count_{window}'])
            
        # 类别分布特征
        category_counts = self.get_category_distribution(recent_tx)
        features['category_entropy'] = self.calculate_entropy(category_counts)
        
        return features

监控指标与运维实践

关键性能指标 (KPI)

实时流水线需要监控以下关键指标:

  1. 吞吐量:交易处理速率(笔 / 秒),目标≥12,800 笔 / 秒
  2. 端到端延迟:从交易发生到分类完成的时间,目标≤100 毫秒
  3. 分类准确率:与人工标注对比的准确率,目标≥95%
  4. 异常检测召回率:真实异常被检测出的比例,目标≥90%
  5. 误报率:正常交易被误判为异常的比例,目标≤5%

容错与恢复机制

金融系统对可靠性要求极高,需要设计完善的容错机制:

  1. 检查点机制:定期保存处理状态到持久化存储,支持从故障点恢复。
  2. 背压处理:当处理速度跟不上输入速度时,自动降级或告警。
  3. A/B 测试框架:支持新模型、新规则的渐进式部署,通过流量分流对比效果。
  4. 降级策略:当 LLM 服务不可用时,自动降级到规则引擎单独工作。

实施路线图与技术选型

第一阶段:基础流水线搭建(1-2 个月)

  • 采用 Apache Flink 作为流处理引擎
  • 实现基本的规则引擎流式处理
  • 建立监控和告警系统

第二阶段:LLM 集成优化(2-3 个月)

  • 实现 LLM 批量化调用和缓存
  • 开发模型蒸馏和微调流程
  • 建立 A/B 测试框架

第三阶段:异常检测深度集成(3-4 个月)

  • 集成深度学习异常检测模型
  • 实现实时特征工程管道
  • 建立反馈循环和模型持续学习机制

技术栈建议

  • 流处理:Apache Flink(状态管理能力强)
  • 消息队列:Apache Kafka(生态成熟)
  • 特征存储:Feast 或 Tecton(支持实时特征)
  • 模型服务:TensorFlow Serving 或 Triton Inference Server
  • 监控:Prometheus + Grafana + Jaeger(全链路追踪)

总结与展望

将 Tally 从批处理工具升级为实时多模型协作流水线,不仅仅是技术架构的变革,更是对金融 AI 系统设计理念的重新思考。通过 LLM 分类、规则引擎和异常检测模型的三重协作,我们能够在保证分类准确性的同时,实现实时的风险监控。

这种架构的核心优势在于:

  1. 实时性:毫秒级延迟满足现代金融系统需求
  2. 准确性:多模型协作提供更可靠的分类和检测结果
  3. 可扩展性:模块化设计支持快速迭代和新模型集成
  4. 可解释性:每个决策都有明确的模型依据和规则匹配

未来,随着边缘计算和联邦学习技术的发展,我们还可以将部分处理逻辑下放到用户设备,在保护隐私的同时减少云端计算压力。实时多模型协作流水线不仅适用于银行交易分类,还可以扩展到保险理赔、反洗钱、信用评估等多个金融场景,成为下一代金融 AI 系统的核心架构模式。

资料来源

  1. Hacker News: Tally - A tool to help agents classify your bank transactions
  2. FinAI: Deep learning for real-time anomaly detection in financial transactions
查看归档