أحمد حايس
الرئيسيةمن أناالدوراتالمدونةالعروض
أحمد حايس

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

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

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

المنصة

  • الرئيسية
  • من أنا
  • الدورات
  • العروض
  • المدونة

الدعم

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

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

الرئيسيةالدوراتالعروضالمدونةالدخول

Embeddings للمبتدئ: ليه الكلمات بتتحوّل لأرقام علشان AI يفهم المعنى

📅 ١١ مايو ٢٠٢٦⏱ 5 دقائق قراءة
Embeddings للمبتدئ: ليه الكلمات بتتحوّل لأرقام علشان AI يفهم المعنى

المستوى: مبتدئ

Embeddings للمبتدئ: ليه الكلمات بتتحوّل لأرقام علشان AI يفهم المعنى

لو سألت شات بوتك "كام سعر الشحن لمصر؟" والـ FAQ بتاعك مكتوب فيه "تكلفة التوصيل للسعودية 25 ريال"، الـ AI لازم يفهم إن الجملتين بيتكلموا عن نفس الفكرة رغم اختلاف كل كلمة فيهم. اللي بيخلّي ده ممكن من 2013 لحد دلوقتي اسمه Embeddings: تحويل النص لقائمة أرقام (vector) المعاني المتقاربة فيها بتقرّب من بعض رياضيًا.

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

أي بحث تقليدي بيشتغل بمطابقة الكلمات (keyword matching). لو في القاعدة "تكلفة التوصيل" والسؤال "سعر الشحن"، البحث بيرجّع صفر نتائج رغم إن الجملتين نفسهم في المعنى. ده اللي بيخلّي شات بوتك يقول "مش لاقي إجابة" في حوالي 35-40% من الأسئلة على corpus عربي متوسط الحجم. الـ Embeddings بتحلّ المشكلة دي من جذرها لأنها بتشتغل على المعنى، مش على الحروف.

رسم تصوّري لشبكة عصبية تحوّل النصوص العربية إلى متجهات رقمية في فضاء متعدد الأبعاد

المفهوم بمثال بسيط — الخريطة الذكية

تخيّل خريطة كبيرة، بس مش الخريطة العادية اللي ليها طول وعرض بس. الخريطة دي ليها 1024 بُعد مختلف. كل كلمة أو جملة بتاخد إحداثيات على الخريطة دي.

كلمة "قطة" بتقعد قريب من كلمة "كلب" لأن الاتنين حيوانات أليفة. كلمة "تكلفة" بتقعد قريب من "سعر" لأن المعنى متقارب. كلمة "سيارة" بتقعد بعيد جدًا عن "بيتزا" لأن مفيش علاقة. المسافة بين أي نقطتين على الخريطة دي بتعبّر عن قد إيه المعنى متقارب.

المثال ده مش مجرد تشبيه — هو فعلًا اللي بيحصل داخل الـ embedding model. الفرق الوحيد إن المخ بتاعنا مش قادر يتخيّل فضاء بـ 1024 بُعد، فبنشتغل على الفكرة الرياضية مباشرة.

التعريف العلمي بدقة

الـ Embedding هو دالة f بتحوّل نص x إلى vector v ∈ ℝᵈ بحيث إن المسافة الـ cosine بين v₁ و v₂ تعكس قد إيه x₁ و x₂ متقاربين دلاليًا. الفكرة دي أصلها من ورقة Word2Vec اللي نشرها Mikolov في Google سنة 2013 (arXiv:1301.3781).

الأجيال الحالية (Cohere embed-multilingual-v3, OpenAI text-embedding-3, BGE-M3) بتستخدم Transformer architecture بدل الـ Skip-gram الأصلية، ودي بتدّي دقة أعلى بكتير في اللغات غير الإنجليزية، خصوصًا العربية على benchmark MIRACL.

كود Python شغّال — 14 سطر

Python
import cohere
import numpy as np

co = cohere.Client("YOUR_API_KEY")

texts = [
    "كام سعر الشحن لمصر؟",
    "تكلفة التوصيل للسعودية كام؟",
    "إزاي أطبخ مكرونة بالبشاميل؟"
]

response = co.embed(
    texts=texts,
    model="embed-multilingual-v3.0",
    input_type="search_document"
)
vectors = np.array(response.embeddings)

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

print(f"الشحن vs التوصيل: {cosine(vectors[0], vectors[1]):.3f}")  # ~0.91
print(f"الشحن vs الطبخ:   {cosine(vectors[0], vectors[2]):.3f}")  # ~0.17

الرقم 0.91 معناه إن الجملتين متطابقتين تقريبًا في المعنى رغم اختلاف كل كلمة. الرقم 0.17 معناه إن مفيش علاقة. القاعدة العملية: لو الـ cosine ≥ 0.75 اعتبر الجملتين بيتكلموا عن نفس الموضوع، أقل من 0.40 مفيش علاقة، والمنطقة بينهم رمادية محتاجة فحص بشري.

لوحة بيانات تعرض نقاط متجهات مجمّعة حسب التشابه الدلالي لتوضيح مفهوم cosine similarity

أرقام لازم تعرفها قبل ما تختار موديل

  • الأبعاد (Dimensions): Cohere v3 بـ 1024، OpenAI text-embedding-3-small بـ 1536، BGE-M3 بـ 1024. كل ما البُعد كبر، الدقة بتعلى بس التخزين كمان بيكبر.
  • السرعة: Cohere بيعالج لحد 96 جملة في request واحد، متوسط 280ms لـ 100 جملة عربية على شبكة متوسطة.
  • التكلفة: Cohere embed-multilingual-v3 بـ $0.10 لكل مليون token. لو عندك 50K مستند متوسط 200 token، التكلفة الإجمالية للـ indexing $1 تقريبًا.
  • الدقة على العربية: BGE-M3 و Cohere v3 بيدّوا ≥ 87% nDCG@10 على MIRACL Arabic. OpenAI ada-002 القديم 71% فقط، عشان كده ممنوع تستخدمه على العربي.

الـ Trade-offs اللي مفيش حد بيقولك عليها

الـ Embeddings مش حل سحري. اللي بتكسبه: فهم سياقي للغة، بحث دلالي شغّال على لغات متعددة في نفس الوقت، تجميع تلقائي للنصوص المتشابهة بدون تدخل بشري. اللي بتخسره: تخزين زيادة (1024 رقم float32 لكل جملة = 4KB لكل وثيقة)، تكلفة API على كل insert جديد، latency إضافي 50–300ms لكل query، وصعوبة debug كبيرة لو النتايج طلعت غلط (الـ vector عبارة عن 1024 رقم مفيش حد يقدر يفهمهم بشريًا).

الافتراض هنا إن عندك ≤ 5 مليون مستند ومش محتاج فلترة معقدة. فوق كده هتحتاج Vector Database متخصصة زي Qdrant أو Pinecone أو Weaviate، مش مجرد numpy array محفوظ في ذاكرة السيرفر.

متى Embeddings مش الحل

لو الـ corpus بتاعك أقل من 200 وثيقة، استخدم BM25 (بحث كلمات تقليدي بترتيب TF-IDF). أسرع، أرخص، ومفيش API calls. لو بتدوّر على رقم محدد (رقم تذكرة، SKU، رقم فاتورة)، Embeddings مش هتساعدك خالص — استخدم exact match مع index على العمود ده مباشرة. لو الـ queries بتاعتك كلها مصطلحات قانونية أو طبية متخصصة جدًا، الـ embeddings العامة هتفشل وهتحتاج fine-tuning على corpus من المجال نفسه.

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

افتح حساب مجاني على cohere.com، خد API key، وجرّب الكود اللي فوق على آخر 20 سؤال جالك من العملاء في الـ chat. لو لقيت زوجين من الأسئلة الـ cosine بينهم ≥ 0.85 رغم اختلاف الصياغة، انت دلوقتي عندك إثبات حسّي إن النظام يقدر يفهم تنوع اللغة. الخطوة بعد كده: ربط الـ embeddings دي بـ vector index زي FAISS عشان تبني RAG حقيقي على الـ FAQ بتاعك.

المصادر

  • Mikolov et al., "Efficient Estimation of Word Representations in Vector Space", arXiv:1301.3781 (2013)
  • Cohere Documentation — embed-multilingual-v3.0 model card
  • Chen et al., "BGE M3-Embedding: Multi-Lingual, Multi-Functionality, Multi-Granularity" (2024)
  • Zhang et al., MIRACL Benchmark — Multilingual Information Retrieval Across a Continuum of Languages (2023)
  • OpenAI Embeddings Documentation — text-embedding-3 family
  • Reimers & Gurevych, "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks", EMNLP (2019)

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

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

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