Это неофициальная реализация бумажного конформного языкового моделирования. Я нашел бумагу интересной и хотел поиграть с ней. Все еще в очень раннем состоянии - единственная строгая, статистическая гарантия в настоящее время заключается в том, что есть ошибки и недопонимание. Пожалуйста, извините за состояние текущего кода - я обещаю его!
Пакет PYPI пока не доступен. Чтобы установить, клонировать репозиторий и запустить
pip install poetry
poetry installPython API еще не зарегистрирован в камне, но цель состоит в том, чтобы легко экспериментировать с различным допущением, групповой уверенностью и функциями отклонения. Потенциально некоторые довольно интересные комбинации с недавней модельной статьей языка CFG. Ниже приведен пример с 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?" )Это использует некоторые из встроенных функций поступления/GF/FWER/DEPRECTION. Может также просто использовать свою собственную функцию, например:
calibrator . set_group_confidence_function ( lambda x : x > 0.5 , torch . tensor ([ 0.1 , 0.5 , 1 ]))