زيادة دقة أنظمة التوصية باستخدام نماذج اللغات الكبيرة (LLMs) باستخدام بايثون
مقال واضح وعملي عن الذكاء الاصطناعي لجمهور مهني.
الوسوم
ملخص سريع
مقال واضح وعملي عن الذكاء الاصطناعي لجمهور مهني.
زيادة دقة أنظمة التوصية باستخدام النماذج اللغوية الكبيرة (LLMs) مع بايثون
لطالما اعتمدت محركات التوصية التقليدية على التصفية التعاونية، وتحليل المصفوفات، وبُنى التعلم العميق للتنبؤ بتفضيلات المستخدمين. ورغم أن هذه الطرق تتفوق في استغلال مجموعات البيانات السلوكية الضخمة، إلا أنها غالبًا ما تواجه صعوبات مع العناصر الجديدة (مشكلة البداية الباردة)، والسجلات التفاعلية النادرة، والفروق الدلالية المخفية داخل البيانات الوصفية غير المهيكلة مثل أوصاف المنتجات، والمراجعات، أو ملخصات المحتوى. تقدم النماذج اللغوية الكبيرة (LLMs) مكملًا قويًا للمسارات الكلاسيكية. من خلال ترميز الفهم اللغوي الطبيعي، والاستدلال الصفري (zero-shot reasoning)، وتقييم الصلة السياقية، يمكن للنماذج اللغوية الكبيرة سد الفجوة بين النص الخام ونية المستخدم.
يشكل تقارب الذكاء التوليدي وبنية التوصية موضوعًا متكررًا عبر القنوات الصناعية الرائدة، بما في ذلك [مدونة Google للذكاء الاصطناعي](https://blog.google/technology/ai/)، و[مدونة Microsoft للذكاء الاصطناعي](https://www.microsoft.com/en-us/ai/blog/)، وأخبار [OpenAI](https://openai.com/news/)، ومجتمع [Towards Data Science](https://towardsdatascience.com/). بدلًا من استبدال طبقات الاسترجاج المثبتة، يتبنى الممارسون على نحو متزايد البُنى الهجينة: تُولِّد النماذج الكلاسيكية مجموعة واسعة من المرشحين، وتقوم النماذج اللغوية الكبيرة بتحسين هذه المرشحين، أو إعادة ترتيبها، أو تفسيرها لتعزيز الدقة. يقدم هذا المقال دليلًا عمليًا لبناء مثل هذه المسارات الهجينة في بايثون، مع تغطية إعداد البيئة، والإثراء المستند إلى التضمينات، وإعادة الترتيب المدفوعة بالنماذج اللغوية الكبيرة.
المتطلبات
قبل المتابعة، تأكد من استيفاء محطة عملك للمتطلبات الأساسية التالية:
- **بايثون 3.9 أو أحدث** مثبت ومتاح في مسار النظام لديك.
- **pip**، مثبت حزم بايثون، محدّث إلى إصدار حديث.
- **أدوات البيئة الافتراضية** (`venv` كافٍ) لعزل تبعيات المشروع.
- **مفتاح API لـ OpenAI** إذا كنت تنوي تشغيل أمثلة إعادة الترتيب القائمة على GPT. يمكنك الحصول عليه من منصة OpenAI.
- **العتاد**: يكفي 4 غيغابايت من ذاكرة الوصول العشوائي للنماذج المحلية الصغيرة للتضمينات. إذا كنت تخطط لتجربة نماذج لغوية كبيرة مفتوحة المصدر محليًا، يُنصح بـ 16 غيغابايت من ذاكرة الوصول العشوائي ووحدة معالجة رسومية حديثة؛ ومع ذلك، تستخدم الأمثلة أدناه نماذج قائمة على API أو محولات جمل خفيفة الوزن لتبقى في متناول الجميع.
التثبيت خطوة بخطوة
ابدأ بإنشاء دليل مخصص لاستضافة ملفات مشروعك وشيفرته.
mkdir llm-recommender && cd llm-recommenderأنشئ بيئة بايثون افتراضية باسم `venv` للحفاظ على تبعياتها معزولة عن تثبيت بايثون العام لديك.
python -m venv venvفعّل البيئة الافتراضية. على Linux أو macOS، نفّذ الأمر التالي.
source venv/bin/activateعلى Windows، استخدم سكريبت التفعيل الم analog.
venv\Scripts\activateحدّث `pip` لمنع مشاكل التوافق عند تثبيت حزم الحوسبة العلمية.
pip install --upgrade pipثبّت المكتبات الأساسية المطلوبة لمعالجة البيانات، ومقاييس التشابه التقليدية، والاستدلال المحلي للتضمينات، والوصول إلى API لـ OpenAI.
pip install pandas numpy scikit-learn sentence-transformers openai python-dotenvأنشئ ملف بيئة مخفيًا باسم `.env` لتخزين بيانات اعتماد API بشكل آمن خارج نظام التحكم بالإصدارات.
touch .envافتح `.env` في محرر النصوص لديك وأضف مفتاح API لـ OpenAI كما هو موضح أدناه. استبدل العنصر النائب بمفتاحك الفعلي.
OPENAI_API_KEY=sk-your-key-hereأصبحت بيئتك جاهزة الآن. تتيح لك الحزمة المثبتة تشغيل نماذج التضمين المحلية دون وحدة معالجة رسومية، والتفاعل مع API لـ OpenAI للمهام التوليدية الثقيلة، وإدارة البيانات الجدولية باستخدام `pandas`.
أمثلة الاستخدام
توضح الأقسام التالية ثلاث طرق متميزة لإدخال قدرات النماذج اللغوية الكبيرة في مسار التوصية. كل مثال قائم بذاته ويمكن تكييفه مع بيانات كتالوجك الخاصة.
المثال الأول: التضمينات الدلالية للعناصر باستخدام محولات الجمل
تفشل التصفية التعاونية الكلاسيكية عند دخول عناصر جديدة إلى الكتالوج لأنه لا توجد تفاعلات مستخدمين للتعلم منها. الخطوة الأولى القوية هي ترميز البيانات الوصفية للعناصر—مثل العناوين، والأوصاف، أو الوسوم—إلى متجهات كثيفة باستخدام نموذج محول. بحساب التشابه بين متجهات ملف المستخدم ومتجهات العناصر، يمكنك إبراز المحتوى ذي الصلة دلاليًا حتى بدون إشارات تاريخية.
يقوم الشيفرة أدناه بتحميل نموذج خفيف الوزن، وترميز كتالوج تجريبي، وترتيب العناصر مقابل سلسلة اهتمامات المستخدم.
import pandas as pd
import numpy as np
from sentence_transformers import SentenceTransformer
from sklearn.metrics.pairwise import cosine_similarity
# تحميل نموذج تضمين مدمج وعالي الجودة مناسب للاستدلال على المعالج المركزي.
model = SentenceTransformer('all-MiniLM-L6-v2')
# بناء كتالوج تجريبي حيث يحتوي كل عنصر على نص وصفي غير مهيكل.
items = pd.DataFrame({
'item_id': [1, 2, 3, 4],
'description': [
'A cyberpunk thriller set in a dystopian Tokyo underworld',
'A hands-on guide to Python machine learning and pandas',
'A romantic comedy about two rival pastry chefs in Paris',
'An introductory textbook on deep learning and neural networks'
]
})
# ترميز أوصاف الكتالوج إلى متجهات كثيفة ذات 384 بُعدًا.
item_embeddings = model.encode(
items['description'].tolist(),
convert_to_numpy=True,
show_progress_bar=False
)
# محاكاة ملف مستخدم معبّر عنه بلغة طبيعية.
user_query = "I want to learn about artificial intelligence and neural nets"
# ترميز استعلام المستخدم إلى نفس الفضاء الدلالي.
user_embedding = model.encode([user_query], convert_to_numpy=True)
# حساب تشابه جيب التمام بين المستخدم وكل عنصر.
similarity_scores = cosine_similarity(user_embedding, item_embeddings).flatten()
# إرفاق الدرجات وترتيبها لإنتاج الترتيب النهائي.
items['similarity'] = similarity_scores
ranked_items = items.sort_values('similarity', ascending=False)
print(ranked_items[['item_id', 'description', 'similarity']])في هذا النمط، تلتقط التضمينات المستمدة من النماذج اللغوية الكبيرة العلاقات الدلالية التي لا يمكن لمعرفات العناصر وحدها التقاطها. قد يربط نموذج تحليل المصفوفات بين العنصر 2 والعنصر 4 فقط إذا قام المستخدمون بالنقر عليهما معًا، بينما يتعرف نموذج التضمين على تشابههما الموضوعي فورًا. في الإنتاج، يمكنك تخزين هذه المتجهات في قاعدة
المصادر
أسئلة شائعة
عن ماذا يتحدث هذا المقال؟
يتناول هذا المقال موضوع "زيادة دقة أنظمة التوصية باستخدام نماذج اللغات الكبيرة (LLMs) باستخدام بايثون" ضمن تصنيف أدوات الذكاء الاصطناعي. مقال واضح وعملي عن الذكاء الاصطناعي لجمهور مهني.
لمن يفيد هذا المقال؟
يفيد القراء المهتمين بفهم أدوات وتقنيات الذكاء الاصطناعي بطريقة عملية وواضحة.
ما الخطوة التالية؟
اقرأ المقال كاملاً، راجع المصادر المرفقة، ثم جرّب الأفكار المناسبة لاحتياجك بحذر.



