607 karma · joined May 5, 2010
This sort of cultural difference of exploration and letting work be fun is one of the big things that accounts for the differences in velocity between big co's and little co's. Does your work give you energy to the point where not only you love doing it, you want to tell everyone else about it?
If you'd like free hosting, feel free to reach out. I'm one of the founders at postgresml.org.
This work builds on our previous efforts that give a 10x performance improvement from generating the LLM embedding[2] from input text along with tuning vector recall[3] in a single process to avoid excessive network transit.
We'd love your feedback on our roadmap[4] for this extension, if you have other use cases for an ML application database. So far, we've implemented our best practices for scalable vector storage to provide an example reference implementation for interacting with an ML application database based on Postgres.
[1]: https://github.com/postgresml/postgresml/tree/master/pgml-sd... [2]: https://postgresml.org/blog/generating-llm-embeddings-with-o... [3]: https://postgresml.org/blog/tuning-vector-recall-while-gener... [4]: https://github.com/postgresml/postgresml/tree/master/pgml-sd...
They both do ML in the database, but we've been at least as focused on scalability for Postgres workloads as ML functionality, with our PgCat project. It's a pooler that gives us load balancing, sharding, failover etc to handle large clusters of many machines for application and inference workloads to scale horizontally.
OTOH MindsDB interconnects with just about every data source out there, which you may consider an advantage.
We've extended Postgres w/ open source models from Huggingface, as well as vector search, and classical ML algos, so that everything can happen in the same process. It's significantly faster and cheaper, which leaves a large latency budget available to expand model and algorithm complexity. In addition open source models have already surpassed OpenAI's text-embedding-ada-002 in quality, not just speed. [1]
Here is a series of posts explaining how to accomplish the complexity involved in a typical ML powered application, as a single SQL query, that runs in a single process with memory shared between models and feature indexes, including learned embeddings and reranking models.
- Generating LLM embeddings with open source models in the database[2]
- Tuning vector recall [3]
- Personalize embedding results with application data [4]
This allows a single SQL query to accomplish what would normally be an entire application w/ several model services and databases
e.g. for a modern chatbot built across various services and databases
-> application sends user input data to embedding service
<- embedding model generates a vector to send back to application
-> application sends vector to vector database
<- vector database returns associated metadata found via ANN
-> application sends metadata for reranking
<- reranking model prunes less helpful context
-> application sends finished prompt w/ context to generative model
<- model produces final output
-> application streams response to user
[1]: https://huggingface.co/spaces/mteb/leaderboard[2]: https://postgresml.org/blog/generating-llm-embeddings-with-o...
[3]: https://postgresml.org/blog/tuning-vector-recall-while-gener...
[4]: https://postgresml.org/blog/personalize-embedding-vector-sea...
Shared RAM across all cores can be a reason to use fewer larger machines rather than more smaller ones in such a case. Postgres does give you options either way though.
- Multiple formats were compared
- Duckdb is not a production ready service
- Pandas isn't used
You seem to be trolling.
ML algorithms get a lot focus and hype. Data retrieval, not as much.
This is the degenerate form of Conways Law.
We'd really appreciate it if you could kick the tires let us know how we can make ML more approachable.