تعرف على كيفية قيام PagedAttention بتحسين إدارة ذاكرة نماذج اللغة الكبيرة (LLM) وكفاءة ذاكرة التخزين المؤقتة KV. اكتشف تأثيرها على معدل الإنتاجية ومقارنتها بأداء Ultralytics .
PagedAttention هي خوارزمية عالية الكفاءة لإدارة الذاكرة، صُممت لتحسين سرعة الاستدلال و معدل إنتاجية نماذج اللغة الكبيرة (LLMs). مستوحاة من مفاهيم الذاكرة الافتراضية والتقسيم إلى صفحات في أنظمة التشغيل التقليدية، تعالج هذه التقنية الاستهلاك الهائل للذاكرة المرتبط بذاكرة التخزين المؤقتة للقيم والمفاتيح (التي يُشار إليها غالبًا باسم ذاكرة التخزين المؤقتة KV) أثناء توليد النص. من خلال تقسيم كتل الذاكرة المتصلة المطلوبة للذاكرة المؤقتة إلى "صفحات" أصغر غير متجاورة، تعمل PagedAttention على القضاء بشكل فعال على تجزئة الذاكرة الداخلية والخارجية. وهذا يسمح لخوادم الذكاء الاصطناعي بمعالجة عدد أكبر بكثير من الطلبات في وقت واحد، مما يزيد من GPU إلى أقصى حد.
ورغم أن كلا التقنيتين تعملان على تحسين أداء الشبكات العصبية، إلا أنهما تستهدفان معوقات مختلفة. Flash Attention هي عملية تحسين على مستوى الحوسبة تعمل على تسريع آلية الانتباه نفسها عن طريق تقليل عمليات القراءة والكتابة البطيئة للذاكرة عبر GPU . في المقابل، PagedAttention هي استراتيجية لتخصيص الذاكرة. وهي تركز بشكل كامل على كيفية تنظيم وتخزين الذاكرة الخاصة بنافذة السياق، مما يسمح بالتحجيم الديناميكي دون تخصيص مسبق لكتل ذاكرة كبيرة ومهدرة.
أدت كفاءة الذاكرة التي أتاحتها تقنية PagedAttention إلى تغيير جذري في طريقة نشر النماذج التوليدية واسعة النطاق في بيئات الإنتاج.
في حين تُستخدم تقنية PagedAttention بشكل أساسي في معالجة اللغة الطبيعية، فإن المبدأ الأساسي المتمثل في التحسين الدقيق للذاكرة يُعدّ بنفس القدر من الأهمية في الرؤية الحاسوبية (CV). وعند نشر النماذج على أجهزة الحافة ذات الموارد المحدودة، يُعدّ تجنب تضخم الذاكرة أمرًا ضروريًا. يحقق Ultralytics كفاءة الاستدلال في الوقت الفعلي بشكل أصلي، متجاوزًا الحاجة إلى إدارة ذاكرة التخزين المؤقت الثقيلة من خلال استخدام بنية شاملة NMS.
للمطورين الذين يسعون إلى التعامل بسلاسة مع متطلبات الذاكرة والتصدير الخاصة بمسارات معالجة الكشف عن الكائنات ، توفر Ultralytics أدوات نشر آلية تعمل على تجميع النماذج من أجل تنفيذ مثالي على الأجهزة.
تعمل PagedAttention في الخلفية ضمن أطر العمل، حيث تستبدل وظائف الانتباه القياسية بـ Cuda مُحسَّنة. وفيما يلي مثال توضيحي يوضح كيفية تعريف الانتباه القياسي في PyTorch، والتي تعترضها أنظمة مثل vLLM تلقائيًا وتقوم بتحسينها باستخدام الترحيل أثناء نشر النموذج.
import torch
import torch.nn.functional as F
# Simulated Key, Query, and Value tensors for a standard attention block
batch_size, num_heads, sequence_length, head_dim = 1, 8, 1024, 64
query = torch.randn(batch_size, num_heads, sequence_length, head_dim)
key = torch.randn(batch_size, num_heads, sequence_length, head_dim)
value = torch.randn(batch_size, num_heads, sequence_length, head_dim)
# Standard attention computation (often replaced by PagedAttention kernels in production LLM servers)
attention_output = F.scaled_dot_product_attention(query, key, value)
print(f"Computed attention shape: {attention_output.shape}")
من خلال الاستفادة من استراتيجيات تخصيص الذاكرة المتطورة، تواصل صناعة الذكاء الاصطناعي تخطي حدود الممكن، مما يضمن إمكانية توسيع نطاق النماذج الأساسية الضخمة والوصول إليها بكفاءة في جميع أنحاء العالم.
ابدأ رحلتك مع مستقبل تعلم الآلة