Ce dépôt montre comment exécuter des modèles sur des références S&P AI. Tous les modèles configurés peuvent être vus dans config.py
. Il est facile d'ajouter vos propres modèles à la configuration ou d'exécuter des modèles HuggingFace à l'aide d'options de ligne de commande.
Veuillez télécharger les questions à partir de la page de soumission de notre site Web de référence S&P AI et les enregistrer directement dans ce dossier, 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
Exigences matérielles: la plupart des modèles qui peuvent fonctionner rapidement sur CPU ne fonctionneront pas bien sur cette référence; Nous vous recommandons d'utiliser un système avec des GPU. Pour définir le périphérique, utilisez le paramètre --device_map
.
Nous fournissons les invites que nous utilisons pour l'évaluation; Actuellement, tous les modèles utilisent les mêmes invites pour un type de question donné. Nous permettons à des modèles plusieurs tentatives pour générer une réponse au format attendu. Sans cette étape de réessayer, nous constatons que certains modèles sont indûment blessés par notre analyse de réponse: ils produisent la bonne réponse dans le mauvais format. Ainsi, nous permettons aux modèles jusqu'à 10 tentatives de générer une réponse au format attendu. Le code source de ce dépôt le fait par défaut, mais peut être contrôlé par le paramètre -t, --answer_parsing_tries_alloted
.
Nous fournissons un certain nombre de configurations à la fois pour les modèles open source et propulsaires dans config.py
. Si vous souhaitez utiliser l'un de ces modèles, utilisez les codes répertoriés dans config.py
. Vous pouvez également configurer un modèle HuggingFace par les args de ligne de commande.
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
Le CSV de sortie comprend des colonnes pour l'ID de question et la réponse sans en-tête. Voir results/Mistral-7B-v0.1-cot.csv
pour un exemple de sortie.
# 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 vous souhaitez ajouter un nouveau modèle, ajoutez à la variable _CONFIG
dans config.py. Par exemple, l'extrait suivant ajoute le modèle Zephyr avec un par défaut personnalisé max_new_tokens
. Vous devez également sélectionner le créateur invite que vous souhaitez utiliser. Cela contrôle les invites créées pour chaque question. Nous fournissons deux, code_prompt_creater
et 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 ,
),
}
Pour ce modèle spécifique, vous auriez pu utiliser directement la ligne de commande:
python main.py -n HuggingFaceH4/zephyr-7b-beta --prompt_style code --max_new_tokens 2048 --device_map auto
Téléchargez vos résultats sur des repères S&P AI! Voir la page ici à https://benchmarks.kensho.com.
Ce dépôt est destiné à servir de modèle pour plus d'expérimentation!
Veuillez contacter [email protected]
pour toutes les questions.
Copyright 2024-présent Kensho Technologies, LLC.