15 points par xguru 2024-02-07 | 1 commentaires | Partager sur WhatsApp
  • Atteint 76,5 % sur SQL-Eval, ce qui en fait la meilleure performance dans cette taille de modèle
    • Inférieur à GPT-4 (83 %), mais supérieur à GPT-3.5-Turbo (65 %) / Claude-2 (64,5 %)
    • Plus élevé que sqlcoder-7b (71 %) et proche de sqlcoder-15b (78 %)
  • Développement de ChatDB, un outil qui permet de créer des tableaux de bord en no-code sans avoir à écrire de SQL

Exemple

  • Question : Déterminez le client ayant eu le montant total de commandes le plus élevé le mois dernier, puis listez tous les produits qu’il a commandés ainsi que leurs quantités.
  • Sortie :
    WITH LastMonthOrders AS (  
      SELECT o.customerid, o.orderid, op.productid, op.quantity, p.productname, op.quantity * p.unitprice AS total_order_value  
      FROM orders o  
      JOIN order_details op ON o.orderid = op.orderid  
      JOIN products p ON op.productid = p.productid  
      WHERE o.orderdate >= date_trunc('month', CURRENT_DATE) - INTERVAL '1 month'  
      AND o.orderdate < date_trunc('month', CURRENT_DATE)  
    ),  
    CustomerTotalOrderValue AS (  
      SELECT customerid, SUM(total_order_value) AS total_value  
      FROM LastMonthOrders  
      GROUP BY customerid  
      ORDER BY total_value DESC  
      LIMIT 1  
    )  
    SELECT c.customerid, c.companyname, lm.productid, lm.productname, lm.quantity  
    FROM CustomerTotalOrderValue ctov  
    JOIN LastMonthOrders lm ON ctov.customerid = lm.customerid  
    JOIN customers c ON c.customerid = lm.customerid;  
    
  • NaturalQuery gère très bien les questions complexes comme celle-ci, les sous-requêtes et les ratios.

1 commentaires

 
xguru 2024-02-07

Commentaires sur Hacker News

  • Le score de performance sur SQL-Eval est de 76,5 %, donc légèrement derrière GPT-4 à 83 % et sqlcoder-15b à 78 %.

    • Quels pourraient être les cas d’usage où un tel stagiaire IA en data science serait utile ? Que peut-on construire avec une IA qui atteint 75 % de précision ?
    • En tant que programmeur qui consulte souvent la documentation lors de tâches SQL, j’ai l’impression qu’une telle IA pourrait servir à rédiger une première ébauche de requête.
    • Les grands modèles peuvent donner de meilleurs résultats sur un cas unique, mais on peut faire tourner assez facilement un modèle 15b sur un M1 avec 64 Go.
    • En entreprise, on n’a pas forcément envie d’exposer les informations de schéma aux données d’entraînement d’OpenAI, et on peut aussi vouloir exécuter les requêtes hors ligne.
    • Un petit modèle local est utile quand on veut exécuter beaucoup de requêtes (réduction des coûts).
    • Un mini data scientist permettant aussi à des personnes non techniques de poser des questions serait formidable, mais je me demande comment déterminer si une requête fait partie des 25 % de cas « inexacts ».
    • Peut-être qu’un algorithme de consensus de type RAID, où plusieurs IA vérifient les réponses des autres, pourrait améliorer le taux de réussite global.
    • Ce sont surtout des réflexions pour mettre mes idées au clair, mais d’autres auront peut-être plus d’idées. Félicitations à l’OP pour le lancement !
  • Je pense que les modèles text-to-SQL ne résolvent pas le bon problème.

    • La difficulté, ce n’est pas la syntaxe ni le fait de ne pas savoir écrire une requête group by, c’est de comprendre la signification des données.
    • Avec une table Snowflake de 50 colonnes, on ne peut pas deviner ce que représentent les colonnes à partir de leur seul nom.
    • Par exemple, s’il y a 10 colonnes toutes nommées en ...price, il faut aller voir le wiki ou lire les définitions DBT pour comprendre ce qu’elles signifient réellement.
    • Je ne peux pas faire confiance aux requêtes générées par le modèle : il ne comprend pas les données, seulement la syntaxe des requêtes.
  • Il est signalé que ce n’est pas open source ; comme il y a des restrictions d’usage, je parlerais plutôt de « source disponible ».

  • C’est intéressant et ça touche un domaine qui m’intéresse, mais je ne pense pas que ce soit une question complexe, plutôt une question d’analyse basique.

    • La plupart des analystes peuvent écrire ce genre de chose en dormant.
    • J’ai essayé d’utiliser ChatGPT pour écrire du SQL, et c’est médiocre, même si ça va clairement s’améliorer.
  • Comme beaucoup d’usages de l’IA, c’est très bien comme « graine », surtout pour suggérer des idées comme le regroupement par plages.

    • Mais dans presque toutes les bases de données, le vrai problème est dans les détails.
    • Différents produits interprètent la « quantité » différemment (par exemple boîte vs unité), les coupons et remises sont modélisés de façon étrange, les poids sont supposés en livres/kilogrammes puis mélangés sans indication d’unité, etc.
  • Ceux qui disent que ce n’est pas utile parce que ce n’est correct qu’à 75 % devraient considérer deux choses :

    • C’est une première version, et c’est déjà mille fois plus utile pour les product owners et les analystes que n’importe quel Airtable qu’on puisse imaginer.
    • On veut être exact face à tous les défis, mais on vit déjà dans une économie du « suffisamment bon », et si c’est assez proche, ce sera assez bon pour le business.
  • Je me demande comment il se comporte sur Bird, un benchmark plus complexe et plus réaliste.

  • D’après mon expérience dans le domaine des données, beaucoup de gens reçoivent des questions de la direction, doivent assez bien comprendre le data warehouse pour écrire le SQL qui y répond, et parfois livrer une réponse joliment mise en forme.

    • Parfois, il faut aussi anticiper des questions de suivi de la direction comme « pourquoi ce chiffre est-il si bas ? ce n’est sûrement pas censé être aussi bas », et demander alors aux data engineers de vérifier s’il y a un bug.
    • Comme pour tous les LLM, je ne sais pas si cela rendra cette responsabilité beaucoup plus facile, ou si cela la fera complètement disparaître.
  • Vraiment très cool, mais cela ressemble à de l’open source alors que la licence n’est pas standard.

    • Le modèle lui-même se trouve ici : NaturalSQL-6.7B-v0
    • Ça a l’air d’un excellent modèle de base, mais je me demande si le text-to-sql est un bon cas d’usage pour un petit modèle.
    • Nous développons aussi des outils dans ce domaine et nous aimerions pouvoir utiliser gpt-4, en espérant qu’il connaisse mieux les réponses. Même gpt 3.5 n’est pas suffisant pour la production.
  • Très sympa, et je me demande si cette licence permettrait de l’utiliser avec Vanna : Vanna