15 puntos por xguru 2024-02-07 | 1 comentarios | Compartir por WhatsApp
  • Alcanzó 76.5% en SQL-Eval, mostrando el mejor rendimiento dentro de su tamaño de modelo
    • Aunque no supera a GPT-4 (83%), es mejor que GPT-3.5-Turbo (65%) / Claude-2 (64.5%)
    • Está por encima de sqlcoder-7b (71%) y es similar a sqlcoder-15b (78%)
  • Se desarrolló ChatDB, una herramienta que permite crear dashboards sin código y sin necesidad de escribir SQL

Ejemplo

  • Pregunta: Determina al cliente con el mayor monto de pedidos del mes pasado y enumera todos los productos que pidió junto con sus cantidades.
  • Salida:
    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 funciona muy bien con preguntas complejas como la anterior, subconsultas y proporciones.

1 comentarios

 
xguru 2024-02-07

Opiniones en Hacker News

  • Su puntaje de rendimiento en SQL-Eval es de 76.5%, quedando un poco por detrás del 83% de GPT-4 y del 78% de sqlcoder-15b.

    • ¿En qué áreas de aplicación podría ser útil un pasante de ciencia de datos con IA como este? ¿Qué se puede construir con una IA que tiene 75% de precisión?
    • Como programador que suele buscar referencias al trabajar con SQL, creo que una IA así podría servir para redactar el primer borrador de una consulta.
    • Los modelos más grandes pueden dar mejores resultados en un solo caso, pero el modelo de 15b se puede ejecutar fácilmente en una m1 con 64GB.
    • En entornos empresariales, a veces no quieres filtrar información del esquema a los datos de entrenamiento de OpenAI, y también puede que quieras ejecutar consultas sin conexión.
    • Cuando quieres hacer muchas consultas, un modelo pequeño y local es útil por costo.
    • Sería genial tener un mini científico de datos para que la gente no técnica también pueda consultar, pero me pregunto cómo decidir si una consulta cae dentro del 25% “incorrecto”.
    • Tal vez se pueda mejorar la tasa total de éxito con un algoritmo de consenso tipo RAID, donde varias IA verifiquen las respuestas entre sí.
    • La mayor parte de esto es solo ordenar mis ideas, pero quizá otros tengan más ideas. ¡Felicidades al OP por el lanzamiento!
  • Creo que los modelos de texto a SQL no están resolviendo el problema correcto.

    • La parte difícil no es la sintaxis ni no saber cómo escribir una consulta con group by, sino entender qué significan los datos.
    • Puedes ver una tabla de Snowflake con 50 columnas y no tener forma de adivinar qué es solo por los nombres de las columnas.
    • Por ejemplo, si tienes una tabla con 10 columnas llamadas todas algo como ...price, necesitas buscar en la wiki o leer la definición en DBT para entender qué significan realmente.
    • No se puede confiar en las consultas que genera el modelo; el modelo no entiende los datos, solo entiende la sintaxis de las consultas.
  • Señalan que esto no es open source; como tiene restricciones basadas en el uso, yo lo llamaría “source available”.

  • Esto es interesante y está dentro de un área que me interesa, pero no creo que sea una pregunta compleja, sino una pregunta analítica básica.

    • La mayoría de los analistas podría escribir esto hasta dormidos.
    • He probado usar ChatGPT para escribir SQL y es regular, aunque sin duda va a mejorar.
  • Como muchos usos de la IA, esto es muy bueno como “semilla”, especialmente para proponer ideas como agrupar por rangos.

    • Pero en casi cualquier base de datos, el problema está en los detalles.
    • Distintos productos interpretan “cantidad” de forma diferente (por ejemplo, caja vs unidad), los cupones y descuentos se modelan de maneras raras, el peso se asume en libras/kilogramos y se mezcla sin indicar unidades, etc.
  • Quienes dicen que esto no sirve porque solo acierta el 75% deberían considerar dos cosas:

    • Esta es la primera versión, y ya es mil veces más útil para product owners y analistas que cualquier Airtable imaginable.
    • Todos queremos exactitud en cada desafío, pero ya vivimos en una economía de “suficientemente bueno”, y si esto se acerca lo suficiente, será suficientemente bueno para el negocio.
  • Me pregunto cómo rendirá en Bird, que es un benchmark más complejo y más realista.

  • Basado en mi experiencia trabajando en datos, muchas personas reciben preguntas de la gerencia, tienen la responsabilidad de entender lo suficiente el data warehouse como para escribir el SQL que responda esas preguntas y, a veces, entregar la respuesta en un formato bonito.

    • A veces también tienen que anticipar preguntas de seguimiento de la gerencia, como “¿por qué ese número está tan bajo? Seguro no debería estar tan bajo”, y entonces pedirle a un data engineer que revise si hay un bug.
    • Como con todos los LLM, no estoy seguro de si esto hará esa responsabilidad mucho más fácil o si la eliminará por completo.
  • Está muy bueno, y aunque la licencia no es estándar, parece open source.

    • El modelo real se puede encontrar aquí: NaturalSQL-6.7B-v0
    • Parece un muy buen modelo base, pero me pregunto si text-to-sql es realmente un buen caso de uso para modelos pequeños.
    • Nosotros también estamos desarrollando herramientas en esta área, y ojalá supiéramos mejor la respuesta; quisiéramos usar gpt-4. Incluso gpt 3.5 no es suficiente para producción.
  • Está muy bueno, pero me pregunto si esta licencia permitiría usarlo con Vanna: Vanna