SurrealML

SurrealML enables machine learning models to be greatly simplified, ensuring reproducibility and consistency in machine learning pipelines. Running on our Rust engine, models can be built in Python, and imported in to SurrealDB for inference within the database runtime.

View all features
Get started with SurrealDB
Understanding SurrealML

Understanding SurrealML

Maxwell Flitton - Senior Software Engineer, SurrealDB



SurrealML for users

SurrealML for users

Micha de Vries - Software Engineer, SurrealDB



Simplify your machine learning pipelines

Simplify your machine learning pipelines

SurrealML is a new file type for working with PyTorch and SKLearn models in Python. This file format, powered by our Rust runtime, allows machine learning model developers to train models in Python, and save the model and metadata to a portable and open-source file format.

Model versioning for improving machine learning pipelines

Model versioning for improving machine learning pipelines

With support for model versioning, machine learning pipelines can be greatly simplified, bringing consistency and reproducibility to data normalisation and model inference, allowing for execution across multiple different Python versions, environments, and platforms.

Build in Python. Powered by Rust.

Build in Python. Powered by Rust.

Using our Rust-based SurrealML runtime, the file header stores the model name, description, version, and data normalisation logic. This means that the processing logic that is required for all data, as it is passed into a model for inference purposes, no longer has to sit separately in a Python deployment.

Infer on data, directly within the database

Infer on data, directly within the database

With embedded metadata and data normalisation logic stored within the SurrealML file, and surrounding the pre-trained internal model, SurrealML files can be ingested into SurrealDB, enabling model inference within the Rust-based SurrealDB runtime. The database runtime understands what arguments and values the model expects, allowing any data within the database to be inferred against the supplied model.

Work with both raw, and structured data inputs

Work with both raw, and structured data inputs

We are taking the flexibility and ecosystem of machine learning in Python, and bringing it alongside the power and performance of Rust and SurrealDB. Whether working with raw data inputs, or simplified model arguments, SurrealDB extends the power of Python machine-learning, without changing the traditional approach to implementing machine-learning workflows in Python.

SurrealDB offers a dynamic and adaptable platform for business. With an integrated suite of cutting-edge database solutions, tools, and services, SurrealDB empowers your workforce to discover innovative answers using products meticulously crafted to meet their requirements.

The query language in SurrealDB looks and works similarly to traditional-SQL, but allows for querying over time-series and connected graph data. SurrealQL is an advanced query language, with programming language functionality, that allows developers or data analysts to work with SurrealDB in the ways they choose.

Live Queries in SurrealDB enable a simple yet seamless way of building modern, responsive applications, whether connecting to SurrealDB as a traditional backend database, or when connecting directly to the database from the frontend.

SurrealDB is designed for building applications of any size - and for that, query performance, and improved data analysis workloads are key. With SurrealDB secondary indexes, you can now index data using traditional indexes, full-text search indexing, and vector-embedding search for artificial intelligence use cases.

Change Feeds enable SurrealDB to play a role within the wider ecosystem of enterprise, cloud, or micro-service based platforms, giving users the ability to retrieve and sync changes from SurrealDB to external systems and platforms.