VisEval — это тест, предназначенный для оценки методов создания визуализации. В этом репозитории мы предоставляем как набор инструментов для поддержки бенчмаркинга, так и данные, используемые для бенчмаркинга.
VisEval оценивает созданные визуализации по трем измерениям:
pip install --upgrade vis-evaluator
# or `git clone https://github.com/microsoft/VisEval.git && cd VisEval && pip install --upgrade -e .`
Чтобы получить доступ к набору данных, выполните следующие действия:
Дополнительную информацию о наборе данных см. в документации к набору данных.
После установки вы можете использовать VisEval, обратившись к examples/evaluate.py
или следующему:
Agent
. Вы можете найти три примера в каталоге examples/agent
. from viseval . agent import Agent , ChartExecutionResult
class YourAgent ( Agent ):
def __init__ ( self , llm ):
self . llm = llm
def generate (
self , nl_query : str , tables : list [ str ], config : dict
) -> Tuple [ str , dict ]:
"""Generate code for the given natural language query."""
pass
def execute (
self , code : str , context : dict , log_name : str = None
) -> ChartExecutionResult :
"""Execute the given code with context and return the result"""
pass
evaluator = Evaluator ( webdriver_path , vision_model )
(Можно настроить Оценщик без вебдрайвера и модели изображения, в этом случае оценка читаемости созданных визуализаций будет пропущена.)
Установите вебдрайвер.
# download
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
# install
apt install google-chrome-stable_current_amd64.deb
# verify
google-chrome --version
Загрузите модель видения (например, GPT4-v).
from langchain_openai import AzureChatOpenAI
import dotenv
# Copy .env.example to .env and put your API keys in the file.
dotenv . load_dotenv ()
vision_model = AzureChatOpenAI (
model_name = "gpt-4-turbo-v" ,
max_retries = 999 ,
temperature = 0.0 ,
request_timeout = 20 ,
max_tokens = 4096 ,
)
from viseval import Dataset
# Configure dataset with the benchmark dataset folder path ( folder),
# specify the number of tables required to generate visualizations (table_type`: all, single, or multiple),
# and indicate whether to include irrelevant tables (`with_irrelevant_tables`).
dataset = Dataset ( folder , table_type , with_irrelevant_tables )
config = { "library" : args . library }
result = evaluator . evaluate ( agent , dataset , config )
score = result . score ()
print ( f"Score: { score } " )
Этот проект приветствует вклад и предложения. Большинство вкладов требуют от вас согласия с Лицензионным соглашением для авторов (CLA), в котором говорится, что вы имеете право и действительно предоставляете нам права на использование вашего вклада. Подробную информацию можно найти на странице https://cla.opensource.microsoft.com.
Когда вы отправляете запрос на включение, бот CLA автоматически определяет, нужно ли вам предоставить CLA, и соответствующим образом оформляет PR (например, проверку статуса, комментарий). Просто следуйте инструкциям бота. Вам нужно будет сделать это только один раз во всех репозиториях, используя наш CLA.
В этом проекте принят Кодекс поведения Microsoft с открытым исходным кодом. Для получения дополнительной информации см. Часто задаваемые вопросы о Кодексе поведения или свяжитесь с [email protected], если у вас возникнут дополнительные вопросы или комментарии.
Этот проект может содержать товарные знаки или логотипы проектов, продуктов или услуг. Разрешенное использование товарных знаков и логотипов Microsoft регулируется и должно соответствовать Руководству Microsoft по товарным знакам и брендам. Использование товарных знаков или логотипов Microsoft в измененных версиях этого проекта не должно вызывать путаницу или подразумевать спонсорство Microsoft. Любое использование товарных знаков или логотипов третьих лиц регулируется политикой этих третьих сторон.
В этом проекте принято Заявление о конфиденциальности Microsoft.
Если вы обнаружите, что VisEval помогает вашим исследованиям, пожалуйста, процитируйте его:
@misc{chen2024viseval,
title={VisEval: A Benchmark for Data Visualization in the Era of Large Language Models},
author={Nan Chen and Yuge Zhang and Jiahang Xu and Kan Ren and Yuqing Yang},
year={2024},
eprint={2407.00981},
archivePrefix={arXiv},
primaryClass={cs.HC},
}