用途:为 PyMC 实验提供 MLflow 追踪,记录一次拟合是如何产生的、保留推断输出,并在不改变使用方建模环境的前提下取回结果。技能名为 pymc-mlflow,可选集成模块是 pymc_marketing.mlflow,不是单独的 pymc-mlflow 包。
主要能力:设置 tracking URI 与项目实验,记录来源/数据标识、包版本、随机种子和实际采样器配置;用一致的小写标签区分探索性、可报告和 mock 运行,标签只描述来源,不代表推断质量。在显式 run 中拟合,用 with mlflow.start_run(): 使异常标记为失败运行;在昂贵计算前记录配置。持久化真实推断:先保存本地原始 DataTree,再计算诊断或做增强;通用 autolog() 不保存 idata.nc,需显式序列化上传或调用 log_inference_data。记录诊断而非安慰性摘要,保留链标识与实际抽样;缺失或非有限诊断是未解决,不是零。取回时通过 MLflow 下载产物到本地路径,重新打开 DataTree 并检查组、坐标和必需变量。比较时只对相同响应尺度、观测和验证目标比较预测分数,并报告不确定性与 Pareto-k 警告。
使用方式:普通 PyMC 模型可直接用 MLflow 手动追踪;需要自动记录或追踪 CLV 拟合时使用 PyMC-Marketing 的 autologging;保存/恢复 MMM 模型或记录预测包装器时参考 MMM 持久化与注册表准备。示例面向 PyMC 6/DataTree 与现代 ArviZ。PyMC-Marketing 1.2.0 要求 PyMC >=6.3.1,<6.4.0 与 ArviZ >=1.2.0,<2.0;MLflow 为单独可选安装。启用集成前先检查已安装版本与签名,不要为使用 autologging 而降级或替换可用的建模环境。
限制:追踪与部署要区分开。后验 NetCDF 是推断输出,不是可执行的通用 PyMC 模型、预处理管线或预测端点。PyMC-Marketing 支持原生模型恢复;MMM 另有 MLflow 预测包装器,但 1.2.0 内置的点/后验预测路径在不受支持的 original_scale 参数上会失败,应使用文档中的原生恢复路径,不要声称该包装器可用于服务。CLV 追踪没有等价的 CLV 服务包装器。runs:/ URI 指向运行产物,models:/ URI 指向已注册模型,记录或注册都不等于部署服务。避免工作流污染:不要把 pm.sample 全局替换为 mock_sample,mock 输出是先生成的基建数据而非后验推断,可能没有采样器统计量;测试补丁要限定作用域并恢复原可调用对象。autologging 每进程只启用一次。追踪数据库、后验文件和原始数据不要纳入版本控制,产物与自动记录的数据集输入可能含观测值、预测变量和可识别坐标,需使用授权存储与访问控制,不要上传凭据或未批准数据。模型构建与预测用 pymc-modeling,收敛、PPC 与 LOO 解释用 arviz-diagnostics;本技能只记录这些工作流,不替代它们。