LIDA es una biblioteca para generar visualizaciones de datos e infografías de fe de datos. LIDA es gramatical agnóstico (funcionará con cualquier lenguaje de programación y bibliotecas de visualización, por ejemplo, matplotlib, seaborn, altair, d3, etc.) y trabaja con múltiples proveedores de modelos de idiomas grandes (OpenAi, Azure OpenAi, Palm, Cohere, Huggingface). Los detalles sobre los componentes de LIDA se describen en el documento aquí y en este cuaderno tutorial. ¡Vea la página del proyecto aquí para obtener actualizaciones!.
Nota sobre la ejecución del código: para crear visualizaciones, LIDA genera y ejecuta código. Asegúrese de ejecutar LIDA en un entorno seguro.
LIDA trata las visualizaciones como código y proporciona una API limpia para generar, ejecutar, editar, explicar, evaluar y reparar el código de visualización.
from lida import Manager , llm
lida = Manager ( text_gen = llm ( "openai" )) # palm, cohere ..
summary = lida . summarize ( "data/cars.csv" )
goals = lida . goals ( summary , n = 2 ) # exploratory data analysis
charts = lida . visualize ( summary = summary , goal = goals [ 0 ]) # exploratory data analysis
Configure y verifique que su entorno de Python sea python 3.10
o superior (preferiblemente, use conda). Instale la biblioteca a través de PIP.
pip install -U lida
LIDA depende de llmx
y openai
. Si tenía estas bibliotecas instaladas anteriormente, considere actualizarlas.
pip install -U llmx openai
Una vez que se cumplan los requisitos, configure su clave API. Obtenga más información sobre cómo configurar las claves para otros proveedores de LLM aquí.
export OPENAI_API_KEY= < your key >
Alternativamente, puede instalar la biblioteca en el modelo Dev clonando este repositorio y ejecutando pip install -e .
En la raíz del repositorio.
LIDA viene con una UI y una API web agrupada opcional que puede explorar ejecutando el siguiente comando:
lida ui --port=8080 --docs
Luego navegue a http: // localhost: 8080/en su navegador. Para ver la especificación de la API web, agregue la opción --docs
al comando CLI y navegue a http://localhost:8080/api/docs
en su navegador.
La forma más rápida y recomendada de comenzar después de la instalación será probar la interfaz de usuario web anterior o ejecutar el cuaderno de tutorial.
La API web de LIDA y la UI se pueden configurar utilizando Docker y el comando a continuación (asegúrese de que tenga instalado Docker, y ha establecido su variable de entorno OPENAI_API_KEY
).
docker compose up
Dado un conjunto de datos, genere un resumen compacto de los datos.
from lida import Manager
lida = Manager ()
summary = lida . summarize ( "data/cars.json" ) # generate data summary
Genere un conjunto de objetivos de visualización dado un resumen de datos.
goals = lida . goals ( summary , n = 5 , persona = "ceo with aerodynamics background" ) # generate goals
Agregue un parámetro persona
para generar objetivos basados en esa persona.
Generar, refinar, ejecutar y filtrar el código de visualización dado un objetivo de resumen y visualización de datos. Tenga en cuenta que LIDA representa visualizaciones como código .
# generate charts (generate and execute visualization code)
charts = lida . visualize ( summary = summary , goal = goals [ 0 ], library = "matplotlib" ) # seaborn, ggplot ..
Dada una visualización, edite la visualización utilizando el lenguaje natural.
# modify chart using natural language
instructions = [ "convert this to a bar chart" , "change the color to red" , "change y axes label to Fuel Efficiency" , "translate the title to french" ]
edited_charts = lida . edit ( code = code , summary = summary , instructions = instructions , library = library , textgen_config = textgen_config )
Dada una visualización, genere una explicación del lenguaje natural del código de visualización (accesibilidad, transformaciones de datos aplicadas, código de visualización)
# generate explanation for chart
explanation = lida . explain ( code = charts [ 0 ]. code , summary = summary )
Dada una visualización, evalúe para encontrar instrucciones de reparación (que pueden ser escritas o generadas por humanos), repare la visualización.
evaluations = lida . evaluate ( code = code , goal = goals [ i ], library = library )
Dado un conjunto de datos, genere un conjunto de visualizaciones recomendadas.
recommendations = lida . recommend ( code = code , summary = summary , n = 2 , textgen_config = textgen_config )
Dada una visualización, genere una infografía de fijación de datos. Estos métodos deben considerarse experimentales y utiliza modelos de difusión estables de la biblioteca de Peacasso. Deberá ejecutar pip install lida[infographics]
para instalar las dependencias requeridas.
infographics = lida . infographics ( visualization = charts [ 0 ]. raster , n = 3 , style_prompt = "line art" )
LIDA utiliza la biblioteca LLMX como su interfaz para la generación de texto. LLMX admite múltiples modelos locales, incluidos los modelos Huggingface. Puede usar los modelos Huggingface directamente (suponiendo que tenga una GPU) o conectarse a un punto final de modelo local compatible con OpenAI, por ejemplo, utilizando la excelente biblioteca VLLM.
!p ip3 install - - upgrade llmx == 0.0 . 17 a0
# Restart the colab session
from lida import Manager
from llmx import llm
text_gen = llm ( provider = "hf" , model = "uukuguy/speechless-llama2-hermes-orca-platypus-13b" , device_map = "auto" )
lida = Manager ( text_gen = text_gen )
# now you can call lida methods as above e.g.
sumamry = lida . summarize ( "data/cars.csv" ) # ....
from lida import Manager , TextGenerationConfig , llm
model_name = "uukuguy/speechless-llama2-hermes-orca-platypus-13b"
model_details = [{ 'name' : model_name , 'max_tokens' : 2596 , 'model' : { 'provider' : 'openai' , 'parameters' : { 'model' : model_name }}}]
# assuming your vllm endpoint is running on localhost:8000
text_gen = llm ( provider = "openai" , api_base = "http://localhost:8000/v1" , api_key = "EMPTY" , models = model_details )
lida = Manager ( text_gen = text_gen )
Naturalmente, algunas de las limitaciones anteriores podrían abordarse mediante un PR muy bienvenido.
Un documento corto que describe LIDA (aceptado en la conferencia ACL 2023) está disponible aquí.
@inproceedings { dibia2023lida ,
title = " {LIDA}: A Tool for Automatic Generation of Grammar-Agnostic Visualizations and Infographics using Large Language Models " ,
author = " Dibia, Victor " ,
booktitle = " Proceedings of the 61st Annual Meeting of the Association for Computational Linguistics (Volume 3: System Demonstrations) " ,
month = jul,
year = " 2023 " ,
address = " Toronto, Canada " ,
publisher = " Association for Computational Linguistics " ,
url = " https://aclanthology.org/2023.acl-demo.11 " ,
doi = " 10.18653/v1/2023.acl-demo.11 " ,
pages = " 113--126 " ,
}
LIDA se basa en ideas en la generación automática de visualización a partir de un documento anterior: Data2Vis: generación automática de visualizaciones de datos utilizando redes neuronales recurrentes de secuencia de secuencia.