Hub documentation

SQL Console: Consulta los conjuntos de datos de Hugging Face en tu navegador

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

SQL Console: Consulta los conjuntos de datos de Hugging Face en tu navegador

Puede ejecutar consultas SQL en el conjunto de datos en el navegador usando la consola SQL. La consola SQL funciona con DuckDB WASM y se ejecuta por completo en el navegador. Puede acceder a la consola SQL desde Data Studio.

Para obtener más información sobre la SQL Console, consulte la publicación en el blog sobre la SQL Console.

A través de la consola SQL, puedes:

  • Ejecuta consultas SQL de DuckDB en el conjunto de datos (consulta Fragmentos SQL para obtener consultas útiles)
  • Comparte los resultados de la consulta con otras personas mediante un enlace (consulta este ejemplo)
  • Descarga los resultados de la consulta en un archivo Parquet o CSV
  • Incrustar los resultados de la consulta en su propia página web mediante un iframe
  • Consultar conjuntos de datos con lenguaje natural

También puedes usar DuckDB localmente a través de la CLI para consultar el conjunto de datos mediante el protocolo hf://. Consulta la documentación de DuckDB Datasets para obtener más información. La consola SQL ofrece un botón Copy to DuckDB CLI que genera la consulta SQL para crear vistas y ejecutar tu consulta en la CLI de DuckDB. Alternativamente, ejecuta las mismas consultas desde una terminal o un script con hf datasets sql.

Ejemplos

Filtrado

La consola de SQL facilita mucho el filtrado de conjuntos de datos. Por ejemplo, si quieres filtrar el conjunto de datos SkunkworksAI/reasoning-0.01 para instrucciones y respuestas con una longitud de razonamiento de al menos 10, puedes usar la siguiente consulta:

Aquí está la consulta SQL para ordenar por la longitud del razonamiento

SELECT *
FROM train
WHERE LENGTH(reasoning_chains) > 10;

Histograma

Muchos autores de conjuntos de datos eligen incluir estadísticas sobre la distribución de los datos en el conjunto. Utilizando la función histogram de DuckDB, podemos trazar un histograma de los valores de una columna.

Por ejemplo, para trazar un histograma de la columna Rating en el conjunto de datos Lichess/chess-puzzles, puedes usar la siguiente consulta:

Obtenga más información sobre la función `histogram` y sus parámetros aquí.

from histogram(train, Rating)

Coincidencia de expresiones regulares

Una de las funciones más potentes de DuckDB es el soporte profundo para expresiones regulares. Puedes usar la función regexp para hacer coincidir patrones en tus datos.

Con la función regexp_matches, podemos filtrar el conjunto de datos GeneralReasoning/GeneralThought-195k para las instrucciones que contienen bloques de código en markdown.

Obtenga más información sobre las funciones de expresiones regulares de DuckDB aquí.

SELECT *
FROM train
WHERE regexp_matches(model_answer, '```')
LIMIT 10;

API de consultas y embeddings guardados

Puede crear, actualizar y eliminar incrustaciones de SQL Console de forma programática. Las incrustaciones son consultas guardadas que se pueden compartir mediante un enlace o incrustar en otras páginas.

Crear un embed:

POST /api/datasets/{namespace}/{repo}/sql-console/embed
Content-Type: application/json
Authorization: Bearer {token}

{
  "sql": "SELECT * FROM train LIMIT 10",
  "title": "Sample rows",
  "private": false,
  "views": [{"key": "default/train", "displayName": "Train", "viewName": "train"}]
}

Actualizar un embed:

PATCH /api/datasets/{namespace}/{repo}/sql-console/embed/{embed_id}
Content-Type: application/json
Authorization: Bearer {token}

{
  "sql": "SELECT * FROM train LIMIT 20",
  "title": "Updated title",
  "private": true
}

Eliminar un embed:

DELETE /api/datasets/{namespace}/{repo}/sql-console/embed/{embed_id}
Authorization: Bearer {token}

Detección de fugas

La detección de fuga es el proceso de identificar si los datos de un conjunto de datos están presentes en varias divisiones, por ejemplo, si el conjunto de prueba está presente en el conjunto de entrenamiento.

Obtenga más información sobre la detección de fugas aquí.

WITH
    overlapping_rows AS (
        SELECT COALESCE(
            (SELECT COUNT(*) AS overlap_count
             FROM train
             INTERSECT
             SELECT COUNT(*) AS overlap_count
             FROM test),
            0
        ) AS overlap_count
    ),
    total_unique_rows AS (
        SELECT COUNT(*) AS total_count
        FROM (
            SELECT * FROM train
            UNION
            SELECT * FROM test
        ) combined
    )
SELECT
    overlap_count,
    total_count,
    CASE 
        WHEN total_count > 0 THEN (overlap_count * 100.0 / total_count)
        ELSE 0
    END AS overlap_percentage
FROM overlapping_rows, total_unique_rows;
Update on GitHub