اذهب إلى المحتوى

Zeina Mahfouz

الأعضاء
  • المساهمات

    210
  • تاريخ الانضمام

  • تاريخ آخر زيارة

كل منشورات العضو Zeina Mahfouz

  1. استخدم تقنية "سلسلة التحقق" (Chain of Verification - CoVE)مع نظام RAG. صممت CoVE خصيصًا لمكافحة الهلوسة(Hallucination) في نماذج الذكاء الاصطناعي . تعمل CoVE في أربع خطوات بسيطة: الخطوة 1: توليد إجابة أولية (GENERATION OF AN INITIAL RESPONSE) يبدأ النموذج بصياغة إجابة أولية بناءً على استعلام المستخدم. في أنظمة RAG، يتم ذلك عن طريق استرداد المستندات ذات الصلة من قاعدة بيانات (مثل Vector Database) واستخدامها كأساس للإجابة. الخطوة 2: صياغة أسئلة التحقق (Formulation of Verification Questions) بناءً على الاجابة الأولية التي تم إنشاؤها، يقوم النموذج بابتكار أسئلة محددة. الهدف من الأسئلة: اختبار الدقة: التحقق من صحة الحقائق والبيانات المذكورة. اختبار العمق: تحديد ما إذا كانت هناك جوانب في الإجابة يمكن تحسينها أو تحتاج إلى تفاصيل إضافية. حيث يقرر النموذج ما الذي يحتاج إلى فحص وتدقيق. الخطوة 3: استرداد معلومات إضافية (Retrieval of Additional Information) يستخدم النموذج آلية الاسترداد (Retrieval) مرة أخرى، ولكن هذه المرة ليس للإجابة على سؤال المستخدم الأصلي، بل للإجابة على أسئلة التحقق التي صاغها بنفسه. لكل سؤال تحقق، يبحث النموذج في قاعدة البيانات عن المستندات التي تحتوي على الإجابة الدقيقة. الأهمية: إذا لم يجد النموذج دليلاً يدعم معلومة ما في إجابته الأولية، فهذا يدحض تلك المعلومة ويثبت أنها كانت خاطئة. هذه هي لحظة اكتشاف الخطأ. الخطوة 4: مراجعة الاستجابة الأولية (Revision of the Initial Response) بناءً على الأدلة الداعمة أو المتناقضة التي تم العثور عليها في الخطوة 3، يقوم النموذج بتعديل إجابته. و يكون لديه سيناريوهان: إذا كانت المعلومات دقيقة: قد يقوم النموذج بإضافة تفاصيل أو توضيحات لجعل الإجابة أكثر ثراءً وموثوقية. إذا كانت المعلومات خاطئة: يقوم النموذج بتصحيح الخطأ أو حذفه تمامًا. النتيجة النهائية: يتم إرسال الإجابة النهائية المُنقحة والمُحسَّنة إلى المستخدم. مثال: السؤال أو الاستعلام : "من هو مؤسس شركة آبل؟" الإجابة الأولية: "ستيف جوبز". صحيح جزئيًا... لكن هل هو المؤسس الوحيد؟ الخطوة 2: صياغة أسئلة التحقق — "اسأل : هل هذا دقيق؟" بعد كتابة الإجابة، لا يتوقف النموذج، بل يطرح على نفسه أسئلة صغيرة ومحددة لتقييم دقة ما كتبه مثل: "هل كان ستيف جوبز فقط مؤسس آبل؟" "هل كان هناك شركاء؟" "متى وأين تأسست الشركة؟" هذه الأسئلة ليست عامة، بل موجهة لاختبار نقاط ضعف في الإجابة. الخطوة 3: استرجاع معلومات جديدة : "ابحث عن إجابات لهذه الأسئلة" النموذج يعيد استخدام قاعدة البيانات (أو الإنترنت أو المستندات المرتبطة به) للبحث عن إجابات دقيقة لكل سؤال تحقق. إذا وجد أدلة تدعم الإجابة → يؤكد صحتها. إذا وجد أدلة تناقضها → يُعدّل الإجابة أو يحذف الجزء الخاطئ. بعد البحث: "آبل تأسست عام 1976 بواسطة ستيف جوبز، ستيف Возنياك، ورونالد واين." → إذًا، الإجابة الأولى غير كاملة! الخطوة 4: المراجعة : "عدّل الإجابة وقدم النسخة الصحيحة" النموذج يدمج كل ما تعلمه من خطوات التحقق ويُعدّل الإجابة الأولية. يضيف تفاصيل، يحذف أخطاء، ويُقدّم إجابة نهائية أكثر دقة، شاملة، وموثوقة. الإجابة النهائية: "تأسست شركة آبل عام 1976 بواسطة ثلاثة أشخاص: ستيف جوبز، ستيف Возنياك، ورونالد واين. رغم أن جوبز هو الأكثر شهرة، إلا أنه لم يكن المؤسس الوحيد." فكأنك تجيب على جميع أسئلة الامتحان، ثم تعود وتراجع كل إجاباتك للتأكد من أنك أجبت عليها بشكل صحيح قبل تسليم ورقتك. هذه بالضبط تقنية COVE ، تجعل الذكاء الاصطناعي يُراجع نفسه، ويصحح أخطاءه، ويُنتج إجابة أدق وأكثر موثوقية. يمكن توجيه النموذج لتنفيذ هذه العملية من خلال أمر (Prompt) يشبه هذا: "بالنظر إلى سؤال المستخدم حول [موضوع محدد]، قم بإنشاء استجابة أولية بناءً على المستندات المستردة. بعد ذلك، قم بصياغة أسئلة تحقق للتحقق من دقة الاستجابة. أحضر معلومات إضافية للإجابة على هذه الأسئلة. في النهاية، قم بمراجعة الاستجابة الأولية بناءً على هذا التحقق لضمان الدقة والعمق. قدم الإجابة المراجعة للمستخدم. مثال اخر: السؤال: هل كان كريستوفر كولومبوس أول من وصل إلى أمريكا؟ الخطوة 1: توليد إجابة أولية (استرجاع عام واسع) يُعتقد عمومًا أن كريستوفر كولومبوس كان أول أوروبي يصل إلى الأمريكيتين عام 1492، مما فتح الباب أمام الاستكشاف والاستعمار الأوروبي للقارة. قاد رحلته بإيعاز من ملكي إسبانيا، وهبط في جزر الكاريبي، معتقدًا أنه وصل إلى جزر الهند الشرقية. هذه إجابة مبسطة وقد تكون مضللة جزئيًا. الخطوة 2: صياغة أسئلة التحقق (نُحدد نقاط الضعف ونطرح أسئلة دقيقة) بناءً على الإجابة، نطرح الأسئلة التالية: هل كان كولومبوس أول إنسان يصل إلى أمريكا؟ هل كان أول أوروبي يصل إلى أمريكا؟ متى وصل شعب آخر (مثل الفايكينغ) إلى أمريكا؟ هل وصل السكان الأصليون من آسيا قبله؟ أين هبط كولومبوس بالضبط — وهل كان ذلك "أول اتصال" بين أوروبا والأمريكتين؟ الخطوة 3: استرجاع معلومات إضافية (البحث الدقيق لكل سؤال على حدة) نُجري استرجاعًا موجّهًا لكل سؤال: هل كان أول إنسان؟ لا. السكان الأصليون (الهنود الحمر) وصلوا إلى الأمريكتين عبر جسر بيرينغ البري من آسيا منذ 15,000–20,000 سنة قبل الميلاد. هل كان أول أوروبي؟ لا. الفايكينغ بقيادة ليف إريكْسون وصلوا إلى نيوفاوندلاند (كندا) نحو سنة 1000 م — أي قبل كولومبوس بـ500 عام. هل هناك أدلة مادية؟ نعم! تم اكتشاف موقع لينس أوكس ميدوز (L’Anse aux Meadows) في كندا عام 1960، وهو مستوطنة فايكينغ أُثبِت أنها تعود إلى 1000 م تقريبًا. هل عرف الأوروبيون عن رحلات الفايكينغ؟ لا، لأن هذه المعلومات ظلت محلية ولم تُسجّل في الخرائط الأوروبية الرئيسية، فكولومبوس لم يكن على علم بها. هل رحلة كولومبوس لها أهمية تاريخية؟ نعم، لأنها بدأت التبادل بين العالم القديم والجديد (كولومبيان إكستشينج) وفتحت باب الاستعمار الأوروبي على مصراعيه وهو ما لم يفعله الفايكينغ. الخطوة 4: مراجعة الإجابة الأولية كولومبوس لم يكن أول من وصل إلى أمريكا. السكان الأصليون سكنوا الأمريكتين منذ آلاف السنين قبله. الفايكينغ — بقيادة ليف إريكسون وصلوا إلى كندا نحو عام 1000 م، أي قبل كولومبوس بخمسة قرون، كما يُثبت ذلك موقع لينس أوكس ميدوز الأثري. ومع ذلك، فإن رحلة كولومبوس عام 1492 كانت ذات تأثير تاريخي هائل، لأنها أطلقت عصرًا جديدًا من الاستكشاف الأوروبي، الاستعمار، والتفاعل المستمر بين أوروبا والأمريكتين — وهو ما جعله المكتشف من منظور الغرب، رغم أنه لم يكن الأول فعليًا. ما الذي يُظهره هذا المثال عن COVE؟ الإجابة الأولية كانت صحيحة جزئيًا لكنها حذفت سياقًا تاريخيًا مهمًا. عبر طرح أسئلة تحقق دقيقة، كشفنا: أخطاء مطلقة ("أول من وصل"). تحيّز ثقافي خفي (إهمال شعوب غير أوروبية). حقائق علمية وأثرية تغيّر الفهم. الإجابة النهائية أصبحت أكثر دقة، عدالة، وثباتًا على الأدلة. تقنية CoVE تهدف إلى منع نوعين رئيسيين من الهلوسة: 1. هلوسة الحقائق البسيطة (Factual Hallucination) حيث يخطئ النموذج في تفاصيل واقعية يمكن التحقق منها بسهولة فآلية التحقق في CoVE فعالة جدًا في اكتشاف وتصحيح هذه الأخطاء. أمثلة: معلومات شخصية خاطئة: هلوسة: "هيلاري كلينتون ولدت في نيويورك." سؤال التحقق: "أين ولدت هيلاري كلينتون؟" التصحيح: ولدت في شيكاغو. تواريخ وأرقام غير صحيحة: هلوسة: "حدثت معركة حطين عام 1188." سؤال التحقق: "في أي عام وقعت معركة حطين؟" التصحيح: وقعت عام 1187. خلط المفاهيم: هلوسة: "ألبرت أينشتاين هو من اكتشف البنسلين." سؤال التحقق: "من هو مكتشف البنسلين؟" التصحيح: ألكسندر فلمنج. كيف تمنعها CoVE؟ من خلال توليد أسئلة تحقق مباشرة ("أين ولد...؟"، "متى حدث...؟"، "من فعل...؟")، تجبر التقنية النموذج على البحث عن إجابة دقيقة ومحددة لهذه التفاصيل، مما يكشف الخطأ بسهولة. 2. هلوسة السياق أو "التلفيق" (Contextual Hallucination) هذا النوع أكثر تعقيدًا، حيث لا تكون المعلومة خاطئة بالكامل، ولكن النموذج يضيف تفاصيل أو سياقات غير موجودة لجعل القصة تبدو أكثر ثراءً أو اكتمالاً. قد يربط بين حقيقتين لا علاقة لهما ببعضهما. أمثلة: إضافة تفاصيل غير مثبتة: هلوسة: "عندما وقع إسحاق نيوتن قانون الجاذبية، كان يأكل تفاحة حمراء لامعة سقطت من شجرة بجوار نافذة مكتبه." (الحقيقة هي قصة التفاحة نفسها مجرد حكاية شائعة، والتفاصيل الإضافية من اختراع النموذج). سؤال التحقق: "هل هناك مصدر موثوق يصف تفاصيل التفاحة التي ألهمت نيوتن؟" التصحيح: لا يوجد دليل تاريخي موثوق يدعم هذه التفاصيل. ربط أحداث لا علاقة لها ببعض: هلوسة: "تأثر ليوناردو دافنشي في رسم الموناليزا بالاضطرابات السياسية في فلورنسا، مما جعل ابتسامتها غامضة لتعكس حالة عدم اليقين في ذلك الوقت." (هذا تحليل ملفق يربط بين حدثين دون دليل). سؤال التحقق: "ما هي الأدلة التي تربط بين الاضطرابات السياسية في فلورنسا وابتسامة الموناليزا؟" التصحيح: هذا مجرد تفسير نظري وليس حقيقة تاريخية مثبتة. كيف تمنعها CoVE؟ أسئلة التحقق هنا تكون أكثر عمقًا ("ما هو الدليل على...؟"، "هل يوجد مصدر يدعم هذا الادعاء؟"). هذا يجبر النموذج على البحث عن علاقات سببية وأدلة داعمة، وعندما لا يجدها، يدرك أن التفاصيل التي أضافها كانت مجرد "تلفيق" ويقوم بإزالتها أو تعديلها. الخلاصة: تعمل "سلسلة التحقق" كشبكة أمان من مستويين: المستوى الأول: تصطاد الأخطاء الواقعية الواضحة. المستوى الثاني: تكشف التفاصيل المُختلقة والروابط الوهمية التي يضيفها النموذج لتبدو إجابته أكثر إقناعًا. بهذه الطريقة، تزيد CoVE من موثوقية النموذج بشكل كبير وتجعله مصدرًا أكثر أمانًا للمعلومات.
  2. قد تساعدك هذه الخارطة طريق لتعلم AI Agents على فهم البناء المنهجي والعملي لهذا المجال.
  3. مرحباً، أنهيت أربعة مسارات من دورة بايثون، وأرغب في التأكد من المشاريع المطلوبة للتقدّم إلى الامتحان: مسار أساسيات لغة بايثون: المشروع النهائي هو "تطبيق إدارة المهام". مسار التطبيقات العملية باستخدام بايثون: لا يحتوي المسار على مشروع نهائي، بل يشمل مجموعة تطبيقات عملية مثل التعامل مع ملفات Excel وJSON وWord وغيرها. هل يجب رفع جميع هذه التطبيقات؟ مسار تحليل البيانات: المشاريع المطلوبة بحسب ما هو موضح في قسم مشاريع عملية تشمل: "بيانات مواعيد المرضى"، "تحليل ومشاهدة بيانات مرضى السكري"، و"بيانات كوفيد". مسار أساسيات تعلم الآلة: أيضاً لا يتضمن مشروع نهائي، بل أمثلة تطبيقية لشرح خوارزميات التصنيف والانحدار والتجميع، فهل من الضروري رفع كل هذه الأمثلة أيضاً؟ وهل هناك أي ملاحظات أو متطلبات إضافية - عدا شروط التقدّم للامتحان - يجب الانتباه لها قبل التقدّم للامتحان؟
  4. مرحباً، لماذا تم نقل مسار تطبيقات عملية باستخدام المحولات (Transformers) لبعد مسار تحليل البيانات Data Analysis وأصبحت قبل مسار Deep Learning ؟ أليست المحولات نوع معين من الشبكات العصبية و بالتالي من المنطقي أن تبقى كما كانت في الأول أي بعد مسار Deep Learning ليتعرف الطالب أولاً على الشبكات العصبية ثم ينتقل لدراسة المحولات؟
  5. مرحباً عبد الله، اذا كنت تبحث عن كورسات خارجية مجانية اضافية لدعم معلوماتك فأنصحك بكورس Data Analysis with Python تحليل البيانات باستخدام البايثون للمدرب المنذر سفان فأسلوبه يعتمد على تبسيط المعلومة و التدرج بالطرح حيث يبدأ من الأساسيات نحو المفاهيم الأكثر تعقيداً بطريقة سلسلة. أما بالنسبة لاسئلتك المتعلقة بكورسات الأكاديمية فيمكنك طرح استفساراتك المتعلقة بالدرس أسفل الدرس و ستجد فريق كامل من المختصين يقومون بالرد عليها خلال دقائق . وكنصيحة يمكنك الاستعانة ب chatGPT و windsurf و غيرها من الأدوات أثناء رحلتك التعليمية. بالتوفيق
  6. حل المشروع التدريبي صورة حرفية grid = [['.', '.', '.', '.', '.', '.'], ['.', 'O', 'O', '.', '.', '.'], ['O', 'O', 'O', 'O', '.', '.'], ['O', 'O', 'O', 'O', 'O', '.'], ['.', 'O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O', '.'], ['O', 'O', 'O', 'O', '.', '.'], ['.', 'O', 'O', '.', '.', '.'], ['.', '.', '.', '.', '.', '.']] n =0 while n<6: for i in range(9): print(grid[i][n],end="") if i==8: print("") n =n+1 output ..OO.OO.. .OOOOOOO. .OOOOOOO. ..OOOOO.. ...OOO... ....O....
  7. حل لعبة قائمة الأدوات في لعبة Inventory =dict(arrow='12',gold_coin='42 ',rope='1',torch='6',dagger='1') def displayInventory(inventory): print("Inventory:") item_total = 0 for k, v in inventory.items(): print(f"{v} is the Total number of {k}") item_total =item_total+int(inventory[k]) print(f"Total number of items: {item_total}") displayInventory(Inventory) print("*"*50) طلب كتابة دالة تحويل قائمة إلى قاموس في لعبة Inventory =dict(arrow='12',gold_coin='42', rope='1',torch='6',dagger='1') playerLoot = ['gold_coin', 'dagger', 'gold_coin', 'gold_coin', 'ruby'] def displayInventory(inventory): print("Inventory:") item_total = 0 for k, v in inventory.items(): print(f"{v} is the Total number of {k}") item_total =item_total+int(inventory[k]) print(f"Total number of items: {item_total}") displayInventory(Inventory) print("*"*50) def addToInventory(inventory,item): if item in inventory: inventory[item] = int(inventory[item]) + 1 inventory[item] = str(inventory[item]) else: inventory.setdefault(item,1) inventory[item] = str(inventory[item]) return inventory for item in playerLoot: addToInventory(Inventory,item) displayInventory(Inventory)
×
×
  • أضف...