You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vertex AI流水线创建模型时的Timestamp JSON序列化错误问题

解决Vertex AI中流水线Timestamp序列化报错问题

尽管你的数据集仅包含浮点和整数特征,但报错说明模型流水线中存在Timestamp类型对象,导致Vertex AI在处理模型元数据时无法完成JSON序列化(Notebook环境不会触发这类元数据序列化检查,因此本地运行正常)。以下是针对性的解决方法:

方法1:排查并清理预处理流水线的元数据

本地加载已保存的模型,检查预处理组件中是否混入Timestamp类型的字段:

import joblib
from datetime import datetime

final_model = joblib.load("final_model.pkl")
preprocessor = final_model.named_steps['preprocessor']

# 递归遍历属性,定位Timestamp对象
def find_timestamp(obj, path=""):
    if hasattr(obj, '__dict__'):
        for k, v in obj.__dict__.items():
            current_path = f"{path}.{k}" if path else k
            if isinstance(v, datetime):
                print(f"发现Timestamp对象:{current_path} = {v}")
            elif isinstance(v, (list, tuple, dict)):
                find_timestamp(v, current_path)

find_timestamp(preprocessor)

如果找到Timestamp字段,将其转换为字符串后重新保存模型:

# 示例:将_fit_time字段转为字符串
preprocessor._fit_time = preprocessor._fit_time.strftime("%Y-%m-%d %H:%M:%S")
joblib.dump(final_model, "final_model_cleaned.pkl")

方法2:拆分保存预处理组件与模型,规避整体序列化问题

将流水线拆分为预处理部分和XGBoost模型分别保存,部署时再重新组合:

# 拆分保存
joblib.dump(final_model.named_steps['preprocessor'], "preprocessor.pkl")
final_model.named_steps['classifier'].save_model("xgboost_model.json")

# 预测时重新组合流水线
import xgboost as xgb
from sklearn.pipeline import Pipeline

preprocessor = joblib.load("preprocessor.pkl")
classifier = xgb.XGBClassifier()
classifier.load_model("xgboost_model.json")
pipeline = Pipeline(steps=[("preprocessor", preprocessor), ("classifier", classifier)])

方法3:自定义JSON编码器处理Timestamp(需修改Vertex AI部署脚本)

如果必须保留含Timestamp的元数据,可在Vertex AI的推理脚本中添加自定义编码器:

import json
from datetime import datetime

class TimestampEncoder(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, datetime):
            return obj.isoformat()
        return super().default(obj)

# 序列化元数据时使用该编码器
metadata_json = json.dumps(model_metadata, cls=TimestampEncoder)

内容的提问来源于stack exchange,提问作者MMM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 19:51:02