يوفر backprompt بنية بيانات تسمح للمستخدم ببناء مطالبات ديناميكيًا مع تجنب حسابات LLM المتكررة.
في العديد من المهام الواسعة النطاق التي تؤديها LLMS ، يتم استخدام موجه معين عدة مرات-في كل حالة من مثيلات المهمة. في مثل هذه الحالات ، يمكن تقليل مقدار الحساب الذي تؤديه مكالمات LLM المستقبلية عن طريق التخزين المؤقت وإعادة استخدام تمثيل LLM للمطالبة.
يأخذ backprompt هذه الفكرة المعروفة خطوة إلى الأمام من خلال التخزين المؤقت للإملاءات LLM للنص الوسيط في المطالبة. قد يكون التخزين المؤقت الوسيط مفيدًا عندما يحتاج المرء إلى ضبط المطالبة ديناميكيًا دون الحاجة إلى إعادة حساب تمثيل LLM له. تجريد backprompt العملية المعقدة للبناء السريع والتخزين المؤقت كسلسلة قديمة.
راجع demos/minimal_example.ipynb للحصول على حالة استخدام أكثر واقعية. إليك عرضًا تجريبيًا:
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
إذا كنت تعرف بشكل أساسي كيف يعمل BackProp (شاهد فيديو YouTube هذا) ، وأنت تعرف بشكل أساسي كيف يعمل نموذج لغة الانحدار التلقائي فقط (شاهد فيديو YouTube هذا) ، فأنت تعرف كيف يعمل backprompt :-)
القياس:
backprompt → مفاتيح كتلة الانتباه والقيم.backprompt → سجلات الرمز المميز.backprompt → التسلس الموتر.TODO: تصور الرسم البياني
TODO: توسيع حالات الاختبار
pytest
ModelRepr Dataclass للراحة token_logprobs إلى OBJ LM