Este repositório mostra como executar modelos sobre os benchmarks da S&P AI. Todos os modelos configurados podem ser vistos no config.py
. É fácil adicionar seus próprios modelos à configuração ou executar modelos Huggingface usando as opções de comando.
Faça o download das perguntas da página de envio do site da S&P Ai Benchmarks e salve-as diretamente nesta pasta, benchmarks-pipeline/benchmark_questions.json
.
# We recommend using python 3.10.6 with pyenv
pyenv install 3.10.6
pyenv local 3.10.6
virtualenv -p python3.10.6 .benchmarks
source .benchmarks/bin/activate
# Install the requirements in your local environment
pip install -r requirements.txt
Requisitos de hardware: a maioria dos modelos que podem ser executados rapidamente na CPU não terá um bom desempenho nesta referência; Recomendamos o uso de um sistema com GPUs. Para definir o dispositivo, use o parâmetro --device_map
.
Fornecemos os avisos que usamos para avaliação; Atualmente, todos os modelos usam os mesmos instruções para um determinado tipo de pergunta. Permitimos modelos múltiplas tentativas de gerar uma resposta no formato esperado. Sem essa etapa de tentativa, descobrimos que alguns modelos são prejudicados indevidamente por nossa resposta: eles produzem a resposta correta no formato errado. Assim, permitimos modelos de até 10 tentativas de gerar uma resposta no formato esperado. O código -fonte deste repositório faz isso por padrão, mas pode ser controlado pelo parâmetro -t, --answer_parsing_tries_alloted
.
Fornecemos várias configurações para modelos de código aberto e propietários no config.py
. Se você deseja usar um desses modelos, use os códigos listados no config.py
. Você também pode configurar um modelo Huggingface pelo comando ARGS.
python main.py -m Mistral-7B-v0.1-cot
# or:
python main.py -n mistralai/Mistral-7B-v0.1 --prompt_style cot --max_new_tokens 12 --answer_parsing_tries_alloted 1
O CSV de saída inclui colunas para o ID da pergunta e a resposta sem cabeçalho. Consulte results/Mistral-7B-v0.1-cot.csv
para obter uma saída de exemplo.
# A snapshot from the example output.
35c06bfe-60a7-47b4-ab82-39e138abd629,13428.0
33c7bd71-e5a3-40dd-8eb0-5000c9353977,-4.5
7b60e737-4f0a-467b-9f73-fa5714d8cdbb,41846.0
0a3f6ada-b8d3-48cc-adb4-270af0e08289,2.0
03999e5f-05ee-4b71-95ad-c5a61aae4858,2.0
Se você deseja adicionar um novo modelo, adicione à variável _CONFIG
em config.py. Por exemplo, o snippet a seguir adiciona o modelo Zephyr com padrão padrão max_new_tokens
. Você também deve selecionar o criador rápido que deseja usar. Isso controla os avisos criados para cada pergunta. Fornecemos dois, code_prompt_creater
e cot_prompt_creator
.
_CONFIG = {
...,
"example-zepyhr-code" : lambda : (
HFChatModel (
"HuggingFaceH4/zephyr-7b-beta" ,
device_map = "auto" ,
generation_kwargs = { "max_new_tokens" : 2048 },
),
code_prompt_creator ,
),
}
Para este modelo específico, você poderia ter usado o CommandLine diretamente:
python main.py -n HuggingFaceH4/zephyr-7b-beta --prompt_style code --max_new_tokens 2048 --device_map auto
Envie seus resultados para os benchmarks S&P AI! Veja a página aqui em https://benchmarks.kensho.com.
Este repositório deve servir de modelo para uma melhor experimentação!
Entre em contato com [email protected]
com qualquer dúvida.
Copyright 2024-Present Kensho Technologies, LLC.