Ini adalah implementasi tidak resmi dari pemodelan bahasa konformal kertas. Saya menemukan kertas itu menarik dan ingin bermain -main dengannya. Masih dalam keadaan sangat awal - satu -satunya jaminan statistik yang ketat saat ini adalah bahwa ada bug dan kesalahpahaman. Mohon maafkan keadaan kode saat ini - saya akan membersihkannya, saya janji!
Belum ada paket PYPI yang tersedia. Untuk menginstal, klon repositori dan jalankan
pip install poetry
poetry installAPI Python belum diatur dalam batu, tetapi tujuannya adalah untuk memudahkan untuk bereksperimen dengan fungsi penerimaan, kepercayaan kelompok, dan penolakan yang berbeda. Berpotensi beberapa kombinasi yang cukup menarik dengan kertas model bahasa CFG baru -baru ini. Di bawah ini adalah contoh dengan 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?" )Ini menggunakan beberapa fungsi penerimaan/GF/FWER/penolakan bawaan. Dapat juga menggunakan fungsi Anda sendiri, misalnya:
calibrator . set_group_confidence_function ( lambda x : x > 0.5 , torch . tensor ([ 0.1 , 0.5 , 1 ]))