Skip to main content
AI-Developer → AI Fundamentals#2 of 2

الـ Embeddings: إزاي الذكاء الاصطناعي بيفهم العالم من غير ما يقرا كلمة واحدة

لو الذكاء الاصطناعي مش بيقرا كلام، إزاي بيعرف إن 'تفاحة' الفاكهة مختلفة عن 'Apple' الشركة؟ السر في خدعة رياضية اسمها Embeddings.

١٢ مارس ٢٠٢٦
١٢ دقيقة قراءة
#AI#Embeddings#Vectors#Semantic Search#LLM#Meaning

اكتب "apple" في تطبيق بقالة → هتلاقي فاكهة.

اكتب "apple" في تطبيق بورصة → هتلاقي شركة بـ 3 تريليون دولار.

نفس الأربع حروف. معنيين مختلفين تماماً. إزاي الذكاء الاصطناعي بيميّز بينهم — من غير ما يقرا الكلمة فعلاً؟

الإجابة في خدعة رياضية اسمها Embeddings — وهي المحرك الصامت اللي بيشغّل كل أداة ذكاء اصطناعي بتستخدمها النهارده.

💡

أبحاث Netflix الخاصة سنة 2016 قدّرت توفيراً بمليار دولار سنوياً من تقليل معدل إلغاء الاشتراكات بسبب محرك التوصيات — وده كله مبني على نفس الرياضيات اللي هتتعلمها دلوقتي.

في المقال اللي فات، اتعلمنا إن الذكاء الاصطناعي بيقسّم الكلام لأرقام اسمها Tokens. بس الـ Tokens مجرد IDs. هي تسميات فارغة من المعنى. الـ Token رقم #27438 اللي هو {" Meta"} مش معناه حاجة بالنسبالكمبيوتر.

طب إزاي الذكاء الاصطناعي بيفهم المعنى فعلاً؟ أهلاً بيك في المفهوم اللي خلى الذكاء الاصطناعي الحديث ممكن: Embeddings و Vectors.

الخطوة ١ من ٥

عشان نفهم إزاي الذكاء الاصطناعي بيشفّر المعنى، لازم الأول نفهم إزاي الأرقام ممكن تعبّر عن التشابه.

أهلاً بك في نظام الإحداثيات

عشان نفهم إزاي الذكاء الاصطناعي بيفكر، لازم نبص على إزاي البشر بيصنّفوا العالم.

لو طلبت منك توصف شخص بثلاث أرقام بس، ممكن تختار:

  1. الطول (سم)
  2. الوزن (كجم)
  3. السن (سنة)

لو رسمنا ثلاث أشخاص باستخدام هذه المقاييس بالضبط:

  • Alex: [180, 75, 25]

  • Sarah: [165, 60, 30]

  • Marcus: [178, 74, 26]

    الطول مقابل الوزن (شريحة ثنائية الأبعاد من الـ Vectors)

    الوزن (كجم) الطول (سم)
    Sarah
    [165, 60]
    Marcus
    [178, 74]
    Alex
    [180, 75]
    close ✓

    Alex و Marcus واقعين جنب بعض في الفضاء. Sarah بعيدة. الكمبيوتر بيعرف إنهم متشابهين — من غير ما يشوف صورة واحدة.

    دي شريحة ثنائية الأبعاد — في الواقع، الذكاء الاصطناعي بيشتغل في 384+ بُعد، مما يخلي التجمعات دي أدق بكتير.

لو رميت الأرقام دي على رسم بياني ثلاثي الأبعاد، Alex و Marcus هيبقوا جنب بعض. Sarah هتكون أبعد.

الكمبيوتر ما احتاجش يشوف صورهم. ما احتاجش يقابلهم. من خلال ملاحظة إن الأرقام قريبة رياضياً، الكمبيوتر استنتج إنهم بيتشاركوا خصائص جسدية متشابهة.

القايمة دي من الأرقام [180, 75, 25] اسمها Vector.

النموذج الذهني اللي مش هتنساه

الـ Embeddings هي إحداثيات GPS للمعنى.

القاهرة موجودة على (30.04°N, 31.23°E). باريس على (48.85°N, 2.35°E). المدن المتقاربة جغرافياً ليها إحداثيات متشابهة. الكلمات والجمل اللي معناها متقارب ليها إحداثيات Embedding متشابهة — بس في 384 بُعد بدل 2.

الخطوة ٢ من ٥

الـ Vectors شغالة — بس الـ 3 أبعاد مش كافية خالص عشان تعبّر عن تعقيد المعنى الحقيقي.

مشكلة الـ 3 أبعاد

الـ Vectors حلوة، بس 3 أرقام مش كافية لتوصيف تعقيد العالم الحقيقي.

خلينا نقول إننا بنوصف أجهزة ذكية لـ AI باستخدام Vector ثلاثي الأبعاد: [السعر، الوزن، عدد المميزات]

Ray-Ban Smart Glasses

[549, 48, 5]

Xreal Air 3 Glasses

[449, 72, 4]

Galaxy Smart Ring

[349, 3, 4]

الـ AI بيبص على الرياضيات: الـ Ray-Bans والـ Xreals قريبين من بعض في الفضاء الـ Vector. الـ Galaxy Ring بعيد. الـ AI صنّف النظارات مع بعض بشكل صح.

بس في هنا العيب القاتل: إيه لو احتجنا نعرف عن عمر البطارية؟ أو جودة الكاميرا؟ هل بيترجم لغات؟ مش قادرين نحكي عن ده كله في 3 أبعاد بس.

عشان نحكي فعلاً عن المعنى و_السياق_ لكلمة أو لشيء، محتاجين أرقام أكتر. أكتر بكتير.

الخطوة ٣ من ٥

هنا بقى الموضوع يبدأ يبقى مثير — بدل ما البشر يختاروا الأبعاد، إحنا بنخلي الـ AI يكتشفها لوحده أوتوماتيكياً.

من Vector لـ Embedding: التحفة الفنية

لما البشر بيختاروا الخصائص (السعر، الوزن)، ده Vector عادي. ذاتي ومحدود.

لما الـ AI يقرا مليارات الوثائق ويقرر رياضياً الخصائص بنفسه؟ ده بيتسمى Embedding.

🧬
"Smart Glasses"
[0.012, -0.443, 0.891, 0.112 ... 380 More Dimensions]

الـ AI بيعيّن قايمة كثيفة من 384 لـ 3072 رقم عشان يكوّن بصمة رقمية.

(النماذج الصغيرة: 384 بُعد · المتوسطة: 768 بُعد · الكبيرة: 3072 بُعد)

كل بُعد من المئات دي بيمثل طبقة مخفية من المعنى اتعلمها الـ AI من قراءته للإنترنت. إحنا كبشر ما بنعرفش بالضبط البُعد رقم #247 بيمثل إيه. ممكن يمثل "إلكترونية الشيء". البُعد رقم #89 ممكن يمثل "إمكانية ارتداء الشيء".

مع بعض، المئات من الأرقام دي بتكوّن بصمة رقمية للمعنى.

إيه اللي ممكن تعنيه الأبعاد المخفية دي؟

Dim #89
"إمكانية الارتداء"
0.92
Dim #247
"الإلكترونية"
0.84
Dim #512
"البصرية"
0.71
Dim #33
"قابلية الأكل"
0.04

إحنا فعلاً مش بنعرف التسميات — الـ AI ابتكر المفاهيم دي لوحده. إحنا بنشوف الأرقام بس.

إزاي الـ AI بيتعلم الأرقام دي فعلاً؟

ممكن تتساءل: مين اللي بيقرر معنى البُعد رقم #89؟ محدش. النموذج بيتعلم الأبعاد دي أوتوماتيكياً من خلال عملية اسمها contrastive learning.

أثناء التدريب، النموذج بيتعرض لملايين من أزواج الجمل مع تسميات:

أزواج متشابهة (بتتقرب من بعض)
"I need coffee" + "Necesito café"
"Smart glasses" + "AR eyewear"
"How are you?" + "¿Cómo estás?"
← النموذج بيتعلم يقرّب الـ Embeddings بتاعتهم من بعض
أزواج مختلفة (بتتباعد)
"I need coffee" + "Je veux dormir"
"Smart glasses" + "Running shoes"
"Buy now" + "Philosophy book"
← النموذج بيتعلم يباعد الـ Embeddings بتاعتهم عن بعض

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

الخطوة ٤ من ٥

دلوقتي ممكن نشوف الهندسة المتعلّمة دي شكلها إيه عبر اللغات المختلفة.

الخدعة السحرية بين اللغات

خلينا نبص جوا عقل نموذج الـ Embedding (تحديداً النموذج متعدد اللغات).

لو طلبنا من النموذج يحوّل ثلاث جمل لـ Embeddings ثلاثية وثمانين وثلاثمية بُعد بتاعتها، وبعدين نتحقق إزاي الأرقام دي متشابهة رياضياً (باستخدام Cosine Similarity — معادلة بتقيس الزاوية بين Vectors اتنين: 1.0 = نفس الاتجاه تماماً، 0 = مش مترابطين، -1 = متعاكسين):

Cosine Similarity — قد إيه المعنيين دول قريبين من بعض؟

"Necesito café" vs "I need coffee"
0.97 / 1.0 🟢

تطابق شبه كامل — نفس المعنى، لغة مختلفة

"I need coffee" vs "Je veux dormir" (عايز أنام)
0.12 / 1.0 🔴

مش مترابطين خالص — الرياضيات عارفة كده

"reset password" vs "forgot login credentials"
0.91 / 1.0 🟢

نفس النية، صفر كلمات مشتركة — ده سبب تفوق البحث بالـ AI على البحث بالكلمات المفتاحية في كل مرة

نفس المعنى = نفس الأرقام. في أي لغة كانت.

الـ AI مش بيترجم "café" لـ "coffee". هو لاحظ بس إن في بيانات التدريب بتاعته، كلمة "café" بتظهر في نفس السياقات بالضبط، جنب نفس الكلمات، زي ما "coffee" بتيجي. وبالتالي، بصماتهم الرقمية بتبقى متطابقة تقريباً.

الـ matching ده عبر اللغات شغّال لأن النموذج اتدرّب على ملايين من أزواج الجمل متعددة اللغات — نصوص مترجمة بواسطة البشر فيها نفس الفكرة بتظهر في عشرات اللغات جنب بعض. عملية الـ contrastive learning اللي وصفناها في الخطوة الثالثة بتجبر "Necesito café" و"I need coffee" ناحية نفس النقطة في فضاء الـ Embedding، لأنهم دايماً اتصنّفوا كمعادلَين لبعض.

مرجع سريع لدرجات Cosine Similarity

الدرجةالمعنىمثال
0.95+معنى متطابق تقريباً"I need coffee" vs "Necesito café"
0.7–0.9متقاربَين بشكل واضح"Smart glasses" vs "AR eyewear"
0.3–0.6متقاربَين بشكل فضفاض"Smart glasses" vs "Wearable tech"
< 0.3مش مترابطَين"I need coffee" vs "Je veux dormir"
الخطوة ٥ من ٥

دلوقتي وإحنا فاهمين إزاي المعنى بيتشفّر في أرقام، خلينا نشوف ليه ده قلب البحث التقليدي رأساً على عقب.

ليه ده غيّر الإنترنت: الـ Semantic Search

المعادلة الرياضية دي غيّرت العالم. قتلت "البحث بالكلمة المفتاحية" التقليدي.

فكّر في الإنترنت القديم. لو دوّرت في متجر إلكتروني على "جهاز لعينيّا".

الطريقة القديمة

البحث بالكلمات المفتاحية

بيدوّر بدقة على تطابق الحروف.

🔍 "جهاز لعينيّا"
❌ النتيجة: "لا توجد نتائج"
(فشل لأن كلمة 'نظارة' ما فيهاش حرف 'ج-ه-ا-ز')
طريقة الـ AI

Semantic Search

بيحوّل الاستعلام لرياضيات، ويدوّر على أقرب نقاط.

🔍 "جهاز لعينيّا"
↳ [0.88, -0.42, 0.91...]
✅ النتيجة: "Smart Glasses"
(نجح لأن الـ Vectors بتاعتهم متشابهين بأكتر من 95%)

ده بالضبط إزاي خوارزمية TikTok بتعرف إيه اللي عايز تتفرّج عليه. ده إزاي Netflix بتوصي بأفلام. تاريخ المشاهدة بتاعك بيتحوّل لـ Vector، وهما بيدوّروا على أفلام الـ Vector بتاعتها أقرب للـ Vector بتاعك في الفضاء الرياضي.


شوف الرياضيات شغّالة (Python)

أنت مطوّر؟ تقدر تشغّل ده على لابتوبك دلوقتي مجاناً. هنستخدم نموذج open-source اسمه paraphrase-multilingual-MiniLM-L12-v2. بيدعم 50 لغة وبيطلع Vector بـ 384 بُعد.


from sentence_transformers import SentenceTransformer
from sklearn.metrics.pairwise import cosine_similarity

# حمّل "البوصلة" (نموذج الـ Embedding)
encoder = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2')

# خلينا نقول عندنا كتالوج أجهزة
devices = [
    "Ray-Ban Meta Ultra - Smart glasses with camera and translation",
    "Sony LinkBuds Open - Lightweight earbuds with translation",
    "Garmin Fenix 9 - Rugged sports watch for running",
]

# الخطوة 1: حوّل الكتالوج لأرقام (Embeddings)
device_embeddings = encoder.encode(devices)
# دلوقتي عندنا إحداثيات الـ 384 رقم لكل منتج

# الخطوة 2: المستخدم بيدوّر على حاجة صعبة
query = "I want something very light for translating that isn't too expensive"
query_embedding = encoder.encode(query)

# الخطوة 3: وقت الرياضيات! دوّر على أقرب أرقام متطابقة
scores = cosine_similarity([query_embedding], device_embeddings)[0]

# الخطوة 4: اطبع النتايج مترتّبة
print(f"Query: \"{query}\"\n")
ranked = scores.argsort()[::-1]
for i in ranked:
    print(f"  {scores[i]:.3f}  {devices[i]}")

Output:

Query: "I want something very light for translating that isn't too expensive"

  0.421  Sony LinkBuds Open - Lightweight earbuds with translation
  0.287  Ray-Ban Meta Ultra - Smart glasses with camera and translation
  0.031  Garmin Fenix 9 - Rugged sports watch for running

الـ AI رتّب Sony LinkBuds في الأول رغم إن المستخدم ما كتبش "Sony" ولا "Earbuds" ولا "LinkBuds". الـ AI بس حاذى رياضياً "light translating" مع "lightweight translation". والـ Garmin — ساعة الرياضة — جابت درجة قريبة من الصفر.


قلب الـ RAG

لو إنت بتبني تطبيقات AI النهارده، على الأغلب بتبني حاجة اسمها RAG (Retrieval-Augmented Generation). ده هو عملية إنك تدي الـ AI وصول لبيانات شركتك الخاصة (PDFs، قواعد بيانات) عشان يقدر يجاوب أسئلة مبنية على معلوماتك الفعلية.

الـ Embeddings هي محرك الـ RAG. هنا بقى خط سير العملية الكاملة:

📄
الـ PDFs بتاعتك
وثائق الشركة، الكتيّبات، البيانات
🧬
Embeddings
تحويل النص → Vectors
🗄️
Vector DB
تخزين وفهرسة الـ Vectors
📐
Cosine Match
إيجاد أقرب فقرة
🤖
LLM
GPT-4 بيكتب الإجابة
الإجابة
مبنية على بياناتك

خط سير الـ RAG — الـ Embeddings بتشغّل كل سهم في السلسلة دي.

مش تقدر تعمل RAG من غير Embeddings. ومش تقدر تعمل بحث حديث من غير Embeddings.

الـ AI مش بيفهم كلمات. بيفهم المسافة بين الأرقام في فضاء عشرة آلاف بُعد. وده اتضح إنه طريقة أقوى بكتير لفهم الكون.


جرّبها في دماغك

لو بعتّ كلمتين لنموذج Embedding:
"Apple" (الفاكهة) و"Apple" (شركة التكنولوجيا).

هل الـ Embeddings بتاعتهم هتبقى قريبة رياضياً من بعض، ولا بعيدة؟

فكّر في السياق!

▶ اكشف الإجابة

هتبقوا بعيدين جداً من بعض — لأن السياق مهم.

كلمة "Apple" (الفاكهة) في بيانات التدريب بتيجي جنب كلمات زي fruit، tree، juice، red، eat، orchard. كلمة "Apple" (الشركة) بتيجي جنب iPhone، MacBook، Tim Cook، stock، CEO، App Store.

لأن السياقات المحيطة مختلفة تماماً، الـ AI بيعيّن لهم Embeddings مختلفة جداً — حتى لو الكلمة مكتوبة بنفس الطريقة.

ده هو القوة الخارقة للـ Embeddings مقارنة بمطابقة الكلمات المفتاحية البسيطة.

نفس الكلمة ممكن يبقى ليها Embeddings متعددة بناءً على سياقها في الجملة.

ده السبب اللي بيخلي الـ Semantic Search يتفوق على البحث بالكلمات المفتاحية في كل مرة — نفس الهجاء، معنى مختلف تماماً، Embedding مختلف تماماً.

نصايح للمطورين

استخدم نفس النموذج للفهرسة والاستعلام. لو عملت Embed للوثايق بنموذج A والاستعلامات بنموذج B، الدرجات هتبقى بلا معنى — لأنهم في فضاءين مختلفين.
طابق النموذج لمجال عملك. paraphrase-multilingual-MiniLM-L12-v2 ممتاز للنصوص العامة. للقانوني أو الطبي أو الكود، استخدم نماذج متخصصة في المجال.
عمل Embed على مستوى الجزء، مش المستند كله. ملف PDF بـ 50 صفحة لو اتعمله Embed كـ Vector واحد هيضيّع كل تفاصيله. قسّمه لفقرات الأول.
⚠️ الـ Cosine similarity مش احتمالية. درجة 0.85 ما معناهاش "تطابق 85%". اضبط العتبات على بياناتك الخاصة.
⚠️ الأكبر مش دايماً الأحسن. نموذج بـ 3072 بُعد تكلفة تخزينه والاستعلام منه 8 أضعاف نموذج بـ 384 بُعد، مع فارق دقة هامشي غالباً في مهام الاسترجاع البسيطة.

مفاهيم غلط شائعة عن الـ Embeddings

حاجات بتسمع صح بس مش صح

❌ "الـ AI بيفهم المعنى"

الـ Embeddings بتقرّب المعنى من خلال أنماط إحصائية اتعلمتها أثناء التدريب. النموذج ما عندوش فهم — هو بس اتعلم إن الكلمات اللي بتظهر في سياقات متشابهة المفروض يبقى ليها إحداثيات متشابهة. ده مطابقة أنماط متطورة، مش استيعاب حقيقي.

❌ "نفس الكلمة دايماً بتاخد نفس الـ Embedding"

في النماذج الحديثة المبنية على Transformer، السياق بيغيّر الـ Embedding. كلمة "Apple" في "I ate an apple" وكلمة "Apple" في "Apple's stock dropped" بتطلعوا Vectors مختلفة تماماً — زي ما المثال الأول بيّن.

❌ "محتاج الـ Embeddings تبقى بنفس اللغة عشان تقارنهم"

نماذج الـ Embedding متعددة اللغات بتحوّل كل اللغات لفضاء مشترك واحد. "I need coffee" و"Necesito café" بيقعوا على إحداثيات بعيدة بـ 0.97 — اللغة مش بتفرق، المهم المعنى بس.

أهم النقاط

إيه اللي اتعلمته في المقال ده

✅ الـ Embeddings بتحوّل النصوص والصور وأي بيانات لقوايم من الأرقام — **Vectors**
✅ المفاهيم اللي معناها متشابه بتقع **قريبة من بعض** في فضاء الـ Vector — بصرف النظر عن اللغة
✅ الـ AI بيتعلم معنى كل بُعد **أوتوماتيكياً** من خلال التدريب التعارضي على مليارات الأزواج
✅ الـ **Cosine Similarity** بتقيس الزاوية بين Vectors اتنين — 0.97 معناه معنى متطابق تقريباً، 0.12 معناه مش مترابطَين
✅ الـ Embeddings بتشغّل الـ **Semantic Search** (ابحث بالمعنى، مش الكلمات المفتاحية)، الـ **RAG** (دي الـ AI بياناتك الخاصة)، وأنظمة **التوصيات**
✅ تقدر تشغّل نموذج Embedding كامل محلياً مجاناً باستخدام sentence-transformers

جرّبها بنفسك

شغّل الكود اللي فوق وجرّب التجارب الثلاث دي عشان تبني حدسك:

  1. اختبار الاستعلام بالإسبانية: غيّر الاستعلام لـ "Quiero algo ligero para traducir que no sea muy caro". هل Sony LinkBuds لسه جايّة الأول؟ المفروض آه — نفس المعنى، لغة مختلفة.
  2. اختبار Apple: ضيف منتجَين جديدَين: "Apple fruit - fresh red apple from the orchard" و"Apple MacBook - laptop computer". بعدين ابحث بـ "I want something to eat" — أنهي Apple هتقع أقرب؟
  3. غيّر النموذج: استبدل paraphrase-multilingual-MiniLM-L12-v2 بـ all-MiniLM-L6-v2 (إنجليزي بس، أسرع). شغّل الاستعلام الإسباني — شوف الدرجة كيف بتانهار. ده بيثبت إن النموذج متعدد اللغات بيعمل عمل حقيقي بين اللغات، مش مجرد مطابقة كلمات مفتاحية.

إيه اللي جاي في السلسلة

الـ Embeddings هي الأساس. هنا بقى مشوارهم:

الـ Embeddings هي من أهم لبنات البناء في الذكاء الاصطناعي الحديث. فهمها بيفتحلك القدرة على بناء محركات بحث دلالية، وشاتبوتات ذكية، ومساعدين آليين بيقدروا يستنتجوا من بياناتك الخاصة. كل تطبيق AI هتبنيه من هنا للأمام هيستخدم الرياضيات دي — وإنت دلوقتي بتاع فاهم اللي بيحصل تحت الغطاء.

الكود الكامل على GitHub

الـ Jupyter Notebook الكامل للمقال ده — كل الأمثلة، ومحاكي الـ Cosine Similarity، ومحرك الـ Semantic Search — موجود في مستودع AI Fundamentals.

Open Vectors.ipynb →
MH

Mohamed Hamed

20 years building production systems — the last several deep in AI integration, LLMs, and full-stack architecture. I write what I've actually built and broken. If this was useful, the next one goes to LinkedIn first.

Follow on LinkedIn →