مدل ذهنی شما برای آزمایش هوش مصنوعی

آنچه می‌ماند، آنچه می‌رود: نگاشت دانش تست وب شما به دنیای جدید LLMها

مثال کاربردی

ThemeBuilder برنامه نمونه شما در طول این مجموعه است. ThemeBuilder یک شیء JSON حاوی یک شعار تولید شده توسط LLM و یک پالت رنگ خروجی می‌دهد.

  • شعار و پالت باید با نام تجاری، توضیحات، مخاطب و لحن ورودی مطابقت داشته باشد.
  • شعار نباید سمی باشد و باید کوتاه باشد (زیر ۶ کلمه).
  • کنتراست پالت رنگ باید مطابق با دستورالعمل‌های حداقلی WCAG، با نسبت کنتراست ۴.۵:۱ قابل دسترسی باشد.
ورودی‌ها و خروجی‌های ThemeBuilder
در ThemeBuilder، کاربر نام و توضیحات شرکت، مخاطب هدف و لحن و حال و هوای آن را وارد می‌کند. بخش frontend این موارد را به سرور شما ارسال می‌کند. سرور شما از یک LLM برای تولید شعار و پالت رنگی متناسب با برند استفاده می‌کند.

ارزیابی‌های عینی و ذهنی

چگونه تست می‌کنید که ThemeBuilder طبق انتظار کار می‌کند؟

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

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

برای مثال:

// Example rule-based eval: data format
function evaluateFormat(appOutput) {
  // Check if JSON is valid, colors are hex, no empty strings, motto is 6 words or fewer
  // Use deterministic tools like zod for schema validation
  return "PASS"; // or "FAIL"
}

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

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

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

[داوران LLM] سریع، آسان برای استفاده و نسبتاً ارزان هستند [...] این روش به یکی از رایج‌ترین، اگر نگوییم رایج‌ترین، روش‌های ارزیابی مدل‌های هوش مصنوعی در تولید تبدیل شده است.

—مهندسی هوش مصنوعی، چیپ هوین

برای مثال:

// Example LLM-as-a-judge eval for a subjective quality like brand fit
async function evalBrandFit(userInput, appOutput) {
  const brandPrompt = `You are an expert brand strategist. Evaluate the
  following generated motto for the company whose target audience is
  ${userInput.audience}, and who describes itself as
  ${userInput.companyDescription}: ${appOutput.motto}`
  // Call the LLM judge
  const evalResult = evalWithLLM(brandPrompt);
  // Return the consolidated results
  return {
    mottoBrandFit: evalResult,
  };
}

// Helper that communicates with the LLM API
async function evalWithLLM(prompt) {
  // ... Call LLM with the prompt ...
  // ... Parse the resulting judgement ("PASS" or "FAIL") + rationale
  return {
    status: "PASS",
    rationale: "This motto perfectly captures the brand and tone, because..."
  };
}

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

روبریک مجموعه‌ای ساختاریافته از معیارها یا دستورالعمل‌های امتیازدهی است که یک داور (انسان یا هوش مصنوعی) برای ارزیابی یک خروجی از آن استفاده می‌کند. روبریک یک چارچوب منسجم برای ارزیابی ویژگی‌های ذهنی در هر ارزیابی فراهم می‌کند.

انواع دیگر ارزیابی‌ها

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

مبتنی بر مرجع

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

جفتی

یک داور ممکن است به دو نسخه مختلف، حتی زمانی که یکی از دیگری بهتر است، نمره PASS بدهد. ارزیابی دو به دو با ارائه دو خروجی (A و B) به داور برای ورودی یکسان و دستور دادن به داور برای انتخاب برنده، این مشکل را حل می‌کند.

برای مثال، تصور کنید که در حال ارزیابی شعار یک کافه دوستانه هستید:

Input: "Friendly cafe"

Pointwise evaluation:
Output A: "Come get coffee." // PASS
Output B: "Your morning smile in a cup." // PASS
2 PASS. Unconclusive!

Pairwise evaluation:
Output B wins. It captures the "friendly" tone more effectively than the generic Output A.

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

تست وب استاندارد در مقابل ارزیابی‌های هوش مصنوعی

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

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

  • انجام تست رگرسیون : وقتی اعلان یا مدل خود را تغییر می‌دهید، آیا برنامه از کار می‌افتد؟ آیا پالت‌های رنگی از کار افتاده یا شعارهای سمی دریافت می‌کنید؟ برخلاف یک برنامه وب که در آن از کار افتادن به معنای عملکرد نرم‌افزار است، در اینجا بررسی می‌کنید که آیا خروجی LLM با کیفیت بالا و ایمن است یا خیر. این شامل ذهنیت می‌شود.
  • اپلیکیشن خود را بهینه کنید : آیا اپلیکیشن شما در حال بهتر شدن است؟ آیا معیارهای مورد نظر خود را بهبود می‌بخشید، به عنوان مثال آیا شعارهای بیشتری در مورد برند دریافت می‌کنید بدون اینکه میزان سمیت آن افزایش یابد؟
  • مدل مناسب را انتخاب کنید : آیا مدل بهتری برای مورد استفاده شما وجود دارد؟ قبل از هوش مصنوعی، شما یک بار پشته وب خود را انتخاب می‌کنید. با هوش مصنوعی، باید مرتباً مدل‌ها را محک بزنید تا فرصت‌هایی را برای تغییر به یک مدل بهتر (و احتمالاً ارزان‌تر) شناسایی کنید.

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

چهار لایه تست وجود دارد: تست‌های واحد، تست‌های واحد توسعه‌یافته، تست‌های رگرسیون و ادغام و تست‌های انسانی.

یک کدبیس سالم باید چندین لایه تست داشته باشد: تست‌های واحد، تست‌های رگرسیون و ادغام و تست‌های سرتاسری. ارزیابی‌های شما نیز باید لایه‌بندی شده باشند.

  • از ارزیابی‌های مبتنی بر قانون همراه با ارزیابی‌های LLM-as-a-judge برای خودکارسازی کامل تست‌ها برای برنامه هوش مصنوعی خود استفاده کنید. به این ترتیب، می‌توانید مشکلات مربوط به توسعه روزانه و CI/CD را شناسایی کرده و آزمایش کنید که آیا نسخه‌های آزمایشی شما مطابق با استاندارد کیفیت شما هستند یا خیر.
  • برای تأیید کیفیت در مقیاس بزرگ، تست‌های ادغام و رگرسیون را اجرا کنید.
  • ارزیابی‌های دستی انسانی را به عنوان یک آزمون پذیرش اجرا کنید.

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

ارزیابی‌های خود را مدام در حال تکامل نگه دارید

ارزیابی‌ها باید در کنار برنامه شما رشد کنند. با هوشمندتر شدن مدل‌هایتان، ارزیابی‌های قدیمی خود را به‌روزرسانی کنید.

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

ارزیابی‌های شما چه چیزی را اندازه‌گیری می‌کنند؟

قبل از طراحی توابع ارزیابی، باید نحوه ارزیابی خروجی را بدانید. چند اصطلاح وجود دارد که باید بدانید.

معیارها ، قوانین و ابعادی هستند که باید آزمایش شوند. برای مثال، هماهنگی با برند، سمیت و دسترسی‌پذیری.

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

می‌توان یک معیار یکسان را با انواع مختلف معیارها سنجید. برای مثال، برای هم‌ترازی برند:

  • «آیا این شعار با برند همخوانی دارد؟» معیار، PASS یا FAIL است.
  • «در مقیاس ۱ تا ۵، شعار چقدر با برند همسو است؟» این معیار یک عدد صحیح بین یک تا پنج است.

ارزیاب، کد یا مدلی است که معیار را امتیازدهی می‌کند. ارزیاب‌ها معیارها را تعیین می‌کنند.