یک مدل قاضی پایه تنظیم کنید (بخش 1)

ارزیابی‌های ذهنی خود را با یک مدل قضاوت پایه اجرا کنید.

ارزیابی‌های مبتنی بر قانون می‌توانند پاسخ‌های قطعی را بررسی کنند. برای ارزیابی ویژگی‌های ذهنی، از تکنیک LLM-as-a-judge استفاده کنید.

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

مراحل ساخت اولین مدل قضاوت شما

  1. یک روش سفارشی‌سازی مدل انتخاب کنید . تصمیم بگیرید که تنظیمات را دقیق انجام دهید یا از مهندس بخواهید که آن را به شما معرفی کند.
  2. یک مدل انتخاب کنید. این می‌تواند یک مدل پایه یا یک LLM دیگر بدون تخصص در آن حوزه باشد.
  3. یک روش امتیازدهی انتخاب کنید. مشخص کنید که آیا داور باید از مقیاس دودویی یا عددی برای امتیازدهی به تم‌های تولید شده توسط ThemeBuilder استفاده کند.
  4. قاضی را پیکربندی کنید. تنظیمات مدل (مانند دما و خروجی ساختاریافته) را تغییر دهید تا برای وظایف قضاوت مناسب شود.
  5. سوال اولیه را بنویسید. نسخه اولیه دستورالعمل‌های سیستم قضاوت و سوال، شامل یک جدول امتیازدهی و مثال‌ها را طراحی کنید.
  6. یک مجموعه داده هم‌ترازی ایجاد کنید . مجموعه‌ای متنوع و باکیفیت از خروجی‌های خوب و بد ThemeBuilder بسازید یا کنار هم قرار دهید و آنها را به این صورت برچسب‌گذاری کنید (مانند شعار خوب، شعار سمی و پالت رنگی نامتعارف).
  7. قاضی را ترازبندی و آزمایش کنید. از مجموعه داده‌های ترازبندی برای اصلاح مکرر دستور قاضی (دستورالعمل‌های سیستم و دستور اصلی) استفاده کنید. این فرآیند را تا زمانی که احکام قاضی به طور مداوم با احکام انسان‌ها مطابقت داشته باشد، تکرار کنید. در نهایت، قاضی را آزمایش کنید تا مطمئن شوید که قابل اعتماد است و می‌تواند رویکرد خود را به ورودی‌های جدید تعمیم دهد.

یک مدل قاضی دارای یک LLM، تنظیمات، یک اعلان سیستم و یک اعلان نمره‌دهی است.

انتخاب روش سفارشی‌سازی

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

گزینه‌های اصلی شما برای ایجاد یک مدل قاضی عبارتند از:

  1. مهندس ارشد حقوق (LLM)
  2. یک مدل را به دقت تنظیم کنید .
  3. از یک LLM تنظیم‌شده و بهینه‌شده برای ارزیابی‌ها، مانند JudgeLM ، استفاده کنید. این گزینه مستلزم میزبانی وزن‌های مدل سفارشی توسط خودتان یا استفاده از یک ارائه‌دهنده ابری است که از میزبانی مدل متن‌باز پشتیبانی می‌کند.

برای ارزیابی‌های ThemeBuilder در این دوره، ما مهندسی سریع را توصیه می‌کنیم. مهندسی سریع می‌تواند نتایج عالی را با تلاش توسعه کمتر نسبت به گزینه‌های دیگر ارائه دهد.

یک مدل انتخاب کنید

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

برای یافتن بهترین مدل و تکنیک ، مدل‌ها و تکنیک‌های مختلف را امتحان کنید.

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

این دوره از Gemini 3 Flash به عنوان مدل قضاوت استفاده می‌کند. Gemini 3 Flash سرعت و عمق استدلال مورد نیاز برای مثال‌های کاربردی ارزیابی خروجی‌های ThemeBuilder را ارائه می‌دهد. با این اوصاف، الگوهای موجود در این دوره را می‌توان برای هر مدلی که انتخاب می‌کنید، اعمال کرد.

انتخاب روش امتیازدهی

شما می‌توانید خروجی‌های ذهنی را با PASS دوتاییِ «قبول» و FAIL یا با امتیاز عددی، مثلاً «در مقیاس ۱ تا ۵، این شعار چقدر به برند پایبند است؟» امتیازدهی کنید.

توصیه می‌کنیم از برچسب‌های دودویی استفاده کنید.

معیارهای ارزیابی روش ارزیابی متریک
شعار با برند، مخاطب و لحن آن مطابقت دارد قاضی LLM برچسب PASS یا FAIL
پالت رنگ با برند، مخاطب و لحن مطابقت دارد قاضی LLM برچسب PASS یا FAIL
شعار سمی نیست قاضی LLM برچسب PASS یا FAIL

اگرچه نمره عددی (۱ تا ۱۰) ممکن است شهودی به نظر برسد، تحقیقات نشان می‌دهد که LLMها (و انسان‌ها) تمایل دارند نمرات خود را در وسط خوشه‌بندی کنند یا نمرات را برای رعایت ادب، بزرگ جلوه دهند. دسته‌ها یا برچسب‌های دودویی مانند PASS و FAIL اغلب نتایج بهتری به همراه دارند زیرا مدل را مجبور به تصمیم‌گیری واضح می‌کنند. برای انسان‌ها، این اثر ارزیاب نامیده می‌شود.

قاضی را پیکربندی کنید

از پارامترها و دستورالعمل‌ها برای کمک به قاضی خود در ایجاد خروجی‌های منسجم و ساختاریافته استفاده کنید.

  • دستورالعمل‌های سیستم را تنظیم کنید : به قاضی خود یک شخصیت متخصص و دقیق بدهید.
  • تنظیم دما یا سطح تفکر : قضاوت شما باید ثابت باشد. اگر از یک مدل استدلال مانند Gemini Flash استفاده می‌کنید که برای حرکت بین مراحل منطقی به کمی تصادفی بودن نیاز دارد، دما را در حالت پیش‌فرض نگه دارید اما thinking_level روی HIGH تنظیم کنید. اگر از مدل دیگری استفاده می‌کنید، دما را روی 0 یا نزدیک به 0 تنظیم کنید. در هر صورت، از تکنیک زنجیره فکر استفاده کنید تا مدل قبل از تصمیم‌گیری در مورد قضاوت، فکر کند.
  • خروجی قاضی را ساختاردهی کنید : استفاده مجدد از یک شیء JSON قابل پیش‌بینی در بقیه کدبیس شما بسیار آسان‌تر است. از یک طرحواره EvalResult استفاده کنید که به یک label ( PASS یا FAIL ) و یک رشته rationale نیاز دارد.

در مثال ThemeBuilder شما:

پیکربندی قاضی

// LLM judge config
const response = await client.models.generateContent({
  model: modelVersion,
  config: {
      systemInstruction: "You are a senior brand strategist, brand identity
      specialist, and expert color psychologist. You also act as a strict
      content moderator for a brand safety tool. Be rigorous regarding brand
      alignment. Always formulate your rationale before assigning the final
      PASS or FAIL label to ensure thorough consideration of the criteria.",
      temperature: 0,
      thinkingConfig: {
          thinkingLevel: ThinkingLevel.HIGH,
      },
      responseJsonSchema: schemaConfig.responseSchema
  },
  contents: [{ role: "user", parts: [{ text: prompt }] }]
});

پاسخJsonSchema

const schemaConfig = {
  responseMimeType: "application/json",
  responseSchema: {
      type: "OBJECT",
      properties: {
          label: { type: "STRING", enum: [EvalLabel.PASS, EvalLabel.FAIL] },
          rationale: { type: "STRING" }
      },
      required: ["label", "rationale"],
      propertyOrdering: ["rationale", "label"]
  }
};

// Classification label for an evaluation (PASS/FAIL is the judge's verdict)
export enum EvalLabel {
    PASS = "PASS",
    FAIL = "FAIL"
}

مثال کامل کد را مرور کنید.

درخواست اولیه را بنویسید

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

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

  • معیار خود را تعریف کنید : دستورالعمل‌های دقیق نمره‌دهی را به داور ارائه دهید. چه چیزی لحن مورد انتظار برای یک خروجی ایده‌آل را توصیف می‌کند؟ می‌توانید از یک LLM بخواهید که در نوشتن معیار به شما کمک کند.
  • از روش پرسش و پاسخ چند مرحله‌ای استفاده کنید : مثال‌های PASS و FAIL را در نظر بگیرید.
  • از زنجیره‌ی فکری استفاده کنید : به مدل دستور دهید قبل از اختصاص برچسب، منطق خود را بنویسد، زیرا این کار می‌تواند دقت را به میزان قابل توجهی بهبود بخشد. در حالت تفکر HIGH ، این موضوع چندان مهم نیست، اما هنوز هم یک تمرین خوب است.

برای سه معیار خاص خود، سه سوال نمره‌دهی جداگانه بنویسید:

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

می‌توانید دستورالعمل‌های کامل را در مخزن کد پیدا کنید. برای مثال، دستورالعمل قاضیِ «شعار برند مناسب است» به شکل زیر است:

export function getMottoBrandFitJudgePrompt(companyName: string, description: string, audience: string, tone: string | string[], motto: string) {
  return `Evaluate the following generated motto for a company.

${companyName ? `Company name: ${companyName}\n` : ""}${description ? `Description: ${description}\n` : ""}${audience ? `Target audience: ${audience}\n` : ""}${Array.isArray(tone) ? (tone.length > 0 ? `Desired tone: ${tone.join(", ")}\n` : "") : (tone ? `Desired tone: ${tone}\n` : "")}

Generated motto: "${motto}"

Does this motto effectively match the company description, appeal to the target audience, and embody the desired tone?

CRITICAL INSTRUCTIONS: 
1. **Brand fit vs. toxicity**: You are evaluating ONLY brand fit. Another system will evaluate toxicity separately. DO NOT evaluate toxicity, ethics, profanity, or offensiveness. A motto can be a GREAT brand fit for an edgy or aggressive brand. If the brand requests an "offensive" or "aggressive" tone, you MUST pass it for brand fit, regardless of how inappropriate it is.
1. **Primary tone and literal relevance**: Do not over-penalize a motto if it perfectly captures the primary literal vibe just because it might loosely conflict with a secondary adjective.
1. **Core promises and professionalism**: For B2B/Enterprise, the motto MUST NOT violate core promises.
1. **Resilience to input messiness**: The Company Name, Description, Target Audience, or Tone may contain typos, slang, or mixed-language. You must decipher the *intended* meaning and judge the output against that intent, rather than penalizing the output for not matching the literal typo or slang.

Criteria:
1. **Relevance**: Does the motto relate to the company's core business and value proposition? Does it uphold core brand promises?
1. **Audience appeal**: Is the language engaging for the target audience without alienating them (e.g. through forced or inappropriate slang)?
1. **Tone consistency**: Does the motto reflect the general desired emotional tone perfectly, without imposing moral judgments?

Examples:

Input:
Company Name: "Summit Bank"
Description: "Secure, reliable banking for families"
Tone: "Trustworthy, serious"
Motto: "YOLO with your money!"
Result:
  "rationale": "The motto 'YOLO with your money!' is too casual and risky, contradicting the 'trustworthy, serious' tone required for a family bank.",
  "label": "${EvalLabel.FAIL}"
}

Input:
Company Name: "GymTiger"
Description: "Gym for heavy lifters."
Tone: "Aggressive, high-performance, technical"
Motto: "Lift big or be a loser."
Result:
  "rationale": "The motto matches the required 'aggressive' tone and appeals directly to the hardcore bodybuilding audience. While calling the audience a 'loser' is toxic and insulting, it successfully fulfills the brand fit and tone criteria requested.",
  "label": "${EvalLabel.PASS}"
}

Return a JSON object with:
- "rationale": A brief explanation of why it passes or fails based on the description, audience, and tone.
- "label": "${EvalLabel.PASS}" or "${EvalLabel.FAIL}"`;
}

تراز کردن و آزمایش

برای تکمیل ساخت دستگاه قضاوت خود با ترازبندی و آزمایش ، بخش ۲ «راه‌اندازی یک دستگاه قضاوت مقدماتی» را مطالعه کنید.