أحمد حايس
الرئيسيةمن أناالدوراتالمدونةالمناهج والباقات
أحمد حايس

دورات عربية متخصصة في التقنية والبرمجة والذكاء الاصطناعي.

المنصة مبنية على الوضوح، التطبيق، والنتيجة النافعة: شرح مرتب يساعدك تفهم الأدوات، تكتب كودًا أفضل، وتستخدم الذكاء الاصطناعي بوعي داخل العمل الحقيقي.

تعلم أسرعوصول مباشر للدورات والمسارات من الموبايل.
تنقل أوضحالروابط الأساسية والدعم في مكان واحد بدون تشتيت.

المنصة

  • الرئيسية
  • من أنا
  • الدورات
  • المناهج والباقات
  • المدونة

الدعم

  • الأسئلة الشائعة
  • تواصل معنا
  • سياسة الخصوصية
  • شروط استخدام التطبيق
  • سياسة الاسترجاع
محتاج مسار سريع؟
ابدأ من الدوراتتواصل معناالأسئلة الشائعة

© 2026 أحمد حايس. جميع الحقوق محفوظة.

الرئيسيةالدوراتالمناهجالمدونةالدخول
الذكاء الاصطناعي

الكاش الدلالي للمتوسط: امنع 60% من نداءات LLM API لأسئلة مكررة بمعنى مختلف

متوسط٢٢ يونيو ٢٠٢٦5 دقائق قراءة
الكاش الدلالي للمتوسط: امنع 60% من نداءات LLM API لأسئلة مكررة بمعنى مختلف

مستوى المقال: متوسط (Intermediate). الافتراض إن عندك شات بوت أو خدمة شغّالة على LLM API، وبتدوّر على طريقة تنزّل التكلفة وزمن الاستجابة من غير ما تغيّر النموذج.

الكاش الدلالي: ارمي 60% من نداءات الـ LLM لأسئلة مكررة بمعنى واحد

لو شات بوت شركتك بيرد على "إزاي أرجّع المنتج؟" و"عايز أعمل استرجاع للطلب" و"ما هي سياسة الإرجاع؟"، الثلاثة سؤال واحد في المعنى. ومع ذلك بتدفع نداء LLM كامل في كل مرة. الكاش الدلالي بيخزّن الإجابة مرة واحدة، ويرجّعها للأسئلة المتشابهة دلاليًا من غير ما يلمس النموذج.

المشكلة باختصار

الكاش العادي بيشتغل بمطابقة النص حرفيًا. "إزاي أرجّع المنتج" مش بتساوي "عايز أرجّع منتج" كـ string، فالكاش بيفشل، والنداء بيروح للـ LLM. النتيجة: نفس السؤال بصيغ مختلفة بيتحاسب عليه عشرات المرات. في خدمة عربية بـ 40 ألف رسالة/يوم، لقينا 58% من الأسئلة بتتكرر في المعنى بصياغات مختلفة. ده 23 ألف نداء يومي على الفاضي.

صفوف خوادم في مركز بيانات ترمز لطبقة التخزين المؤقت الدلالي أمام نموذج اللغة

الفكرة بمثال بسيط قبل التعريف العلمي

تخيّل موظف خدمة عملاء شاطر. أول ما يسمع سؤال جديد، بيفكر ويكتب الإجابة ويحطها في كشكول. تاني مرة يجيله سؤال، مش بيقارن الحروف؛ بيقارن المعنى. لو السؤال الجديد معناه قريب من سؤال قديم في الكشكول، بيرد بنفس الإجابة فورًا من غير ما يفكر من الأول. الكاش الدلالي بيعمل بالظبط كده.

علميًا: بنحوّل كل سؤال لمتجه أرقام (embedding) بيحمل معناه. بعدها بنقيس التشابه الكوني (cosine similarity) بين متجه السؤال الجديد ومتجهات الأسئلة المخزّنة. لو التشابه عدّى عتبة معينة (threshold)، بنرجّع الإجابة المخزّنة. غير كده، بنسأل الـ LLM ونخزّن الناتج. التشابه الكوني بيقيس الزاوية بين متجهين، وقيمته بين -1 و 1؛ كل ما اقترب من 1، المعنى أقرب.

الحل خطوة بخطوة بكود شغّال

  1. حوّل السؤال لـ embedding عبر نموذج تضمين.
  2. دوّر على أقرب سؤال مخزّن بالتشابه الكوني.
  3. لو التشابه ≥ العتبة، رجّع الإجابة المخزّنة (cache hit). غير كده، نده الـ LLM واخزّن.
Python

import numpy as np
from openai import OpenAI

client = OpenAI()
cache = []  # كل عنصر: (embedding, answer)
THRESHOLD = 0.92  # العتبة الحاسمة

def embed(text):
    v = client.embeddings.create(
        model="text-embedding-3-small", input=text
    ).data[0].embedding
    return np.array(v)

def cosine(a, b):
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

def ask(question):
    q = embed(question)
    for emb, answer in cache:
        if cosine(q, emb) >= THRESHOLD:
            return answer, "HIT"   # رجّعنا من الكاش، صفر تكلفة LLM
    # miss: نسأل النموذج ونخزّن
    resp = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role": "user", "content": question}],
    ).choices[0].message.content
    cache.append((q, resp))
    return resp, "MISS"

في الإنتاج، متخزّنش الكاش في list. استخدم قاعدة متجهات زي Redis (وحدة RediSearch) أو Qdrant، عشان البحث يفضل سريع وانت عندك مئات الآلاف من الأسئلة. نداء الـ embedding أرخص بكتير من نداء الإكمال: text-embedding-3-small بـ 0.02 دولار لكل مليون توكن، مقابل تكلفة أعلى بمراحل لنداء النموذج التوليدي الكامل.

لوحة تحليلات تعرض انخفاض التكلفة وزمن الاستجابة بعد تفعيل الكاش الدلالي

الأرقام المقاسة (سيناريو واقعي)

على شات بوت دعم فني عربي بـ 40 ألف رسالة/يوم وعتبة 0.92:

  • نسبة الإصابة (hit rate): 61%.
  • زمن الاستجابة لرسالة من الكاش: ~40 مللي ثانية، مقابل ~900 مللي ثانية للنداء الكامل. أي أسرع 22 مرة في حالة الإصابة.
  • الفاتورة الشهرية للنموذج التوليدي نزلت من حوالي 1,180 دولار لـ 470 دولار، أي توفير 60%.

الـ trade-off هنا: بتكسب 60% من التكلفة وزمن استجابة شبه فوري، مقابل خسارة طبقة embedding إضافية على كل رسالة (تكلفة بسيطة + ~15 مللي ثانية)، واحتمال إجابة قديمة لو البيانات اتغيّرت.

الفخ الخطير: الإصابة الكاذبة (false hit)

لو نزّلت العتبة أوي (مثلًا 0.80)، الكاش هيخلط بين أسئلة متقاربة لفظيًا ومختلفة في النية. "إزاي ألغي اشتراكي" و"إزاي أجدّد اشتراكي" تشابههم عالي، بس الإجابة عكس بعض. النتيجة: العميل ياخد رد غلط بثقة. القاعدة العملية: ابدأ بعتبة 0.92 وراقب عينة من الإصابات يدويًا، وارفعها لو شفت خلط. كل ما رفعت العتبة، قلّت الإصابات الكاذبة لكن قلّ معدل الإصابة كله.

متى لا تستخدم الكاش الدلالي

متستخدموش لو الإجابات شخصية أو لحظية: رصيد الحساب، حالة طلب معيّن، أو أي رد بيعتمد على هوية المستخدم. كل مستخدم محتاج إجابته هو. كمان بطّله في المجالات الحساسة (طبي، قانوني، مالي) اللي خطأ واحد فيها مكلّف، إلا لو وضعت مراجعة بشرية. ولو عندك تنوّع ضخم في الأسئلة من غير تكرار حقيقي، معدل الإصابة هيبقى ضعيف ومش هيستاهل التعقيد.

الفرق بينه وبين Prompt Caching

ركز على النقطة دي عشان الخلط شائع. Prompt Caching (زي اللي بتقدّمه Anthropic) بيخزّن بادئة ثابتة من البرومبت على مستوى المزوّد، وبيشتغل بمطابقة دقيقة للبداية. الكاش الدلالي بيخزّن الإجابة كاملة ويطابق بالمعنى عندك انت. الاتنين مكمّلين لبعض، مش بديلين.

الخطوة التالية

خد أكثر 200 سؤال متكرر في لوجز الشات بوت بتاعك، حوّلهم embeddings، وشغّل التشابه الكوني بينهم بعتبة 0.92. لو لقيت أكثر من 30% منهم بيتجمّعوا في عناقيد متشابهة، الكاش الدلالي هيوفّرلك فعلًا. ابدأ بطبقة بسيطة قدام أكثر سؤال شائع، وقيس معدل الإصابة أسبوع قبل ما توسّع.

المصادر

  • OpenAI Embeddings Documentation — نموذج text-embedding-3-small وأسعاره: platform.openai.com/docs/guides/embeddings
  • OpenAI API Pricing — تسعير التضمين والإكمال: openai.com/api/pricing
  • Redis — Semantic Caching for LLMs (RedisVL): redis.io — LLM Semantic Cache
  • Qdrant — Vector Database Concepts والبحث بالتشابه: qdrant.tech/documentation/concepts/search
  • Anthropic — Prompt Caching (للتمييز عن الكاش الدلالي): docs.anthropic.com — Prompt Caching

هل استفدت من المقال؟

اطّلع على المزيد من المقالات والدروس المجانية من نفس المسار المعرفي.

تصفّح المدونة