نکات کلی برای طراحی پرامپتها
اینجا چند تا نکته هست که باید موقع طراحی پرامپتها در نظر داشته باشین:
ساده شروع کن
وقتی شروع به طراحی پرامپتها میکنین، باید بدونین که این یه فرآیند تکراریه که نیاز به آزمایشهای زیادی داره تا به نتایج بهینه برسین. استفاده از پلتفرمهای سادهای مثل Playground از OpenAI یا Cohere یه نقطه شروع خوبه.
میتونین با پرامپتهای ساده شروع کنین و برای رسیدن به نتایج بهتر، عناصر و اطلاعات بیشتری اضافه کنین. تکرار و اصلاح پرامپتها در این مسیر خیلی مهمه. همونطور که این آموزش رو میخونین، متوجه میشین که در خیلی از مثالها، خاص بودن، ساده بودن و مختصر بودن باعث میشه به نتایج بهتری برسین.
وقتی یه کار بزرگ دارین که شامل وظیفههای مختلفه، میتونین سعی کنین کار رو به وظیفههای سادهتر تقسیم کنین و به مرور که نتایج بهتری میگیرین، این وظیفهها رو تکمیل کنین. این کار باعث میشه در ابتدای فرآیند طراحی پرامپت، پیچیدگی زیادی بهش اضافه نکنین.
دستورالعمل
میتونین با استفاده از دستورات مختلف برای مدل، پرامپتهای مؤثری برای کارهای ساده طراحی کنین. مثلاً از دستورات “بنویس”، “دستهبندی کن”، “خلاصه کن”، “ترجمه کن”، “مرتب کن” و غیره استفاده کنین.
یادتون باشه که باید خیلی آزمایش کنین تا ببینین چی بهتر جواب میده. دستورات مختلف رو با کلمات کلیدی، زمینهها و دادههای متفاوت امتحان کنین و ببینین برای مورد استفاده و کار خاص شما چی بهتر جواب میده. معمولاً هر چی زمینه مرتبطتر و مشخصتر باشه، نتیجه بهتری میگیرین. توی راهنماهای بعدی درباره اهمیت مثالها و اضافه کردن زمینه بیشتر صحبت میکنیم.
بعضیها پیشنهاد میکنن که دستورات رو اول پرامپت بذارین. یه پیشنهاد دیگه هم اینه که از یه جداکننده واضح مثل “###” استفاده کنین تا دستور و زمینه رو جدا کنین.
مثلاً:
پرامپت:
### Instruction ###
Translate the text below to Spanish:
Text: "hello!"
خروجی:
¡Hola!
دقت
درباره دستور و کاری که میخواین مدل انجام بده خیلی دقیق باشین. هر چی پرامپت توضیحیتر و جزئیتر باشه، نتایج بهتری میگیرین. این موضوع مخصوصاً وقتی که یه نتیجه خاص یا سبک تولید خاصی مد نظرتونه، خیلی مهمه. هیچ توکن یا کلمه کلیدی خاصی وجود نداره که به نتایج بهتر منجر بشه. مهم اینه که پرامپت خوب و توصیفی باشه. در واقع، ارائه مثالها توی پرامپت خیلی مؤثره تا خروجی مورد نظرت رو توی فرمت خاصی بگیری.
وقتی پرامپت طراحی میکنین، باید به طول پرامپت هم فکر کنین چون محدودیتهایی برای طول پرامپت وجود داره. فکر کنین که چقدر باید دقیق و جزئی باشین. اضافه کردن جزئیات غیرضروری لزوماً روش خوبی نیست. جزئیات باید مرتبط باشن و به کار مورد نظر کمک کنن. این موضوعی هست که باید خیلی روش آزمایش کنین. ما تشویق میکنیم که زیاد آزمایش و تکرار کنین تا پرامپتها رو برای کاربردهای خودت بهینه کنین.
برای مثال، بیاین یه پرامپت ساده برای استخراج اطلاعات خاص از یه متن امتحان کنیم.
پرامپت:
نام مکانها را از متن زیر استخراج کن.
فرمت:
مکان: <لیست_مکانها_با_ویرگول_جدا_شده>
ورودی: “اگرچه این پیشرفتها برای محققان دلگرمکننده است، اما هنوز بسیاری از موارد یک معما است. “ما اغلب یک جعبه سیاه بین مغز و اثری که در محیط پیرامونی میبینیم داریم،” میگوید هنریکو ویگا-فرناندز، نوروان ایمنیشناس در مرکز چمپالیمود در لیسبون. “اگر میخواهیم از آن در زمینه درمانی استفاده کنیم، واقعاً باید مکانیزم را درک کنیم.””
خروجی:
مکان: مرکز چمپالیمود، لیسبون
اجتناب از عدم صراحت
با توجه به نکات بالا درباره جزئیات و بهبود فرمت، ممکنه به راحتی دچار این اشتباه بشین که بخواین بیش از حد خلاق باشین و توضیحات غیر دقیق ایجاد کنین. اغلب بهتره که مشخص و بدون حاشیه باشین. هر چه مستقیمتر باشی، پیام بهتر منتقل میشه.
برای مثال، ممکنه بخوای مفهوم مهندسی پرامپت رو یاد بگیرین. ممکنه چیزی مثل این رو امتحان کنین:
“مفهوم مهندسی پرامپت را توضیح بده. توضیح کوتاه باشه، فقط چند جمله و خیلی توصیفی نباشه.”
از پرامپت بالا معلوم نیست که چند جمله باید استفاده بشه و چه سبکی باید داشته باشه. شاید با پرامپتهای بالا هم جوابهای خوبی بگیرین، اما پرامپت بهتر اونیه که خیلی مشخص، مختصر و سرراست باشه. چیزی مثل این:
“با استفاده از 2-3 جمله، مفهوم مهندسی پرامپت را برای یک دانشآموز دبیرستانی توضیح بده.”
انجام بده یا انجام نده؟
یکی دیگه از نکات رایج در طراحی پرامپتها اینه که به جای گفتن اینکه چه کاری رو انجام نده، بگی چه کاری رو انجام بده. این کار باعث میشه پرامپتها مشخصتر بشن و تمرکز روی جزئیاتی باشه که به جوابهای خوب منجر میشن.
اینجا یه مثال از چتباتی هست که فیلم پیشنهاد میده و به خاطر نحوه نوشتن دستور، دقیقاً کاری رو انجام میده که نمیخواستم انجام بده — چون تمرکزم روی نگفتن کاری بود که نباید انجام بشه.
پرامپت:
این یک ایجنت است که به مشتری فیلم پیشنهاد میدهد. نباید از علاقهمندیها بپرسد. نباید از اطلاعات شخصی بپرسد.
مشتری: لطفاً بر اساس علاقهمندیهایم یک فیلم پیشنهاد بده.
ایجنت:
خروجی:
“مطمئناً، میتوانم بر اساس علاقهمندیهایتان یک فیلم پیشنهاد بدهم. چه نوع فیلمی دوست دارید تماشا کنید؟ اکشن، کمدی، عاشقانه یا چیز دیگری؟”
یک پرامپت بهتر:
پرامپت:
“این یک ایجنت است که به مشتری فیلم پیشنهاد میدهد. این ایجنت مسئول است که یک فیلم از بین فیلمهای پرطرفدار جهانی پیشنهاد دهد. باید از پرسیدن علاقهمندیها و اطلاعات شخصی کاربران خودداری کند. اگر فیلمی برای پیشنهاد نداشت، باید پاسخ دهد ‘متاسفم، امروز فیلمی برای پیشنهاد ندارم.’.
مشتری: لطفاً بر اساس علاقهمندیهایم یک فیلم پیشنهاد بده.
ایجنت:”
خروجی:
“متاسفم، اطلاعاتی درباره علاقهمندیهای شما ندارم. اما در اینجا فهرستی از فیلمهای پرطرفدار جهانی در حال حاضر است: [لیست فیلمها]. امیدوارم چیزی پیدا کنید که دوست داشته باشید!
در بخش بعد مثالهای بیشتری از نحوه استفاده از پرامپتها برای انجام وظایف مختلف و معرفی مفاهیم کلیدی در طول راه ارائه خواهد شد.