From 6ca888afd71496fd284ea2be433a5d773e0a1253 Mon Sep 17 00:00:00 2001 From: Montana Low Date: Sun, 17 Apr 2022 14:21:35 -0700 Subject: [PATCH 1/9] tighten up verbage and add a logo --- README.md | 94 ++++++++++++++++++++++++++++-------------------------- logo.png | Bin 0 -> 64907 bytes 2 files changed, 49 insertions(+), 45 deletions(-) create mode 100644 logo.png diff --git a/README.md b/README.md index 384c2f68c..922c9f8cc 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,45 @@ # PostgresML -PostgresML aims to be the easiest way to gain value from machine learning. Anyone with a basic understanding of SQL should be able to build and deploy models to production, while receiving the benefits of a high performance machine learning platform. PostgresML leverages state of the art algorithms with built in best practices, without having to setup additional infrastructure or learn additional programming languages. +![PostgresML](./logo.png) + +PostgresML is a Proof of Concept to create the simplest end-to-end machine learning system. We're building on the shoulders of giants, namely Postgres which is arguably the most robust storage and compute engine that exists, and we're coupling that with Python machine learning libraries (and their c implementations) to prototype different machine learning workflows. + +Common architectures driven by standard organizational hierarchies make it hard to employ machine learning successfully, i.e [Conway's Law](https://en.wikipedia.org/wiki/Conway%27s_law). A single model at a unicorn scale startup may require work from Data Scientists, Data Engineers, Machine Learning Engineers, Infrastructure Engineers, Reliability Engineers, Front & Backend Product Engineers, multiple Engineering Managers, a Product Manager and finally, the Business Partner(s) this "solution" is supposed to eventually address. It can take multiple quarters of effort to shepherd a first effort. The typical level of complexity adds risk, makes maintenance a hot potato and iteration politically difficult. Worse, burnout and morale damage to expensive headcount have left teams and leadership warry of implementing ML solutions throughout the industry, even though FAANGs have proven the immense value when successful. + +Our goal is that anyone with a basic understanding of SQL should be able to build and deploy machine learning models to production, while receiving the benefits of a high performance machine learning platform. Ultimately, PostgresML aims to be the easiest, safest and fastest way to gain value from machine learning. + + +### FAQ + +*How far can this scale?* + +Petabyte sized Postgres deployements are [documented](https://www.computerworld.com/article/2535825/size-matters--yahoo-claims-2-petabyte-database-is-world-s-biggest--busiest.html) in production since at least 2008, and [recent patches](https://www.2ndquadrant.com/en/blog/postgresql-maximum-table-size/) have enabled working beyond exabyte up to the yotabyte scale. Machine learning models can be horizontally scaled using industry proven Postgres replication techniques. + +*How reliable can this be?* + +Postgres is widely considered mission critical, and some of the most [reliable](https://www.postgresql.org/docs/current/wal-reliability.html) technology in any modern stack. PostgresML allows an infrastructure organization to leverage pre-existing best practices to deploy machine learning into production with less risk and effort than other systems. For example, model backup and recovery happens automatically alongside normal data backup procedures. + +*How good are the models?* + +Model quality is often a tradeoff between compute resources and incremental quality improvements. Sometimes a few thousands training examples and an off the shelf algorithm can deliver significant business value after a few seconds of training a model. PostgresML allows stakeholders to choose several different algorithms to get the most bang for the buck, or invest in more computationally intensive techniques as necessary. In addition, PostgresML automatically applies best practices for data cleaning like imputing missing values by default and normalizing data to prevent common problems in production. + +PostgresML doesn't help with reformulating a business problem into a machine learning problem. Like most things in life, the ultimate in quality will be a concerted effort of experts working over time. PostgresML is intended to establish successful patterns for those experts to collaborate around while leveraging the expertise of open source and research communities. + +*Is PostgresML fast?* + +Colocating the compute with the data inside the database removes one of the most common latency bottlenecks in the ML stack, which is the (de)serialization of data between stores and services across the wire. Modern versions of Postgres also support automatic query parrellization across multiple workers to further minimize latency in large batch workloads. Finally, PostgresML will utilize GPU compute if both the algorithm and hardware support it, although it is currently rare in practice for production databases to have GPUs. We're working on [benchmarks](sql/benchmarks.sql). + +### Current features +- Train models directly in Postgres with data from a table or view +- Make predictions in Postgres using SELECT statements +- Manage new versions and algorithms over time as your solution evolves + +### Planned features +- Model management dashboard +- Data explorer +- Scheduled training +- More algorithms and libraries including custom algorithm support + ## Installation @@ -99,15 +138,16 @@ $ psql -c 'SELECT pgml.version()' The two most important functions the framework provides are: -1. `pgml.train(project_name TEXT, objective TEXT, relation_name TEXT, y_column_name TEXT)`, +1. `pgml.train(project_name TEXT, objective TEXT, relation_name TEXT, y_column_name TEXT, algorithm TEXT)`, 2. `pgml.predict(project_name TEXT, VARIADIC features DOUBLE PRECISION[])`. -The first function trains a model, given a human-friendly project name, a `regression` or `classification` objective, a table or view name which contains the training and testing datasets, -and the name of the `y` column containing the target values. The second function predicts novel datapoints, given the project name for an exiting model trained with `pgml.train`, -and a list of features used to train that model. +The first function trains a model, given a human-friendly project name, a `regression` or `classification` objective, a table or view name which contains the training and testing datasets, and the name of the `y` column containing the target values. The second function predicts novel datapoints, given the project name for an exiting model trained with `pgml.train`, and a list of features used to train that model. -We'll be using the [Red Wine Quality](https://www.kaggle.com/datasets/uciml/red-wine-quality-cortez-et-al-2009) dataset from Kaggle for this example. You can find it in the `data` folder in this repository. -You can import it into PostgresML running in Docker with this: +You can also browse complete [code examples in the repository](examples/). + +### Walkthrough + +We'll be using the [Red Wine Quality](https://www.kaggle.com/datasets/uciml/red-wine-quality-cortez-et-al-2009) dataset from Kaggle for this example. You can find it in the `data` folder in this repository. You can import it into PostgresML running in Docker with this: ```bash $ psql -f data/winequality-red.sql -p 5433 -U root -h 127.0.0.1 @@ -159,43 +199,7 @@ LIMIT 1; (1 row) ``` -Checkout the [documentation](https://TODO) to view the full capabilities, including: -- [Creating Training Sets](https://TODO) - - [Classification](https://TODO) - - [Regression](https://TODO) -- [Supported Algorithms](https://TODO) - - [Scikit Learn](https://TODO) - - [XGBoost](https://TODO) - - [Tensorflow](https://TODO) - - [PyTorch](https://TODO) - -### Planned features -- Model management dashboard -- Data explorer -- More algorithms and libraries incluiding custom algorithm support - - -### FAQ - -*How well does this scale?* - -Petabyte sized Postgres deployements are [documented](https://www.computerworld.com/article/2535825/size-matters--yahoo-claims-2-petabyte-database-is-world-s-biggest--busiest.html) in production since at least 2008, and [recent patches](https://www.2ndquadrant.com/en/blog/postgresql-maximum-table-size/) have enabled working beyond exabyte up to the yotabyte scale. Machine learning models can be horizontally scaled using well tested Postgres replication techniques on top of a mature storage and compute platform. - -*How reliable is this system?* - -Postgres is widely considered mission critical, and some of the most [reliable](https://www.postgresql.org/docs/current/wal-reliability.html) technology in any modern stack. PostgresML allows an infrastructure organization to leverage pre-existing best practices to deploy machine learning into production with less risk and effort than other systems. For example, model backup and recovery happens automatically alongside normal data backup procedures. - -*How good are the models?* - -Model quality is often a tradeoff between compute resources and incremental quality improvements. PostgresML allows stakeholders to choose algorithms from several libraries that will provide the most bang for the buck. In addition, PostgresML automatically applies best practices for data cleaning like imputing missing values by default and normalizing data to prevent common problems in production. After quickly enabling 0 to 1 value creation, PostgresML enables further expert iteration with custom data preperation and algorithm implementations. Like most things in life, the ultimate in quality will be a concerted effort of experts working over time, but that shouldn't get in the way of a quick start. - -*Is PostgresML fast?* - -Colocating the compute with the data inside the database removes one of the most common latency bottlenecks in the ML stack, which is the (de)serialization of data between stores and services across the wire. Modern versions of Postgres also support automatic query parrellization across multiple workers to further minimize latency in large batch workloads. Finally, PostgresML will utilize GPU compute if both the algorithm and hardware support it, although it is currently rare in practice for production databases to have GPUs. Checkout our [benchmarks](https://todo). - - - -### Development +### Contributing Follow the installation instructions to create a local working Postgres environment, then install your PgML package from the git repository: @@ -205,7 +209,7 @@ sudo python3 setup.py install cd ../ ``` -Run the test: +Run the tests from the root of the repo: ``` psql -f sql/test.sql diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2b1630eb5978b309ae9e27934d3a6142fc509db4 GIT binary patch literal 64907 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 literal 0 HcmV?d00001 From b0f4be0d8ee670285f23d0749b398fcccd1354f5 Mon Sep 17 00:00:00 2001 From: Montana Low Date: Sun, 17 Apr 2022 14:28:40 -0700 Subject: [PATCH 2/9] add a license --- MIT-LICENSE.txt | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 MIT-LICENSE.txt diff --git a/MIT-LICENSE.txt b/MIT-LICENSE.txt new file mode 100644 index 000000000..ee71f9bff --- /dev/null +++ b/MIT-LICENSE.txt @@ -0,0 +1,20 @@ +Copyright (c) 2022 Lev Kokotov and Montana Low + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file From 642b0ccdba7118ce72265a34dd804cb17dc6eab2 Mon Sep 17 00:00:00 2001 From: Montana Low Date: Sun, 17 Apr 2022 15:04:14 -0700 Subject: [PATCH 3/9] smaller logo --- README.md | 2 +- logo-small.png | Bin 0 -> 17416 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 logo-small.png diff --git a/README.md b/README.md index 922c9f8cc..63c2b52ef 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # PostgresML -![PostgresML](./logo.png) +![PostgresML](./logo-small.png) PostgresML is a Proof of Concept to create the simplest end-to-end machine learning system. We're building on the shoulders of giants, namely Postgres which is arguably the most robust storage and compute engine that exists, and we're coupling that with Python machine learning libraries (and their c implementations) to prototype different machine learning workflows. diff --git a/logo-small.png b/logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..6c60f06885406280c9c147a8037f09c1364b392d GIT binary patch literal 17416 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 Date: Sun, 17 Apr 2022 18:31:31 -0700 Subject: [PATCH 4/9] transparent logo --- logo-small.png | Bin 17416 -> 27608 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/logo-small.png b/logo-small.png index 6c60f06885406280c9c147a8037f09c1364b392d..32b0f11480c8c71641fc94771c9861bc09005425 100644 GIT binary patch literal 27608 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

#T3*{dWy=ms1uRo7;i z4dqMjZm;ev_b&7&?QKrZH3R4J$OqHDZC5e*`1ov>;4XK#O{9Kpua3HIVOnX>d^_)6 z8ZEi*S34iJUL8!j@8O;7$vdy7UY`8blE8I4=@{q2(Hu)NJ=T#GC_LL4($k#R6h(f2 z)EgCOy;}g^m?U;{GFwxgHQZZu29l8Wnd_iHB{^jf!NcXxKQ4iQ8p=qBf`op-m;5|{ zv6KAa2m%6!_SXj#BrOB$vl9v^B`XGX2!RSph$iDBmjMDo1R^CWq~f}I;pO6q%h5=0 z!fQpNOTkKNtx-=x9;Z@BB}PJ8j;Yo0Kwti#Yc&>6KGvwchr`pTj5j2evFY;DsoOJNz03EV?S?Mp1RKJ9uxlCbz4jxBJZD97LRu6nq-- zp%>s?kc;k1!OqOI-)Z^-;`t35e#hNw+h7hR-_vi*`^R+M7M~Ya;C1+>+edd+_bdxx zyE6+_l<$29uHUF!t5Ee8Ulx{e-j?V41s_i$;=0>WzWSU$By8sM^>G%yT(#%*OsPKd z+d?wZ`AXv5dO(}1p5@4%fRD|TO%XVur#H*(8FlMr+ZEx)ud$QvwTG_pipSM3U5AGQ z9n4JofXgmtmaFY0v+l0@`>c>u#P+vak5oM*hMeOFbWP-i+s#%pN~!4WL?*TW6RZcm2i zpt}<#-}Q%Cw~tfvy;0NoyjPSxRL|?#;G8WdV#r!rHGG|Wj!`zX$7?_)1Os8&Z`atJ z$)Qlh7zwFdx90w&(_c$`j2K8+u1*p^GV&St?hD_7lT%u%7R}LN@4yTRzqV{#w+xMV zQjR&BPem7*cD^kCuK(e4M4p&$TIpvin7fvUnKNg`x(_Y#i*_abPh*VH=8F0Jdn9|@ z{3BueGX#HAi`)CF!vo#}F(Fib@=86r%eS7gGBV3(u$YV&|;Z_J`$( zqv%f0-y;QDPSWrcB2Ge2*SQmkr8xHnI{`HFJmjvPya}2^9UG=sdbh$ANdXV{=br8y z=X)x=Ho2HT4KoVr_migXk<%_tZ5Q_=hV18^?0Cf zNx15kU4Zj&Chd3>E%m#wN4fGZ61o|@#bSHQb-qoXouwurP351u(#)KqXQbL8B%a

S1;RY+0y#&-bjRXLmUsRb6gYjUf6tsIUVz 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 Date: Sun, 17 Apr 2022 18:37:32 -0700 Subject: [PATCH 5/9] image --- logo-small.png | Bin 27608 -> 27698 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/logo-small.png b/logo-small.png index 32b0f11480c8c71641fc94771c9861bc09005425..eabcdd39321a6bf3f337ebe2f8b48c274ffc84b5 100644 GIT binary patch delta 23435 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 From 10ef9f8b15c9c397167b8b0f0c1efe9dbab2360c Mon Sep 17 00:00:00 2001 From: Lev Date: Sun, 17 Apr 2022 18:38:40 -0700 Subject: [PATCH 6/9] scale --- logo-small.png | Bin 27698 -> 20705 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/logo-small.png b/logo-small.png index eabcdd39321a6bf3f337ebe2f8b48c274ffc84b5..2b92789f2eb9eda3ec92afe6a55a847a9393c0d0 100644 GIT binary patch delta 16521 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 A9smFU delta 23569 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 Date: Sun, 17 Apr 2022 19:36:36 -0700 Subject: [PATCH 7/9] readme --- README.md | 123 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 106 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 63c2b52ef..23e42256d 100644 --- a/README.md +++ b/README.md @@ -2,26 +2,126 @@ ![PostgresML](./logo-small.png) -PostgresML is a Proof of Concept to create the simplest end-to-end machine learning system. We're building on the shoulders of giants, namely Postgres which is arguably the most robust storage and compute engine that exists, and we're coupling that with Python machine learning libraries (and their c implementations) to prototype different machine learning workflows. +PostgresML is an end-to-end machine learning system. Using only SQL, it allows to train models and run online predictions, alongside normal queries, directly using the data in your databases. -Common architectures driven by standard organizational hierarchies make it hard to employ machine learning successfully, i.e [Conway's Law](https://en.wikipedia.org/wiki/Conway%27s_law). A single model at a unicorn scale startup may require work from Data Scientists, Data Engineers, Machine Learning Engineers, Infrastructure Engineers, Reliability Engineers, Front & Backend Product Engineers, multiple Engineering Managers, a Product Manager and finally, the Business Partner(s) this "solution" is supposed to eventually address. It can take multiple quarters of effort to shepherd a first effort. The typical level of complexity adds risk, makes maintenance a hot potato and iteration politically difficult. Worse, burnout and morale damage to expensive headcount have left teams and leadership warry of implementing ML solutions throughout the industry, even though FAANGs have proven the immense value when successful. +## Why + +Deploying machine learning models into existing applications is not straight forward. Unless you're already using Python in your day to day work, you need to learn a new language and toolchain, figure out how to EL(T) your data from your database(s) into a warehouse or object storage, learn how to train models (Scikit-Learn, Pytorch, Tensorflow, etc.), and finally serve preditions to your apps, forcing your organization into microservices and all the complexity that comes with it. + +PostgresML makes ML simple: your data doesn't really go anywhere, you train using simple SQL commands, and you get the predictions to your apps using a mechanism you've been using already: a Postgres connection and a query. Our goal is that anyone with a basic understanding of SQL should be able to build and deploy machine learning models to production, while receiving the benefits of a high performance machine learning platform. Ultimately, PostgresML aims to be the easiest, safest and fastest way to gain value from machine learning. +## Quick start + +Using Docker, boot up PostresML locally: + +```bash +$ docker-compose up +``` + +The system is available on port 5433 by default, just in case you happen to run Postgres locally already: + +```bash +$ psql -U root -h 127.0.0.1 -p 5433 +``` + +We've included a couple examples in the `examples/` folder. You can run them directly with `$ psql -U root -h 127.0.0.1 -p 5433 -f `. + +See [installation instructions](#Installation) for installing PostgresML in different supported environments and more information. + +## Features + +### Training models + +Given a Postgres table or a view, PostgresML can train a model using some commonly used algorithms. We currently support the following Scikit-Learn regression and classification models: + +- `LinearRegression`, +- `LogisticRegression`, +- `SVR`, +- `SVC`, +- `RandomForestRegressor`, +- `RandomForestClassifier`, +- `GradientBoostingRegressor`, +- `GradientBoostingClassifier`. + +Training a model is then as simple as: + +```sql +SELECT * FROM pgml.train( + 'Human-friendly project name', + 'regression', + '', + '' +); +``` + +PostgresML will snapshot the data from the table, train multiple models from the above list given the objective (`regression` or `classification`), and automatically choose and deploy the model with the best predictions. + +### Making predictions + +Once the model is trained, making predictions is as simple as: + +```sql +SELECT pgml.predict('Human-friendly project name', ARRAY[...]) AS prediction_score; +``` + +where `ARRAY[...]` is a list of the features for which we want to run a prediction. This list has to be in the same order as the columns in the data table. This score then can be used in normal queries, for example: + +```sql +SELECT *, + pgml.predict( + 'Probability of buying our products', + ARRAY[user.location, NOW() - user.created_at, user.total_purchases_in_dollars] + ) AS likely_to_buy_score +FROM users +WHERE comapany_id = 5 +ORDER BY likely_to_buy_score +LIMIT 25; +``` + +Take a look [below](#Working-with-PostgresML) for an example with real data. + +### Model and data versioning + +As data in your database changes, it is possible to retrain the model again to get better predictions. With PostgresML, it's as simple as running the `pgml.train` command again. If the model scores better, it will be automatically used in predictions; if not, the existing model will be kept and continue to score in your queries. We also snapshot the training data, so models can be retrained deterministically to validate and fix any issues. + +## Roadmap + +This project is currently a proof of concept. Some important features which we are currently thinking about or working on are listed below. + +### Production deployment + +Most companies that use PostgreSQL in production do so using managed services like AWS RDS, Digital Ocean, Azure, etc. Those services do not allow running custom extensions, so we have to run PostgresML +directly on VMs, e.g. EC2, droplets, etc. The idea here is to replicate production data directly from Postgres and make it available in real-time to PostgresML. We're considering solutions like logical replication for small to mid-size databases, and Debezium for multi-TB deployments. + +### Model management dashboard + +A good looking and useful UI goes a long way. A dashboard similar to existing solutions like MLFlow or AWS SageMaker will make the experience of working with PostgresML as pleasant as possible. + + +### Data explorer + +A data explorer allows anyone to browse the dataset in production and to find useful tables and features to build effective machine learning models. + +### More algorithms + +Scikit-Learn is a good start, but we're also thinking about including Tensorflow, Pytorch, and many more useful models. + ### FAQ *How far can this scale?* -Petabyte sized Postgres deployements are [documented](https://www.computerworld.com/article/2535825/size-matters--yahoo-claims-2-petabyte-database-is-world-s-biggest--busiest.html) in production since at least 2008, and [recent patches](https://www.2ndquadrant.com/en/blog/postgresql-maximum-table-size/) have enabled working beyond exabyte up to the yotabyte scale. Machine learning models can be horizontally scaled using industry proven Postgres replication techniques. +Petabyte sized Postgres deployements are [documented](https://www.computerworld.com/article/2535825/size-matters--yahoo-claims-2-petabyte-database-is-world-s-biggest--busiest.html) in production since at least 2008, and [recent patches](https://www.2ndquadrant.com/en/blog/postgresql-maximum-table-size/) have enabled working beyond exabyte and up to the yotabyte scale. Machine learning models can be horizontally scaled using standard Postgres replicas. *How reliable can this be?* -Postgres is widely considered mission critical, and some of the most [reliable](https://www.postgresql.org/docs/current/wal-reliability.html) technology in any modern stack. PostgresML allows an infrastructure organization to leverage pre-existing best practices to deploy machine learning into production with less risk and effort than other systems. For example, model backup and recovery happens automatically alongside normal data backup procedures. +Postgres is widely considered mission critical, and some of the most [reliable](https://www.postgresql.org/docs/current/wal-reliability.html) technology in any modern stack. PostgresML allows an infrastructure organization to leverage pre-existing best practices to deploy machine learning into production with less risk and effort than other systems. For example, model backup and recovery happens automatically alongside normal Postgres data backup. *How good are the models?* -Model quality is often a tradeoff between compute resources and incremental quality improvements. Sometimes a few thousands training examples and an off the shelf algorithm can deliver significant business value after a few seconds of training a model. PostgresML allows stakeholders to choose several different algorithms to get the most bang for the buck, or invest in more computationally intensive techniques as necessary. In addition, PostgresML automatically applies best practices for data cleaning like imputing missing values by default and normalizing data to prevent common problems in production. +Model quality is often a tradeoff between compute resources and incremental quality improvements. Sometimes a few thousands training examples and an off the shelf algorithm can deliver significant business value after a few seconds of training. PostgresML allows stakeholders to choose several different algorithms to get the most bang for the buck, or invest in more computationally intensive techniques as necessary. In addition, PostgresML automatically applies best practices for data cleaning like imputing missing values by default and normalizing data to prevent common problems in production. PostgresML doesn't help with reformulating a business problem into a machine learning problem. Like most things in life, the ultimate in quality will be a concerted effort of experts working over time. PostgresML is intended to establish successful patterns for those experts to collaborate around while leveraging the expertise of open source and research communities. @@ -29,17 +129,6 @@ PostgresML doesn't help with reformulating a business problem into a machine lea Colocating the compute with the data inside the database removes one of the most common latency bottlenecks in the ML stack, which is the (de)serialization of data between stores and services across the wire. Modern versions of Postgres also support automatic query parrellization across multiple workers to further minimize latency in large batch workloads. Finally, PostgresML will utilize GPU compute if both the algorithm and hardware support it, although it is currently rare in practice for production databases to have GPUs. We're working on [benchmarks](sql/benchmarks.sql). -### Current features -- Train models directly in Postgres with data from a table or view -- Make predictions in Postgres using SELECT statements -- Manage new versions and algorithms over time as your solution evolves - -### Planned features -- Model management dashboard -- Data explorer -- Scheduled training -- More algorithms and libraries including custom algorithm support - ## Installation @@ -138,7 +227,7 @@ $ psql -c 'SELECT pgml.version()' The two most important functions the framework provides are: -1. `pgml.train(project_name TEXT, objective TEXT, relation_name TEXT, y_column_name TEXT, algorithm TEXT)`, +1. `pgml.train(project_name TEXT, objective TEXT, relation_name TEXT, y_column_name TEXT, algorithm TEXT DEFAULT NULL)`, 2. `pgml.predict(project_name TEXT, VARIADIC features DOUBLE PRECISION[])`. The first function trains a model, given a human-friendly project name, a `regression` or `classification` objective, a table or view name which contains the training and testing datasets, and the name of the `y` column containing the target values. The second function predicts novel datapoints, given the project name for an exiting model trained with `pgml.train`, and a list of features used to train that model. From 879b80e08cd93c198543e273d306e555bc12d9bc Mon Sep 17 00:00:00 2001 From: Lev Date: Sun, 17 Apr 2022 19:39:37 -0700 Subject: [PATCH 8/9] wording --- README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 23e42256d..bd2f30dfe 100644 --- a/README.md +++ b/README.md @@ -20,15 +20,19 @@ Using Docker, boot up PostresML locally: $ docker-compose up ``` -The system is available on port 5433 by default, just in case you happen to run Postgres locally already: +The system is available on port 5433 by default, just in case you happen to be running Postgres already: ```bash $ psql -U root -h 127.0.0.1 -p 5433 ``` -We've included a couple examples in the `examples/` folder. You can run them directly with `$ psql -U root -h 127.0.0.1 -p 5433 -f `. +We've included a couple examples in the `examples/` folder. You can run them directly with: -See [installation instructions](#Installation) for installing PostgresML in different supported environments and more information. +```bash +$ psql -U root -h 127.0.0.1 -p 5433 -f +``` + +See [installation instructions](#Installation) for installing PostgresML in different supported environments, and for more information. ## Features From 4987b60490cc400d7b615cff40e279006659eb67 Mon Sep 17 00:00:00 2001 From: Lev Date: Sun, 17 Apr 2022 19:44:18 -0700 Subject: [PATCH 9/9] more --- README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index bd2f30dfe..3d66a6a4e 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ SELECT * FROM pgml.train( 'Human-friendly project name', 'regression', '', - '' + '' ); ``` @@ -70,7 +70,7 @@ Once the model is trained, making predictions is as simple as: SELECT pgml.predict('Human-friendly project name', ARRAY[...]) AS prediction_score; ``` -where `ARRAY[...]` is a list of the features for which we want to run a prediction. This list has to be in the same order as the columns in the data table. This score then can be used in normal queries, for example: +where `ARRAY[...]` is a list of features for which we want to run a prediction. This list has to be in the same order as the columns in the data table. This score then can be used in normal queries, for example: ```sql SELECT *, @@ -92,7 +92,7 @@ As data in your database changes, it is possible to retrain the model again to g ## Roadmap -This project is currently a proof of concept. Some important features which we are currently thinking about or working on are listed below. +This project is currently a proof of concept. Some important features, which we are currently thinking about or working on, are listed below. ### Production deployment @@ -108,11 +108,17 @@ A good looking and useful UI goes a long way. A dashboard similar to existing so A data explorer allows anyone to browse the dataset in production and to find useful tables and features to build effective machine learning models. + ### More algorithms Scikit-Learn is a good start, but we're also thinking about including Tensorflow, Pytorch, and many more useful models. +### Scheduled training + +In applications where data changes often, it's useful to retrain the models automatically on a schedule, e.g. every day, every week, etc. + + ### FAQ *How far can this scale?* pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy