LIDA-это библиотека для создания визуализаций данных и инфографики. LIDA является грамматической агностикой (будет работать с любыми библиотеками языка программирования и визуализацией, например, Matplotlib, Seaborn, Altair, D3 и т. Д.), И работает с несколькими поставщиками моделей крупных языков (Openai, Azure Openai, ладонь, кожура, Huggingface). Подробная информация о компонентах LIDA описана здесь и в этой учебной записной книжке. Смотрите страницу проекта здесь для обновлений!.
Примечание по выполнению кода: Для создания визуализаций LIDA генерирует и выполняет код. Убедитесь, что вы управляете LIDA в безопасной среде.

Лида рассматривает визуализации как код и предоставляет чистый API для генерации, выполнения, редактирования, объяснения, оценки и восстановления кода визуализации.
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 Установите и убедитесь, что ваша среда Python составляет python 3.10 или выше (предпочтительно, используйте Conda). Установите библиотеку через PIP.
pip install -U lida Лида зависит от llmx и openai . Если бы у вас были установлены эти библиотеки ранее, рассмотрите возможность их обновления.
pip install -U llmx openaiКак только требования будут выполнены, настройте свой ключ API. Узнайте больше о настройке ключей для других поставщиков LLM здесь.
export OPENAI_API_KEY= < your key > В качестве альтернативы вы можете установить библиотеку в Dev Model, клонируя это репо и выполняя pip install -e . В корне репозитория.
Lida поставляется с дополнительным пользовательским интерфейсом и веб -API, который вы можете изучить, выполнив следующую команду:
lida ui --port=8080 --docs Затем перейдите к http: // localhost: 8080/в вашем браузере. Чтобы просмотреть спецификацию Web API, добавьте опцию --docs в команду CLI и перейдите по http://localhost:8080/api/docs в вашем браузере.
Самым быстрым и рекомендуемым способом начать работу после установки будет пробовать веб -интерфейс выше или запустить учебную записную книжку.
Web API и пользовательский интерфейс LIDA можно настроить с помощью Docker и команды ниже (убедитесь, что у вас установлен Docker, и вы установили свою переменную среды OPENAI_API_KEY ).
docker compose upУчитывая набор данных, создайте компактную сводку данных.
from lida import Manager
lida = Manager ()
summary = lida . summarize ( "data/cars.json" ) # generate data summaryСоздайте набор целей визуализации, учитывая сводку данных.
goals = lida . goals ( summary , n = 5 , persona = "ceo with aerodynamics background" ) # generate goals Добавьте параметр persona для достижения целей на основе этой личности.
Сгенерировать, уточнить, выполнить и фильтровать код визуализации, учитывая сводку данных и цель визуализации. Обратите внимание, что LIDA представляет визуализации как код .
# generate charts (generate and execute visualization code)
charts = lida . visualize ( summary = summary , goal = goals [ 0 ], library = "matplotlib" ) # seaborn, ggplot ..Учитывая визуализацию, отредактируйте визуализацию с использованием естественного языка.
# 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 )Учитывая визуализацию, генерируйте естественный язык объяснение кода визуализации (доступность, применяемые преобразования данных, код визуализации)
# generate explanation for chart
explanation = lida . explain ( code = charts [ 0 ]. code , summary = summary )Учитывая визуализацию, оцените, чтобы найти инструкции по восстановлению (которые могут быть созданы человеком или сгенерированы), восстановить визуализацию.
evaluations = lida . evaluate ( code = code , goal = goals [ i ], library = library )Учитывая набор данных, создайте набор рекомендуемых визуализаций.
recommendations = lida . recommend ( code = code , summary = summary , n = 2 , textgen_config = textgen_config ) Учитывая визуализацию, генерируйте инфографику, прикрепленную к данным. Эти методы следует считать экспериментальными и используют стабильные диффузионные модели из библиотеки Peacasso. Вам нужно будет запустить pip install lida[infographics] чтобы установить необходимые зависимости.
infographics = lida . infographics ( visualization = charts [ 0 ]. raster , n = 3 , style_prompt = "line art" )Lida использует библиотеку LLMX в качестве интерфейса для генерации текста. LLMX поддерживает несколько локальных моделей, включая модели HuggingFace. Вы можете напрямую использовать модели HuggingChipface (при условии, что у вас есть графический процессор) или подключиться к совместимой с открытой локальной конечной точкой модели, например, с использованием превосходной библиотеки 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 )Естественно, некоторые из приведенных выше ограничений могут быть рассмотрены очень приветственным PR.
Короткая статья, описывающая Лиду (принятую на конференции ACL 2023) доступна здесь.
@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 опирается на понимание автоматической генерации визуализации из более ранней статьи - Data2vis: автоматическая генерация визуализаций данных с использованием последовательности для последовательности рецидивирующих нейронных сетей.