Evaluation

خط‌کش‌های ایمنی بدون بازیابی: تکنیک‌های پیشرفته برای تشخیص توهم در مدل‌های زبانی بزرگ در وظایف غیر RAG

مدل‌های زبانی بزرگ (LLMs) توسعه نرم‌افزار و تولید محتوا را متحول کرده‌اند، اما همچنان به یک نقص حیاتی مبتلا هستند: توهم. اگرچه تولید تقویت‌شده با بازیابی (RAG) استاندارد صنعتی برای مستندسازی پاسخ‌ها در داده‌های واقعی است، بسیاری از وظایف تولیدی—مانند نوشتن خلاقانه، ترکیب کد یا استدلال منطقی—در فضاهای باز-ended عمل می‌کنند که در آن‌ها بازیابی خارجی یا غیرعملی یا غیرممکن است. در این سناریوهای غیر RAG، چگونه توسعه‌دهندگان می‌توانند قابلیت اطمینان خروجی‌های مدل را تضمین کنند؟ این پست به بررسی تکنیک‌های معماری مستحکم برای تشخیص و کاهش توهم‌ها بدون تکیه بر پایگاه‌های داده برداری می‌پردازد.

چالش توهم‌های غیر RAG

در سیستم‌های RAG، توهم اغلب یک شکست در بازیابی یا عدم تطابق بین زمینه و تولید است. در وظایف غیر RAG، با این حال، توهم از ماهیت احتمالی مدل ناشی می‌شود که سعی دارد الگویی را که وجود ندارد، تطبیق دهد. چه مدل یک API کتابخانه را اختراع کند و چه یک تاریخ تاریخی را ساختگی بسازد، فقدان یک لنگر حقیقت خارجی، تأیید را دشوار می‌سازد. تطبیق کلیدواژه‌های سنتی در اینجا شکست می‌خورد زیرا خروجی اغلب از نظر نحوی صحیح اما از نظر معنایی غلط است. بنابراین، ما به روش‌هایی نیاز داریم که از قابلیت‌های استدلالی خود مدل یا اعتبارسنج‌های ساختاری خارجی استفاده کنند.

تکنیک ۱: سازگاری خودکار و تأیید زنجیره‌ای تفکر

یکی از استراتژی‌های کم‌هزینه و مؤثر، سازگاری خودکار است. به جای پذیرش اولین خروجی، ما از مدل می‌خواهیم تا مسیرهای استدلالی متعددی را تولید کند. اگر پاسخ نهایی در طول زنجیره‌های تفکر مختلف به طور قابل توجهی متفاوت باشد، این نشان‌دهنده قوی توهم است. این تکنیک از این واقعیت بهره می‌برد که در حالی که یک مسیر منفرد ممکن است به دروغی plausible سقوط کند، گام‌های منطقی سازگار در نمونه‌های متعدد تقلب کردن سخت‌تر است.

در اینجا یک مثال پایتون با استفاده از کتابخانه openai برای پیاده‌سازی سازگاری خودکار پایه آورده شده است:

import openai

def check_consistency(prompt, n=5):
    responses = []
    for _ in range(n):
        # اجبار به استدلال گام به گام
        response = openai.ChatCompletion.create(
            model="gpt-4",
            messages=[
                {"role": "system", "content": "گام به گام فکر کنید."},
                {"role": "user", "content": prompt}
            ],
            temperature=0.7 # دمای بالاتر برای تنوع
        )
        responses.append(response.choices[0].message.content)
    
    # بررسی ساده: اگر همه پاسخ‌ها یکسان نیستند، برای بررسی علامت بزنید
    if len(set(responses)) > 1:
        return {"status": "inconsistent", "variants": responses}
    return {"status": "consistent", "answer": responses[0]}

تکنیک ۲: پرامپت‌دهی تهاجمی برای راستی‌آزمایی حقایق

یک تکنیک قدرتمند شامل یک فرآیند دو مرحله‌ای است: تولید به دنبال آن تأیید. در مرحله اول، مدل محتوا را تولید می‌کند. در مرحله دوم، شما یک نمونه جداگانه (یا همان نمونه با نقش متفاوت) را برای انتقاد از خروجی در برابر محدودیت‌های شناخته شده یا دانش عمومی پرامپت می‌دهید. این اغلب به عنوان ارزیابی "مدل داور" شناخته می‌شود.

برای مثال، اگر در حال تولید کد هستید، فقط از کد نخواهید. از مدل می‌خواهید که یک مورد آزمایشی را نیز خروجی دهد که اگر کد توهمی باشد، باید شکست بخورد. اگر مورد آزمایشی نامعتبر باشد یا توضیح با کد تناقض داشته باشد، آن را علامت می‌زنید.

# الگوی پرامپت تأیید
verification_prompt = """
قطعه کد زیر را برای سازگاری منطقی و توهم‌های احتمالی کتابخانه‌های خارجی تحلیل کنید.
کد:
{generated_code}

وظیفه: 
1. شناسایی کنید که آیا هر کتابخانه‌ای که وارد شده وجود ندارد.
2. بررسی کنید که آیا امضای توابع با مستندات کتابخانه استاندارد مطابقت دارد.
3. یک JSON با امتیاز 'hallucination_risk' (0-1) خروجی دهید.
"""

تکنیک ۳: بررسی‌های شباهت جاسازی معنایی

وقتی راستی‌آزمایی مستقیم حقایق غیرممکن است، می‌توانیم از جاسازی‌های معنایی برای اندازه‌گیری میزان "نزدیکی" خروجی تولید شده به یک حقیقت پایه شناخته شده یا مجموعه‌ای از اسناد مرجع قابل اعتماد استفاده کنیم. اگرچه این شبیه RAG به نظر می‌رسد، در وظایف غیر RAG، می‌توانیم از مجموعه کوچکی از نمونه‌های "استاندارد طلایی" که برای حوزه مرتبط هستند استفاده کنیم. با محاسبه شباهت کسینوسی بین خروجی تولید شده و این مراجع، می‌توانیم داده‌های پرت را تشخیص دهیم. اگر یک پاسخ تولید شده به طور قابل توجهی از خوشه معنایی پاسخ‌های خوب شناخته شده دور شود، ممکن است در حال توهم باشد.

نتیجه‌گیری

تشخیص توهم در وظایف تولیدی مبتنی بر بازیابی نیازمند تغییر از اعتبارسنجی ساده به تأیید ساختاری و منطقی است. با ترکیب بررسی‌های سازگاری خودکار، انتقاد تهاجمی و اندازه‌گیری‌های شباهت معنایی، توسعه‌دهندگان می‌توانند سیستم‌های هوش مصنوعی مقاوم‌تری بسازند. این تکنیک‌ها توهم‌ها را به طور کامل حذف نمی‌کنند، اما خط‌کش‌های ایمنی لازم را برای اطمینان از اینکه مدل‌ها ابزارهای قابل اعتماد باقی بمانند تا مسئولیت‌های خلاقانه، فراهم می‌کنند. با تکامل چشم‌انداز GenAI، این استراتژی‌های ارزیابی به اندازه خود مدل‌ها حیاتی خواهند شد.

Share: