backprompt menyediakan struktur data yang memungkinkan pengguna untuk membangun petunjuk secara dinamis sambil menghindari perhitungan LLM yang berulang.
Dalam banyak tugas skala besar yang dilakukan oleh LLMS, prompt tertentu digunakan berkali-kali-satu kali untuk setiap contoh tugas. Dalam kasus seperti ini, jumlah perhitungan yang dilakukan oleh panggilan LLM di masa depan dapat dikurangi dengan caching dan menggunakan kembali representasi prompt LLM.
backprompt mengambil ide terkenal ini selangkah lebih maju dengan caching representasi teks perantara dalam prompt. Caching menengah mungkin berguna ketika seseorang perlu menyesuaikan prompt secara dinamis tanpa harus mengkomputasi ulang representasi LLM. backprompt Abstrak Proses kompleks konstruksi dan caching cepat sebagai gabungan string-tua.
Lihat demos/minimal_example.ipynb untuk kasus penggunaan yang lebih realistis. Ini demo mainan:
from transformers import AutoModelForCausalLM , AutoTokenizer
from backprompt import Text
# Load a GPT model and its tokenizer
model_name = 'gpt2'
model = AutoModelForCausalLM . from_pretrained ( model_name )
tokenizer = AutoTokenizer . from_pretrained ( model_name )
if tokenizer . pad_token is None :
tokenizer . pad_token = tokenizer . eos_token
mt = ( model , tokenizer )
# Wrap strings in Text and construct them via concatenation
context = Text ( 'Hello there.' , mt )
choices = [ Text ( ' Senator' , mt ), Text ( ' General' , mt )]
endings = [ Text ( ' Amidala' , mt ), Text ( ' Kenobi...' , mt )]
texts = [ context + choice + ending for choice in choices for ending in endings ]
print ( texts [ - 1 ]. string )
# Hello there. General Kenobi...
# Get next-token logits by calling every text obj
# The punchline is that you don't have to worry about repeated computation
for text in texts :
text ()
texts [ - 1 ]. model_repr [ 1 ]. logits [:, - 1 , :] python -m pip install git+https://github.com/kddubey/backprompt.git
Jika pada dasarnya Anda tahu cara kerja backprop (tonton video YouTube ini), dan pada dasarnya Anda tahu cara kerja model bahasa Autoregressive-only decoder (tonton video YouTube ini), maka Anda tahu cara kerja backprompt :-)
Analogi:
backprompt → Attention Block Keys and Nilai.backprompt → Token Logit.backprompt → Tensor Concatenation.TODO: Visualisasi grafik
TODO: Perluas kasus uji
pytest
ModelRepr Dataclass untuk kenyamanan token_logprobs ke OBJ Output LM