BigQuery ML创建模型耗时突增 preprocess阶段卡顿原因咨询
BigQuery ML逻辑回归训练preprocess阶段耗时突增原因说明
近期BigQuery ML针对LOGISTIC_REG模型类型确实上线了几处默认行为变更,会直接导致preprocess阶段计算量上涨,和描述的现象完全匹配:
- 自动特征统计逻辑默认升级
2024年Q3推送的版本更新中,逻辑回归模型的自动预处理流程默认新增了全量特征剖面统计步骤:训练启动前会对所有输入特征做全表扫描,计算缺失率、基数、数值分位数、类别频次分布等统计指标,用于自动做异常值截断、缺失值分桶、高基数特征降维处理。旧版本仅会抽样10%的训练数据做这类统计,新版本默认改为全量扫描,这部分计算占preprocess阶段耗时的60%以上。
可以直接查看对应作业的执行明细,如果preprocess阶段存在FEATURE_PROFILE_FULL_SCAN算子,即可确认触发了该逻辑。 - 自动特征交叉默认开启
同批次更新中,面向分类场景的逻辑回归模型默认开启低基数特征自动两两交叉能力:系统会自动识别基数在5-20区间的类别特征,生成交叉组合特征送入训练,交叉维度的映射表构建计算全部放在preprocess阶段执行。旧版本该能力仅在显式开启全局可解释性、或手动配置特征交叉规则时才会触发。
回退方案
不需要修改训练数据逻辑,只要在CREATE MODEL的OPTIONS中显式指定参数,将预处理行为回退到更新前的版本即可,参考配置如下:
CREATE MODEL `项目名.数据集名.模型名` OPTIONS( model_type = 'LOGISTIC_REG', input_label_cols = ['你的标签列名'], -- 关闭全量特征统计,回退为抽样统计 enable_preprocessing_advanced_stats = FALSE, -- 关闭自动特征交叉 auto_feature_cross = FALSE ) AS -- 此处保留原来完全一致的训练数据查询SQL SELECT 特征列, 标签列 FROM `训练表` WHERE 日期分区 BETWEEN '起始日期' AND '结束日期'
按上述参数配置后,相同数据、相同SQL的训练耗时会回落到和2个月前一致的水平。
内容的提问来源于stack exchange,提问作者Ritesh Kumar
相关产品推荐
相关产品推荐

