PQL · SQL prédictif

Vos données ne bougent pas. Le modèle vient à elles.

PQL est une extension DuckDB qui ajoute TRAIN MODEL et PREDICT à SQL. Pas d'export, pas de pipeline, pas de second système.

INSTALL pql FROM community; LOAD pql;
Copié dans le presse-papiers !
  • Open source, licence MIT
  • S'exécute dans le processus DuckDB
  • Entraînement en quelques secondes sur le CPU d'un portable
TRAIN MODEL lapse
  PREDICT EXISTS(transactions)
  FOR customers AT last_seen_at
  HORIZON 30 DAYS;

-- peu après : score, baseline

PREDICT EXISTS(transactions)
  FOR customers USING MODEL lapse;
Ce que c'est

La voie habituelle déplace vos données. PQL déplace le modèle.

Aujourd'hui : les données sortent
  • 8 étapes
  • 3 outils
  • 2 équipes
  • des semaines
Votre base de donnéestables, clés, historique
Exportune copie sort
Pipeline de featuresécrit à la main
Stack d'entraînementPython, GPU
Service d'inférenceà garder synchronisé
Avec PQL : le modèle vient aux données
  • 1 instruction
  • quelques secondes
Votre base de donnéesDuckDB, avec l'extension PQL chargéerien n'est exporté, rien n'est copié
vos tablestelles quelles
TRAIN MODELfeatures construites à partir des clés
PREDICTune ligne par entité
Pour qui

Conçu pour celles et ceux qui sont déjà dans la base.

Si la base est la vôtre

Le développeur base de données

Une instruction SQL, les mêmes tables, les mêmes permissions. Rien à déployer.

Si vous construisez les modèles

Le data scientist

Un premier modèle défendable en quelques secondes, pas en semaines. Les fuites sont traitées par construction.

Si vous opérez les agents

L'agent

La prédiction devient un outil qu'il possède déjà : SQL. Score et baseline reviennent sous forme de lignes.

Où il s'applique

Une entité, ses événements et une question sur son avenir.

Renouvellements SaaS, réachats e-commerce, impayés, volume de tickets. La forme est toujours la même.

Restauration et hôtellerie

customer_idcustomersl'entitélocationsétablissementtransactionsune par visiteline_itemsce qui a été commandéproductsarticle du menu

Quels habitués sont sur le point de ne plus venir ?

TRAIN MODEL lapse
  PREDICT EXISTS(transactions)
  FOR customers AT last_seen_at
  HORIZON 30 DAYS;

Suivi, logistique et flotte

shipment_idcarrier_idvehicle_idscan_eventsscans de suivimaintenancejournal d'entretiendeliveriesrésultatshipmentsl'entitécarriersvehiclesune seconde entité

Cette expédition connaîtra-t-elle une anomalie dans les trois prochains jours ?

TRAIN MODEL risk
  PREDICT EXISTS(scan_events
  WHERE scan_events.type = 'exception')
  FOR shipments AT dispatched_at
  HORIZON 3 DAYS;
Plus d'exemples dans le tutoriel
Les fuites, traitées par construction

Pourquoi il ne peut pas tricher sur les cibles de prévision.

PQL coupe le temps à la valeur AT de chaque ligne. Les features viennent uniquement d'avant cet instant, et le moteur compte le label après.

tout ce que le modèle peut regarderl'historique de chaque table liée
ancre : l'instant AT de cette ligne
ce qu'on lui demande de prédirela fenêtre HORIZON
lignes ultérieures, jamais vues
temps
La preuve sur RelBench

La même classe de précision, en une instruction.

RelBench est le benchmark de Stanford pour la prédiction relationnelle.

Tâche rel-f1PQLGradient boostingBoostingfeatures faites mainRéseau de neurones sur grapheGNNRelBench RDL, GPU
Qualifié dans le top 3 le mois prochain ?AUROC0,8090,8420,809
Abandon en course ?AUROC0,7070,7010,741
Position à l'arrivée ?MAE, plus bas = mieux4,1234,4034,259
Matériel, temps d'entraînementCPU de portable
3 à 15 s
CPU de portable
~1 s
GPU NVIDIA L4
17 à 78 s

Une victoire, une égalité, une défaite face à chacun, sans déplacer une seule ligne.

Écrit à la main
PQL
1 instruction
Gradient boosting
126 lignes de SQL de features
Réseau de neurones sur graphe
~120 lignes de code de modèle

Essayez-le en deux minutes.

Chargez l'extension dans n'importe quel shell DuckDB et entraînez votre premier modèle sur les tables que vous avez déjà.

INSTALL pql FROM community; LOAD pql;
Copié dans le presse-papiers !

Questions fréquentes

PQL (Predictive SQL) est une extension DuckDB open source qui ajoute TRAIN MODEL et PREDICT à SQL. Elle entraîne un modèle sur les tables que vous avez déjà, construit les features à partir de vos clés étrangères et renvoie les prédictions sous forme de lignes, comme n'importe quelle requête.

TRAIN indique un score calculé sur des lignes que le modèle n'a jamais vues, à côté d'une baseline : la réponse que vous obtiendriez sans aucun modèle. Si le modèle ne bat pas la baseline, vous le voyez immédiatement.

La prévision de série unique et saisonnière, comme le chiffre d'affaires quotidien total d'un établissement. Un modèle de séries temporelles dédié y fait mieux. PQL est conçu pour les questions portant sur de nombreuses entités avec des événements liés et horodatés.

Pas aujourd'hui, et c'est voulu. Les modèles vivent le temps de la session. TRAIN et PREDICT s'exécutent dans le même job, en quelques secondes : chaque prédiction porte sur des données fraîches. La persistance est sur la feuille de route pour les cas qui exigent un modèle figé.

Oui. PQL est sous licence MIT et développé ouvertement sur github.com/Guepard-Corp/duckdb-pql.