AI Prompt Engineering · درس

تشخيص المخرجات غير المتوقعة

صنّفوا أنماط الفشل: إجابة خاطئة أو تنسيق خاطئ أو خروج عن الموضوع أو هلوسة

الدرس 1 من 413 خطوة

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

عند فشل المطالبات

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

نوع الفشل 1: إجابة خاطئة

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

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

  • السبب: توقف بيانات التدريب عند تاريخ محدد، أو ندرة الحقيقة، أو خطأ في الاستدلال متعدد الخطوات
  • الاكتشاف: المقارنة مع الحقيقة المرجعية، أو المراجعة البشرية، أو استدعاء LLM للتحقق
# Example: wrong answer failure
prompt = 'What year was Python first released?'
response = 'Python was first released in 1994.'  # Wrong — it was 1991

# Ground truth check
GROUND_TRUTH = '1991'
correct = GROUND_TRUTH in response
print(f'Correct: {correct}')  # False

نوع الفشل 2: تنسيق خاطئ

يحدث فشل التنسيق الخاطئ عندما يجيب النموذج عن السؤال الصحيح بالمعلومات الصحيحة، لكنه يتجاهل تعليمات التنسيق.

أمثلة على ذلك: إرجاع نص عادي عندما يكون المطلوب JSON، أو إضافة Markdown عندما يكون المطلوب نصًا عاديًا، أو إرجاع قائمة عندما يكون المطلوب قيمة واحدة.

  • السبب: دفن تعليمات التنسيق داخل مطالبة طويلة، أو وجود تعليمات متعارضة، أو تجاهل النموذج للتعليمات منخفضة الأولوية
  • الاكتشاف: خطأ في تحليل JSON، أو عدم تطابق مع regex، أو فشل التحقق من المخطط
import json

response_text = 'Sure! Here is the result: {"name": "Alice", "age": 30}'

try:
    data = json.loads(response_text)
    print('Format OK:', data)
except json.JSONDecodeError as e:
    print(f'FORMAT FAILURE: {e}')
    # 'Sure! Here is the result:' prefix broke JSON parsing

نوع الفشل 3: استجابة خارج الموضوع

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

أمثلة على ذلك: طلب دالة في Python فتلقّى دالة في JavaScript، أو طلب إجابة في سطر واحد فتلقّى مقالًا كاملًا، أو طلب إصلاح خطأ فتلقّى شرحًا للخطأ بدلًا من الإصلاح.

  • السبب: غموض التعليمات، أو تعارض السياق، أو انحراف المهمة في المحادثات الطويلة
# Off-topic example
prompt = 'Write a Python function that reverses a list.'
response = '''
In JavaScript, you can reverse an array like this:
const reversed = arr.reverse();
'''

# Detection: check that output contains the correct language keyword
def check_language(response, expected_lang='def '):
    if expected_lang not in response:
        print(f'OFF-TOPIC FAILURE: expected {expected_lang} in response')
        return False
    return True

check_language(response)  # False — no Python def

نوع الفشل 4: الهلوسة

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

أمثلة على ذلك: استشهادات مختلقة (عنوان بحث يبدو حقيقيًا لكنه غير موجود)، ونقاط نهاية API مبتكرة، وإحصاءات زائفة، وأشخاص غير موجودين.

  • السبب: يسد النموذج فجوات المعرفة بنص معقول ظاهريًا ناتج عن مطابقة الأنماط
  • الاكتشاف: التحقق من الحقائق بالرجوع إلى مصادر موثوقة، ومراجعة الاستشهادات، واختبار استدعاءات API
# Hallucination detection via external verification
import requests

def verify_doi(doi):
    url = f'https://doi.org/{doi}'
    resp = requests.head(url, allow_redirects=True, timeout=5)
    return resp.status_code == 200

# Model claimed this paper exists:
fabricated_doi = '10.1234/fake.paper.2023.99999'
if not verify_doi(fabricated_doi):
    print('HALLUCINATION DETECTED: DOI does not exist')

تطبيق تصنيف حالات الفشل

عند ملاحظة فشل، صنّفه أولًا قبل محاولة إصلاحه. فنوع الفشل يحدد استراتيجية الإصلاح:

  • إجابة خاطئة: أضف سياقًا، أو استخدم الاسترجاع، أو انتقل إلى نموذج أكثر قدرة
  • تنسيق خاطئ: عزّز تعليمات التنسيق، أو أضف أمثلة على المخرجات، أو استخدم المخرجات المهيكلة / استدعاء الدوال
  • خروج عن الموضوع: أعد صياغة التعليمات لتكون أكثر تحديدًا، وبسّط المطالبة
  • هلوسة: أضف سياقًا يستند إليه النموذج، واطلب منه قول «لا أعرف»، وفعّل الاستشهادات

تسجيل الفشل بصورة منظمة

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

import json
from datetime import datetime

def log_failure(prompt, response, failure_type, details=''):
    entry = {
        'timestamp': datetime.utcnow().isoformat(),
        'failure_type': failure_type,  # wrong_answer | wrong_format | off_topic | hallucination
        'prompt_hash': hash(prompt),
        'response_snippet': response[:200],
        'details': details
    }
    with open('prompt_failures.jsonl', 'a') as f:
        f.write(json.dumps(entry) + '\n')

log_failure(
    prompt=my_prompt,
    response=bad_response,
    failure_type='wrong_format',
    details='JSON prefix text broke parsing'
)

التصنيف الآلي للفشل

للاختبار على نطاق واسع، استخدم استدعاء LLM مصنِّفًا لوضع تصنيف تلقائي لكل استجابة وفق نوع الفشل. ويتيح ذلك إجراء تقييم دفعي عبر مئات حالات الاختبار.

def classify_failure(prompt, expected, actual):
    classification_prompt = (
        f'You are a QA evaluator for LLM outputs.\n'
        f'Prompt: {prompt}\n'
        f'Expected behavior: {expected}\n'
        f'Actual output: {actual}\n\n'
        'Classify the failure as one of: CORRECT, WRONG_ANSWER, WRONG_FORMAT, OFF_TOPIC, HALLUCINATION.\n'
        'Reply with only the label.'
    )
    resp = client.chat.completions.create(
        model='gpt-4o-mini',
        messages=[{'role': 'user', 'content': classification_prompt}]
    )
    return resp.choices[0].message.content.strip()

مصفوفة الخطورة

لا تملك جميع حالات الفشل التأثير نفسه. تساعد مصفوفة الخطورة على تحديد أولويات الإصلاح:

  • هلوسة في سياق طبي أو قانوني: حرجة — أصلحها فورًا
  • تنسيق خاطئ في أداة داخلية: مرتفع — يعطّل تحليل المخرجات اللاحق
  • إجابة خاطئة في حالة نادرة: متوسط — راقب معدل التكرار
  • خروج عن الموضوع عند إدخال غامض: منخفض — مقبول إذا كان نادر الحدوث

تتبّع معدلات الفشل لكل نوع أسبوعيًا. وتشير الزيادة المفاجئة في أي فئة إلى حدوث تراجع يحتاج إلى المعالجة.

إنشاء لوحة معلومات للفشل

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

import json
from collections import Counter

def failure_report(log_path='prompt_failures.jsonl'):
    entries = []
    with open(log_path) as f:
        for line in f:
            entries.append(json.loads(line))

    counts = Counter(e['failure_type'] for e in entries)
    total = len(entries)

    print(f'Total failures: {total}')
    for ftype, count in counts.most_common():
        pct = 100 * count / total
        print(f'  {ftype}: {count} ({pct:.1f}%)')

failure_report()

الوقاية الاستباقية من حالات الفشل

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

  • إجابة خاطئة: وفّر نصًا مرجعيًا في المطالبة (RAG)، واطلب من النموذج الاستشهاد بمصدره
  • تنسيق خاطئ: استخدم وضع JSON أو استدعاء الدوال، ووفّر مثالًا على التنسيق في المطالبة
  • خروج عن الموضوع: اجعل المهمة في الجملة الأولى، وتجنب المقدمات الطويلة التي تضعف وضوح النية
  • هلوسة: وجّه النموذج إلى «استخدام المعلومات المقدمة أدناه فقط»، وأضف «إذا لم تكن متأكدًا، فقل: لا أعرف»

اختبار المعرفة

ما نوع الفشل الذي يحدث عندما يختلق النموذج حقائق غير موجودة، مثل اختلاق استشهاد أو نقطة نهاية API غير موجودة؟

مراجعة: تشخيص المخرجات غير المتوقعة

أنواع فشل LLM الأربعة وخصائصها الأساسية:

  • إجابة خاطئة: تنسيق صحيح وموضوع صحيح، لكن المحتوى خاطئ — تحقّق من الحقائق بالرجوع إلى الحقيقة المرجعية
  • تنسيق خاطئ: محتوى صحيح مع تجاهل تعليمات التنسيق — يكشف التحقق من المخطط هذه الحالة
  • خروج عن الموضوع: تنسيق صحيح، لكن الإجابة عن سؤال مختلف — تحقّق من تطابق اللغة والمهمة
  • هلوسة: حقائق مختلقة — تحقّق منها بالرجوع إلى مصادر خارجية

سجّل كل فشل وصنّفه. وتتبّع المعدلات حسب النوع بمرور الوقت. الدرس التالي: تحليل السبب الجذري لمعرفة أي جزء من المطالبة تسبب في الفشل.

البدء مجانًا

تعلم AI Prompt Engineering مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
53
الدروس
199

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

هل درس «تشخيص المخرجات غير المتوقعة» مجاني؟

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

ماذا ستتعلم في «تشخيص المخرجات غير المتوقعة»؟

صنّفوا أنماط الفشل: إجابة خاطئة أو تنسيق خاطئ أو خروج عن الموضوع أو هلوسة تتمرن على AI Prompt Engineering مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

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

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

كم من الوقت يستغرق درس «تشخيص المخرجات غير المتوقعة»؟

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

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

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

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

  1. تشخيص المخرجات غير المتوقعة
  2. تحليل السبب الجذري للمطالبات
  3. نهج منهجي لتصحيح الأخطاء
  4. استراتيجيات التسجيل والتوثيق
← العودة إلى AI Prompt Engineering