LIDA هي مكتبة لإنشاء تصورات البيانات والرسوم البيانية المخلص للبيانات. LIDA هو لاأذار قواعد اللغة (ستعمل مع أي لغة برمجة ومكتبات تصور ، مثل Matplotlib ، Seaborn ، Altair ، D3 ، إلخ) ويعمل مع مقدمي خدمات اللغة الكبيرة المتعددة (Openai ، Azure Openai ، Palm ، Coher ، Huggingface). تم وصف تفاصيل مكونات LIDA في الورقة هنا وفي دفتر ملاحظات البرنامج التعليمي هذا. انظر صفحة المشروع هنا للحصول على التحديثات!.
ملاحظة حول تنفيذ التعليمات البرمجية: لإنشاء تصورات ، تقوم LIDA بإنشاء وتنفيذ التعليمات البرمجية. تأكد من تشغيل Lida في بيئة آمنة.
تعامل LIDA التصورات كرمز وتوفر واجهة برمجة تطبيقات نظيفة لإنشاء رمز التصور وتنفيذه وتحريره وشرحه وتقييمه وإصلاحه.
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 >
بدلاً من ذلك ، يمكنك تثبيت المكتبة في نموذج DEV من خلال استنساخ هذا الريبو وتثبيت pip install -e .
في جذر المستودع.
تأتي LIDA مع واجهة مستخدم ويب اختيارية ومواقع الويب التي يمكنك استكشافها عن طريق تشغيل الأمر التالي:
lida ui --port=8080 --docs
ثم انتقل إلى http: // localhost: 8080/في متصفحك. لعرض مواصفات API على الويب ، أضف خيار --docs
إلى أمر CLI ، وانتقل إلى http://localhost:8080/api/docs
في متصفحك.
الطريقة الأسرع والموصى بها للبدء بعد التثبيت ستكون تجربة واجهة المستخدم على الويب أعلاه أو تشغيل دفتر ملاحظات البرنامج التعليمي.
يمكن إعداد واجهة برمجة تطبيقات WIDA Web و 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 مباشرة (على افتراض أن لديك وحدة معالجة الرسومات) أو الاتصال بنقطة نهاية طراز محلي متوافقة مع 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 )
وبطبيعة الحال ، يمكن معالجة بعض القيود المذكورة أعلاه من قبل العلاقات العامة المرحب بها.
ورقة قصيرة تصف 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: توليد تلقائي من تصورات البيانات باستخدام التسلسل لتسلسل الشبكات العصبية المتكررة.