Semantic Caching
اكتشف كيف يقلل التخزين المؤقت الدلالي زمن استجابة الذكاء الاصطناعي وتكاليفه. تعرّف على آلية عمله مع نماذج اللغة الكبيرة (LLMs) ومسارات الرؤية، مع مثال عملي باستخدام Ultralytics YOLO26.
التخزين المؤقت الدلالي هو تقنية تحسين متقدمة تُستخدم أساسًا في الذكاء الاصطناعي التوليدي ولـالنماذج اللغوية الكبيرة (LLMs)، إذ تخزّن الاستجابات وتسترجعها استنادًا إلى معنى (دلالات) الاستعلام بدلًا من نصه الحرفي. ومن خلال تحديد متى يطرح موجّه جديد السؤال الأساسي نفسه الذي أُجيب عنه سابقًا، يتجاوز التخزين المؤقت الدلالي الحاجة إلى استدعاء نموذج الذكاء الاصطناعي مرة أخرى، ما يقلل بدرجة كبيرة وقت المعالجة وتكاليف API.
كيفية عمل التخزين المؤقت الدلالي#
على خلاف التخزين المؤقت التقليدي الذي يتطلب تطابقًا تامًا للسلاسل النصية، يحوّل التخزين المؤقت الدلالي الاستعلامات الواردة إلى متجهات عددية عالية الأبعاد تُعرف باسم التضمينات. وعندما يرسل المستخدم موجّهًا، تُجري الأنظمة التي تستخدم التخزين المؤقت الدلالي في Redis أو مخازن الذاكرة المماثلة بحثًا متجهيًا لمقارنة المتجه الجديد بالمتجهات المخزنة سابقًا داخل قاعدة بيانات متجهية.
تعتمد هذه المقارنة على مقاييس المسافة الرياضية، وأكثرها شيوعًا التشابه الجيبي. وإذا تجاوزت درجة التشابه بين الاستعلام الجديد والاستعلام المخزن مؤقتًا عتبة محددة مسبقًا (مثلًا، 0.95)، تُسجَّل الحالة بوصفها «إصابة في التخزين المؤقت». ويعيد النظام الاستجابة المخزنة فورًا، متجاوزًا بالكامل محرك الاستدلال. أما إذا انخفضت الدرجة عن العتبة، فتكون النتيجة «إخفاقًا في التخزين المؤقت»، ما يدفع النموذج إلى إنشاء استجابة جديدة وتخزين زوج التضمين والاستجابة الجديد للتفاعلات المستقبلية. وتُعد هذه الآلية فعالة للغاية في البنى السحابية الحديثة لتوسيع نطاق تطبيقات الذكاء الاصطناعي.
التطبيقات الواقعية#
يُعد التخزين المؤقت الدلالي بالغ الأهمية لنشر حلول ذكاء اصطناعي فعالة من حيث التكلفة عبر مجالات متنوعة.
- روبوتات الدردشة لدعم العملاء: في مكتب دعم تقنية المعلومات، قد يطرح مئات المستخدمين صيغًا مختلفة للسؤال نفسه (مثل: «كيف أعيد تعيين كلمة المرور؟» مقابل «خطوات استعادة كلمة المرور»). ويتعرف التخزين المؤقت الدلالي على هذه المقاصد بوصفها متطابقة، ما يضمن أن يحسب النموذج الإجابة مرة واحدة فقط. ويؤدي ذلك إلى خفض كبير في زمن استجابة الاستدلال وتقليل استخدام الرموز لحلول إدارة API.
- الاكتشاف المرئي وRAG: في مسارات العمل متعددة الوسائط، تستخدم المنصات استخراج السمات لتخزين تضمينات الصور المرجعية مؤقتًا. وعندما يحمّل المستخدم صورة للعثور على عناصر مشابهة بصريًا، يستطيع النظام استرجاع النتائج المخزنة مؤقتًا والمطابقة دلاليًا فورًا، ما يسرّع نظام التوصية المرئية بدرجة كبيرة من دون الحاجة إلى ترميز المدخلات المرئية الكبيرة مرارًا. وكثيرًا ما يدمج المطورون أدوات مثل LangChain لتنسيق طبقات التخزين المؤقت هذه.
التمييز بين مصطلحات التخزين المؤقت ذات الصلة#
لفهم تحسين الذكاء الاصطناعي فهمًا كاملًا، من المفيد تمييز التخزين المؤقت الدلالي عن الأشكال الأخرى من إدارة الذاكرة:
- مقابل التخزين المؤقت للموجّه: يتضمن التخزين المؤقت للموجّه حفظ الحالات الرياضية المحسوبة مسبقًا لـسياق ثابت (مثل بادئة مستند طويل) أثناء جلسة نشطة لتسريع الاستعلامات اللاحقة. أما التخزين المؤقت الدلالي فيخزن المخرجات النصية أو المرئية النهائية لتفاعل مكتمل، بهدف تقديمها لمقاصد جديدة تمامًا لكنها متطابقة.
- مقابل ذاكرة KV المؤقتة: تُعد ذاكرة KV المؤقتة آلية ذاكرة منخفضة المستوى داخل بنية Transformer، إذ تحفظ حالات الانتباه الوسيطة أثناء إنشاء النص رمزًا تلو الآخر لتيسير الاستدلال في الوقت الفعلي. ويعمل التخزين المؤقت الدلالي على مستوى التطبيق، فيخزن تبادل الإدخال والإخراج بالكامل مؤقتًا قبل أن يصل إلى طبقات النموذج.
محاكاة التخزين المؤقت الدلالي في الرؤية#
يوضح مقتطف Python التالي كيفية محاكاة الآلية الأساسية للتخزين المؤقت الدلالي باستخدام PyTorch والحزمة ultralytics. ومن خلال حساب التشابه بين صورة مخزنة مؤقتًا سابقًا وصورة استعلام جديدة باستخدام نموذج تصنيف Ultralytics YOLO26، يستطيع النظام تحديد ما إذا كانت هناك حاجة إلى تنفيذ استدلال كامل.
import torch
from ultralytics import YOLO
# Load an Ultralytics YOLO26 classification model for embedding generation
model = YOLO("yolo26n-cls.pt")
# Extract the embedding for a previously 'cached' reference image
cached_embed = model.embed("reference_shoe.jpg")[0].flatten()
# Extract the embedding for a new user query image
new_embed = model.embed("user_uploaded_shoe.jpg")[0].flatten()
# Calculate cosine similarity to check for a semantic cache hit
similarity = torch.nn.functional.cosine_similarity(cached_embed, new_embed, dim=0)
# Apply a threshold to determine if the images are semantically equivalent
if similarity > 0.90:
print(f"Cache hit! Similarity: {similarity.item():.2f}. Returning cached response.")
else:
print(f"Cache miss! Similarity: {similarity.item():.2f}. Running full inference.")بالنسبة إلى الفرق التي تتطلع إلى إدارة مجموعات البيانات ونشر نماذج رؤية حاسوبية محسّنة بدرجة عالية يمكنها التكامل بسلاسة مع بنيات التخزين المؤقت المتقدمة، توفر منصة Ultralytics بيئة شاملة وبديهية لتدريب النماذج وتتبعها وتقديمها على نطاق واسع.









