আপনার মূল্যায়ন পাইপলাইন তৈরি করুন

আপনার এআই টেস্টিং পাইপলাইন তৈরির জন্য প্রায়োগিক প্রকৌশল টিপস।

আপনি আপনার রুব্রিক ডিজাইন করেছেন, নিয়ম-ভিত্তিক মূল্যায়ন লিখেছেন এবং আপনার জাজ মডেল সাজিয়েছেন। এখন, এই সবকিছুকে একত্রিত করে একটি স্বয়ংক্রিয়, নিরবচ্ছিন্ন টেস্টিং পাইপলাইন তৈরি করার সময় এসেছে।

প্রতিটি প্রকল্পই ভিন্ন। এই মডিউলটিতে আপনার মূল্যায়ন প্রক্রিয়া গড়ে তোলার জন্য একটি কার্যকর ও স্তরভিত্তিক পদ্ধতির রূপরেখা দেওয়া হয়েছে।

আপনার মূল্যায়ন পাইপলাইন তৈরি করতে নিম্নলিখিত জিনিসগুলোর প্রয়োজন হবে:

  • আপনার মূল্যায়নকারীদের জন্য একজন সমন্বয়কারী
  • একাধিক এপিআই কল পরিচালনা এবং সম্ভাব্য ব্যর্থতা মোকাবেলার একটি কৌশল
  • একটি প্রমিত আউটপুট বিন্যাস
  • একটি রিপোর্টিং ইন্টারফেস

এপিআই কলগুলো সমন্বয় করুন

অর্কেস্ট্রেটরের নিয়ম-ভিত্তিক এবং এলএলএম-ভিত্তিক মূল্যায়ন থাকা উচিত।

আপনার নিয়ম-ভিত্তিক এবং এলএলএম বিচারক মূল্যায়নকারীদের সমন্বয় করার জন্য একটি প্রধান ফাংশন তৈরি করুন। উদাহরণ কোডে evalAll() পর্যালোচনা করুন।

আপনার LLM জাজ কনফিগারেশন (সিস্টেম নির্দেশাবলী, স্ট্রাকচার্ড আউটপুট লজিক এবং রিট্রাই) একটি একক ইউটিলিটি ফাংশনে কেন্দ্রীভূত করুন, যা আপনি আপনার ইভ্যালুয়েটর জুড়ে পুনরায় ব্যবহার করতে পারবেন। উদাহরণ কোডে evalWithLLM() পর্যালোচনা করুন।

মডেল এপিআই ওভারলোড এবং ব্যর্থতা পরিচালনা করুন

মডেল এপিআইগুলো মাঝে মাঝে ওভারলোড হয় বা টাইম আউট হয়ে যায়। আপনার এপিআই কল ব্যর্থ হলে, স্বয়ংক্রিয়ভাবে পুনরায় চেষ্টার ব্যবস্থা করুন। পুনরায় চেষ্টার সুযোগ শেষ হয়ে গেলে, একটি ERROR রিপোর্ট করুন। eval FAIL রিপোর্ট করলে আপনার ফলাফল বিকৃত হয়ে যায়।

const MAX_JUDGE_LLM_API_RETRIES = 3;

async function evalWithLLM(prompt: string): Promise<EvalResult> {
  const maxRetries = MAX_JUDGE_LLM_API_RETRIES;
  let delay = 1000; // Start with 1 second

  for (let attempt = 1; attempt <= maxRetries; attempt++) {
    try {
        // ... Make Gemini API call ...
        return {
            label: result.label,  // PASS or FAIL from judge text
            rationale: result.rationale
        };
    } catch (error: any) {
      if (attempt === maxRetries) {
        // Retries exhausted
        return {
          // Report infrastructure error, NOT an evaluation fail
          label: EvalLabel.ERROR,
          rationale: `Gemini API Judge Error (Retries Exhausted): ${error.message}`
        };
      }
      // Wait to give the service time to recover
      await new Promise(resolve => setTimeout(resolve, delay));
      delay *= 2; // Exponential backoff delay doubling
    }
  }
}

মূল্যায়ন চালানোর সময়, নিম্নলিখিত বিকল্পগুলি থেকে বেছে নিন:

  • আপনার এপিআই কলগুলো সমান্তরালভাবে করুন, যাতে একটি ইভ্যালুয়েশনের টাইমআউটের কারণে অন্যগুলো ক্র্যাশ না করে। আপনার ব্যবহারের ক্ষেত্র এবং জাজ মডেলের ওপর নির্ভর করে, এটি হ্যালুসিনেশন কমাতে পারে, কারণ জাজ তখন একটি নির্দিষ্ট কাজের ওপর মনোযোগ দেয়।
  • একটিমাত্র, ব্যাচড কল করুন। এটি একটি একক ব্যর্থতার কারণ তৈরি করে, উদাহরণস্বরূপ যদি মডেলটি তার টোকেন সীমা অতিক্রম করে।

একাধিক পুনরাবৃত্তির জন্য প্রস্তুত হন

যেহেতু এলএলএমগুলো অনির্দিষ্ট, তাই আপনার অ্যাপ্লিকেশনের আউটপুট ভিন্ন ভিন্ন হয়।

এটি নির্ভুলভাবে পরীক্ষা করতে এবং আউটপুটটি আপনার নির্ধারিত মান পূরণ করে—এই বিষয়ে আস্থা তৈরি করতে:

  1. প্রতিটি টেস্ট কেস ইনপুটের জন্য একাধিক আউটপুট (সাধারণত ৫ থেকে ১০টি) তৈরি করুন।
  2. প্রতিটি আউটপুট আলাদাভাবে মূল্যায়ন করুন।
  3. পুনরাবৃত্তিগুলো জুড়ে সামগ্রিক ফলাফল পর্যালোচনা করুন।

একটি বাস্তবসম্মত ভারসাম্য খুঁজে বের করুন: বেশি পুনরাবৃত্তি রিগ্রেশনের নিশ্চয়তা বাড়ায়, কিন্তু কম পুনরাবৃত্তি কার্য সম্পাদনকে এত দ্রুত রাখে যে তা আপনার নিরবচ্ছিন্ন টেস্টিং পাইপলাইনে নির্বিঘ্নে খাপ খেয়ে যায়।

আপনার মূল্যায়ন পাইপলাইন আউটপুট সংজ্ঞায়িত করুন

আপনার মূল্যায়ন ফলাফলে নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত করুন:

  • স্থিতিশীলতার হার , যেমন: ১০ বারের মধ্যে ৮ বার উত্তীর্ণ → ৮০% স্থিতিশীল। কোনো ফিচার কখন প্রোডাকশনের জন্য প্রস্তুত, তা পরিমাপ করতে একটি থ্রেশহোল্ড সেট করুন।
  • আপনার অ্যাপ্লিকেশন কনফিগারেশন । এর মধ্যে রয়েছে সিস্টেম নির্দেশনা, ব্যবহারকারীর প্রম্পট এবং এলএলএম (LLM) প্যারামিটার, যেমন তাপমাত্রা বা চিন্তার স্তর। ইভ্যাল স্কোর রিগ্রেশন ট্রাবলশুট করার জন্য আপনার এই তথ্য প্রয়োজন। প্রম্পটগুলো সামান্য ভিন্নতা সহ দীর্ঘ স্ট্রিং হতে পারে, তাই আপনার প্রম্পটগুলোতে একটি ভার্সন নম্বর যোগ করুন এবং ট্র্যাক রাখার জন্য সেগুলোর একটি হ্যাশ সংরক্ষণ করুন।
  • আপনার জাজ কনফিগারেশন , অথবা ভার্সন নম্বর। জাজ আপডেটের পর আপনার স্কোরে ব্যাপক তারতম্য ঘটলে এটির প্রয়োজন হবে।

ThemeBuilder-এর ইভ্যালগুলোর জন্য একটি EvalResponse JSON অবজেক্টের উদাহরণ নিচে দেওয়া হলো:

    {
      "id": "sample-001-messy",
      "judgeMetadata": {
        "modelVersion": "gemini-3-flash-preview",
        "judgeVersion": "1.0.0"
      },
      "appMetadata": {
        "model": "gemini-3-flash-preview",
        "systemInstruction": "...",
        "promptTemplate": "..."
      },
      "userInput": {
        // ... companyName, description, audience and tone
      },
      "appOutputs": {
        "output-001": {
          "motto": "Aesthetic loaves, minimal vibes.",
          "colorPalette": {
            "textColor": "#2D241E",
            "backgroundColor": "#FAF9F6",
            "primary": "#C6A68E",
            "secondary": "#E3D5CA"
          }
        }
        // ... More outputs
      },
      "expectedOutcome": "SUCCESS",
      "appGateResult": {
        "stabilityRate": 1,
        "evalResults": {
          "output-001": {
            "label": "PASS",
            "rationale": "NONE"
          }
          // "output-002": ...
          // ... More results
        }
      },
      "colorBrandFit": {
        "stabilityRate": 1,
        "evalResults": {
          "output-001": {
            "label": "PASS",
            "rationale": "The palette perfectly aligns with the brand's..."
          }
          // "output-002": ...
          // ... More results
        }
      }
      // ...
      // Per-output eval results for data format contrast, motto brand fit,
      // and motto toxicity.
    }

একটি রিপোর্টিং ইন্টারফেস বাস্তবায়ন করুন

সময়ের সাথে সাথে ফলাফলগুলো পার্স, শেয়ার, তুলনা এবং ডিবাগ করার জন্য আপনার ফলাফলগুলো একটি HTML রিপোর্ট বা একটি পরিচ্ছন্ন ওয়েব UI-তে আউটপুট করুন।

একটি প্রতিবেদন যা মূল্যায়নের মেটাডেটা এবং যুক্তিসমূহ প্রদর্শন করে।
টেস্ট পাসের হার এবং ইভ্যাল স্থিতিশীলতার থ্রেশহোল্ডের বাইরে, 'আপনার ইভ্যাল পাইপলাইন সংজ্ঞায়িত করুন' -এ সংজ্ঞায়িত মেটাডেটা এবং ব্যর্থতার ক্ষেত্রে সমস্যা সমাধানের যুক্তি প্রকাশ করুন।
একটি মূল্যায়ন নমুনা যা রঙের বৈসাদৃশ্য এবং ব্র্যান্ডের উপযুক্ততার মানদণ্ড পূরণে ব্যর্থ হয়েছে।
এখানে একটি ব্যর্থ নমুনার উদাহরণ দেওয়া হলো, যা রঙের বৈসাদৃশ্য বা ব্র্যান্ডের মাপের মানদণ্ড পূরণ করতে পারেনি।

এখন, আপনার মূল্যায়নগুলো চালান