Morphingdb ist eine PostgreSQL -Erweiterung zur Unterstützung von Deep -Learning -Modellinferenz im Datenbank- und Vektorspeicher.
Mit MorphingDB können Benutzer das LIBTORCH -Modell importieren und Schlussfolgerungen unter Verwendung von Daten aus der Datenbank ziehen.
Mit MorphingDB können Benutzer Vektordaten mit dimensionalen Informationen speichern, sodass LIBTORCH direkt mit Vektordaten in der Datenbank arbeiten können. Benutzer können Daten vorverarbeitet in Vektoren in der Datenbank speichern, um die Inferenz zu beschleunigen.
Morphingdb unterstützt modellorientierte und aufgabenorientierte Inferenz.
Dowload Reißverschluss zu MorphingDB -Projektpfad
modell entpep
unzip models.zip -d ./model/Verwenden Sie Docker Image von Docker Hub
sudo docker pull morphingdb/morphingdb:1.0oder Docker -Bild erstellen
sudo docker build -t morphingdb .Erstellen Sie Docker Contanier
# abs_morphingdb_test_dir is the absolute path of the morphingdb project directory from https://github.com/MorphingDB/Morphingdb_test/
sudo docker run -d
--name MorphingDB_test
-e POSTGRES_PASSWORD=123456
-v [abs_morphingdb_test_dir]:[abs_morphingdb_test_dir]
-v [data_dir]:/var/lib/postgresql/data
-p [port]:5432
morphingdbGeben Sie Docker ein
sudo docker exec -it [contanier id] /bin/bashVerbindung zum Server herstellen
psql -p 5432 -d postgres -U postgres -h localhostAktivieren Sie die Erweiterung
CREATE EXTENSION pgdl; SELECT create_model(model_name, model_path, base_model, model description);Sie müssen die entsprechenden Eingangs- und Ausgangshandler für das erstellte Modell in SRC/external_process schreiben und die Erweiterung wieder aufbauen, indem Sie installieren.
SELECT register_process(); SELECT predict_float([model_name], [ ' cpu ' / ' gpu ' ], [variable_input_column]) from [table];
SELECT predict_text([model_name], [ ' cpu ' / ' gpu ' ], [variable_input_column]) from [table];
Verwenden Sie Fensterfunktionen, um Vorhersagen mit variablen Fenstergrößen zu beschleunigen.
SELECT comment,predict_batch_text([model_name], [ ' cpu ' / ' gpu ' ], [variable_input_column]) over (rows between current row and [window_size] following)
AS result
FROM [table];
SELECT comment,predict_batch_float8([model_name], [ ' cpu ' / ' gpu ' ], [variable_input_column]) over (rows between current row and [window_size] following)
AS result
FROM [table]; SELECT image_classification( < column_name > ) as task_result
FROM < table_name >
WHERE < conditions > ;Nach dem Import des Modells kann der Benutzer die Modellinformationen über die Tabelle model_info anzeigen.
SELECT * from model_info;
MorphingDB unterstützt die Vektorspeicherung, einschließlich der Speicherung von Informationen zur Vektordimension. In Morphingdb ist der Vektortyp MVEC.
create table vec_test (id integer , vec mvec); insert into vec_test values ( 1 , ' [1.0,2.2,3.123,4.2]{4} ' );
insert into vec_test values ( 1 , ' [1.0,2.2,3.123,4.2] ' );
insert into vec_test values ( 1 , ' [1.0,2.2,3.123,4.2]{2,2} ' );
insert into vec_test values ( 1 , ARRAY[ 1 . 0 , 2 . 0 , 3 . 0 , 1 . 2345 ]::float4[]::mvec); select get_mvec_shape(vec) from vec_test;
select get_mvec_data(vec) from vec_test; update vec_test set vec = vec + vec;
update vec_test set vec = vec - text_to_mvec( ' [1,2,3,4] ' );
select * from vec_test where vec == ' [1,2.2,3.123,4.2] ' ;Eine vergleichende Untersuchung von Inferenzansätzen in Database
Erlernen eines datengesteuerten Richtliniennetzwerks für die automatisierte Feature-Engineering vor dem Training
Vorausgebildete Modellempfehlung für die nachgeschaltete Feinabstimmung
Smartlite: Ein DBMS-basiertes Servierungssystem für DNN-Inferenz in ressourcenbezogenen Umgebungen