Evaluation

ساخت مجموعه‌های داده طلایی: سنگ بنای ارزیابی محکم مدل‌های زبانی بزرگ

در چشم‌انداز در حال تحول سریع توسعه مدل‌های زبانی بزرگ (LLM)، وسوسه‌ی اتکای صرف به معیارهای خودکار مانند گیجی (Perplexity) یا امتیازهای شباهت پایه قوی است. با این حال، این معیارها اغلب در درک ظرافت، دقت واقعی و نیت خاص مورد نیاز برای کاربردهای سطح تولیدی شکست می‌خورند. اینجاست که مجموعه‌های داده طلایی وارد عمل می‌شوند. یک مجموعه داده طلایی، یک مجموعه‌ی انتخاب‌شده و باکیفیت از جفت‌های ورودی-خروجی است که در آن خروجی «طلایی» نماینده‌ی پاسخ ایده‌آل یا حقیقت عینی (Ground-truth) است. این مجموعه‌ها به عنوان معیار قطعی برای سنجش میزان عملکرد مدل شما در برابر انتظارات دنیای واقعی عمل می‌کنند.

چرا مجموعه‌های داده طلایی اهمیت دارند؟

تست‌های واحد سنتی برای تطابق دقیق رشته‌ها بررسی می‌کنند، که در هوش مصنوعی مولد به ندرت امکان‌پذیر است. به جای آن، مجموعه‌های داده طلایی ارزیابی معنایی را ممکن می‌سازند. آن‌ها به شما اجازه می‌دهند موارد زیر را بسنجید:

  • دقت واقعی: آیا مدل بر اساس یک منبع حقیقت خاص، اطلاعات صحیح ارائه می‌دهد؟
  • پیروی از دستورالعمل: آیا خروجی به محدودیت‌های خاص (مثلاً قالب JSON، لحن، طول) پایبند است؟
  • ایمنی و سوگیری: آیا مدل می‌تواند بدون تولید محتوای مضر یا سوگیرانه با موارد حاشیه‌ای (Edge cases) برخورد کند؟

بدون یک مجموعه داده طلایی پایدار، هر نسخه جدید از مدل یک قمار است. شما نمی‌توانید چیزی را بهینه کنید که نمی‌توانید به طور مداوم اندازه‌گیری کنید.

ساختار و ترکیب یک مجموعه داده طلایی

یک مجموعه داده طلایی با ساختار خوب معمولاً از سه جزء اصلی تشکیل شده است:

  1. پرامپت ورودی: پرسش کاربر یا زمینه‌ای که به LLM ارائه می‌شود.
  2. خروجی طلایی: پاسخ ایده‌آل مورد انتظار، که توسط متخصصان انسانی یا منابع تأیید شده نوشته شده است.
  3. معیارهای ارزیابی: معیارها یا قوانین خاصی که برای قضاوت شباهت بین خروجی واقعی مدل و خروجی طلایی استفاده می‌شوند.

نمونه زیر را در پایتون با استفاده از یک ساختار JSON ساده در نظر بگیرید:


import json

golden_dataset = [
    {
        "id": "case_001",
        "input": "What is the capital of France?",
        "golden_output": "The capital of France is Paris.",
        "category": "factual_accuracy",
        "tolerance": "high"
    },
    {
        "id": "case_002",
        "input": "Write a haiku about coding.",
        "golden_output": "Silent cursor blinks.\nLogic flows in endless streams.\nBug found, fix applied.",
        "category": "creative_formatting",
        "tolerance": "medium"
    }
]

# Save to file for version control
with open('golden_data.json', 'w') as f:
    json.dump(golden_dataset, f, indent=2)

نگهداری و نسخه‌بندی مجموعه‌های داده شما

مجموعه‌های داده طلایی ایستا نیستند؛ آن‌ها به نگهداری نیاز دارند. با تکامل برنامه شما، موارد حاشیه‌ای جدیدی ظاهر خواهند شد. در اینجا بهترین روش‌ها برای نگهداری مجموعه‌های داده شما آورده شده است:

۱. کنترل نسخه

با مجموعه‌های داده طلایی خود با همان سخت‌گیری که با کد خود دارید برخورد کنید. آن‌ها را در مخزن Git خود ذخیره کنید. از نسخه‌بندی معنایی (مثلاً v1.0.0) برای ردیابی تغییرات مهم استفاده کنید. هنگام به‌روزرسانی خروجی‌های طلایی، باید نتایج ارزیابی خود را مجدداً خط‌باز (Re-baseline) کنید تا اطمینان حاصل شود که شما سیب را با سیب مقایسه می‌کنید.

۲. کوراسیون (انتخاب و تدوین) با مشارکت انسان

اگرچه می‌توانید با استفاده از یک مدل قوی (مانند GPT-4 یا Claude 3) برای تولید خروجی‌های اولیه، یک مجموعه داده را راه‌اندازی کنید، اما این موارد باید توسط متخصصان انسانی بررسی شوند. بازبین‌های انسانی باید خطاها را اصلاح کنند، ظرافت‌ها را بهبود بخشند و اطمینان حاصل کنند که خروجی‌های طلایی بازتاب‌دهنده‌ی بالاترین استانداردهای کیفیت ممکن برای حوزه‌ی خاص شما هستند.

۳. پوشش متنوع

یک تله‌ی رایج این است که مجموعه داده‌ای داشته باشید که به شدت به سمت موارد رایج کج شده است. اطمینان حاصل کنید که مجموعه داده طلایی شما شامل موارد زیر است:

  • مسیرهای خوشبخت (Happy paths) استاندارد.
  • موارد حاشیه‌ای و پرسش‌های مبهم.
  • موارد منفی (جایی که مدل باید رد کند یا شفاف‌سازی انجام دهد).
  • ورودی‌های متنوع (زبان‌ها، لحن‌ها و پیچیدگی‌های مختلف).

خودکارسازی خط لوله ارزیابی

مقایسه دستی خروجی‌ها پایدار نیست. شما به یک خط لوله خودکار نیاز دارید که با هر بار کامیت کد یا به‌روزرسانی مدل، در برابر مجموعه داده طلایی شما اجرا شود. ابزارهایی مانند LangSmith، DeepEval یا اسکریپت‌های سفارشی با استفاده از LLM-as-a-Judge می‌توانند این فرآیند را خودکار کنند.

در اینجا یک قطعه مفهومی نشان داده شده است که چگونه یک LLM-as-a-Judge ممکن است یک پاسخ را در برابر یک خروجی طلایی ارزیابی کند:


def evaluate_response(actual_output: str, golden_output: str, prompt: str) -> float:
    """
    Uses an LLM to score the actual output against the golden output.
    Returns a score between 0 and 1.
    """
    judge_prompt = f"""
    Compare the following two responses.
    
    Original Prompt: {prompt}
    Golden Response: {golden_output}
    Actual Response: {actual_output}
    
    Rate the Actual Response on a scale of 0 to 1, where 1 means it is
    factually and semantically equivalent to the Golden Response, and 0
    means it is completely incorrect. Provide only the number.
    """
    # Call LLM API here to get the score
    # For this example, we return a mock score
    return 0.95

نتیجه‌گیری

مجموعه‌های داده طلایی بنیاد ارزیابی قابل اعتماد LLM هستند. آن‌ها شما را از برداشت‌های مبهم از عملکرد مدل به بینش‌های ملموس و قابل اندازه‌گیری می‌برند. با سرمایه‌گذاری زمان در انتخاب، نسخه‌بندی و نگهداری یک مجموعه داده طلایی باکیفیت، شما بهبود مستمر را ممکن می‌سازید، ریسک پس‌رفت (Regression) را کاهش می‌دهید و اطمینان حاصل می‌کنید که کاربردهای هوش مصنوعی شما نتایج یکپارچه، دقیق و ایمن ارائه می‌دهند. از کوچک شروع کنید، با دقت انتخاب کنید و با رشد برنامه‌ی خود مقیاس‌بندی کنید.

Share: