Du Machine Learning avec SQLite

Du Machine Learning avec SQLite

Romain Clement
Human Talks Grenoble - 13 juin 2023

Romain Clement - Human Talks Grenoble - 13 juin 2023
Du Machine Learning avec SQLite

🙋 Question

Faire de l'apprentissage automatique en SQL, directement depuis SQLite, une folie ?

Romain Clement - Human Talks Grenoble - 13 juin 2023
Du Machine Learning avec SQLite

🤷 Pourquoi ?

  • Machine Learning <==> Données
  • Ecosystème SQLite
  • Analyse ad-hoc
  • Intégration pipelines SQL
Romain Clement - Human Talks Grenoble - 13 juin 2023
Du Machine Learning avec SQLite

⚙️ SQLite-ML

  • Extension SQLite
  • Open-source (licence Apache-2.0)
  • Inspiré par PostgresML et MLFlow
  • Intégration de scikit-learn
  • Approche MLOps
Romain Clement - Human Talks Grenoble - 13 juin 2023
Du Machine Learning avec SQLite

💻 Démo

Jouons avec les nouvelles fonctions SQL !

Romain Clement - Human Talks Grenoble - 13 juin 2023
Du Machine Learning avec SQLite

💻 Démo

  1. Entrainement d'un modèle :
SELECT sqml_train(
    experiment_name,
    prediction_type,
    algorithm,
    dataset,
    target,
    test_size,
    split_strategy
);
Romain Clement - Human Talks Grenoble - 13 juin 2023
Du Machine Learning avec SQLite

💻 Démo

  1. Prédictions avec le modèle
SELECT sqml_predict(experiment_name, features);
SELECT sqml_predict_batch(experiment_name, features);
Romain Clement - Human Talks Grenoble - 13 juin 2023
Du Machine Learning avec SQLite

😢 Limitations

  • Python uniquement (User Defined Functions)
  • Environnement virtuel Python
  • Tables virtuelles SQLite
  • Pas de big data
Romain Clement - Human Talks Grenoble - 13 juin 2023
Du Machine Learning avec SQLite

🚀 Evolutions

  • Extension native (Rust)
  • Pré-traitements
  • Recherche d'hyperparamètres
  • Modèles pré-entrainés (🤗 Hugging Face)
Romain Clement - Human Talks Grenoble - 13 juin 2023
Du Machine Learning avec SQLite

Références

Romain Clement - Human Talks Grenoble - 13 juin 2023
Du Machine Learning avec SQLite

Romain CLEMENT

Entrepreneur individuel
Ingénieur et formateur
Data / Machine Learning

Organisateur du Meetup Python Grenoble

🌐 romain-clement.net
🔗 linkedin.com/in/romainclement

Romain Clement - Human Talks Grenoble - 13 juin 2023

--- ## 💡 Fonctionnalités - 4 nouvelles fonctions SQL - Chargement de jeux de données connus - Entraînement supervisé (classification, régression) - Prédiction unique et _batch_ - Sélection automatique de modèle

--- ## 💻 Démo 1. Chargement d'un jeu de données : ```sql SELECT sqml_load_dataset(name, table); ```

Vue SQL `appartements_grenoble_2021` pour vente appartement à Grenoble en 2021 ```sql SELECT sqml_train( 'Prediction appartements Grenoble', 'regression', 'linear_regression', 'appartements_grenoble_2021', 'valeur' ) AS training; ```

Par exemple, pour prédire la valeur foncière d'un T3 de 50m2 place Victor Hugo : ```sql SELECT round( sqml_predict( 'Prediction appartements Grenoble', json_object( 'surface', 50, 'pieces', 3, 'latitude', 45.1893525, 'longitude', 5.7216074 ) ) ) AS prediction ``` Par exemple, pour prédire la valeur foncière d'un T4 100m2 place Victor Hugo : ```sql SELECT round( sqml_predict( 'Prediction appartements Grenoble', json_object( 'surface', 100, 'pieces', 4, 'latitude', 45.1893525, 'longitude', 5.7216074 ) ) ) AS prediction ```