MorphingDB est une extension PostgreSQL pour soutenir l'inférence du modèle d'apprentissage en profondeur dans la base de données et le stockage vectoriel.
MorphingDB permet aux utilisateurs d'importer le modèle LiBtorch et de faire des inférences à l'aide de données à partir de la base de données.
MorphingDB permet aux utilisateurs de stocker des données vectorielles avec des informations dimensionnelles, permettant à LiBtorch de travailler directement avec les données vectorielles dans la base de données, les utilisateurs peuvent stocker les données prétraitées en vecteurs dans la base de données pour accélérer l'inférence.
MorphingDB prend en charge l'inférence centrée sur le modèle et centré sur la tâche.
Dowload Zip sur MorphingDB Project Path
Modèle dézip
unzip models.zip -d ./model/Utiliser l'image docker de Docker Hub
sudo docker pull morphingdb/morphingdb:1.0ou construire l'image docker
sudo docker build -t morphingdb .Créer 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
morphingdbEntrez Docker
sudo docker exec -it [contanier id] /bin/bashSe connecter au serveur
psql -p 5432 -d postgres -U postgres -h localhostActiver l'extension
CREATE EXTENSION pgdl; SELECT create_model(model_name, model_path, base_model, model description);Vous devez écrire les gestionnaires d'entrée et de sortie correspondants pour le modèle créé dans SRC / EXTERNAL_PROCESS et Rebuild Extension, faites l'installation.
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];
Utilisez des fonctions de fenêtre pour accélérer les prédictions avec des tailles de fenêtre variables.
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 > ;Une fois le modèle importé, l'utilisateur peut afficher les informations du modèle via la table Model_info.
SELECT * from model_info;
MorphingDB prend en charge le stockage vectoriel, y compris le stockage des informations de dimension vectorielle. Dans MorphingDB, le type de vecteur est 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] ' ;Une étude comparative des approches d'inférence dans la catabase
Apprendre un réseau de stratégie basé sur les données pour l'ingénierie des fonctionnalités automatisées pré-formation
Recommandation du modèle pré-formé pour le réglage fin en aval
Smartlite: un système de service basé sur le SGBD pour l'inférence DNN dans des environnements limités aux ressources