Este repositorio muestra cómo ejecutar modelos sobre puntos de referencia S&P AI. Todos los modelos configurados se pueden ver en config.py
. Es fácil agregar sus propios modelos a la configuración o ejecutar modelos Huggingface utilizando opciones de línea de comandos.
Descargue las preguntas de la página de envío de nuestro sitio web S&P AI Benchmarks y guárdelas directamente dentro de esta carpeta, 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: la mayoría de los modelos que pueden ejecutarse rápidamente en CPU no funcionarán bien en este punto de referencia; Recomendamos usar un sistema con GPU. Para establecer el dispositivo, use el parámetro --device_map
.
Proporcionamos las indicaciones que utilizamos para la evaluación; Actualmente, todos los modelos usan las mismas indicaciones para un tipo de pregunta dado. Permitimos modelos múltiples intentos para generar una respuesta en el formato esperado. Sin este paso de reintento, encontramos que algunos modelos se ven perjudicados indebidamente por nuestro análisis de respuesta: producen la respuesta correcta en el formato incorrecto. Por lo tanto, permitimos modelos de hasta 10 intentos para generar una respuesta en el formato esperado. El código fuente en este repositorio hace esto de forma predeterminada, pero puede ser controlado por el parámetro -t, --answer_parsing_tries_alloted
.
Proporcionamos una serie de configuraciones para los modelos de código abierto y propietario en config.py
. Si desea usar uno de esos modelos, use los códigos enumerados en config.py
. También puede configurar un modelo de cara de abrazo por los args de línea de comandos.
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
El CSV de salida incluye columnas para la ID de pregunta y la respuesta sin encabezado. Consulte results/Mistral-7B-v0.1-cot.csv
para una salida de ejemplo.
# 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
Si desea agregar un nuevo modelo, agregue a la variable _CONFIG
en config.py. Por ejemplo, el siguiente fragmento agrega el modelo Zephyr con el valor predeterminado personalizado max_new_tokens
. También debe seleccionar el Creador de inmediato que desea usar. Esto controla las indicaciones creadas para cada pregunta. Proporcionamos dos, code_prompt_creater
y 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, podría haber usado la línea de comandos directamente:
python main.py -n HuggingFaceH4/zephyr-7b-beta --prompt_style code --max_new_tokens 2048 --device_map auto
¡Sube tus resultados a los puntos de referencia S&P AI! Vea la página aquí en https://benchmarks.kensho.com.
¡Este repositorio está destinado a servir como plantilla para una mayor experimentación!
Comuníquese con [email protected]
con cualquier pregunta.
Copyright 2024-Present Kensho Technologies, LLC.