هنر شگفت‌انگیز پرامپت

نوشته حسین بهنودی در ۲۴ فروردین ۱۴۰۳

«مهندسی پرامپت» یا «Prompt Engineering» مهارتی تقریبا جدید است که هدفش ساختن و بهتر کردن «پرامپت‌ها» است. داشتن مهارت در مهندسی پرامپت باعث می‌شود توانایی‌ها و محدودیت‌های هوش مصنوعی را بهتر بشناسیم. و از هوش مصنوعی در انواع کارها به بهترین شکل استفاده کنیم.

عناصر پرامپت

هرچه بیشتر با مثال‌ها و کاربردهای گوناگون در زمینه مهندسی پرامپت آشنا شویم، متوجه می‌شویم که هر پرامپت از ترکیب عناصر مشخصی ساخته شده است. این عناصر شامل موارد زیر می‌باشد:

  • دستور کار (Instruction): کاری که از هوش مصنوعی می‌خواهید انجام دهد.
  • زمینه (Context): اطلاعات پیرامونی که به هوش مصنوعی کمک می‌کند تا خروجی‌های بهتری تولید کند.
  • شاخصه‌های خروجی (Output Indicator): فرمت و ساختار خروجی دلخواه.
  • داده ورودی (Input Data): داده‌هایی که هوش مصنوعی برای انجام دستور کار به آن‌ها نیاز دارد.

برای اینکه با عناصر پرامپت بهتر آشنا شوید، به این نمونه‌ی ساده نگاه کنید. هدف این پرامپت، دسته‌بندی یک متن است:

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

در نمونه‌ی بالا، «دستور کار» همان جمله‌ی اول است: «متن را به مثبت، منفی یا خنثی دسته‌بندی کن». «داده ورودی» جمله‌ی «فکر می‌کنم غذا معمولی بود.» است و «شاخصه‌های خروجی» هم کلمه «احساسات» است. همان‌طور که می‌بینید در این مثال، «زمینه» وجود ندارد. لازم نیست هر پرامپت شامل همه‌ی این چهار عنصر باشد.

آشنایی بیشتر با عناصر پرامپت

دستور کار (Instruction)

دستور کار در واقع هسته‌ی اصلی درخواست شما از هوش مصنوعی است. این بخش باید برای هوش مصنوعی بیان کند که چه وظیفه‌ای را باید انجام دهد، مثلاً «متن زیر را به زبان فارسی ترجمه کن». این دستور، به عنوان نقطه‌ی شروع، عملکرد هوش مصنوعی را هدایت می‌کند.

  • جمله‌ی امری:
    با جملات امری به او بگویید که چه کاری انجام دهد و به این ترتیب پرامپت‌های کارآمدی طراحی کنید؛ فعل‌هایی مثل «بنویس»، «دسته‌بندی کن»، «خلاصه کن»، «ترجمه کن»، «مرتب کن» و غیره. یادتان باشد برای اینکه بفهمید چه فعلی بهترین نتیجه را می‌دهد، باید حسابی آزمایش کنید. دستورهای مختلف را با اطلاعات زمینه و داده‌های ورودی گوناگون امتحان کنید تا ببینید کدام‌یک برای کار و هدف شما بهتر جواب می‌دهد.
  • دقیق:
    وقتی به مدل دستور می‌دهید، خیلی «دقیق» منظورتان را بگویید. اگر پرامپت خیلی کلی باشد، ممکن است پاسخ خوبی دریافت نکنید. هرچقدر پرامپت شما جزئیات بیشتری داشته باشد، نتیجه بهتری می‌گیرید. مثلاً به جای اینکه بگویید: «این متن را کمی خلاصه کن»، بهتر است بگویید: «این متن را در حدود صد کلمه خلاصه کن».
  • صریح:
    وقتی به مدل دستور می‌دهید، بسیار «صریح» منظورتان را بگویید. اگر پرامپت مبهم باشد به احتمال زیاد پاسخ خوبی دریافت نمی‌کنید. هرچقدر پرامپت شما بی‌پرده‌تر و رک‌تر باشد، نتیجه بهتری می‌گیرید. مثلاً به جای اینکه بگویی: «می‌توانی لطفاً به من کمک کنی که این متن را خلاصه کنم؟»، بهتر است بگویی: «این متن را خلاصه کن».

زمینه (Context)

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

  • نقش (Role):
    نقش تعیین می‌کند که هوش مصنوعی از چه منظری به موضوع نگاه کرده و وظایف خود را انجام دهد. با توصیف دقیق‌تر نقش، دیدگاه هوش مصنوعی به انتظارات شما نزدیک‌تر شده و در نتیجه، پاسخ‌های مطلوب‌تری ارائه خواهد داد. برخی از مواردی که با تعیین آن‌ها می‌توانید نقش هوش مصنوعی را مشخص کنید، اینجا آورده شده‌اند:

    • شغل (Job): شما یک معلم فیزیک هستید.
    • دانش (Knowledge): شما یک دانشمند در زمینه‌ی تاریخ ایران باستان هستید.
    • مهارت (Skill): شما یک ویراستار حرفه‌ای هستید.
    • نگرش (Attitude): شما یک معلم دلسوز هستید که همیشه با حوصله به سوالات پاسخ می‌دهد.
  • مخاطب (Audience):
    با تعیین دقیق مخاطب، هوش مصنوعی درک بهتری از سطح دانش، نیازها و انتظارات آن‌ها پیدا می‌کند. این امر منجر به تولید پاسخ‌هایی می‌شود که از نظر سطح پیچیدگی و جزئیات، برای مخاطب مناسب‌تر هستند. در نتیجه، می‌توانید اطمینان حاصل کنید که اطلاعات ارائه شده به بهترین شکل ممکن به دست افراد مورد نظر می‌رسد.

    • موقعیت (Position): مخاطبان مادران دانش‌آموزان دبیرستان هستند.
    • دانش (Knowledge): مخاطبان کارشناسان حوزه‌ی هوش مصنوعی هستند.
    • مهارت (Skill): مخاطبان گرافیست حرفه‌ای هستند.
    • نگرش (Attitude): مخاطبان علاقه‌ی زیادی به جنبه‌های تخصصی موضوع دارند.
    • سن (Age): مخاطبان دانش‌آموزان مقطع دبیرستان هستند.
    • فرهنگ (Culture): مخاطبان زمینه‌ی فرهنگی ایرانی دارند.
    • نیازهای خاص (Specific Needs): مخاطبان دارای اختلال اضطرابی هستند.
  • هدف (Goal):
    هدف تعیین می‌کند دقیقاً چه انتظاری از هوش مصنوعی می‌رود و از سردرگمی یا ارائه‌ی پاسخ‌های نامربوط جلوگیری می‌کند. به عبارت دیگر، تعیین هدف مانند دادن یک نقشه راه به هوش مصنوعی است که به آن کمک می‌کند تا تلاش خود را در مسیر درست متمرکز کند و در نهایت، پاسخ‌های متناسب‌تری با نیازهای شما ارائه دهد.

    • اطلاع‌رسانی (Inform): ارائه‌ی گزارش دقیق آمار فروش ماهانه
    • آموزش (Educate): آموزش نحوه‌ی نصب نرم‌افزار جدید
    • متقاعدسازی (Persuade): متقاعد کردن مخاطبان به خرید محصول جدید
    • گفتگو (Discuss): بحث و گفتگو با مخاطبان درباره‌ی اراده‌ی آزاد
    • سرگرمی (Entertain): نوشتن داستانی مهیج و پر از ماجراجویی
    • انگیزش (Motivate): برانگیختن شور و اشتیاق در شنوندگان
  • مثال (Example):
    در بخش «مثال‌» سعی کنید روشن‌ترین و مرتبط‌ترین نمونه‌ها را ارائه دهید تا هوش مصنوعی بتواند به طور دقیق درک کند که شما به دنبال چه نوع پاسخی هستید. هرچه مثال‌های شما گویاتر باشند، احتمال دریافت پاسخ مطابق با انتظارات شما بیشتر خواهد بود.

    • پنج شعار جذاب برای کارگاه آموزشی پیشنهاد بده مثل «دانش، کلید موفقیت»

شاخصه‌های خروجی (Output Indicator)

شاخصه‌های خروجی به شما امکان می‌دهد تا فرمت و ساختار خروجی را مشخص کنید. این بخش به هوش مصنوعی می‌گوید که پاسخ را به چه شکلی ارائه دهد؛ مثلاً «خروجی را در قالب یک جدول ارائه بده».

  • فرمت (Format):
    در بخش «فرمت» باید تمام جزئیاتی را که برای نحوه‌ی نمایش پاسخ هوش مصنوعی مهم هستند، مشخص کنید. با مشخص کردن دقیق فرمت، شما به هوش مصنوعی می‌گویید که پاسخ خود را چگونه ارائه کند، از چه قالبی (مانند لیست‌ها، جدول، کد، یا متن ساده) استفاده کند و چه سبک نوشتاری را به کار ببرد.

    • زبان (Language): پاسخ را به زبان فارسی روان بنویسید.
    • سبک (Style): پاسخ را به سبک رسمی بنویسید. (شیوه‌ی کلی نگارش مثل: رسمی، محاوره‌ای، علمی، تحلیلی، روایی یا غیره)
    • لحن (Tone): پاسخ را با لحن محترمانه بنویسید. (احساس یا نگرش نویسنده مثل: محترمانه، انگیزشی، حزن‌آلود، طنزآمیز، همدلانه یا غیره)
    • طول خروجی (Output Length): پاسخ باید در حدود سه پاراگراف و حداکثر ۲۵۰ کلمه باشد.
    • سطح (Level): پاسخ باید در سطح مفهومی ارائه شود و از ارائه جزئیات فنی زیاد خودداری شود. (کلی، جزئی، مفهومی، عملی)
  • ساختار (Structure):
    در بخش «ساختار» باید چیدمان منطقی و سازماندهی محتوای خروجی را مشخص کنید. این به هوش مصنوعی می‌گوید که اطلاعات چگونه باید بخش‌بندی شوند و نحوه‌ی ارائه‌ی آن‌ها چگونه باشد و هر بخش شامل چه نوع داده‌ای است.

    • عنوان: [عنوان (Title) متن]
    • نویسنده: [نام نویسنده (Author)]
    • بیوگرافی نویسنده: [پیشینه‌ی نویسنده (Author’s Biography) متن]
    • حوزه‌ی مطالعاتی: [حداکثر سه مورد از اصلی‌ترین حوزه‌های مطالعاتی (Field of Study) متن (مانند: فلسفه، روانشناسی، ادبیات و غیره)]
    • اصطلاحات: [اصطلاحات کلیدی (Terminology) و معادل فارسی آن در قالب بولت پوینت]

داده ورودی (Input Data)

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

  • متن: «متن برای خلاصه کردن یا ترجمه کردن ارائه دهید.»
  • داده‌های عددی: «جدول آمار فروش ماهانه‌ی شرکت را ارائه دهید.»
  • کد برنامه‌نویسی: «کد پایتون را برای اشکال‌زدایی یا بهینه‌سازی ارائه دهید.»
  • تصویر: «تصویر مورد نظرتان را برای تحلیل و توصیف ویژگی‌های آن ارائه دهید.»
  • کلیدواژه‌ها: «واژه‌هایی را که می‌خواهید در تولید خروجی به کار روند.»

نکات پایانی

ساده شروع کنید

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

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

ساختاریافته بنویسید

جداکننده‌ها (مثل ---) با تفکیک بخش‌های مختلف یک پرامپت، به هوش مصنوعی کمک می‌کنند تا ساختار آن را بهتر درک کند. استفاده از این جداکننده‌ها، به‌خصوص در پرامپت‌های پیچیده که شامل چندین دستور کار، زمینه، یا فرمت خروجی هستند، باعث می‌شود که هر بخش به روشنی از بخش‌های دیگر جدا شوند. این کار ابهام را کاهش داده و به هوش مصنوعی کمک می‌کند تا دقیقاً بداند که هر قسمت از اطلاعات چه نقشی دارد؛ در نتیجه، خروجی‌های تولید شده رضایت‌بخش‌تر خواهند بود. به طور خلاصه، جداکننده‌ها به هوش مصنوعی کمک می‌کنند تا به جای اینکه پرامپت را به عنوان یک متن یکپارچه ببیند، آن را به عنوان مجموعه‌ای از اجزای سازمان‌یافته پردازش کند.

معادل انگلیسی

نوشتن معادل انگلیسی کلمات کلیدی در پرامپت‌ها، مثل (Prompt Engineering)، به هوش مصنوعی کمک می‌کند تا منظور شما را بهتر درک کنند. چون این مدل‌ها اغلب با حجم زیادی از داده‌های انگلیسی آموزش دیده‌اند، ممکن است برخی کلمات فارسی، به خصوص اصطلاحات تخصصی یا کلماتی که معادل‌های مختلفی دارند، برایشان مبهم باشد. با قرار دادن معادل انگلیسی در کنار کلمه فارسی، شما ابهام را از بین می‌برید و به هوش مصنوعی نشان می‌دهید که دقیقاً به دنبال چه چیزی هستید. این کار باعث می‌شود هوش مصنوعی پاسخ‌های دقیق‌تر، مرتبط‌تر و با کیفیت‌تری تولید کند و شما هم به نتیجه دلخواهتان نزدیک‌تر شوید.