مهندسی پرامپت برای دادههای مصنوعی (Synthetic Data)
استفاده از LLMها برای ایجاد دادههای مصنوعی یک استراتژی محبوب برای تیمهای QA است. شما میتوانید صدها رکورد پیچیده را در عرض چند ثانیه تولید کنید.
اما پرامپتهای عمومی منجر به یک تله میشوند. اگر از یک LLM بخواهید «۵۰ کاربر تست تولید کن»، دادههای قابل پیشبینی و تکراری به شما میدهد. این امر باعث ایجاد حس کاذب از پوشش تست میشود. شما رکوردهای زیادی دریافت میکنید که فقط «مسیر خوشبینانه» (happy path) را تست میکنند، در حالی که موارد مرزی (edge cases) حیاتی و منطق تجاری را نادیده میگیرند.
برای رفع این مشکل، باید از یک درخواستکننده به یک هماهنگکننده (orchestrator) تبدیل شوید. شما باید اصول تست را مستقیماً در مهندسی پرامپت خود اعمال کنید.
از این سه الگو برای بهبود کیفیت دادههای خود استفاده کنید:
۱. تقسیمبندی معادل (Equivalence Partitioning) و تحلیل مقدار مرزی (Boundary Value Analysis)
به جای درخواست مستقیم داده، LLM را مجبور کنید ابتدا کلاسهای تست را ترسیم کند. از پرامپتنویسی زنجیره تفکر (Chain-of-Thought) استفاده کنید.
- نقش خود را به عنوان یک مهندس ارشد QA تعریف کنید.
- قوانین تجاری مشخصی ارائه دهید (مثلاً محدودیتهای کوپن یا حداقل مبلغ خرید).
- به LLM دستور دهید تمام کلاسهای معادل معتبر و نامعتبر را در یک جدول لیست کند.
- برای هر سناریوی شناساییشده، دقیقاً یک JSON payload درخواست کنید.
این کار تضمین میکند که نقاط انتقال دقیق، مانند ۹۹.۹۹ دلار در مقابل ۱۰۰.۰۰ دلار را بدون هدر دادن فضا برای رکوردهای تکراری، تست میکنید.
۲. تست انتقال حالت (State Transition Testing)
برای سیستمهایی مانند جریانهای پرداخت یا مدیریت سفارش، دادهها باید مراحل مختلف یک چرخه حیات را منعکس کنند.
- فهرستی از تمام حالتهای ممکن را ارائه دهید (مثلاً Created، Paid، Shipped، Delivered).
- از LLM بخواهید یک فایل CSV شامل ماتریس انتقال حالت (State Transition Matrix) تولید کند.
- سه نوع جریان را درخواست کنید: خطی (معتبر)، استثنا (انحرافات) و نقض (انتقالهای نامعتبر).
- قانونی تعیین کنید که برای هر ترکیب حالت منحصربهفرد، تنها یک ردیف تولید شود.
این کار از ایجاد رکوردهای تکراری جلوگیری کرده و باعث ایجاد موارد تست منفی (negative test cases) میشود.
۳. کنترل واریانس و پرامپتنویسی منفی (Negative Prompting)
LLMها اغلب دادههای همگن تولید میکنند، مثلاً استفاده از مناطق یا گروههای سنی یکسان. از پرامپتنویسی منفی برای جلوگیری از این اتفاق استفاده کنید.
- الزامات صریحی برای توزیع دادهها تعیین کنید (مثلاً بازههای سنی خاص یا مناطق جغرافیایی مشخص).
- یک بخش «ممنوعیتها» (PROHIBITIONS) اضافه کنید.
- نامهای عمومی مانند "John Doe" را صراحتاً ممنوع کنید.
- تکرار ترکیبهای یکسان از متغیرها را ممنوع کنید.
- شمارههای شناسایی (ID) متوالی یا یکسان را ممنوع کنید.
این کار سوگیری را از بین میبرد و تضمین میکند که بکاند (backend) شما دادههای متنوع و واقعگرایانه را مدیریت میکند.
سرعت هوش مصنوعی تنها زمانی ارزشآفرین است که دادههای شما هدفمند باشند. نقش شما به عنوان یک متخصص QA، کدنویسی محدودیتهایی است که بر این مدلهای مولد حاکم هستند.
انجمن یادگیری اختیاری: https://t.me/GyaanSetuAi