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/
