सिंथेटिक डेटा के लिए प्रॉम्प्ट इंजीनियरिंग
QA टीमों के लिए सिंथेटिक डेटा बनाने के लिए LLMs का उपयोग करना एक लोकप्रिय रणनीति है। आप कुछ ही सेकंड में सैकड़ों जटिल रिकॉर्ड जेनरेट कर सकते हैं।
लेकिन सामान्य (generic) प्रॉम्प्ट्स एक जाल की तरह होते हैं। यदि आप किसी LLM से "50 टेस्ट यूजर्स जेनरेट करें" कहते हैं, तो यह आपको अनुमानित और दोहराव वाला डेटा देता है। इससे कवरेज का एक गलत अहसास होता है। आपको ऐसे कई रिकॉर्ड मिलते हैं जो केवल "हैप्पी पाथ" (happy path) का परीक्षण करते हैं, जबकि महत्वपूर्ण एज केस (edge cases) और बिजनेस लॉजिक छूट जाते हैं।
इसे ठीक करने के लिए, आपको केवल एक अनुरोध करने वाले (requester) के बजाय एक ऑर्केस्ट्रेटर (orchestrator) बनना होगा। आपको अपने प्रॉम्प्ट इंजीनियरिंग में सीधे टेस्टिंग सिद्धांतों को लागू करने की आवश्यकता है।
अपने डेटा की गुणवत्ता सुधारने के लिए इन तीन पैटर्न्स का उपयोग करें:
- इक्विवेलेंस पार्टीशनिंग (Equivalence Partitioning) और बाउंड्री वैल्यू एनालिसिस (Boundary Value Analysis) डेटा मांगने के बजाय, LLM को पहले टेस्ट क्लासेस को मैप करने के लिए मजबूर करें। Chain-of-Thought प्रॉम्प्टिंग का उपयोग करें।
- अपनी भूमिका को एक सीनियर QA इंजीनियर के रूप में परिभाषित करें।
- विशिष्ट बिजनेस नियम प्रदान करें (जैसे, कूपन सीमाएं या न्यूनतम खर्च)।
- LLM को एक टेबल में सभी वैध (valid) और अवैध (invalid) इक्विवेलेंस क्लासेस को सूचीबद्ध करने का निर्देश दें।
- प्रत्येक पहचाने गए परिदृश्य (scenario) के लिए ठीक एक JSON पेलोड की मांग करें।
यह सुनिश्चित करता है कि आप अनावश्यक रिकॉर्ड्स पर जगह बर्बाद किए बिना, $99.99 बनाम $100.00 जैसे सटीक ट्रांजिशन पॉइंट्स का परीक्षण करें।
- स्टेट ट्रांजिशन टेस्टिंग (State Transition Testing) पेमेंट फ्लो या ऑर्डर मैनेजमेंट जैसे सिस्टम के लिए, डेटा को लाइफसाइकिल के विभिन्न चरणों को दर्शाना चाहिए।
- सभी संभावित स्टेट्स की एक सूची प्रदान करें (जैसे, Created, Paid, Shipped, Delivered)।
- LLM से एक स्टेट ट्रांजिशन मैट्रिक्स को कवर करने वाला CSV जेनरेट करने के लिए कहें।
- तीन प्रकार के फ्लो की मांग करें: लीनियर (Linear - वैध), एक्सेप्शन (Exception - विचलन), और वायलेशन (Violation - अवैध ट्रांजिशन)।
- प्रत्येक अद्वितीय स्टेट कॉम्बिनेशन के लिए केवल एक पंक्ति जेनरेट करने का नियम सेट करें।
यह डुप्लिकेट रिकॉर्ड्स को रोकता है और नेगेटिव टेस्ट केस बनाने के लिए मजबूर करता है।
- वेरिएंस कंट्रोल (Variance Control) और नेगेटिव प्रॉम्प्टिंग (Negative Prompting) LLMs अक्सर एक समान (homogeneous) डेटा उत्पन्न करते हैं, जैसे कि एक ही क्षेत्र या आयु समूहों का उपयोग करना। इसे रोकने के लिए नेगेटिव प्रॉम्प्टिंग का उपयोग करें।
- वितरण (distribution) के लिए स्पष्ट आवश्यकताएं निर्धारित करें (जैसे, विशिष्ट आयु सीमाएं या भौगोलिक क्षेत्र)।
- एक "PROHIBITIONS" (निषेध) सेक्शन जोड़ें।
- "John Doe" जैसे सामान्य नामों को स्पष्ट रूप से वर्जित करें।
- वेरिएबल्स के एक ही कॉम्बिनेशन को दोहराने से रोकें।
- क्रमिक (sequential) या समान आईडी नंबरों को वर्जित करें।
यह पूर्वाग्रह (bias) को समाप्त करता है और सुनिश्चित करता है कि आपका बैकएंड विविध और वास्तविक डेटा को संभाल सके।
AI की गति तभी मूल्य प्रदान करती है जब आपका डेटा उद्देश्यपूर्ण हो। एक QA पेशेवर के रूप में आपकी भूमिका उन बाधाओं (constraints) को कोड करना है जो इन जनरेटिव मॉडल्स को नियंत्रित करती हैं।
वैकल्पिक लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi