Esta é uma implementação não oficial da modelagem de idiomas conforme em papel. Achei o jornal interessante e queria brincar com ele. Ainda em um estado muito precoce - a única garantia estatística rigorosa atualmente é que existem insetos e mal -entendidos. Por favor, desculpe o estado do código atual - eu vou limpá -lo, eu prometo!
Nenhum pacote Pypi ainda está disponível. Para instalar, clonar o repositório e executar
pip install poetry
poetry installA API do Python ainda não está estabelecida em pedra, mas o objetivo é facilitar a experiência com diferentes admissão, confiança do grupo e funções de rejeição. Potencialmente, algumas combinações bastante interessantes com o recente artigo do Modelo de Língua CFG. Abaixo está um exemplo com 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?" )Isso usa algumas das funções de admissão interna/gf/fwer/rejeição. Também pode apenas usar sua própria função, por exemplo:
calibrator . set_group_confidence_function ( lambda x : x > 0.5 , torch . tensor ([ 0.1 , 0.5 , 1 ]))