Almacenando tus Modelos y Conjuntos de Datos en Hugging Face Spaces usando Streamlit

Almacenamiento en Hugging Face Spaces con Streamlit.

Muestra tus Conjuntos de Datos y Modelos usando Streamlit en Hugging Face Spaces

Streamlit te permite visualizar conjuntos de datos y construir demos de modelos de Aprendizaje Automático de una manera ordenada. En esta publicación del blog te guiaremos a través de cómo alojar modelos y conjuntos de datos y servir tus aplicaciones de Streamlit en Hugging Face Spaces.

Crear demos para tus modelos

Puedes cargar cualquier modelo de Hugging Face y crear interfaces de usuario (UI) atractivas utilizando Streamlit. En este ejemplo particular, recrearemos juntos “Write with Transformer”. Es una aplicación que te permite escribir cualquier cosa utilizando transformadores como GPT-2 y XLNet.

No profundizaremos en cómo funciona la inferencia. Solo necesitas saber que debes especificar algunos valores de hiperparámetros para esta aplicación en particular. Streamlit proporciona muchos componentes para que puedas implementar fácilmente aplicaciones personalizadas. Utilizaremos algunos de ellos para recibir los hiperparámetros necesarios dentro del código de inferencia.

  • El componente .text_area crea un área agradable para ingresar oraciones a completar.
  • El método .sidebar de Streamlit te permite aceptar variables en una barra lateral.
  • El slider se utiliza para tomar valores continuos. No olvides darle un paso al slider, de lo contrario tratará los valores como enteros.
  • Puedes permitir que el usuario final ingrese valores enteros con number_input.
import streamlit as st

# agregando el texto que se mostrará en el cuadro de texto como valor predeterminado
valor_predeterminado = "Observa cómo una red neuronal moderna completa automáticamente tu texto 🤗 Este sitio, construido por el equipo de Hugging Face, te permite escribir un documento completo directamente desde tu navegador, y puedes activar el Transformer en cualquier lugar usando la tecla Tab. Es como tener una máquina inteligente que completa tus pensamientos 😀 Comienza escribiendo un fragmento personalizado, echa un vistazo al repositorio o prueba uno de los ejemplos. ¡Diviértete!"

sent = st.text_area("Texto", valor_predeterminado, height = 275)
longitud_maxima = st.sidebar.slider("Longitud Máxima", min_value = 10, max_value=30)
temperatura = st.sidebar.slider("Temperatura", value = 1.0, min_value = 0.0, max_value=1.0, step=0.05)
top_k = st.sidebar.slider("Top-k", min_value = 0, max_value=5, value = 0)
top_p = st.sidebar.slider("Top-p", min_value = 0.0, max_value=1.0, step = 0.05, value = 0.9)
num_return_sequences = st.sidebar.number_input('Número de Secuencias de Retorno', min_value=1, max_value=5, value=1, step=1)

El código de inferencia devuelve la salida generada, puedes imprimir la salida usando st.write . st.write(generated_sequences[-1])

Esto es cómo se ve nuestra versión replicada.

Puedes ver el código completo aquí .

Mostrar tus Conjuntos de Datos y Visualizaciones de Datos

Streamlit proporciona muchos componentes para ayudarte a visualizar conjuntos de datos. Funciona perfectamente con 🤗 Datasets , pandas , y bibliotecas de visualización como matplotlib , seaborn y bokeh .

Comencemos cargando un conjunto de datos. Una nueva característica en Datasets , llamada streaming , te permite trabajar de inmediato con conjuntos de datos muy grandes, eliminando la necesidad de descargar todos los ejemplos y cargarlos en memoria.

from datasets import load_dataset
import streamlit as st

dataset = load_dataset("merve/poetry", streaming=True)
df = pd.DataFrame.from_dict(dataset["train"])

Si tienes datos estructurados como los míos, simplemente puedes usar st.dataframe(df) para mostrar tu conjunto de datos. Hay muchos componentes de Streamlit para trazar datos de forma interactiva. Uno de esos componentes es st.barchart() , que utilicé para visualizar las palabras más utilizadas en el contenido del poema.

st.write("Palabras más aparecidas incluyendo palabras vacías")
st.bar_chart(words[0:50])

Si deseas utilizar bibliotecas como matplotlib, seaborn o bokeh, todo lo que tienes que hacer es colocar st.pyplot() al final de tu script de trazado.

st.write("Número de poemas por cada autor")
sns.catplot(x="autor", data=df, kind="count", aspect = 4)
plt.xticks(rotation=90)
st.pyplot()

A continuación puedes ver el gráfico de barras interactivo, el componente de dataframe y las visualizaciones de matplotlib y seaborn alojadas. Puedes revisar el código aquí .

Alojando tus proyectos en Hugging Face Spaces

Simplemente puedes arrastrar y soltar tus archivos como se muestra a continuación. Ten en cuenta que necesitas incluir tus dependencias adicionales en el archivo requirements.txt. También ten en cuenta que la versión de Streamlit que tienes en tu local es la misma. Para un uso sin problemas, consulta la referencia de la API de Spaces .

Existen muchos componentes y paquetes que puedes usar para demostrar tus modelos, conjuntos de datos y visualizaciones. Puedes comenzar aquí .

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

Las Pruebas Asistidas por Computadora Abordan el Flujo de Fluidos

Los investigadores utilizan computadoras para demostrar que las ecuaciones pueden explotar.

Inteligencia Artificial

Textbooks son todo lo que necesitas Un enfoque revolucionario para la formación en IA

Esta es una descripción general del artículo Los libros de texto son todo lo que necesitas, resaltando el éxito del m...

Inteligencia Artificial

Dentro de Code Llama La entrada de Meta AI en el espacio de Code LLM

La codificación se ha convertido rápidamente en uno de los escenarios de acción más activos para los grandes modelos ...

Ciencia de Datos

vLLM PagedAttention para una inferencia LLM 24 veces más rápida

En este artículo, explico qué es PagedAttention y por qué acelera significativamente la decodificación.