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環境が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およびWeb APIが付属しています。
lida ui --port=8080 --docs次に、ブラウザでhttp:// localhost:8080/に移動します。 Web API仕様を表示するには、CLIコマンドに--docsオプションを追加し、ブラウザのhttp://localhost:8080/api/docsに移動します。
インストール後に開始する最速かつ推奨される方法は、上のWeb UIを試してみるか、チュートリアルノートブックを実行することです。
LIDA Web 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モデルを含む複数のローカルモデルをサポートしています。 Huggingfaceモデルを直接(GPUを持っていると仮定して)または、優れたVLLMライブラリを使用したOpenAI互換のローカルモデルエンドポイントに接続できます。
!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 Conferenceで受け入れられている)を説明する短い論文はこちらから入手できます。
@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:シーケンスを使用したデータの視覚化の自動生成は、再発性ニューラルネットワークをシーケンスします。