DuckDB analiza más de 50,000 conjuntos de datos almacenados en el Hugging Face Hub

DuckDB analiza más de 50,000 conjuntos de datos del Hugging Face Hub.

El Hugging Face Hub se dedica a proporcionar acceso abierto a conjuntos de datos para todos y brindar a los usuarios las herramientas para explorarlos y comprenderlos. Puede encontrar muchos de los conjuntos de datos utilizados para entrenar grandes modelos de lenguaje (LLMs) populares como Falcon, Dolly, MPT y StarCoder. Hay herramientas para abordar la equidad y el sesgo en conjuntos de datos como Disagregadores, y herramientas para previsualizar ejemplos dentro de un conjunto de datos como el Visor de Conjuntos de Datos.

Una vista previa del conjunto de datos OpenAssistant con el Visor de Conjuntos de Datos.

Estamos felices de compartir que recientemente agregamos otra característica para ayudarlo a analizar conjuntos de datos en el Hub; ¡puede ejecutar consultas SQL con DuckDB en cualquier conjunto de datos almacenado en el Hub! Según la Encuesta de Desarrolladores de StackOverflow 2022, SQL es el tercer lenguaje de programación más popular. También queríamos un sistema de gestión de bases de datos (DBMS) rápido diseñado para ejecutar consultas analíticas, por eso estamos entusiasmados con la integración con DuckDB. ¡Esperamos que esto permita a aún más usuarios acceder y analizar conjuntos de datos en el Hub!

TLDR

El servidor de conjuntos de datos convierte automáticamente todos los conjuntos de datos públicos en el Hub a archivos Parquet, que puede ver haciendo clic en el botón “Convertido automáticamente a Parquet” en la parte superior de una página de conjunto de datos. También puede acceder a la lista de URL de los archivos Parquet con una simple llamada HTTP.

r = requests.get("https://datasets-server.huggingface.co/parquet?dataset=blog_authorship_corpus")
j = r.json()
urls = [f['url'] for f in j['parquet_files'] if f['split'] == 'train']
urls
['https://huggingface.co/datasets/blog_authorship_corpus/resolve/refs%2Fconvert%2Fparquet/blog_authorship_corpus/blog_authorship_corpus-train-00000-of-00002.parquet',
 'https://huggingface.co/datasets/blog_authorship_corpus/resolve/refs%2Fconvert%2Fparquet/blog_authorship_corpus/blog_authorship_corpus-train-00001-of-00002.parquet']

Cree una conexión con DuckDB e instale y cargue la extensión httpfs para permitir la lectura y escritura de archivos remotos:

import duckdb

url = "https://huggingface.co/datasets/blog_authorship_corpus/resolve/refs%2Fconvert%2Fparquet/blog_authorship_corpus/blog_authorship_corpus-train-00000-of-00002.parquet"

con = duckdb.connect()
con.execute("INSTALL httpfs;")
con.execute("LOAD httpfs;")

Una vez conectado, ¡puede comenzar a escribir consultas SQL!

con.sql(f"""SELECT horoscope, 
    count(*), 
    AVG(LENGTH(text)) AS avg_blog_length 
    FROM '{url}' 
    GROUP BY horoscope 
    ORDER BY avg_blog_length 
    DESC LIMIT(5)"""
)

Para obtener más información, consulte la documentación.

De conjunto de datos a Parquet

Los archivos Parquet son columnares, lo que los hace más eficientes para almacenar, cargar y analizar. Esto es especialmente importante cuando se trabaja con conjuntos de datos grandes, que estamos viendo cada vez más en la era de los LLM. Para admitir esto, el servidor de conjuntos de datos convierte y publica automáticamente cualquier conjunto de datos público en el Hub como archivos Parquet. La URL de los archivos Parquet se puede obtener con el punto final /parquet.

Analizar con DuckDB

DuckDB ofrece un rendimiento impresionante para ejecutar consultas analíticas complejas. Es capaz de ejecutar una consulta SQL directamente en un archivo Parquet remoto sin ningún costo adicional. Con la extensión httpfs, DuckDB puede consultar archivos remotos como conjuntos de datos almacenados en el Hub utilizando la URL proporcionada por el punto final /parquet. DuckDB también admite consultas en múltiples archivos Parquet, lo cual es realmente conveniente porque el servidor de conjuntos de datos divide grandes conjuntos de datos en fragmentos más pequeños de 500MB.

Mirando hacia el futuro

Saber qué hay dentro de un conjunto de datos es importante para desarrollar modelos porque puede afectar la calidad del modelo de muchas maneras. Al permitir a los usuarios escribir y ejecutar cualquier consulta SQL en los conjuntos de datos del Hub, esta es otra forma en que podemos permitir el acceso abierto a los conjuntos de datos y ayudar a los usuarios a ser más conscientes del contenido de los conjuntos de datos. ¡Estamos emocionados de que lo pruebes y estamos ansiosos por ver qué tipo de información revela tu análisis!

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Esta investigación de Aprendizaje Automático desarrolla un modelo de IA para eliminar de manera efectiva los sesgos en un conjunto de datos.

La recopilación de datos puede ser una oportunidad primordial para la introducción no intencionada de sesgos de textu...

Inteligencia Artificial

Conoce a Watsonx Code Assistant de IBM Revolucionando la codificación empresarial con asistencia impulsada por IA

En el mundo actual de desarrollo de software, uno de los desafíos clave que enfrentan las empresas es la necesidad de...

Inteligencia Artificial

Del Texto más allá de las Palabras

Hola lectores, hoy en día vivimos en la era de los Modelos de Lenguaje Grandes (LLMs), los cuales potencian software ...

Inteligencia Artificial

Conoce a MetaGPT El marco de inteligencia artificial de código abierto que transforma a los GPT en ingenieros, arquitectos y gerentes.

Los Modelos de Lenguaje Grandes (LLMs) basados en sistemas multiagente tienen oportunidades excepcionales para imitar...