Skip to content

PostgresML is an end-to-end machine learning system. It enables you to train models and make online predictions using only SQL, without your data ever leaving your favorite database.

License

Notifications You must be signed in to change notification settings

santiatpml/postgresml

 
 

Repository files navigation

PostgresML

Simple machine learning with PostgreSQL

CI Join our Discord!

Train and deploy models to make online predictions using only SQL, with an open source extension for Postgres. Manage your projects and visualize datasets using the built in dashboard.

PostgresML in practice

The dashboard makes it easy to compare different algorithms or hyperparameters across models and datasets.

PostgresML dashboard

See it in action — cloud.postgresml.org

Please see the quick start instructions for general information on installing or deploying PostgresML. A developer guide is also available for those who would like to contribute.

What's in the box

See the documentation for a complete list of functionality.

All your favorite algorithms

Whether you need a simple linear regression, or extreme gradient boosting, we've included support for all classification and regression algorithms in Scikit Learn and XGBoost with no extra configuration.

Managed model deployements

Models can be periodically retrained and automatically promoted to production depending on their key metric. Rollback capability is provided to ensure that you're always able to serve the highest quality predictions, along with historical logs of all deployments for long term study.

Online and offline support

Predictions are served via a standard Postgres connection to ensure that your core apps can always access both your data and your models in real time. Pure SQL workflows also enable batch predictions to cache results in native Postgres tables for lookup.

Instant visualizations

Run standard analysis on your datasets to detect outliers, bimodal distributions, feature correlation, and other common data visualizations on your datasets. Everything is cataloged in the dashboard for easy reference.

Hyperparameter search

Use either grid or random searches with cross validation on your training set to discover the most important knobs to tweak on your favorite algorithm.

SQL native vector operations

Vector operations make working with learned emebeddings a snap, for things like nearest neighbor searches or other similarity comparisons.

The performance of Postgres

Since your data never leaves the database, you retain the speed, reliability and security you expect in your foundational stateful services. Leverage your existing infrastructure and expertise to deliver new capabilities.

Open source

We're building on the shoulders of giants. These machine learning libraries and Postgres have received extensive academic and industry use, and we'll continue their tradition to build with the community. Licensed under MIT.

Quick Start

  1. Clone this repo:
$ git clone [email protected]:postgresml/postgresml.git
  1. Start dockerized services. PostgresML will run on port 5433, just in case you already have Postgres running:
$ cd postgresml && docker-compose up
  1. Connect to PostgreSQL in the Docker container with PostgresML installed:
$ psql postgres://postgres@localhost:5433/pgml_development
  1. Validate your installation:
pgml_development=# SELECT pgml.version();
 
 version
---------
 0.8.1
(1 row)

See the documentation for a complete guide to working with PostgresML.

About

PostgresML is an end-to-end machine learning system. It enables you to train models and make online predictions using only SQL, without your data ever leaving your favorite database.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 69.7%
  • HTML 9.3%
  • CSS 7.8%
  • JavaScript 7.2%
  • Python 2.8%
  • PLpgSQL 2.1%
  • Other 1.1%