0Pricing
AI Agents · درس

اختيار مقاييس المسافة (cosine وL2 وdot)

تعلّم متى تختار مسافة cosine أو L2 (الإقليدية) أو dot-product، ولماذا تفضّل معظم نماذج embedding مقياس cosine.

اختيار مقاييس المسافة (cosine وL2 وdot) درس مجاني في AI Agents على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AI Agents، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AI Agents 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

ثلاثة مقاييس شائعة

تتيح لكم قواعد بيانات المتجهات اختيار مقياس للمسافة. وهذه أكثر ثلاثة مقاييس ستصادفونها:

  • تشابه جيب التمام — الزاوية بين المتجهات
  • الضرب النقطي — إسقاط أحد المتجهين على الآخر
  • الإقليدية (L2) — المسافة في خط مستقيم

تشابه جيب التمام

النطاق: من -1 إلى 1. كلما ارتفعت القيمة زاد التشابه.

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

الضرب النقطي

النطاق: من -infinity إلى +infinity. كلما ارتفعت القيمة زاد التشابه.

def dot(a, b):
    return np.dot(a, b)

# Equivalent to cosine when both vectors are unit-normalized.

الإقليدية (L2)

النطاق: من 0 إلى +infinity. كلما انخفضت القيمة زاد التشابه.

def l2(a, b):
    return np.linalg.norm(np.array(a) - np.array(b))

أيّ مقياس ينبغي أن تستخدم؟

بالنسبة إلى تضمينات النصوص، العُرف هو:

  • OpenAI text-embedding-3 — تشابه جيب التمام (المتجهات مطبّعة مسبقًا)
  • Cohere — تشابه جيب التمام
  • Sentence Transformers / BGE — عادةً تشابه جيب التمام، لكن تحقّقوا من بطاقة النموذج

عند الشك، استخدموا تشابه جيب التمام.

يتساوى الضرب النقطي مع تشابه جيب التمام عند التطبيع

إذا كان |a| = |b| = 1، فإن cos(a,b) = a . b. الضرب النقطي أسرع (لأنه لا يتطلب القسمة) — لذلك تستخدم أنظمة الإنتاج غالبًا الضرب النقطي مع المتجهات المطبّعة مسبقًا.

متى يُستخدم L2؟

تُدرَّب بعض نماذج الأبحاث (الإصدارات الأقدم من Sentence-BERT وتضمينات الصور) باستخدام مسافة L2، وتؤدي أداءً أفضل معها. تحقّقوا دائمًا من بطاقة النموذج.

لماذا يهم ذلك للفهرس؟

تُبنى بنية الفهرس (HNSW وIVF وFAISS) باستخدام مقياس محدد. ويعني تغيير المقياس بعد الفهرسة عادةً إعادة بناء الفهرس من الصفر.

Setting Metric in Pinecone

from pinecone import ServerlessSpec
pc.create_index(
    name='docs',
    dimension=1536,
    metric='cosine',   # or 'dotproduct' or 'euclidean'
    spec=ServerlessSpec(cloud='aws', region='us-east-1')
)

Setting Metric in Qdrant

from qdrant_client.models import VectorParams, Distance
client.create_collection(
    collection_name='docs',
    vectors_config=VectorParams(size=1536, distance=Distance.COSINE)
)

مقياس غير متسق بين الأنظمة

إذا أعدتم الترتيب باستخدام cross-encoder لاحقًا، فسيكون له مقياس درجات خاص به. لا تخلطوا المقاييس في قيمة مركّبة واحدة من دون تطبيعها أولًا.

تصوير الفرق

بالنسبة إلى متجهين وحديين:

  • cos = 1، وL2 = 0 ← متطابقان
  • cos = 0.5، وL2 ~ 1 ← مرتبطان
  • cos = 0، وL2 ~ sqrt(2) ← متعامدان
  • cos = -1، وL2 = 2 ← متعاكسان

طبّع مسبقًا مرة واحدة

التطبيع عند الإدخال رخيص (عملية قسمة واحدة). فهو يضمن التوافق مع تشابه جيب التمام / الضرب النقطي، ويجنبكم التطبيع لكل استعلام لاحقًا.

vec = vec / np.linalg.norm(vec)

المقياس الافتراضي

بالنسبة إلى تضمينات نصوص OpenAI، ما مقياس المسافة الافتراضي؟

مراجعة

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

الأسئلة الشائعة

هل درس «اختيار مقاييس المسافة (cosine وL2 وdot)» مجاني؟

نعم — نص درس «اختيار مقاييس المسافة (cosine وL2 وdot)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AI Agents، انتقل إلى CoddyKit PRO. تتضمن دورة AI Agents 4 دروس في المجموع.

ماذا ستتعلم في «اختيار مقاييس المسافة (cosine وL2 وdot)»؟

تعلّم متى تختار مسافة cosine أو L2 (الإقليدية) أو dot-product، ولماذا تفضّل معظم نماذج embedding مقياس cosine. تتمرن على AI Agents مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ AI Agents؟

لا تُشترط خبرة سابقة. AI Agents على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «اختيار مقاييس المسافة (cosine وL2 وdot)»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس AI Agents هذا؟

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

جميع الدروس في هذه الدورة

  1. مقارنة Pinecone وWeaviate وQdrant
  2. تصفية البيانات الوصفية للبحث الهجين
  3. تحديث المتجهات وحذفها
  4. اختيار مقاييس المسافة (cosine وL2 وdot)
← العودة إلى AI Agents