LIDA는 데이터 시각화 및 데이터를위한 인포 그래픽을 생성하기위한 라이브러리입니다. LIDA는 문법의 불가지론 적입니다 (Matplotlib, Seaborn, Altair, D3 등 모든 프로그래밍 언어 및 시각화 라이브러리와 함께 작동하며 여러 대형 언어 모델 제공 업체 (Openai, Azure Openai, Palm, Cohere, Huggingface)와 협력합니다. LIDA의 구성 요소에 대한 자세한 내용은 여기 논문 과이 튜토리얼 노트에 설명되어 있습니다. 업데이트는 여기 프로젝트 페이지를 참조하십시오!.
코드 실행에 대한 참고 : 시각화를 만들려면 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 3.10
이상인지 확인하고 확인하십시오 (바람직하게는 Conda 사용). PIP를 통해 라이브러리를 설치하십시오.
pip install -U lida
LIDA는 llmx
및 openai
에 의존합니다. 이전에 이러한 라이브러리를 설치 한 경우 업데이트를 고려하십시오.
pip install -U llmx openai
요구 사항이 충족되면 API 키를 설정하십시오. 다른 LLM 제공 업체를위한 키 설정에 대해 자세히 알아보십시오.
export OPENAI_API_KEY= < your key >
또는이 저장소를 클로닝하고 pip install -e .
저장소 루트에서.
LIDA는 다음 명령을 실행하여 탐색 할 수있는 옵션 번들 UI 및 웹 API와 함께 제공됩니다.
lida ui --port=8080 --docs
그런 다음 브라우저에서 http : // localhost : 8080/로 이동하십시오. 웹 API 사양을 보려면 --docs
옵션을 CLI 명령에 추가하고 브라우저에서 http://localhost:8080/api/docs
로 이동하십시오.
설치 후 시작하는 가장 빠르고 권장되는 방법은 위의 웹 UI를 시험해 보거나 자습서 노트북을 실행하는 것입니다.
LIDA 웹 API 및 UI는 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 모델을 직접 사용하거나 (GPU가 있다고 가정) OpenAI 호환 로컬 모델 엔드 포인트 (예 : 우수한 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에 의해 해결 될 수 있습니다.
LIDA를 설명하는 짧은 논문 (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 : 시퀀스 재발 신경 네트워크에 시퀀스를 사용하여 자동 생성 데이터 시각화.