投资组合优化

使用 cuOpt 和 cuML 进行 GPU 加速的投资组合优化

基本思路

本手册演示了使用 NVIDIA cuOpt 和 NVIDIA cuML 的端到端 GPU 加速工作流程,使用 Mean-CVaR(条件风险价值)模型近乎实时地解决大规模投资组合优化问题。

投资组合优化 (PO) 涉及解决高维、非线性数值优化问题以平衡风险和回报。现代投资组合通常包含数千个资产,使得传统的基于 CPU 的求解器对于高级工作流程而言速度太慢。通过将繁重的计算工作转移到 GPU,该解决方案极大地减少了计算时间。

你将完成什么

您将实现一个提供绩效评估、策略回测、基准测试和可视化工具的管道。工作流程包括:

  • GPU 加速优化: 利用 NVIDIA cuOpt LP/MILP 求解器
  • 数据驱动的风险建模: 将 CVaR 实施为基于场景的风险度量,对尾部风险进行建模,而不对资产回报分布做出假设。
  • 场景生成: 通过 NVIDIA cuML 使用 GPU 加速的内核密度估计 (KDE) 对回报分布进行建模。
  • 现实世界的约束管理: 实施约束,包括集中度限制、杠杆约束、营业额限制和基数约束。
  • 全面回测: 使用测试再平衡策略的特定工具评估投资组合表现。

开始之前需要了解什么

  • 所需技能(你会得到的):

    • 基本使用终端和 Linux 命令行
    • 对 Docker 容器的基本了解
    • 使用 Jupyter Notebooks 和 Jupyter Lab 的基础知识
    • 基础Python知识
    • 数据科学和机器学习概念的基础知识
    • 股票市场和股票的基本知识
  • 可选技能(你会喜欢的):

    • 金融服务背景,特别是量化金融和投资组合管理
    • 适度的知识编程算法和策略,在Python中,使用机器学习概念
  • 须知条款:

    • CVaR 与均值方差: 与传统的均值方差模型不同,此工作流程使用条件风险值 (CVaR) 来捕获风险的细微差别,特别是尾部风险或特定于场景的压力。
    • 线性规划: CVaR 将风险回报权衡重新表述为基于场景的线性规划,其中问题的规模随着场景的数量而变化,这就是 GPU 加速至关重要的原因。
    • 基准测试: 该管道包含内置工具,可根据基于标准 CPU 的库简化基准测试流程,以验证性能提升。

先决条件

硬件要求:

  • NVIDIA Grace Blackwell GB10 超级芯片系统 (DGX Spark)
  • 至少 40GB 统一内存可用于 docker 容器和 GPU 加速数据处理
  • 至少 30GB 可用存储空间用于 docker 容器和数据文件
  • 建议使用高速互联网连接

软件要求:

  • 带有有效 NVIDIA 和 CUDA 驱动程序的 NVIDIA DGX 操作系统
  • 码头工人
  • git

附属文件

所有必需的资产都可以在 Portfolio Optimization 仓库 中找到。 在运行的剧本中,它们都可以在 playbook 文件夹下找到。

  • cvar_basic.ipynb - 主要剧本笔记本。
  • /setup/README.md - Playbook 环境快速入门指南。
  • /setup/start_playbook.sh - 在 Docker 容器中开始安装 playbook 的脚本
  • /setup/setup_playbook.sh - 在用户进入 jupyterlab 环境之前配置 Docker 容器
  • /setup/pyproject.toml - 用作 setup_playbook 中的命令将安装到 playbook 环境中的库列表
  • cuDF, cuML, and cuGraph folders - 更多示例笔记本,可继续您的 GPU 加速数据科学之旅。 当您启动 Docker 容器时,这些将成为 Docker 容器的一部分。

时间与风险

  • 预计时间 首次运行约 20 分钟
    • 笔记本总处理时间:整个管道大约需要 7 分钟。
  • 风险:
    • 最小,因为它在 Docker 容器中运行。
  • 回滚: 停止 Docker 容器并删除克隆的仓库以完全删除安装。

  • 最后更新: 2026 年 1 月 21 日

    • 使用正确的项目路径更新 git clone 命令。