orbital 转换scikitlearn pipeline 为sql的框架

orbital 是一个转换scikitlearn pipeline 为sql的框架,设计上比较有意思,可以将我们训练好的scikitlearn 模型,直接转换为sql 执行,这样进行实际推理预测就会特别简单了,内部实际核心是将训练的权重数据提取出来,转换为实际执行的sql 参数

参考示例

# Create a SciKit Learn Pipeline and Train it
pipeline = Pipeline(
    [
        ("preprocess", ColumnTransformer([("scaler", StandardScaler(with_std=False), COLUMNS)],
                                        remainder="passthrough")),
        ("linear_regression", LinearRegression()),
    ]
)
pipeline.fit(X_train, y_train)

# Convert it to an Orbital Pipeline
orbital_pipeline = orbital.parse_pipeline(pipeline, features={
    "sepal_length": orbital.types.DoubleColumnType(),
    "sepal_width": orbital.types.DoubleColumnType(),
    "petal_length": orbital.types.DoubleColumnType(),
    "petal_width": orbital.types.DoubleColumnType(),
})

# Generate SQL
sql = orbital.export_sql("DATA_TABLE", orbital_pipeline, dialect="duckdb")

说明

orbital 的好处比较明显就是实际实用会比较轻量,不依赖推理框架了,直接sql执行,当然缺点也是会比较明显的,一些是推理加速,一个是支持的模型,当前 orbital 支持的模型还不是很多,主要偏向于传统机器学习的

参考资料

https://github.com/posit-dev/orbital

https://posit-dev.github.io/orbital/

posted on 2025-10-03 08:00  荣锋亮  阅读(15)  评论(0)    收藏  举报

导航