توهم پنجره زمینه: چرا نشانه های 128K شما کار نمی کنند
“شما 128،000 نشانه متن را پرداخت کرده اید. ممکن است 30،000 به طور مؤثر استفاده کنید. بقیه؟ مدل شما آنها را نادیده می گیرد – و به هر حال شما را شارژ می کند.”
قسمت 1: شکاف استفاده
برای دیدن این کار در عمل ، در اینجا یک مقایسه نقشه با گرما در کنار هم قرار گرفته است:
- GPT-4O (128K): تقدم قوی و recency ، نشانه های مؤثر 8K.
- کلود 2.1 (100K): یادآوری دلخواه مناسب ، عدم موفقیت در اواسط مدل فراتر از 40k.
- جمینی 1.5 (1m): توزیع نرم تر ، اما 50 کیلوگرم گذشته را از بین می برد.
- با 3 تماس بگیرید (70b): فروپاشی توجه میانه در نزدیکی 16K آغاز می شود.
- در اعماق: آگاهی پراکنده طولانی.
این خطاهای گرما به وضوح “سوراخ پیراشکی” را نشان می دهد: حتی با افزایش ظرفیت ، توجه و دقت به شدت در 70-80 ٪ از سریع.
ویندوزهای زمینه طولانی روی کاغذ عالی به نظر می رسند. اما در واقعیت ، اکثر مدل ها یک الگوی توجه U شکل را نشان می دهند: آنها به شدت شروع و پایان متن را وزن می کنند و تا حد زیادی وسط را نادیده می گیرند. این مشکل “سوراخ دونات” است.
مثال واقعی: یک رگ 50،000 تون فوری پاسخ خود را با 25،000 نفر دفن کرده است. مدل آن را از دست می دهد. آن را به سمت 1000 یا 49،000 منتقل کنید؟ مدل آن را میخکوب می کند.
Heatmaps آن را تأیید می کند: تجسم توجه نشان می دهد که مدل ها روی تقدم (شروع) و recency (پایان) تمرکز می کنند ، با توجه به پایین در وسط.
نتیجه هزینه: شما برای هر 50،000 نشانه پرداخت می کنید ، اما فقط 10،000-15،000 به طور فعال مورد استفاده قرار می گیرد. این یک زباله 70 ٪ پوند است.
قسمت 2: اندازه گیری زباله ها
در اینجا یک پیچش شگفت آور وجود دارد: در برخی از چت های خدمات مشتری ، افزایش پنجره زمینه در واقع نمرات کمک را کاهش می دهد. چرا؟ از آنجا که پیام های گذشته بی ربط به قیمت پیام های اخیر به یاد می آمد. این نشان می دهد که به سادگی افزایش زمینه می تواند باعث ایجاد درهم و برهمی متن شود-جایی که حافظه سیگنال بیش از حد توانایی تمرکز مدل را تخریب می کند.
اما در اینجا یک مکانیک عمیق تر و پنهان وجود دارد: تورم متن فقط بی فایده نیست – این تخصیص توجه را تغییر می دهد. هنگام مقایسه همان سریع تغذیه شده با GPT-4O و Claude 2.1 ، ما مشاهده کردیم که کلود پس از عبور از 60 کیلوگرم ، تمرکز خود را در اوایل زمینه شروع کرد. این فروپاشی بازپرداخت سکوت اتفاق می افتد ، و ممکن است خروجی های غیرقابل پیش بینی در گردش کار با زنجیره طولانی را توضیح دهد.
در مقابل ، در تجزیه و تحلیل اسناد حقوقی ، اگر بندهای کلیدی در جلو بارگذاری شوند ، پوسیدگی توجه کمتر مضر است-تقویت نیاز به استراتژی های سریع کار.
در سیستم های تکمیل کد ، مدلهایی مانند Claude و Gemini می توانند در صورت قرار دادن اختلافات طولانی یا هدر پرونده در اوایل سریع ، بدتر شوند. متن مرتب سازی برای قرار دادن مناسب ترین عملکرد یا تست در انتها نرخ پاس@1 را افزایش می دهد.
معیارهایی مانند Nolima و Lost in the Middle Lost این فقط یک شکار نیست – قابل اندازه گیری است.
- طول زمینه مؤثر: GPT-4O تا 8K ~ نشان می دهد. فراتر از آن ، دقت کاهش می یابد.
- مقایسه چند مدل: Claude 2.1 ، Gemini 1.5 ، Llama 3 ، Deepseek و Mistral همه قطره های مشابه را نشان می دهند.
- تأثیر قیمت گذاری: 200 دلار نشانه ورودی فقط ممکن است 60 دلار از خروجی مفید باشد. این یک ضرب هزینه 3 برابر برای زباله است.
شایان ذکر است که آنچه به عنوان یک نشانه “مؤثر” حساب می شود ، می تواند خاص کار باشد. در این مقاله ، ما از یک تعریف عملی استفاده می کنیم: نشانه هایی که به طور آشکار بر خروجی مدل تأثیر می گذارند (همانطور که با دقت ، ارتباط یا منبع ذکر شده اندازه گیری می شود).
قسمت 3: مالیات موقعیت
جایی که محتوا در سریع شما ظاهر می شود به طرز چشمگیری بر عملکرد تأثیر می گذارد.
- چند عکس شات: مدل ها از نمونه هایی که در نزدیکی انتها قرار دارند بهتر از وسط می آموزند.
- زنجیره ای از فکر: قطعات منطق گام به گام وقتی دور از کار نهایی قرار می گیرند.
- سفارش RAG: بازیابی اسناد کافی نیست – قرار دادن آنها به خوبی بسیار مهم است.
غذای اصلی: در زمینه های طولانی ، سفارش همه چیز است. سوءاستفاده از حقایق یا نمونه ها ممکن است آنها را نامرئی کند.
قسمت چهارم: موقعیت یابی استراتژیک
استراتژی Bookend
این استراتژی از تعصب توجه سوء استفاده می کند: مهمترین زمینه خود را در همان ابتدا و دوباره در پایان سریع خود قرار دهید.
مثال:
شما یک جمع کننده قرارداد هستید. تاریخ های کلیدی و تحویل را برجسته کنید.
[Full contract text – 40K tokens]یادآوری: هدف شما استخراج کلیه تاریخ های مهم و تحویل است.
پیشرفت اندازه گیری شده:
- بدون کتاب: 58 ٪ استخراج صحیح
- با Bookend: 87 ٪ استخراج صحیح
تکرار اضافی نیست – این تقویت است.
chunking در مقابل فشرده سازی
- chunking: ورودی های بزرگ را به قطعات قابل پردازش تقسیم کنید.
- فشرده سازی: خلاصه و فقط موارد ضروری را منتقل کنید.
الگوهای مهندسی سریع
- از هدرها ، تعیین کننده ها و نشانه های قالب بندی استفاده کنید.
- ساختار مانند طرح ها.
- اهداف را قبل و بعد از زمینه طولانی تقویت کنید.
چه زمانی برای 128K پرداخت کنید
- هنگامی که خواندن خطی مسائل است (به عنوان مثال ، اسناد حقوقی).
- هنگامی که شما نمی توانید ارتباط را پیش بینی کنید و باید نیروی بی رحمانه داشته باشید.
در غیر این صورت؟ برای 32K یا کمتر بهینه سازی کنید.
قسمت 5: ابزار و تشخیص
قطعه کد: اندازه گیری حساسیت به موقعیت
import openai
TEMPLATE = """
Context:
{text}
Question: {question}
Answer:
"""
def generate_response(text_block, question):
prompt = TEMPLATE.format(text=text_block, question=question)
response = openai.ChatCompletion.create(
model="gpt-4-1106-preview",
messages=[{"role": "user", "content": prompt}],
temperature=0
)
return response.choices[0].message['content']
این کار را با تعبیه واقعیت هدف خود در موقعیت های مختلف نشانه و ورود به سیستم آیا پاسخ صحیح باقی مانده است. برای تجسم تخریب ، دقت در برابر توکن جبران کنید.
بازسازی سریع در دنیای واقعی
- قبل از این: یک QA فوری پر از نشانه های 50K ، در 24،000 به نشانه پاسخ دهید. نتیجه: اشتباه
- پس از: همان پاسخ به 1000 اشاره شد ، سپس در پایان دوباره دوباره اضافه شد. نتیجه: درست است.
سود: دقت از 42 ٪ به 91 ٪ در 50 سؤال آزمون بهبود یافته است. هزینه هر پاسخ مؤثر از 0.78 دلار به 0.26 دلار کاهش یافته است.
چگونه می توان آنچه را که کار می کند اندازه گیری کنیم
آیا می خواهید الگوهای توجه را در اعلان های خود تجسم کنید؟ با رویکرد زیر از Bertviz یا بغل کردن ترانسفورماتورهای Face استفاده کنید:
from transformers import AutoTokenizer, AutoModel, BertModel
from bertviz import head_view
model_name = 'bert-base-uncased'
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModel.from_pretrained(model_name, output_attentions=True)
sentence = "Your long-context example here."
inputs = tokenizer.encode_plus(sentence, return_tensors='pt')
outputs = model(**inputs)
attention = outputs.attentions
head_view(attention, tokens=tokenizer.convert_ids_to_tokens(inputs['input_ids'][0]))
این به طور مستقیم با GPT-4 کار نمی کند ، اما برای اشکال زدایی تعصب موقعیتی در مدل های باز یا عوامل تنظیم شده خوب ارزشمند است. ابزارهای مشابهی برای انواع Llama و mistral وجود دارد.
ابزارهای اضافی:
-
bertviz
، نقشه های گرمای توجه - فرسایش سریع: بخش ها را حذف کرده و خروجی ها را مقایسه کنید
- موقعیت ورود به سیستم: دقت پاسخ ضبط در مقابل موقعیت توکن
تجسم و ورود به سیستم:
- از اسکریپت های Openai Evals ، ردیابی Langchain یا RAG استفاده کنید
- ایجاد داشبورد کارایی توکن: هزینه در مقابل پاسخ وفاداری
در هر بار
هزینه پیگیری در هر نشانه خروجی مفید ، نه کل نشانه های مورد استفاده.
این متریک ROI واقعی شماست.
نتیجه گیری: مهندسی برای توجه
شما برای یک صفحه کامل پرداخت کردید. مدل عنوان و PS را خوانده است
فوری مدرن باید مهندسی آگاه توجه شود:
- اطلاعات بحرانی را در جایی که مدل ها می توانند آن را مشاهده کنند قرار دهید.
- ساختار مانند اسناد: عنوان ، بخش ، خلاصه.
- برای فیلتر کردن نویز از بازیابی و خلاصه استفاده کنید.
- آنچه را که نشانه های شما انجام می دهند ، اندازه گیری کنید ، نه فقط آنچه هستند.
زمینه طولانی جادویی نیست. این حافظه با احتیاط است. بر همین اساس بهینه سازی کنید.
ملاحظات جزئی و افکار بیشتر
محدودیت های معماری
در حالی که این راهنما بر روی غذاهای عملی متمرکز است ، موضوعات اساسی ناشی از نحوه معماری ترانسفورماتورها است. تعبیه های موقعیت ثابت ، مکانیسم های توجه ناکارآمد و تعصبات آموزش همه در الگوی توجه U شکل نقش دارند. برخی از مدل ها سعی در پرداختن به این امر با رمزگذاری موقعیت های آموخته شده یا الگوهای توجه پراکنده دارند ، اما همچنان یک کار در حال انجام است.
مدل های توجه پویا
معماری های جدیدتر در حال بررسی تخصیص توجه پویا تر هستند و چندین رویکرد امیدوار کننده در حال ظهور است:
- مامبا مدل سازی فضای حالت را برای پردازش دنباله طولانی معرفی می کند ، پیچیدگی زمان خطی و حفظ بهتر در دهانه های طولانی تر را ارائه می دهد.
- RETNET از توجه مکرر و وزنهای مشترک استفاده می کند تا ضمن کاهش محاسبات ، استفاده از متن طولانی کارآمد را انجام دهد.
- Flashattion 2 باعث افزایش راندمان و سرعت حافظه می شود و به ترانسفورماتورها اجازه می دهد تا با ورودی های طولانی بهتر مقیاس کنند.
این ممکن است سرانجام با توجه به هدف بیشتر و آگاه تر ، اثر سوراخ پیراشکی را کاهش دهد. با این حال ، اکثر مدل های تولیدی هنوز این نوآوری ها را به طور کامل یکپارچه نکرده اند ، بنابراین در حال حاضر ، اقدامات عملی هنوز بهترین دفاع شما است.
اثربخشی توکن خاص کار
همه نشانه های “هدر رفته” برابر نیستند. یک نشانه ممکن است برای خلاصه شدن نادیده گرفته شود اما برای تشخیص احساسات بسیار مهم است. اندازه گیری اثربخشی توکن همیشه باید با اهداف خاص کار گره خورده باشد.