SQLFlow est un compilateur qui compile un programme SQL vers un workflow qui s'exécute sur Kubernetes. La contribution est un programme SQL qui a écrit dans notre grammaire SQL étendue pour soutenir les emplois d'IA, notamment la formation, la prédiction, l'évaluation du modèle, l'explication du modèle, les emplois personnalisés et la programmation mathématique. La sortie est un flux de travail ARGO qui s'exécute sur un cluster Kubernetes distribué.
SQLFlow prend en charge divers systèmes de bases de données comme MySQL, MARIADB, TIDB, Hive, MaxCompute et de nombreuses boîtes d'outils d'apprentissage automatique comme TensorFlow, Keras, XGBOost.
Essayez Sqlflow maintenant dans notre terrain de jeu https://playground.sqlflow.tech/ et consultez les tutoriels pratiques.
L'expérience actuelle des applications basées sur la ML de développement nécessite une équipe d'ingénieurs de données, de scientifiques des données, d'analystes commerciaux ainsi qu'une prolifération de langages avancés et d'outils de programmation comme Python, SQL, SAS, SASS, Julia, R. La fragmentation de l'outillage et de l'environnement de développement apporte des difficultés supplémentaires en matière d'ingénierie pour modéliser la formation / le paramètre. Que se passe-t-il si nous épousons les SQL de gestion des données / traitements les plus utilisés avec les capacités ML / système et permettons aux ingénieurs de compétences SQL développer des applications avancées basées sur ML?
Il y a déjà des travaux en cours dans l'industrie. Nous pouvons écrire des algorithmes de prédiction (ou de notation) simples d'apprentissage automatique dans SQL à l'aide d'opérateurs comme DOT_PRODUCT
. Cependant, cela nécessite des paramètres de modèle Copy-N-Pasting du programme de formation aux instructions SQL. Dans le monde commercial, nous voyons des moteurs SQL propriétaires offrant des extensions pour soutenir les capacités d'apprentissage automatique.
CREATE MODEL
.Aucune des solutions existantes ne résout notre point de douleur, nous voulons plutôt qu'il soit entièrement extensible.
Voici des exemples de formation d'un modèle DNNCLassifier TensorFlow à l'aide de l'échantillon de données IRIS.Train et de la prédiction à l'aide du modèle formé. Vous pouvez voir à quel point il est cool d'écrire un code ML élégant à l'aide de SQL:
sqlflow > SELECT *
FROM iris . train
TO TRAIN DNNClassifier
WITH model . n_classes = 3 , model . hidden_units = [ 10 , 20 ]
COLUMN sepal_length, sepal_width, petal_length, petal_width
LABEL class
INTO sqlflow_models . my_dnn_model ;
...
Training set accuracy: 0 . 96721
Done training
sqlflow > SELECT *
FROM iris . test
TO PREDICT iris . predict .class
USING sqlflow_models . my_dnn_model ;
...
Done predicting. Predict table : iris . predict
SQLFlow adorera prendre en charge autant de frameworks et de sources de données ML traditionnels que possible, mais nous pensons que l'expansion serait difficile à faire uniquement, nous aimerions donc entendre vos options sur les cadres ML et les sources de données que vous utilisez actuellement. Veuillez vous référer à notre feuille de route pour des délais spécifiques, faites-nous également savoir vos scénarios et intérêts actuels autour du projet SQLFlow afin que nous puissions prioriser en fonction des commentaires de la communauté.
Vos commentaires sont notre motivation à passer à autre chose. Veuillez nous faire part de vos questions, préoccupations et problèmes en déposant les problèmes de GitHub.
Licence Apache 2.0