Il s'agit d'une implémentation non officielle de la modélisation du langage conforme de l'article. J'ai trouvé le journal intéressant et je voulais jouer avec. Toujours dans un état très précoce - la seule garantie statistique rigoureuse est actuellement qu'il y a des bogues et des malentendus. Veuillez excuser l'état du code actuel - je vais le nettoyer, je le promets!
Aucun package PYPI n'est encore disponible. Pour installer, cloner le référentiel et exécuter
pip install poetry
poetry installL'API Python n'est pas encore placée dans la pierre, mais l'objectif est de faciliter l'expérimentation avec différentes fonctions d'admission, de confiance en groupe et de rejet. Potentiellement quelques combinaisons assez intéressantes avec le récent article du modèle de langue CFG. Vous trouverez ci-dessous un exemple avec GPT2.
from conformer import Calibrator , Sampler , Components
import torch
from random import randint
x = [
"What is the capital of France?" ,
"Which prime-minster of the UK was the biggest nob?" ,
]
from transformers import GPT2LMHeadModel , GPT2Tokenizer
model_name = "gpt2"
model = GPT2LMHeadModel . from_pretrained ( model_name ). cuda ()
tokenizer = GPT2Tokenizer . from_pretrained ( model_name )
tokenizer . pad_token_id = tokenizer . eos_token_id
calibrator = Calibrator (
model = model ,
tokenizer = tokenizer ,
calibration_prompts = x ,
)
calibrator . set_admission_function ( Components . admission . debug )
calibrator . set_group_confidence_function ( Components . group_confidence . debug , torch . tensor ([ 0.1 , 0.5 , 1 ]))
calibrator . add_rejection_function ( Components . rejection . debug , torch . tensor ([ 0.1 , 0.5 , 1 ]))
calibrator . set_FWER ( Components . FWER . debug )
lambdaz = calibrator . search ()
sampler = Sampler . from_calibrator ( calibrator )
sampler . sample_with_rejection ( "What is the capital of France?" )Cela utilise certaines des fonctions d'admission / gf / fwer / rejet intégrées. Peut également utiliser votre propre fonction, par exemple:
calibrator . set_group_confidence_function ( lambda x : x > 0.5 , torch . tensor ([ 0.1 , 0.5 , 1 ]))