پرامپت: تفاوت میان نسخه‌ها

از ایران پدیا
پرش به ناوبری پرش به جستجو
صفحه‌ای تازه حاوی «{{جعبه اطلاعات مفهوم | نام = پرامپت | نام اصلی = Prompt | نام‌های دیگر = دستور، ورودی، فرمان متنی، راهنمای مدل | تصویر = | اندازه تصویر = | توضیح تصویر = | حوزه = هوش مصنوعی، هوش مصنوعی مولد، مدل زبانی بزرگ|م...» ایجاد کرد
 
بدون خلاصۀ ویرایش
 
خط ۲: خط ۲:
| نام                = پرامپت
| نام                = پرامپت
| نام اصلی            = Prompt
| نام اصلی            = Prompt
| نام‌های دیگر        = دستور، ورودی، فرمان متنی، راهنمای مدل
| نام‌های دیگر        = دستور، ورودی، فرمان، دستور متنی
| تصویر              =
| تصویر              =
| اندازه تصویر        =
| اندازه تصویر        =
| توضیح تصویر        =
| توضیح تصویر        =
| حوزه                = [[هوش مصنوعی]]، [[هوش مصنوعی مولد]]، [[مدل زبانی بزرگ|مدل‌های زبانی بزرگ]]، [[پردازش زبان طبیعی]]، تعامل انسان و رایانه
| حوزه                = [[هوش مصنوعی]]، [[هوش مصنوعی مولد]]، [[پردازش زبان طبیعی]]، [[مدل زبانی بزرگ]]، تعامل انسان و رایانه
| دوره                = کاربرد گسترده از دههٔ ۲۰۲۰ هم‌زمان با گسترش عمومی هوش مصنوعی مولد
| دوره                = کاربرد رایانه‌ای از سدهٔ بیستم؛ گسترش معنای مرتبط با هوش مصنوعی مولد در دهه‌های ۲۰۱۰ و ۲۰۲۰
| خاستگاه            = علوم رایانه، پردازش زبان طبیعی، یادگیری ماشین و تعامل انسان و رایانه
| خاستگاه            = علوم رایانه، پردازش زبان طبیعی و تعامل انسان و رایانه
| تاریخ شکل‌گیری      = دارای پیشینه در سامانه‌های رایانه‌ای تعاملی؛ تحول معنایی و گسترش کاربرد در سامانه‌های هوش مصنوعی مولد در دهه‌های ۲۰۱۰ و ۲۰۲۰
| تاریخ شکل‌گیری      = فاقد تاریخ واحد؛ گسترش گسترده با ظهور مدل‌های زبانی بزرگ
| بنیان‌گذاران        = فاقد بنیان‌گذار واحد
| بنیان‌گذاران        = فاقد بنیان‌گذار واحد
| چهره‌های شاخص      = پژوهشگران [[هوش مصنوعی]]، [[یادگیری ماشین]]، پردازش زبان طبیعی و مدل‌های زبانی بزرگ
| چهره‌های شاخص      = پژوهشگران پردازش زبان طبیعی، یادگیری ماشین و مدل‌های زبانی بزرگ
| پیشگامان فکری      = پژوهشگران زبان‌شناسی رایانشی، تعامل انسان و رایانه و مدل‌های زبانی
| پیشگامان فکری      = پژوهشگران علوم رایانه، زبان‌شناسی رایانشی و تعامل انسان و رایانه
| جریان‌های مرتبط    = [[هوش مصنوعی مولد]]، [[مدل زبانی بزرگ]]، [[توکن (هوش مصنوعی)|توکن]]، مهندسی پرامپت، یادگیری درون‌زمینه‌ای، مدل‌های چندوجهی
| جریان‌های مرتبط    = [[هوش مصنوعی مولد]]، [[مدل زبانی بزرگ]]، [[توکن (هوش مصنوعی)|توکن]]، مهندسی پرامپت، یادگیری درون‌زمینه‌ای
| در واکنش به        = نیاز به انتقال هدف، دستور، زمینه، داده و محدودیت‌های کاربر به سامانه‌های هوش مصنوعی
| در واکنش به        = نیاز به انتقال دستور، هدف، زمینه و داده به سامانه‌های هوش مصنوعی
| مفاهیم کلیدی        = دستور، زمینه، ورودی، خروجی، نقش، محدودیت، نمونه، پرامپت صفرنمونه‌ای، پرامپت چندنمونه‌ای، پرامپت سیستمی، تزریق پرامپت، پنجرهٔ زمینه
| مفاهیم کلیدی        = دستور، زمینه، ورودی، خروجی، توکن، پرامپت صفرنمونه‌ای، پرامپت چندنمونه‌ای، پرامپت سیستمی، مهندسی پرامپت، تزریق پرامپت
| دیدگاه معرفت‌شناختی = پرامپت وسیله‌ای برای صورت‌بندی مسئله و فراهم‌کردن زمینه برای مدل است؛ کیفیت پاسخ علاوه بر پرامپت به مدل، داده‌های آموزشی، زمینه، ابزارها و تنظیمات سامانه وابسته است
| دیدگاه معرفت‌شناختی = پرامپت ابزاری برای صورت‌بندی مسئله و فراهم‌کردن زمینه و دستور برای مدل است و به‌تنهایی تضمین‌کنندهٔ صحت خروجی نیست
| دیدگاه اجتماعی      = تبدیل زبان طبیعی به یکی از مهم‌ترین رابط‌های تعامل انسان با سامانه‌های هوش مصنوعی مولد
| دیدگاه اجتماعی      = تبدیل زبان طبیعی به یکی از رابط‌های اصلی تعامل انسان با سامانه‌های هوش مصنوعی
| تأثیرپذیرفته از    = علوم رایانه، زبان‌شناسی رایانشی، تعامل انسان و رایانه، یادگیری ماشین و پردازش زبان طبیعی
| تأثیرپذیرفته از    = علوم رایانه، زبان‌شناسی رایانشی، تعامل انسان و رایانه، یادگیری ماشین و پردازش زبان طبیعی
| تأثیرگذار بر        = تولید محتوا، آموزش، پژوهش، برنامه‌نویسی، طراحی، تحلیل داده، جست‌وجوی اطلاعات و تعامل انسان و ماشین
| تأثیرگذار بر        = تولید محتوا، پژوهش، آموزش، برنامه‌نویسی، طراحی، تحلیل داده و سامانه‌های عامل‌محور
| منتقدان شاخص        = پژوهشگران ایمنی هوش مصنوعی، امنیت رایانه، تعامل انسان و رایانه و مطالعات اجتماعی فناوری
| منتقدان شاخص        = پژوهشگران امنیت هوش مصنوعی، اخلاق فناوری و تعامل انسان و رایانه
| آثار شاخص          = پژوهش‌های مربوط به In-Context Learning، Few-Shot Prompting، Chain-of-Thought Prompting و Prompt Engineering
| آثار شاخص          = ''Language Models are Few-Shot Learners''؛ ''Chain-of-Thought Prompting Elicits Reasoning in Large Language Models''
}}
}}


'''پرامپت''' (به انگلیسی: ''Prompt'') در [[هوش مصنوعی]] و به‌ویژه [[هوش مصنوعی مولد]] به ورودی، دستور، پرسش یا مجموعه‌ای از اطلاعات گفته می‌شود که برای هدایت رفتار یک مدل هوش مصنوعی در اختیار آن قرار می‌گیرد. پرامپت می‌تواند یک پرسش کوتاه، دستور مفصل، مجموعه‌ای از نمونه‌ها، متن، تصویر، صدا، فایل یا ترکیبی از چند نوع داده باشد.
'''پرامپت''' (به انگلیسی: ''Prompt'') در [[هوش مصنوعی]] و به‌ویژه [[هوش مصنوعی مولد]] به ورودی یا دستوری گفته می‌شود که برای هدایت مدل به سوی انجام یک وظیفه یا تولید یک پاسخ در اختیار آن قرار می‌گیرد. پرامپت در ساده‌ترین شکل می‌تواند یک پرسش یا دستور متنی باشد؛ اما در سامانه‌های جدید می‌تواند شامل متن، تصویر، صوت، فایل یا ترکیبی از چند نوع داده باشد.<ref>[https://help.openai.com/en/articles/10032626-prompt-engineering-best-practices-for-chatgpt OpenAI، «Prompt engineering best practices for ChatGPT»]</ref>


در [[مدل زبانی بزرگ|مدل‌های زبانی بزرگ]]، پرامپت بخشی از زمینه‌ای است که مدل هنگام تولید پاسخ پردازش می‌کند. متن ورودی ابتدا به واحدهایی موسوم به [[توکن (هوش مصنوعی)|توکن]] تبدیل می‌شود و مدل با توجه به این توکن‌ها، دستورهای موجود و دیگر اطلاعات زمینه، خروجی را تولید می‌کند.
پرامپت یکی از اجزای اصلی تعامل انسان با [[مدل زبانی بزرگ|مدل‌های زبانی بزرگ]] است. کاربر از طریق آن هدف، پرسش، اطلاعات زمینه‌ای، محدودیت‌ها و در صورت نیاز شکل مطلوب خروجی را برای سامانه مشخص می‌کند. در مدل‌های زبانی، متن پرامپت به واحدهایی موسوم به [[توکن (هوش مصنوعی)|توکن]] تبدیل و در چارچوب زمینهٔ مدل پردازش می‌شود.<ref>[https://developers.openai.com/api/docs/guides/prompt-engineering OpenAI، «Prompt engineering»]</ref>


در کاربرد عمومی، پرامپت ممکن است بسیار ساده باشد:
توانایی مدل‌های زبانی بزرگ در انجام وظایف بر اساس دستورها و نمونه‌های موجود در پرامپت، به توسعهٔ روش‌هایی مانند '''پرامپت صفرنمونه‌ای'''، '''پرامپت تک‌نمونه‌ای'''، '''پرامپت چندنمونه‌ای''' و '''یادگیری درون‌زمینه‌ای''' انجامیده است. پژوهش‌های مربوط به مدل GPT-3 نشان داد که مدل‌های زبانی بزرگ می‌توانند برخی وظایف را صرفاً بر اساس دستور و نمونه‌های ارائه‌شده در زمینه، بدون به‌روزرسانی پارامترهای مدل، انجام دهند.<ref>[https://proceedings.neurips.cc/paper/2020/hash/1457c0d6bfcb4967418bfb8ac142f64a-Abstract.html Brown et al.، «Language Models are Few-Shot Learners»، NeurIPS 2020]</ref>


«پایتخت فرانسه چیست؟»
== ریشه و تحول اصطلاح ==


یا ساختاری پیچیده داشته باشد:
واژهٔ ''prompt'' پیش از ظهور هوش مصنوعی مولد در رایانش به پیام، نشانه یا علامتی اطلاق می‌شد که سامانه برای دریافت فرمان یا اطلاعات از کاربر نمایش می‌داد. اصطلاح '''command prompt''' از نمونه‌های شناخته‌شدهٔ این کاربرد است.


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


در نمونهٔ دوم، پرامپت علاوه بر تعیین وظیفه، نقش، سبک، محدودیت‌ها و قالب خروجی را نیز مشخص می‌کند.
ظهور مدل‌های زبانی بزرگ در اواخر دههٔ ۲۰۱۰ و اوایل دههٔ ۲۰۲۰ اهمیت این مفهوم را افزایش داد. توانایی این مدل‌ها در انجام وظایف متفاوت بر اساس دستورهای زبان طبیعی موجب شد طراحی و بهینه‌سازی پرامپت به موضوعی مستقل در پژوهش و کاربرد هوش مصنوعی تبدیل شود.


== ریشهٔ اصطلاح ==
== سازوکار پرامپت در مدل‌های زبانی ==


واژهٔ انگلیسی ''Prompt'' پیش از ظهور هوش مصنوعی مولد نیز در علوم رایانه کاربرد داشت. در محیط‌های رایانه‌ای، «پرامپت» می‌توانست علامت یا پیامی باشد که از کاربر درخواست ورود اطلاعات یا اجرای فرمان می‌کرد.
مدل زبانی پرامپت را همانند یک برنامهٔ رایانه‌ای سنتی اجرا نمی‌کند. ورودی ابتدا به توکن‌ها تبدیل می‌شود و مدل با توجه به این توکن‌ها، زمینه و پارامترهایی که طی آموزش آموخته است، خروجی را تولید می‌کند.


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


  پرامپت
  پرامپت
خط ۵۸: خط ۴۸:
  توکن‌سازی
  توکن‌سازی
  ↓
  ↓
  تبدیل به نمایش عددی
  نمایش عددی توکن‌ها
  ↓
  ↓
  پردازش توسط مدل
  پردازش توسط مدل
  ↓
  ↓
  محاسبهٔ توزیع احتمال خروجی
  محاسبهٔ توزیع احتمال برای ادامه
  ↓
  ↓
  تولید توکن‌های پاسخ
  تولید توکن‌های خروجی
  ↓
  ↓
  پاسخ نهایی
  پاسخ
 
در مدل‌های مولد خودرگرسیو، مدل با توجه به توکن‌های موجود در زمینه، احتمال توکن‌های بعدی را محاسبه می‌کند و این فرایند به‌صورت متوالی ادامه می‌یابد.


به همین دلیل، تغییر در عبارت‌بندی، زمینه، مثال‌ها یا محدودیت‌های پرامپت می‌تواند خروجی مدل را تغییر دهد.
بنابراین تغییر پرامپت می‌تواند زمینه‌ای را که مدل بر اساس آن خروجی تولید می‌کند تغییر دهد.


== پرامپت و توکن ==
== پرامپت و توکن ==


پرامپت و [[توکن (هوش مصنوعی)|توکن]] دو مفهوم متفاوت اما مرتبط‌اند.
پرامپت و [[توکن (هوش مصنوعی)|توکن]] دو مفهوم متفاوت اما مرتبط هستند.
 
'''پرامپت''' محتوایی است که به مدل ارائه می‌شود.


'''توکن''' واحدی است که مدل برای پردازش آن محتوا به کار می‌گیرد.
'''پرامپت''' ورودی یا دستور ارائه‌شده به مدل است؛ در حالی که '''توکن''' واحدی است که مدل برای پردازش داده به کار می‌گیرد.


برای مثال، کاربر ممکن است بنویسد:
برای نمونه:


  «دربارهٔ انقلاب صنعتی توضیح بده.»
  «انقلاب صنعتی را توضیح بده.»


این جمله یک پرامپت است؛ اما مدل آن را پیش از پردازش به چند توکن تبدیل می‌کند.
یک پرامپت است.


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


پرامپت ← مجموعه‌ای از توکن‌ها ← پردازش مدل ← مجموعه‌ای از توکن‌های خروجی ← پاسخ
بنابراین می‌توان رابطه را به‌صورت زیر نشان داد:


== اجزای یک پرامپت ==
پرامپت ← توکن‌ها ← پردازش مدل ← توکن‌های خروجی ← پاسخ


پرامپت‌ها الزاماً ساختار ثابتی ندارند، اما یک پرامپت مفصل می‌تواند چند جزء داشته باشد.
== اجزای پرامپت ==


'''وظیفه''' مشخص می‌کند مدل چه کاری باید انجام دهد.
پرامپت ساختار ثابت و اجباری ندارد. یک پرسش کوتاه می‌تواند پرامپتی کامل برای یک وظیفهٔ ساده باشد. با این حال، در وظایف پیچیده‌تر چند عنصر می‌توانند در آن مشخص شوند.


برای مثال:
'''وظیفه''' بیان می‌کند مدل باید چه کاری انجام دهد:


  «این مقاله را خلاصه کن.»
  «این مقاله را خلاصه کن.»


'''زمینه''' اطلاعاتی را فراهم می‌کند که برای انجام وظیفه ضروری است.
'''زمینه''' اطلاعاتی را که برای انجام وظیفه ضروری است در اختیار مدل قرار می‌دهد.


'''محدودیت''' تعیین می‌کند مدل چه قواعدی را رعایت کند:
'''محدودیت''' شرایط پاسخ را مشخص می‌کند:


  «خلاصه از ۵۰۰ کلمه بیشتر نباشد.»
  «خلاصه بیشتر از ۵۰۰ کلمه نباشد.»


'''قالب خروجی''' شکل پاسخ را تعیین می‌کند:
'''قالب خروجی''' شکل مطلوب پاسخ را تعیین می‌کند:


  «نتیجه را در سه بخش ارائه کن.»
  «پاسخ را در قالب ویکی‌متن بنویس.»


'''نمونه''' می‌تواند الگویی از پاسخ مطلوب را نشان دهد.
'''مخاطب''' سطح توضیح را مشخص می‌کند:


'''مخاطب''' نیز می‌تواند سطح و سبک پاسخ را مشخص کند:
«این مفهوم را برای دانش‌آموز دبیرستانی توضیح بده.»


«این مفهوم را برای دانش‌آموز دبیرستانی توضیح بده.»
'''نمونه''' نیز می‌تواند شکل یا الگوی خروجی مورد انتظار را به مدل نشان دهد.


وجود همهٔ این اجزا ضروری نیست و در بسیاری از وظایف یک دستور کوتاه کافی است.
مستندات راهنمای مدل‌های زبانی بر روشن و مشخص بودن دستور و ارائهٔ زمینهٔ کافی تأکید دارند.<ref>[https://help.openai.com/en/articles/4936848-how-do-i-create-a-good-prompt-for-an-ai-model OpenAI، «How do I create a good prompt for an AI model?»]</ref>


== پرامپت ساده ==
== پرامپت ساده ==


پرامپت ساده معمولاً شامل یک پرسش یا دستور کوتاه است.
پرامپت ساده معمولاً یک درخواست کوتاه است:
 
برای مثال:


  «فتوسنتز چیست؟»
  «فتوسنتز چیست؟»
خط ۱۲۶: خط ۱۱۴:
یا:
یا:


  «این جمله را به فارسی ترجمه کن.»
  «این متن را به فارسی ترجمه کن.»


برای وظایف روشن و محدود، پرامپت ساده می‌تواند کافی باشد.
در وظایفی که هدف روشن است، چنین پرامپتی ممکن است کافی باشد.


افزایش بی‌دلیل طول پرامپت الزاماً کیفیت پاسخ را افزایش نمی‌دهد.
طولانی‌تر کردن پرامپت به خودی خود تضمین نمی‌کند که پاسخ بهتر شود. اهمیت اصلی در روشن بودن هدف و فراهم کردن اطلاعات مورد نیاز است.


== پرامپت ساختاریافته ==
== پرامپت ساختاریافته ==


در وظایف پیچیده‌تر می‌توان پرامپت را ساختاربندی کرد.
در وظایف پیچیده می‌توان اجزای پرامپت را به‌صورت ساختاریافته جدا کرد.
 
برای نمونه:
 
وظیفه: بازنویسی مقاله


برای مثال:
سبک: دانشنامه‌ای


هدف: خلاصه‌سازی مقاله
  مخاطب: خوانندهٔ عمومی
  مخاطب: خوانندهٔ عمومی
طول: ۳۰۰ کلمه
سبک: دانشنامه‌ای
الزامات: حفظ تاریخ‌ها و نام‌های اصلی
منبع: فقط متن ارائه‌شده


چنین ساختاری ابهام را کاهش می‌دهد و معیارهای خروجی را روشن‌تر می‌کند.
محدودیت: هیچ اطلاعاتی از متن اصلی حذف نشود
 
منابع: فقط منابع واقعی و قابل راستی‌آزمایی
 
قالب خروجی: ویکی‌متن مدیاویکی
 
ساختاردهی به دستور می‌تواند مرز میان هدف، داده، محدودیت و قالب پاسخ را روشن کند. در مستندات فنی مدل‌های زبانی نیز استفاده از ساختارهای واضح برای جداکردن دستورها از محتوای مرجع توصیه شده است.<ref>[https://developers.openai.com/api/docs/guides/prompt-engineering OpenAI، «Prompt engineering»]</ref>


== پرامپت صفرنمونه‌ای ==
== پرامپت صفرنمونه‌ای ==


'''پرامپت صفرنمونه‌ای''' (''Zero-Shot Prompting'') حالتی است که کاربر وظیفه‌ای را بدون ارائهٔ نمونهٔ پاسخ از مدل درخواست می‌کند.
'''پرامپت صفرنمونه‌ای''' (''Zero-Shot Prompting'') به حالتی گفته می‌شود که مدل بدون دریافت نمونهٔ حل‌شده، تنها بر اساس دستور وظیفه‌ای را انجام می‌دهد.


برای مثال:
برای مثال:
خط ۱۵۵: خط ۱۴۸:
  «جملهٔ زیر را از فارسی به انگلیسی ترجمه کن.»
  «جملهٔ زیر را از فارسی به انگلیسی ترجمه کن.»


مدل باید با استفاده از توانایی‌هایی که پیش‌تر آموخته است وظیفه را انجام دهد.
در این حالت هیچ نمونهٔ ترجمه‌ای در پرامپت وجود ندارد.


این روش برای بسیاری از وظایف ساده مناسب است.
توانایی مدل‌های زبانی بزرگ برای انجام طیفی از وظایف به صورت zero-shot یکی از موضوعات مهم پژوهش دربارهٔ این مدل‌ها بوده است.<ref>[https://proceedings.neurips.cc/paper/2020/hash/1457c0d6bfcb4967418bfb8ac142f64a-Abstract.html Brown et al.، «Language Models are Few-Shot Learners»، NeurIPS 2020]</ref>


== پرامپت تک‌نمونه‌ای ==
== پرامپت تک‌نمونه‌ای ==


در '''پرامپت تک‌نمونه‌ای''' (''One-Shot Prompting'') یک نمونه در اختیار مدل قرار می‌گیرد.
'''پرامپت تک‌نمونه‌ای''' (''One-Shot Prompting'') شامل یک نمونه از رابطه یا خروجی مورد انتظار است.


برای مثال:
برای مثال:


ایران → تهران
  فرانسه → پاریس
  فرانسه → پاریس
  ژاپن → ؟
  ژاپن → ؟


نمونه به مدل کمک می‌کند الگوی مورد انتظار را تشخیص دهد.
نمونهٔ نخست الگویی در اختیار مدل قرار می‌دهد تا پاسخ بعدی را در همان چارچوب تولید کند.


== پرامپت چندنمونه‌ای ==
== پرامپت چندنمونه‌ای ==


'''پرامپت چندنمونه‌ای''' (''Few-Shot Prompting'') شامل چند نمونه از ورودی و خروجی مطلوب است.
'''پرامپت چندنمونه‌ای''' (''Few-Shot Prompting'') شامل چند نمونه است که الگوی مورد انتظار را به مدل نشان می‌دهند.


مدل با مشاهدهٔ نمونه‌ها می‌تواند الگوی مورد نظر را در همان زمینه دنبال کند.
برای مثال:


این توانایی با مفهوم '''یادگیری درون‌زمینه‌ای''' (''In-Context Learning'') ارتباط دارد.
فرانسه → پاریس
ایتالیا → رم
آلمان → برلین
ژاپن → ؟


نمونه‌ها می‌توانند به مدل نشان دهند چه قالب، سبک یا رابطه‌ای مورد انتظار است.
پژوهش Brown و همکاران دربارهٔ GPT-3 نشان داد که افزایش مقیاس مدل‌های زبانی می‌تواند توانایی انجام برخی وظایف به شیوهٔ few-shot را افزایش دهد.<ref>[https://proceedings.neurips.cc/paper/2020/hash/1457c0d6bfcb4967418bfb8ac142f64a-Abstract.html Brown et al.، «Language Models are Few-Shot Learners»، NeurIPS 2020]</ref>


== یادگیری درون‌زمینه‌ای ==
== یادگیری درون‌زمینه‌ای ==


در یادگیری درون‌زمینه‌ای، مدل بدون آن‌که پارامترهای اصلی آن دوباره آموزش داده شوند، از اطلاعات و نمونه‌های موجود در زمینه برای انجام وظیفه استفاده می‌کند.
'''یادگیری درون‌زمینه‌ای''' (''In-Context Learning'') به توانایی مدل در استفاده از دستورها یا نمونه‌های موجود در زمینه برای انجام یک وظیفه اشاره دارد، بدون آن‌که برای همان تعامل پارامترهای اصلی مدل دوباره آموزش داده شوند.


برای مثال، می‌توان چند نمونهٔ طبقه‌بندی در پرامپت قرار داد و سپس از مدل خواست نمونهٔ جدیدی را بر همان اساس طبقه‌بندی کند.
در این روش نمونه‌ها بخشی از ورودی هستند، نه بخشی از آموزش مجدد مدل.


این ویژگی یکی از دلایل اهمیت پرامپت در مدل‌های زبانی بزرگ است.
این ویژگی یکی از عوامل اصلی افزایش اهمیت پرامپت در مدل‌های زبانی بزرگ است.


== پرامپت سیستمی ==
== پرامپت سیستمی ==


'''پرامپت سیستمی''' (''System Prompt'') مجموعه‌ای از دستورهای سطح سامانه است که توسعه‌دهنده یا طراح برنامه برای هدایت رفتار مدل تعریف می‌کند.
در سامانه‌های مبتنی بر مدل‌های زبانی ممکن است دستورها دارای سطوح مختلف باشند.


این دستورها ممکن است نقش مدل، قواعد رفتاری، محدودیت‌ها یا نحوهٔ تعامل با کاربر را تعیین کنند.
'''پرامپت سیستمی''' یا دستور سیستمی مجموعه‌ای از دستورهای سطح بالاتر است که برای تعیین رفتار کلی مدل، نقش آن، محدودیت‌ها یا قواعد تعامل استفاده می‌شود.


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


کاربر ممکن است اصلاً متن این دستورها را مشاهده نکند.
در سامانه‌های کاربردی، علاوه بر پیام کاربر ممکن است دستورهای توسعه‌دهنده، اطلاعات بازیابی‌شده و داده‌های ابزارها نیز وارد زمینه شوند.


== پرامپت کاربر ==
== پرامپت کاربر ==


'''پرامپت کاربر''' دستور یا محتوایی است که کاربر مستقیماً وارد سامانه می‌کند.
'''پرامپت کاربر''' محتوایی است که کاربر مستقیماً برای مدل ارسال می‌کند.


برای مثال:
برای مثال:
خط ۲۰۷: خط ۲۰۲:
  «یک مقالهٔ دانشنامه‌ای دربارهٔ هوش مصنوعی مولد بنویس.»
  «یک مقالهٔ دانشنامه‌ای دربارهٔ هوش مصنوعی مولد بنویس.»


این پیام در کنار سایر اطلاعات زمینه‌ای توسط سامانه پردازش می‌شود.
این دستور هدف مورد انتظار کاربر را مشخص می‌کند.


در سامانه‌های پیچیده ممکن است علاوه بر دستور کاربر، دستورهای توسعه‌دهنده، داده‌های بازیابی‌شده، ابزارها و سابقهٔ گفتگو نیز بر خروجی اثر بگذارند.
در یک سامانهٔ ساده ممکن است همین پیام بخش اصلی ورودی باشد؛ اما در سامانه‌های پیچیده‌تر پاسخ می‌تواند تحت تأثیر دستورهای سطح بالاتر، تاریخچهٔ گفتگو، منابع بازیابی‌شده و ابزارهای متصل نیز قرار گیرد.


== پرامپت چندوجهی ==
== پرامپت چندوجهی ==


با توسعهٔ مدل‌های چندوجهی، پرامپت دیگر الزاماً متن نیست.
با توسعهٔ [[هوش مصنوعی چندوجهی]]، پرامپت دیگر الزاماً فقط متن نیست.


کاربر می‌تواند تصویری را ارسال کند و بپرسد:
یک پرامپت می‌تواند شامل:


«این نمودار را توضیح بده.»
* متن؛
* تصویر؛
* صوت؛
* فایل؛
* دادهٔ ساختاریافته؛
* یا ترکیبی از این موارد


یا تصویر و متن را هم‌زمان ارائه کند:
باشد.


«این تصویر را با حفظ چهره بازسازی کن و پس‌زمینه را تغییر بده.»
برای مثال، کاربر می‌تواند تصویری را به مدل ارائه کند و بنویسد:


پرامپت چندوجهی می‌تواند شامل:
«محتوای این نمودار را توضیح بده.»


* متن؛
در این حالت تصویر و دستور متنی با یکدیگر پرامپت چندوجهی را تشکیل می‌دهند.
* تصویر؛
* صوت؛
* ویدئو؛
* فایل؛
* داده‌های ساختاریافته؛
* یا ترکیبی از آنها باشد.


== مهندسی پرامپت ==
== مهندسی پرامپت ==


'''مهندسی پرامپت''' (''Prompt Engineering'') به طراحی، آزمایش و اصلاح ورودی‌ها و دستورها برای هدایت مدل به سوی خروجی مورد نظر گفته می‌شود.
'''مهندسی پرامپت''' (''Prompt Engineering'') فرایند طراحی و بهینه‌سازی دستورها برای هدایت مدل به سوی خروجی مطلوب است. مستندات فنی OpenAI این اصطلاح را فرایند نوشتن دستورهای مؤثر برای مدل با هدف تولید مداوم‌تر محتوای مطابق الزامات تعریف می‌کنند.<ref>[https://developers.openai.com/api/docs/guides/prompt-engineering OpenAI، «Prompt engineering»]</ref>


مهندسی پرامپت می‌تواند شامل تعیین هدف، افزودن زمینه، تعریف محدودیت، ارائهٔ نمونه، تعیین قالب خروجی و ارزیابی نتایج باشد.
مهندسی پرامپت ممکن است شامل:


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


مهندسی پرامپت تنها به یافتن «عبارت جادویی» محدود نیست؛ در کاربردهای حرفه‌ای، مسئله بیشتر به طراحی روشن وظیفه، تأمین دادهٔ مناسب، مشخص‌کردن معیار موفقیت و ارزیابی خروجی مربوط است.
باشد.


== ویژگی‌های یک پرامپت مناسب ==
در کاربردهای حرفه‌ای، مهندسی پرامپت تنها به انتخاب عبارت‌های مناسب محدود نمی‌شود؛ بلکه ارزیابی نظام‌مند نتایج نیز اهمیت دارد.


کیفیت پرامپت به نوع وظیفه وابسته است، اما چند اصل عمومی می‌تواند مفید باشد.
== وضوح و مشخص‌بودن دستور ==


پرامپت مناسب معمولاً:
یکی از اصول عمومی پرامپت‌نویسی، روشن و مشخص بودن درخواست است.


* هدف را روشن بیان می‌کند؛
برای مثال:
* زمینهٔ لازم را ارائه می‌دهد؛
 
* محدودیت‌های مهم را مشخص می‌کند؛
«دربارهٔ تاریخ بنویس.»
* قالب خروجی را در صورت ضرورت تعیین می‌کند؛
 
* ابهام‌های غیرضروری را کاهش می‌دهد؛
درخواست بسیار گسترده‌ای است.
* و در صورت نیاز نمونه ارائه می‌کند.
 
در مقابل:
 
«در ۵۰۰ کلمه، علل اقتصادی انقلاب صنعتی بریتانیا را برای خوانندهٔ عمومی توضیح بده و میان علل کوتاه‌مدت و بلندمدت تفکیک کن.»
 
هدف، حجم، موضوع، مخاطب و ساختار پاسخ را روشن‌تر تعیین می‌کند.


اما جزئیات بیش از اندازه نیز می‌تواند دستور را پیچیده یا حتی متناقض کند.
راهنماهای پرامپت‌نویسی بر مشخص‌کردن هدف، زمینه، قالب و سبک مطلوب تأکید دارند.<ref>[https://help.openai.com/en/articles/6654000-comprehensive-list-of-prompt-engineering-techniques OpenAI، «Best practices for prompt engineering with the OpenAI API»]</ref>


== تعیین نقش ==
== تعیین نقش ==


یکی از روش‌های رایج در پرامپت‌نویسی تعیین نقش است.
یکی از روش‌های پرامپت‌نویسی تعیین یک نقش یا زمینهٔ حرفه‌ای است.


برای مثال:
برای مثال:


  «در نقش یک ویراستار علمی، متن زیر را بررسی کن.»
  «در نقش ویراستار علمی، متن زیر را بررسی کن.»
 
یا:
 
«در نقش یک مدرس زبان، اشتباه‌های این متن را توضیح بده.»


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


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


== تعیین مخاطب ==
== تعیین مخاطب ==


مشخص‌کردن مخاطب می‌تواند سطح توضیح را تغییر دهد.
مشخص‌کردن مخاطب می‌تواند سطح پیچیدگی پاسخ را تغییر دهد.


برای مثال:
برای مثال:


  «نسبیت را برای یک دانش‌آموز دبیرستانی توضیح بده.»
  «مکانیک کوانتومی را برای دانش‌آموز دبیرستانی توضیح بده.»


با:
با:


  «نسبیت عام را برای دانشجوی کارشناسی ارشد فیزیک توضیح بده.»
  «صورت‌بندی ریاضی مکانیک کوانتومی را برای دانشجوی کارشناسی فیزیک توضیح بده.»


دو درخواست متفاوت‌اند.
دو وظیفهٔ متفاوت ایجاد می‌کند.


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


== تعیین قالب خروجی ==
== تعیین قالب خروجی ==


کاربر می‌تواند قالب پاسخ را در پرامپت مشخص کند.
کاربر می‌تواند شکل خروجی مورد نظر را در پرامپت تعیین کند.


برای مثال:
برای مثال:


  «پاسخ را به صورت ویکی‌متن مدیاویکی بنویس.»
  «خروجی را به صورت ویکی‌متن مدیاویکی بنویس.»


یا:
یا:


  «اطلاعات را در قالب JSON ارائه کن.»
  «نتیجه را در قالب JSON ارائه کن.»


یا:
یا:


  «متن را در پنج بند و بدون جدول بنویس.»
  «پاسخ را بدون جدول و در پنج بخش تنظیم کن.»


این نوع دستور برای استفاده از خروجی در سامانه‌های دیگر اهمیت ویژه دارد.
تعیین قالب به‌ویژه زمانی اهمیت دارد که خروجی قرار است در نرم‌افزار، پایگاه داده یا فرایند دیگری استفاده شود.


== استفاده از جداکننده‌ها ==
== استفاده از جداکننده‌ها ==


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


برای مثال:
برای نمونه:


  دستور:
  دستور:
  متن زیر را خلاصه کن.
  متن زیر را خلاصه کن.


  محدودیت:
  الزامات:
  هیچ اطلاعاتی خارج از متن اضافه نکن.
  هیچ اطلاعاتی خارج از متن اضافه نکن.


  متن:
  متن:
  ---
  ---
  [متن]
  [متن اصلی]
  ---
  ---


این ساختار به تشخیص دستور از داده‌ای که باید پردازش شود کمک می‌کند.
این شیوه به روشن‌شدن مرز میان دستور و داده کمک می‌کند. در راهنماهای فنی استفاده از ساختارهایی مانند Markdown یا XML برای تفکیک بخش‌های منطقی پرامپت مطرح شده است.<ref>[https://developers.openai.com/api/docs/guides/prompt-engineering OpenAI، «Prompt engineering»]</ref>


== ارائهٔ منبع در پرامپت ==
== پرامپت و زمینه ==


یکی از کاربردهای مهم پرامپت، ارائهٔ متن یا اسناد مرجع به مدل است.
مدل تنها دستور مستقیم کاربر را پردازش نمی‌کند؛ اطلاعات زمینه‌ای نیز می‌توانند بر پاسخ اثر بگذارند.


برای مثال:
برای مثال می‌توان سندی را همراه این دستور ارائه کرد:


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


این روش می‌تواند احتمال استفاده از اطلاعات نامرتبط را کاهش دهد.
افزودن منابع مرتبط به زمینه یکی از روش‌های فراهم‌کردن اطلاعاتی است که ممکن است در داده‌های آموزشی مدل وجود نداشته باشد یا نیازمند به‌روزرسانی باشد.<ref>[https://developers.openai.com/api/docs/guides/prompt-engineering OpenAI، «Prompt engineering»، بخش Include relevant context information]</ref>


با این حال وجود منبع در پرامپت تضمین نمی‌کند که مدل هیچ خطایی در تفسیر آن نداشته باشد؛ خروجی همچنان باید در کاربردهای حساس راستی‌آزمایی شود.
این روش در سامانه‌های '''تولید تقویت‌شده با بازیابی''' یا [[بازیابی افزوده به تولید]] (RAG) کاربرد گسترده‌ای دارد.


== پرامپت و پنجرهٔ زمینه ==
== پرامپت و پنجرهٔ زمینه ==
خط ۳۴۳: خط ۳۴۴:
پرامپت بخشی از '''پنجرهٔ زمینه''' (''Context Window'') مدل را اشغال می‌کند.
پرامپت بخشی از '''پنجرهٔ زمینه''' (''Context Window'') مدل را اشغال می‌کند.


پنجرهٔ زمینه مقدار اطلاعاتی است که مدل می‌تواند در یک فرایند پردازش در اختیار داشته باشد.
پنجرهٔ زمینه مقدار داده‌ای است که مدل می‌تواند در یک فرایند تولید در زمینهٔ فعال خود پردازش کند و معمولاً بر حسب [[توکن (هوش مصنوعی)|توکن]] اندازه‌گیری می‌شود.<ref>[https://developers.openai.com/api/docs/guides/prompt-engineering OpenAI، «Prompt engineering»، بخش Planning for the context window]</ref>


از آنجا که این ظرفیت معمولاً بر اساس [[توکن (هوش مصنوعی)|توکن]] اندازه‌گیری می‌شود، پرامپت‌های بسیار طولانی توکن بیشتری مصرف می‌کنند.
در نتیجه، متن پرامپت، اسناد ارائه‌شده، تاریخچهٔ مرتبط و خروجی تولیدشده همگی می‌توانند بخشی از ظرفیت زمینه را مصرف کنند.


این موضوع در کار با کتاب‌ها، گزارش‌های طولانی و مجموعه‌های بزرگ اسناد اهمیت دارد.
این مسئله هنگام پردازش کتاب‌ها و مجموعه‌های بزرگ اسناد اهمیت ویژه‌ای دارد.


== زنجیرهٔ فکر ==
== زنجیرهٔ فکر ==


'''پرامپت زنجیرهٔ فکر''' (''Chain-of-Thought Prompting'') اصطلاحی است که در پژوهش‌های مدل‌های زبانی برای روش‌هایی به کار رفته است که نمونه‌هایی شامل مراحل میانی حل مسئله را در زمینه قرار می‌دهند.
'''پرامپت زنجیرهٔ فکر''' (''Chain-of-Thought Prompting'') اصطلاحی پژوهشی برای روشی است که در آن نمونه‌هایی شامل مراحل میانی استدلال در پرامپت ارائه می‌شوند.


پژوهشی که جیسون وی و همکاران در سال ۲۰۲۲ منتشر کردند نشان داد که ارائهٔ نمونه‌های دارای مراحل استدلال می‌تواند عملکرد برخی مدل‌های بزرگ را در تعدادی از وظایف حسابی، استدلال عرفی و نمادین بهبود دهد.
جیسون وی و همکاران در مقاله‌ای که در کنفرانس NeurIPS سال ۲۰۲۲ منتشر شد نشان دادند که ارائهٔ چند نمونهٔ دارای مراحل میانی استدلال می‌تواند عملکرد مدل‌های زبانی بزرگ را در برخی وظایف حسابی، استدلال عرفی و نمادین افزایش دهد.<ref>[https://proceedings.neurips.cc/paper/2022/hash/9d5609613524ecf4f15af0f7b31abca4-Abstract.html Jason Wei et al.، «Chain-of-Thought Prompting Elicits Reasoning in Large Language Models»، NeurIPS 2022]</ref>


این روش به‌ویژه در پژوهش دربارهٔ توانایی حل مسائل چندمرحله‌ای مدل‌های زبانی مورد توجه قرار گرفت.
این پژوهش یکی از آثار اثرگذار در مطالعهٔ رابطهٔ میان شیوهٔ پرامپت‌نویسی و عملکرد استدلالی مدل‌های زبانی شد.


== پرامپت و جست‌وجوی اطلاعات ==
== پرامپت و تولید تصویر ==


پرامپت به‌تنهایی منبع اطلاعات نیست.
در مدل‌های تولید تصویر، پرامپت می‌تواند ویژگی‌های تصویر مورد نظر را مشخص کند.


اگر کاربر از مدل بپرسد:
برای نمونه ممکن است شامل:


«جمعیت کنونی یک کشور چقدر است؟»
* سوژه؛
* محیط؛
* نورپردازی؛
* زاویهٔ دید؛
* ترکیب‌بندی؛
* بافت؛
* نسبت تصویر؛
* یا ویژگی‌های بصری دیگر


صحت پاسخ به دسترسی مدل به اطلاعات معتبر و به‌روز بستگی دارد.
باشد.


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


در کاربردهای پژوهشی، تمایز میان '''دستور'''، '''منبع''' و '''پاسخ تولیدشده''' اهمیت بنیادی دارد.
== پرامپت در تولید ویدئو و صوت ==


== پرامپت و دانشنامه‌نویسی ==
مدل‌های مولد ویدئو و صوت نیز می‌توانند بر اساس پرامپت عمل کنند.


پرامپت می‌تواند در تدوین مقاله‌های دانشنامه‌ای برای تعیین ساختار، سبک، نحوهٔ ارجاع و قواعد ویرایشی استفاده شود.
در تولید ویدئو، کاربر ممکن است حرکت سوژه، دوربین، محیط یا توالی رویدادها را توصیف کند.


برای نمونه یک پرامپت دانشنامه‌ای می‌تواند مشخص کند:
در تولید صوت نیز پرامپت می‌تواند محتوای صوتی یا ویژگی‌های مورد انتظار را مشخص کند.


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


در چنین کاربردی، پرامپت در عمل بخشی از '''شیوه‌نامهٔ تولید محتوا''' را به زبان قابل پردازش برای مدل تبدیل می‌کند.
== پرامپت در برنامه‌نویسی ==


== محدودیت‌های پرامپت ==
مدل‌های زبانی می‌توانند بر اساس توصیف زبان طبیعی کد تولید کنند.


پرامپت هرقدر دقیق باشد، کنترل مطلق بر خروجی مدل ایجاد نمی‌کند.
برای مثال:


مدل ممکن است:
«تابعی در پایتون بنویس که یک فایل CSV را بخواند و ردیف‌های تکراری را حذف کند.»


* بخشی از دستور را نادرست تفسیر کند؛
در چنین کاربردی، پرامپت نقش نوعی مشخصات اولیهٔ مسئله را ایفا می‌کند.
* برخی محدودیت‌ها را رعایت نکند؛
* اطلاعات نادرست تولید کند؛
* منبع غیرواقعی بسازد؛
* قالب خروجی را تغییر دهد؛
* یا میان دستورهای متعدد دچار تعارض شود.


بنابراین در کاربردهای مهم، طراحی پرامپت باید با ارزیابی و راستی‌آزمایی خروجی همراه باشد.
با این حال کد تولیدشده باید آزمایش و بررسی شود، زیرا مدل می‌تواند کدی دارای خطا یا آسیب‌پذیری تولید کند.


== پرامپت و توهم هوش مصنوعی ==
== پرامپت در پژوهش ==


یکی از تصورات نادرست این است که پرامپت دقیق می‌تواند پدیدهٔ [[توهم هوش مصنوعی]] را به‌طور کامل از میان ببرد.
در پژوهش علمی، پرامپت می‌تواند برای خلاصه‌سازی، استخراج اطلاعات، طبقه‌بندی داده‌ها، ترجمه و تحلیل اولیه استفاده شود.


دستورهایی مانند:
اما پرامپت جایگزین منبع علمی یا روش تحقیق نیست.


«فقط اطلاعات کاملاً صحیح بده»
برای مثال، دستور:


ممکن است رفتار مدل را جهت دهند، اما تضمین فنی برای صحت همهٔ خروجی‌ها ایجاد نمی‌کنند.
«ده منبع معتبر دربارهٔ موضوع X معرفی کن.»


برای کاهش خطا باید از منابع معتبر، ابزارهای جست‌وجو و بازیابی، کنترل داده و راستی‌آزمایی مستقل استفاده کرد.
به‌تنهایی تضمین نمی‌کند که منابع تولیدشده واقعی یا مرتبط باشند.


== تزریق پرامپت ==
برای پژوهش علمی، منابع باید مستقل از پاسخ مدل راستی‌آزمایی شوند.


'''تزریق پرامپت''' (''Prompt Injection'') یکی از مسائل امنیتی سامانه‌های مبتنی بر مدل‌های زبانی است.
== پرامپت در دانشنامه‌نویسی ==


در این حمله، ورودی غیرقابل اعتماد به‌گونه‌ای طراحی می‌شود که دستورهای سطح بالاتر سامانه را مختل کند یا مدل را به انجام رفتار ناخواسته سوق دهد.
در دانشنامه‌نویسی، پرامپت می‌تواند به صورت یک '''شیوه‌نامهٔ اجرایی''' برای مدل عمل کند.


این خطر به‌ویژه زمانی اهمیت دارد که مدل قادر به خواندن صفحات وب، اسناد، ایمیل‌ها یا داده‌های خارجی باشد.
یک پرامپت دانشنامه‌ای ممکن است مشخص کند که:


متن مخرب ممکن است درون یک سند یا صفحهٔ وب قرار گرفته باشد و تلاش کند خود را به‌عنوان دستور به مدل تحمیل کند.
* متن دارای مقدمه و بخش‌بندی موضوعی باشد؛
* لحن دانشنامه‌ای رعایت شود؛
* میان واقعیت و تفسیر تمایز گذاشته شود؛
* ادعاهای مهم دارای منبع باشند؛
* منابع ساختگی تولید نشوند؛
* اصطلاحات تخصصی توضیح داده شوند؛
* پیوندهای داخلی مناسب درج شوند؛
* و خروجی با ویکی‌متن مدیاویکی سازگار باشد.


== تزریق مستقیم و غیرمستقیم ==
پرامپت در این حالت تنها یک سؤال نیست، بلکه مجموعه‌ای از قواعد برای تولید و سازمان‌دهی محتواست.


تزریق پرامپت می‌تواند '''مستقیم''' باشد؛ یعنی کاربر مستقیماً دستور مخرب را وارد کند.
== پرامپت و سوگیری ==


نوع دیگری از حمله '''تزریق غیرمستقیم''' است.
نحوهٔ صورت‌بندی پرامپت می‌تواند بر پاسخ مدل اثر بگذارد.


در این حالت، دستور مخرب ممکن است داخل محتوایی قرار گرفته باشد که سامانه بعداً آن را می‌خواند؛ مانند:
برای مثال:


* صفحهٔ وب؛
«چرا سیاست X شکست خورد؟»
* سند؛
* پیام؛
* فایل؛
* یا دادهٔ دریافت‌شده از سامانه‌ای دیگر.


این مسئله یکی از تفاوت‌های امنیت سامانه‌های عامل‌محور مبتنی بر مدل زبانی با برنامه‌های گفت‌وگویی ساده است.
از ابتدا شکست سیاست را مفروض می‌گیرد.


== استخراج پرامپت ==
در مقابل:


'''استخراج پرامپت''' (''Prompt Extraction'') حمله‌ای است که هدف آن آشکارکردن دستورهای سیستمی یا دیگر اطلاعات زمینه‌ای است که معمولاً برای کاربر پنهان‌اند.
«چه شواهدی دربارهٔ موفقیت یا شکست سیاست X وجود دارد؟»


این مسئله زمانی اهمیت بیشتری پیدا می‌کند که پرامپت سیستمی حاوی اطلاعات محرمانه یا منطق امنیتی سامانه باشد.
فضای بیشتری برای بررسی شواهد متفاوت ایجاد می‌کند.


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


== پرامپت و امنیت ==
این پدیده با بحث گسترده‌تر [[سوگیری الگوریتمی]] و سوگیری در سامانه‌های هوش مصنوعی ارتباط دارد.


سامانه‌ای که فقط متن تولید می‌کند خطرهای متفاوتی با سامانه‌ای دارد که می‌تواند عملیات خارجی انجام دهد.
== محدودیت‌های پرامپت ==


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


در چنین سامانه‌هایی، پرامپت نباید به‌تنهایی نقش کنترل دسترسی امنیتی را ایفا کند.
مدل ممکن است:


مجوزها، احراز هویت، محدودیت ابزارها و کنترل‌های نرم‌افزاری مستقل همچنان ضروری‌اند.
* بخشی از دستور را اشتباه تفسیر کند؛
* اطلاعات نادرست تولید کند؛
* محدودیتی را رعایت نکند؛
* منبع نادرست ارائه کند؛
* یا قالب مورد درخواست را به‌طور کامل رعایت نکند.


== پرامپت و زبان طبیعی ==
خروجی مدل‌های مولد ماهیتی احتمالاتی دارد و حتی پرامپت‌های مشابه می‌توانند در شرایط مختلف پاسخ‌های متفاوتی ایجاد کنند.<ref>[https://developers.openai.com/api/docs/guides/prompt-engineering OpenAI، «Prompt engineering»]</ref>


یکی از اهمیت‌های تاریخی پرامپت در این است که زبان طبیعی را به رابطی برای تعامل با رایانه تبدیل کرده است.
== پرامپت و توهم هوش مصنوعی ==


در برنامه‌نویسی سنتی، کاربر برای کنترل دقیق رایانه اغلب باید زبان برنامه‌نویسی یا رابط مشخصی را بیاموزد.
یکی از محدودیت‌های مهم پرامپت این است که دستور دقیق نمی‌تواند به‌تنهایی صحت اطلاعات را تضمین کند.


در سامانه‌های مولد، بسیاری از وظایف را می‌توان با جمله‌هایی مانند:
برای مثال:


  «این متن را خلاصه کن.»
  «فقط اطلاعات کاملاً صحیح ارائه کن.»


«برای این داده‌ها نمودار بساز.»
یک دستور است، نه سازوکاری مستقل برای راستی‌آزمایی حقیقت.


«این برنامه را اشکال‌زدایی کن.»
مدل ممکن است همچنان اطلاعاتی ظاهراً معتبر اما نادرست تولید کند.


بیان کرد.
در کاربردهای دانشنامه‌ای، تاریخی و علمی، استفاده از منابع قابل بررسی و راستی‌آزمایی مستقل ضروری است.


این تحول فاصلهٔ میان بیان هدف انسانی و اجرای محاسباتی را کاهش داده است.
== تزریق پرامپت ==


== آیا پرامپت نوعی برنامه‌نویسی است؟ ==
'''تزریق پرامپت''' (''Prompt Injection'') یکی از مسائل امنیتی مهم سامانه‌های مبتنی بر مدل‌های زبانی است.


پرامپت‌نویسی و برنامه‌نویسی سنتی شباهت‌هایی دارند، زیرا در هر دو مورد انسان می‌کوشد رفتار یک سامانهٔ محاسباتی را هدایت کند.
در این نوع حمله، ورودی دستکاری‌شده می‌کوشد مدل یا برنامهٔ متصل به آن را وادار کند برخلاف دستور یا هدف مورد نظر سامانه رفتار کند.


اما تفاوت مهمی میان آنها وجود دارد.
NIST تزریق پرامپت را از آسیب‌پذیری‌های مهم سامانه‌های هوش مصنوعی مولد معرفی کرده و میان حملات مستقیم و غیرمستقیم تمایز گذاشته است.<ref>[https://airc.nist.gov/docs/NIST.AI.600-1.GenAI-Profile.ipd.pdf NIST، ''Artificial Intelligence Risk Management Framework: Generative Artificial Intelligence Profile'']</ref>


کد برنامه‌نویسی معمولاً بر اساس قواعد رسمی و نحو تعریف‌شده اجرا می‌شود.
== تزریق مستقیم پرامپت ==


پرامپت زبان طبیعی معمولاً توسط مدلی احتمالاتی تفسیر می‌شود و نتیجهٔ آن می‌تواند تحت تأثیر زمینه و ویژگی‌های مدل تغییر کند.
در '''تزریق مستقیم'''، مهاجم مستقیماً ورودی‌ای را برای تغییر رفتار مدل ارائه می‌کند.


از این رو پرامپت را نمی‌توان به‌طور کلی معادل کد رایانه‌ای دانست.
برای مثال ممکن است تلاش کند دستورهای قبلی سامانه را نادیده بگیرد یا مدل را به انجام عملی خارج از هدف برنامه وادارد.


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


با گسترش هوش مصنوعی مولد، «مهندسی پرامپت» به عنوان مهارتی تازه مورد توجه قرار گرفت.
== تزریق غیرمستقیم پرامپت ==


اما توسعهٔ مدل‌ها نشان داده است که کار مؤثر با هوش مصنوعی تنها به یافتن عبارت‌های مناسب محدود نیست.
'''تزریق غیرمستقیم''' زمانی رخ می‌دهد که دستور مخرب نه مستقیماً از سوی کاربر، بلکه در محتوایی قرار گرفته باشد که مدل بعداً آن را دریافت یا بازیابی می‌کند.


شناخت مسئله، انتخاب منبع، طراحی گردش کار، ارزیابی خروجی، استفاده از ابزارها و کنترل خطا نیز اهمیت دارند.
این محتوا می‌تواند در:


بنابراین مهندسی پرامپت را می‌توان بخشی از حوزهٔ گسترده‌تر طراحی تعامل و سامانه‌های مبتنی بر هوش مصنوعی دانست.
* صفحهٔ وب؛
* سند؛
* ایمیل؛
* فایل؛
* یا دادهٔ خارجی


== پرامپت در تولید تصویر ==
قرار گرفته باشد.


در مدل‌های تولید تصویر، پرامپت معمولاً صحنه یا ویژگی‌های تصویر مطلوب را توصیف می‌کند.
NIST هشدار داده است که تزریق غیرمستقیم می‌تواند برنامه‌های یکپارچه‌شده با مدل زبانی را از طریق داده‌های بازیابی‌شده هدف قرار دهد.<ref>[https://airc.nist.gov/docs/NIST.AI.600-1.GenAI-Profile.ipd.pdf NIST، ''Generative Artificial Intelligence Profile'']</ref>


برای مثال، کاربر می‌تواند دربارهٔ:
== امنیت پرامپت ==


* سوژه؛
تزریق پرامپت نشان می‌دهد که زبان طبیعی نباید به‌تنهایی به عنوان مرز امنیتی سامانه در نظر گرفته شود.
* محیط؛
* ترکیب‌بندی؛
* نور؛
* زاویهٔ دید؛
* بافت؛
* دورهٔ تاریخی؛
* و نسبت تصویر


اطلاعات ارائه کند.
اگر مدل به ابزار یا داده‌های حساس دسترسی داشته باشد، کنترل دسترسی، اعتبارسنجی، محدودیت مجوزها و طراحی امنیتی مستقل ضروری است.


مدل این اطلاعات را برای هدایت فرایند تولید تصویر به کار می‌گیرد.
پروژهٔ امنیت هوش مصنوعی مولد OWASP نیز تزریق پرامپت را در فهرست خطرهای مهم برنامه‌های مبتنی بر مدل‌های زبانی قرار داده است.<ref>[https://genai.owasp.org/llm-top-10/ OWASP GenAI Security Project، «Top 10 Risks for LLM and GenAI Applications»]</ref>


== پرامپت در تولید ویدئو ==
== پرامپت و تعامل انسان و رایانه ==


مدل‌های مولد ویدئو نیز می‌توانند دستورهای متنی یا تصویری دریافت کنند.
اهمیت تاریخی پرامپت در هوش مصنوعی مولد تا حد زیادی به تبدیل زبان طبیعی به رابطی برای کنترل سامانه‌های محاسباتی مربوط است.


پرامپت ممکن است حرکت دوربین، رفتار سوژه، محیط، نور، مدت صحنه و سبک بصری را توصیف کند.
در بسیاری از کاربردها، کاربر بدون نوشتن برنامهٔ رایانه‌ای می‌تواند هدف خود را با زبان معمولی بیان کند:


هرچه مدل‌های چندوجهی توسعه یافته‌اند، مرز میان پرامپت متنی و دیگر انواع ورودی کمتر شده است.
  «این مقاله را خلاصه کن.»
 
== پرامپت در برنامه‌نویسی ==
 
در سامانه‌های تولید کد، پرامپت می‌تواند مشخصات یک برنامه را با زبان طبیعی بیان کند.
 
برای مثال:
 
  «تابعی در پایتون بنویس که یک فایل CSV را بخواند، ردیف‌های تکراری را حذف کند و نتیجه را در فایل جدید ذخیره کند.»
 
مدل می‌تواند بر اساس این مشخصات کد تولید کند.
 
با این حال کد تولیدشده باید آزمایش و از نظر امنیتی بررسی شود.
 
== پرامپت در پژوهش ==
 
پژوهشگران می‌توانند برای خلاصه‌سازی، استخراج داده، طبقه‌بندی، ترجمه و تحلیل اولیه از پرامپت استفاده کنند.
 
اما پرامپت نباید جایگزین روش علمی شود.
 
برای مثال درخواست:
 
«ده منبع علمی معتبر دربارهٔ موضوع X معرفی کن»


ممکن است به تولید منابع نادرست منجر شود اگر سامانه امکان جست‌وجو و راستی‌آزمایی واقعی نداشته باشد.
«این داده‌ها را تحلیل کن.»


در پژوهش، اعتبار منبع باید مستقل از روانی پاسخ مدل بررسی شود.
«برای این مسئله کد بنویس.»


== پرامپت و سوگیری ==
«تصویری بر اساس این توصیف تولید کن.»


نحوهٔ طرح پرسش می‌تواند بر پاسخ مدل اثر بگذارد.
در نتیجه فاصله میان بیان هدف انسانی و استفاده از توان محاسباتی کاهش یافته است.


یک سؤال جهت‌دار ممکن است فرضی را در خود پنهان کرده باشد.
== تفاوت پرامپت‌نویسی و برنامه‌نویسی ==


برای مثال تفاوت وجود دارد میان:
پرامپت‌نویسی و برنامه‌نویسی هر دو روشی برای هدایت رفتار یک سامانهٔ محاسباتی هستند، اما یکسان نیستند.


«چرا سیاست X شکست خورد؟»
برنامهٔ رایانه‌ای معمولاً بر اساس نحو رسمی و قواعد مشخص اجرا می‌شود.


و:
پرامپت زبان طبیعی توسط مدلی احتمالاتی تفسیر می‌شود و پاسخ آن می‌تواند بر اساس مدل، زمینه و دیگر شرایط تغییر کند.


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


== پرامپت و عاملیت انسانی ==
== پرامپت و عاملیت انسانی ==


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


اما مدل ممکن است پاسخ‌هایی ارائه کند که کاربر پیش‌بینی نکرده باشد.
مدل می‌تواند پیشنهادی تولید کند که دقیق، نادرست یا نامناسب باشد.


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


این موضوع به‌ویژه در پزشکی، حقوق، سیاست عمومی، پژوهش و دیگر حوزه‌های حساس اهمیت دارد.
== اهمیت پرامپت ==


== اهمیت پرامپت ==
پرامپت یکی از مفاهیم بنیادی در [[هوش مصنوعی مولد]] است، زیرا رابط میان هدف کاربر و فرایند تولید مدل را تشکیل می‌دهد.


پرامپت یکی از عناصر اصلی رابط میان انسان و نسل جدید سامانه‌های [[هوش مصنوعی مولد]] است.
اهمیت پرامپت را می‌توان در چند زمینه مشاهده کرد:


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


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


== جمع‌بندی ==
== جمع‌بندی ==


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


پرامپت می‌تواند از یک پرسش چندکلمه‌ای تا مجموعه‌ای پیچیده از دستورها، نمونه‌ها، منابع و محدودیت‌ها متغیر باشد. با ظهور مدل‌های چندوجهی، تصویر، صوت، ویدئو و فایل نیز می‌توانند بخشی از پرامپت باشند.
مدل‌های زبانی متن پرامپت را به [[توکن (هوش مصنوعی)|توکن]] تبدیل کرده و در چارچوب زمینه پردازش می‌کنند. توانایی مدل‌های بزرگ در استفاده از نمونه‌های موجود در پرامپت به توسعهٔ روش‌هایی مانند zero-shot، one-shot، few-shot و یادگیری درون‌زمینه‌ای انجامیده است.<ref>[https://proceedings.neurips.cc/paper/2020/hash/1457c0d6bfcb4967418bfb8ac142f64a-Abstract.html Brown et al.، «Language Models are Few-Shot Learners»، NeurIPS 2020]</ref>


مدل‌های زبانی پرامپت را به [[توکن (هوش مصنوعی)|توکن]] تبدیل کرده و آن را در کنار دیگر اطلاعات زمینه‌ای پردازش می‌کنند. در نتیجه، پرامپت با توکن، پنجرهٔ زمینه و سازوکار تولید خروجی ارتباط مستقیم دارد.
پژوهش‌های بعدی نشان دادند که شیوهٔ سازمان‌دهی پرامپت می‌تواند بر عملکرد مدل در برخی مسائل پیچیده نیز اثر بگذارد؛ از جمله روش زنجیرهٔ فکر که در پژوهش‌های مربوط به استدلال چندمرحله‌ای بررسی شده است.<ref>[https://proceedings.neurips.cc/paper/2022/hash/9d5609613524ecf4f15af0f7b31abca4-Abstract.html Wei et al.، «Chain-of-Thought Prompting Elicits Reasoning in Large Language Models»، NeurIPS 2022]</ref>


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


هم‌زمان با اتصال مدل‌های زبانی به ابزارها و داده‌های خارجی، امنیت پرامپت نیز اهمیت یافته است. [[تزریق پرامپت]]، استخراج دستورهای پنهان و ورود محتوای غیرقابل اعتماد از جمله مسائل امنیتی این حوزه‌اند.
در کنار کاربردهای گسترده، پرامپت دارای محدودیت‌ها و مخاطرات امنیتی نیز هست. دستور دقیق تضمین‌کنندهٔ صحت خروجی نیست و حملاتی مانند [[تزریق پرامپت]] می‌توانند سامانه‌های متصل به منابع خارجی را هدف قرار دهند.<ref>[https://airc.nist.gov/docs/NIST.AI.600-1.GenAI-Profile.ipd.pdf NIST، ''Generative Artificial Intelligence Profile'']</ref>


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


== جستارهای وابسته ==
== جستارهای وابسته ==
خط ۶۳۹: خط ۵۸۵:
* [[هوش مصنوعی]]
* [[هوش مصنوعی]]
* [[هوش مصنوعی مولد]]
* [[هوش مصنوعی مولد]]
* [[مدل زبانی بزرگ]]
* [[توکن (هوش مصنوعی)]]
* [[توکن (هوش مصنوعی)]]
* [[مدل زبانی بزرگ]]
* [[مهندسی پرامپت]]
* [[پردازش زبان طبیعی]]
* [[پردازش زبان طبیعی]]
* [[یادگیری ماشین]]
* [[یادگیری ماشین]]
* [[یادگیری عمیق]]
* [[یادگیری عمیق]]
* [[شبکه عصبی مصنوعی]]
* [[الگوریتم]]
* [[مهندسی پرامپت]]
* [[ترنسفورمر]]
* [[ترنسفورمر]]
* [[سوگیری الگوریتمی]]
* [[توهم هوش مصنوعی]]
* [[توهم هوش مصنوعی]]
* [[تزریق پرامپت]]
* [[امنیت سایبری]]
* [[علوم رایانه]]
* [[علوم رایانه]]
* [[امنیت سایبری]]


== منابع ==
== منابع ==
خط ۶۵۷: خط ۶۰۳:
== کتاب‌شناسی ==
== کتاب‌شناسی ==


* Brown, Tom B., et al. “Language Models are Few-Shot Learners.” ''Advances in Neural Information Processing Systems'' 33 (2020).
* Brown, Tom B., Benjamin Mann, Nick Ryder, et al. “Language Models are Few-Shot Learners.” ''Advances in Neural Information Processing Systems'' 33 (2020): 1877–1901.
* Liu, Pengfei, et al. “Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing.” ''ACM Computing Surveys'' 55, no. 9 (2023).
* Liu, Pengfei, Weizhe Yuan, Jinlan Fu, Zhengbao Jiang, Hiroaki Hayashi, and Graham Neubig. “Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing.” ''ACM Computing Surveys'' 55, no. 9 (2023): 1–35.
* Reynolds, Laria, and Kyle McDonell. “Prompt Programming for Large Language Models: Beyond the Few-Shot Paradigm.” 2021.
* National Institute of Standards and Technology. ''Artificial Intelligence Risk Management Framework: Generative Artificial Intelligence Profile''. NIST AI 600-1. Gaithersburg, Maryland: NIST.
* Vaswani, Ashish, et al. “Attention Is All You Need.” ''Advances in Neural Information Processing Systems'' 30 (2017).
* OpenAI. “Prompt Engineering.” ''OpenAI API Documentation''.
* Wei, Jason, et al. “Chain-of-Thought Prompting Elicits Reasoning in Large Language Models.” ''Advances in Neural Information Processing Systems'' 35 (2022).
* Wei, Jason, Xuezhi Wang, Dale Schuurmans, et al. “Chain-of-Thought Prompting Elicits Reasoning in Large Language Models.” ''Advances in Neural Information Processing Systems'' 35 (2022): 24824–24837.


[[رده:هوش مصنوعی]]
[[رده:هوش مصنوعی]]
خط ۶۶۹: خط ۶۱۵:
[[رده:یادگیری ماشین]]
[[رده:یادگیری ماشین]]
[[رده:علوم رایانه]]
[[رده:علوم رایانه]]
[[رده:تعامل انسان و رایانه]]
[[رده:مفاهیم هوش مصنوعی]]
[[رده:مفاهیم هوش مصنوعی]]
[[رده:تعامل انسان و رایانه]]
[[رده:فناوری اطلاعات]]
[[رده:فناوری اطلاعات]]
{{DEFAULTSORT:پرامپت}}
{{DEFAULTSORT:پرامپت}}

نسخهٔ کنونی تا ‏۳ اکتبر ۲۰۲۶، ساعت ۲۰:۲۱

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

پرامپت (به انگلیسی: Prompt) در هوش مصنوعی و به‌ویژه هوش مصنوعی مولد به ورودی یا دستوری گفته می‌شود که برای هدایت مدل به سوی انجام یک وظیفه یا تولید یک پاسخ در اختیار آن قرار می‌گیرد. پرامپت در ساده‌ترین شکل می‌تواند یک پرسش یا دستور متنی باشد؛ اما در سامانه‌های جدید می‌تواند شامل متن، تصویر، صوت، فایل یا ترکیبی از چند نوع داده باشد.[۱]

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

توانایی مدل‌های زبانی بزرگ در انجام وظایف بر اساس دستورها و نمونه‌های موجود در پرامپت، به توسعهٔ روش‌هایی مانند پرامپت صفرنمونه‌ای، پرامپت تک‌نمونه‌ای، پرامپت چندنمونه‌ای و یادگیری درون‌زمینه‌ای انجامیده است. پژوهش‌های مربوط به مدل GPT-3 نشان داد که مدل‌های زبانی بزرگ می‌توانند برخی وظایف را صرفاً بر اساس دستور و نمونه‌های ارائه‌شده در زمینه، بدون به‌روزرسانی پارامترهای مدل، انجام دهند.[۳]

ریشه و تحول اصطلاح

واژهٔ prompt پیش از ظهور هوش مصنوعی مولد در رایانش به پیام، نشانه یا علامتی اطلاق می‌شد که سامانه برای دریافت فرمان یا اطلاعات از کاربر نمایش می‌داد. اصطلاح command prompt از نمونه‌های شناخته‌شدهٔ این کاربرد است.

با گسترش پردازش زبان طبیعی و مدل‌های مولد، این اصطلاح معنای گسترده‌تری یافت. در این کاربرد، پرامپت دیگر صرفاً نشانه‌ای برای دریافت فرمان نیست، بلکه خودِ ورودی یا دستور ارائه‌شده به مدل است.

ظهور مدل‌های زبانی بزرگ در اواخر دههٔ ۲۰۱۰ و اوایل دههٔ ۲۰۲۰ اهمیت این مفهوم را افزایش داد. توانایی این مدل‌ها در انجام وظایف متفاوت بر اساس دستورهای زبان طبیعی موجب شد طراحی و بهینه‌سازی پرامپت به موضوعی مستقل در پژوهش و کاربرد هوش مصنوعی تبدیل شود.

سازوکار پرامپت در مدل‌های زبانی

مدل زبانی پرامپت را همانند یک برنامهٔ رایانه‌ای سنتی اجرا نمی‌کند. ورودی ابتدا به توکن‌ها تبدیل می‌شود و مدل با توجه به این توکن‌ها، زمینه و پارامترهایی که طی آموزش آموخته است، خروجی را تولید می‌کند.

این فرایند را به‌صورت ساده می‌توان چنین نشان داد:

پرامپت
↓
توکن‌سازی
↓
نمایش عددی توکن‌ها
↓
پردازش توسط مدل
↓
محاسبهٔ توزیع احتمال برای ادامه
↓
تولید توکن‌های خروجی
↓
پاسخ

در مدل‌های مولد خودرگرسیو، مدل با توجه به توکن‌های موجود در زمینه، احتمال توکن‌های بعدی را محاسبه می‌کند و این فرایند به‌صورت متوالی ادامه می‌یابد.

بنابراین تغییر پرامپت می‌تواند زمینه‌ای را که مدل بر اساس آن خروجی تولید می‌کند تغییر دهد.

پرامپت و توکن

پرامپت و توکن دو مفهوم متفاوت اما مرتبط هستند.

پرامپت ورودی یا دستور ارائه‌شده به مدل است؛ در حالی که توکن واحدی است که مدل برای پردازش داده به کار می‌گیرد.

برای نمونه:

«انقلاب صنعتی را توضیح بده.»

یک پرامپت است.

مدل این جمله را بر اساس توکنایزر خود به مجموعه‌ای از توکن‌ها تبدیل می‌کند و سپس بازنمایی عددی آنها را پردازش می‌کند.

بنابراین می‌توان رابطه را به‌صورت زیر نشان داد:

پرامپت ← توکن‌ها ← پردازش مدل ← توکن‌های خروجی ← پاسخ

اجزای پرامپت

پرامپت ساختار ثابت و اجباری ندارد. یک پرسش کوتاه می‌تواند پرامپتی کامل برای یک وظیفهٔ ساده باشد. با این حال، در وظایف پیچیده‌تر چند عنصر می‌توانند در آن مشخص شوند.

وظیفه بیان می‌کند مدل باید چه کاری انجام دهد:

«این مقاله را خلاصه کن.»

زمینه اطلاعاتی را که برای انجام وظیفه ضروری است در اختیار مدل قرار می‌دهد.

محدودیت شرایط پاسخ را مشخص می‌کند:

«خلاصه بیشتر از ۵۰۰ کلمه نباشد.»

قالب خروجی شکل مطلوب پاسخ را تعیین می‌کند:

«پاسخ را در قالب ویکی‌متن بنویس.»

مخاطب سطح توضیح را مشخص می‌کند:

«این مفهوم را برای دانش‌آموز دبیرستانی توضیح بده.»

نمونه نیز می‌تواند شکل یا الگوی خروجی مورد انتظار را به مدل نشان دهد.

مستندات راهنمای مدل‌های زبانی بر روشن و مشخص بودن دستور و ارائهٔ زمینهٔ کافی تأکید دارند.[۴]

پرامپت ساده

پرامپت ساده معمولاً یک درخواست کوتاه است:

«فتوسنتز چیست؟»

یا:

«این متن را به فارسی ترجمه کن.»

در وظایفی که هدف روشن است، چنین پرامپتی ممکن است کافی باشد.

طولانی‌تر کردن پرامپت به خودی خود تضمین نمی‌کند که پاسخ بهتر شود. اهمیت اصلی در روشن بودن هدف و فراهم کردن اطلاعات مورد نیاز است.

پرامپت ساختاریافته

در وظایف پیچیده می‌توان اجزای پرامپت را به‌صورت ساختاریافته جدا کرد.

برای نمونه:

وظیفه: بازنویسی مقاله
سبک: دانشنامه‌ای
مخاطب: خوانندهٔ عمومی
محدودیت: هیچ اطلاعاتی از متن اصلی حذف نشود
منابع: فقط منابع واقعی و قابل راستی‌آزمایی
قالب خروجی: ویکی‌متن مدیاویکی

ساختاردهی به دستور می‌تواند مرز میان هدف، داده، محدودیت و قالب پاسخ را روشن کند. در مستندات فنی مدل‌های زبانی نیز استفاده از ساختارهای واضح برای جداکردن دستورها از محتوای مرجع توصیه شده است.[۵]

پرامپت صفرنمونه‌ای

پرامپت صفرنمونه‌ای (Zero-Shot Prompting) به حالتی گفته می‌شود که مدل بدون دریافت نمونهٔ حل‌شده، تنها بر اساس دستور وظیفه‌ای را انجام می‌دهد.

برای مثال:

«جملهٔ زیر را از فارسی به انگلیسی ترجمه کن.»

در این حالت هیچ نمونهٔ ترجمه‌ای در پرامپت وجود ندارد.

توانایی مدل‌های زبانی بزرگ برای انجام طیفی از وظایف به صورت zero-shot یکی از موضوعات مهم پژوهش دربارهٔ این مدل‌ها بوده است.[۶]

پرامپت تک‌نمونه‌ای

پرامپت تک‌نمونه‌ای (One-Shot Prompting) شامل یک نمونه از رابطه یا خروجی مورد انتظار است.

برای مثال:

فرانسه → پاریس
ژاپن → ؟

نمونهٔ نخست الگویی در اختیار مدل قرار می‌دهد تا پاسخ بعدی را در همان چارچوب تولید کند.

پرامپت چندنمونه‌ای

پرامپت چندنمونه‌ای (Few-Shot Prompting) شامل چند نمونه است که الگوی مورد انتظار را به مدل نشان می‌دهند.

برای مثال:

فرانسه → پاریس
ایتالیا → رم
آلمان → برلین
ژاپن → ؟

پژوهش Brown و همکاران دربارهٔ GPT-3 نشان داد که افزایش مقیاس مدل‌های زبانی می‌تواند توانایی انجام برخی وظایف به شیوهٔ few-shot را افزایش دهد.[۷]

یادگیری درون‌زمینه‌ای

یادگیری درون‌زمینه‌ای (In-Context Learning) به توانایی مدل در استفاده از دستورها یا نمونه‌های موجود در زمینه برای انجام یک وظیفه اشاره دارد، بدون آن‌که برای همان تعامل پارامترهای اصلی مدل دوباره آموزش داده شوند.

در این روش نمونه‌ها بخشی از ورودی هستند، نه بخشی از آموزش مجدد مدل.

این ویژگی یکی از عوامل اصلی افزایش اهمیت پرامپت در مدل‌های زبانی بزرگ است.

پرامپت سیستمی

در سامانه‌های مبتنی بر مدل‌های زبانی ممکن است دستورها دارای سطوح مختلف باشند.

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

این دستورها می‌توانند پیش از پیام کاربر به سامانه داده شوند و کاربر الزاماً آنها را مشاهده نمی‌کند.

در سامانه‌های کاربردی، علاوه بر پیام کاربر ممکن است دستورهای توسعه‌دهنده، اطلاعات بازیابی‌شده و داده‌های ابزارها نیز وارد زمینه شوند.

پرامپت کاربر

پرامپت کاربر محتوایی است که کاربر مستقیماً برای مدل ارسال می‌کند.

برای مثال:

«یک مقالهٔ دانشنامه‌ای دربارهٔ هوش مصنوعی مولد بنویس.»

این دستور هدف مورد انتظار کاربر را مشخص می‌کند.

در یک سامانهٔ ساده ممکن است همین پیام بخش اصلی ورودی باشد؛ اما در سامانه‌های پیچیده‌تر پاسخ می‌تواند تحت تأثیر دستورهای سطح بالاتر، تاریخچهٔ گفتگو، منابع بازیابی‌شده و ابزارهای متصل نیز قرار گیرد.

پرامپت چندوجهی

با توسعهٔ هوش مصنوعی چندوجهی، پرامپت دیگر الزاماً فقط متن نیست.

یک پرامپت می‌تواند شامل:

  • متن؛
  • تصویر؛
  • صوت؛
  • فایل؛
  • دادهٔ ساختاریافته؛
  • یا ترکیبی از این موارد

باشد.

برای مثال، کاربر می‌تواند تصویری را به مدل ارائه کند و بنویسد:

«محتوای این نمودار را توضیح بده.»

در این حالت تصویر و دستور متنی با یکدیگر پرامپت چندوجهی را تشکیل می‌دهند.

مهندسی پرامپت

مهندسی پرامپت (Prompt Engineering) فرایند طراحی و بهینه‌سازی دستورها برای هدایت مدل به سوی خروجی مطلوب است. مستندات فنی OpenAI این اصطلاح را فرایند نوشتن دستورهای مؤثر برای مدل با هدف تولید مداوم‌تر محتوای مطابق الزامات تعریف می‌کنند.[۸]

مهندسی پرامپت ممکن است شامل:

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

باشد.

در کاربردهای حرفه‌ای، مهندسی پرامپت تنها به انتخاب عبارت‌های مناسب محدود نمی‌شود؛ بلکه ارزیابی نظام‌مند نتایج نیز اهمیت دارد.

وضوح و مشخص‌بودن دستور

یکی از اصول عمومی پرامپت‌نویسی، روشن و مشخص بودن درخواست است.

برای مثال:

«دربارهٔ تاریخ بنویس.»

درخواست بسیار گسترده‌ای است.

در مقابل:

«در ۵۰۰ کلمه، علل اقتصادی انقلاب صنعتی بریتانیا را برای خوانندهٔ عمومی توضیح بده و میان علل کوتاه‌مدت و بلندمدت تفکیک کن.»

هدف، حجم، موضوع، مخاطب و ساختار پاسخ را روشن‌تر تعیین می‌کند.

راهنماهای پرامپت‌نویسی بر مشخص‌کردن هدف، زمینه، قالب و سبک مطلوب تأکید دارند.[۹]

تعیین نقش

یکی از روش‌های پرامپت‌نویسی تعیین یک نقش یا زمینهٔ حرفه‌ای است.

برای مثال:

«در نقش ویراستار علمی، متن زیر را بررسی کن.»

تعیین نقش می‌تواند نوع زبان و تمرکز پاسخ را هدایت کند.

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

تعیین مخاطب

مشخص‌کردن مخاطب می‌تواند سطح پیچیدگی پاسخ را تغییر دهد.

برای مثال:

«مکانیک کوانتومی را برای دانش‌آموز دبیرستانی توضیح بده.»

با:

«صورت‌بندی ریاضی مکانیک کوانتومی را برای دانشجوی کارشناسی فیزیک توضیح بده.»

دو وظیفهٔ متفاوت ایجاد می‌کند.

این روش به مدل کمک می‌کند سطح اصطلاحات و جزئیات پاسخ را با نیاز کاربر هماهنگ کند.

تعیین قالب خروجی

کاربر می‌تواند شکل خروجی مورد نظر را در پرامپت تعیین کند.

برای مثال:

«خروجی را به صورت ویکی‌متن مدیاویکی بنویس.»

یا:

«نتیجه را در قالب JSON ارائه کن.»

یا:

«پاسخ را بدون جدول و در پنج بخش تنظیم کن.»

تعیین قالب به‌ویژه زمانی اهمیت دارد که خروجی قرار است در نرم‌افزار، پایگاه داده یا فرایند دیگری استفاده شود.

استفاده از جداکننده‌ها

در پرامپت‌های طولانی می‌توان دستور و متن مرجع را از یکدیگر جدا کرد.

برای نمونه:

دستور:
متن زیر را خلاصه کن.
الزامات:
هیچ اطلاعاتی خارج از متن اضافه نکن.
متن:
---
[متن اصلی]
---

این شیوه به روشن‌شدن مرز میان دستور و داده کمک می‌کند. در راهنماهای فنی استفاده از ساختارهایی مانند Markdown یا XML برای تفکیک بخش‌های منطقی پرامپت مطرح شده است.[۱۰]

پرامپت و زمینه

مدل تنها دستور مستقیم کاربر را پردازش نمی‌کند؛ اطلاعات زمینه‌ای نیز می‌توانند بر پاسخ اثر بگذارند.

برای مثال می‌توان سندی را همراه این دستور ارائه کرد:

«پرسش را فقط بر اساس سند زیر پاسخ بده.»

افزودن منابع مرتبط به زمینه یکی از روش‌های فراهم‌کردن اطلاعاتی است که ممکن است در داده‌های آموزشی مدل وجود نداشته باشد یا نیازمند به‌روزرسانی باشد.[۱۱]

این روش در سامانه‌های تولید تقویت‌شده با بازیابی یا بازیابی افزوده به تولید (RAG) کاربرد گسترده‌ای دارد.

پرامپت و پنجرهٔ زمینه

پرامپت بخشی از پنجرهٔ زمینه (Context Window) مدل را اشغال می‌کند.

پنجرهٔ زمینه مقدار داده‌ای است که مدل می‌تواند در یک فرایند تولید در زمینهٔ فعال خود پردازش کند و معمولاً بر حسب توکن اندازه‌گیری می‌شود.[۱۲]

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

این مسئله هنگام پردازش کتاب‌ها و مجموعه‌های بزرگ اسناد اهمیت ویژه‌ای دارد.

زنجیرهٔ فکر

پرامپت زنجیرهٔ فکر (Chain-of-Thought Prompting) اصطلاحی پژوهشی برای روشی است که در آن نمونه‌هایی شامل مراحل میانی استدلال در پرامپت ارائه می‌شوند.

جیسون وی و همکاران در مقاله‌ای که در کنفرانس NeurIPS سال ۲۰۲۲ منتشر شد نشان دادند که ارائهٔ چند نمونهٔ دارای مراحل میانی استدلال می‌تواند عملکرد مدل‌های زبانی بزرگ را در برخی وظایف حسابی، استدلال عرفی و نمادین افزایش دهد.[۱۳]

این پژوهش یکی از آثار اثرگذار در مطالعهٔ رابطهٔ میان شیوهٔ پرامپت‌نویسی و عملکرد استدلالی مدل‌های زبانی شد.

پرامپت و تولید تصویر

در مدل‌های تولید تصویر، پرامپت می‌تواند ویژگی‌های تصویر مورد نظر را مشخص کند.

برای نمونه ممکن است شامل:

  • سوژه؛
  • محیط؛
  • نورپردازی؛
  • زاویهٔ دید؛
  • ترکیب‌بندی؛
  • بافت؛
  • نسبت تصویر؛
  • یا ویژگی‌های بصری دیگر

باشد.

در این کاربرد، زبان طبیعی به وسیله‌ای برای هدایت فرایند تولید تصویر تبدیل می‌شود.

پرامپت در تولید ویدئو و صوت

مدل‌های مولد ویدئو و صوت نیز می‌توانند بر اساس پرامپت عمل کنند.

در تولید ویدئو، کاربر ممکن است حرکت سوژه، دوربین، محیط یا توالی رویدادها را توصیف کند.

در تولید صوت نیز پرامپت می‌تواند محتوای صوتی یا ویژگی‌های مورد انتظار را مشخص کند.

به این ترتیب مفهوم پرامپت از یک فرمان متنی برای مدل زبان به رابطی عمومی‌تر برای سامانه‌های مولد چندوجهی گسترش یافته است.

پرامپت در برنامه‌نویسی

مدل‌های زبانی می‌توانند بر اساس توصیف زبان طبیعی کد تولید کنند.

برای مثال:

«تابعی در پایتون بنویس که یک فایل CSV را بخواند و ردیف‌های تکراری را حذف کند.»

در چنین کاربردی، پرامپت نقش نوعی مشخصات اولیهٔ مسئله را ایفا می‌کند.

با این حال کد تولیدشده باید آزمایش و بررسی شود، زیرا مدل می‌تواند کدی دارای خطا یا آسیب‌پذیری تولید کند.

پرامپت در پژوهش

در پژوهش علمی، پرامپت می‌تواند برای خلاصه‌سازی، استخراج اطلاعات، طبقه‌بندی داده‌ها، ترجمه و تحلیل اولیه استفاده شود.

اما پرامپت جایگزین منبع علمی یا روش تحقیق نیست.

برای مثال، دستور:

«ده منبع معتبر دربارهٔ موضوع X معرفی کن.»

به‌تنهایی تضمین نمی‌کند که منابع تولیدشده واقعی یا مرتبط باشند.

برای پژوهش علمی، منابع باید مستقل از پاسخ مدل راستی‌آزمایی شوند.

پرامپت در دانشنامه‌نویسی

در دانشنامه‌نویسی، پرامپت می‌تواند به صورت یک شیوه‌نامهٔ اجرایی برای مدل عمل کند.

یک پرامپت دانشنامه‌ای ممکن است مشخص کند که:

  • متن دارای مقدمه و بخش‌بندی موضوعی باشد؛
  • لحن دانشنامه‌ای رعایت شود؛
  • میان واقعیت و تفسیر تمایز گذاشته شود؛
  • ادعاهای مهم دارای منبع باشند؛
  • منابع ساختگی تولید نشوند؛
  • اصطلاحات تخصصی توضیح داده شوند؛
  • پیوندهای داخلی مناسب درج شوند؛
  • و خروجی با ویکی‌متن مدیاویکی سازگار باشد.

پرامپت در این حالت تنها یک سؤال نیست، بلکه مجموعه‌ای از قواعد برای تولید و سازمان‌دهی محتواست.

پرامپت و سوگیری

نحوهٔ صورت‌بندی پرامپت می‌تواند بر پاسخ مدل اثر بگذارد.

برای مثال:

«چرا سیاست X شکست خورد؟»

از ابتدا شکست سیاست را مفروض می‌گیرد.

در مقابل:

«چه شواهدی دربارهٔ موفقیت یا شکست سیاست X وجود دارد؟»

فضای بیشتری برای بررسی شواهد متفاوت ایجاد می‌کند.

این مسئله در موضوعات تاریخی، اجتماعی و سیاسی اهمیت دارد؛ زیرا فرض‌های موجود در پرسش ممکن است بر چارچوب پاسخ اثر بگذارند.

این پدیده با بحث گسترده‌تر سوگیری الگوریتمی و سوگیری در سامانه‌های هوش مصنوعی ارتباط دارد.

محدودیت‌های پرامپت

پرامپت هرقدر دقیق باشد کنترل مطلق بر پاسخ مدل ایجاد نمی‌کند.

مدل ممکن است:

  • بخشی از دستور را اشتباه تفسیر کند؛
  • اطلاعات نادرست تولید کند؛
  • محدودیتی را رعایت نکند؛
  • منبع نادرست ارائه کند؛
  • یا قالب مورد درخواست را به‌طور کامل رعایت نکند.

خروجی مدل‌های مولد ماهیتی احتمالاتی دارد و حتی پرامپت‌های مشابه می‌توانند در شرایط مختلف پاسخ‌های متفاوتی ایجاد کنند.[۱۴]

پرامپت و توهم هوش مصنوعی

یکی از محدودیت‌های مهم پرامپت این است که دستور دقیق نمی‌تواند به‌تنهایی صحت اطلاعات را تضمین کند.

برای مثال:

«فقط اطلاعات کاملاً صحیح ارائه کن.»

یک دستور است، نه سازوکاری مستقل برای راستی‌آزمایی حقیقت.

مدل ممکن است همچنان اطلاعاتی ظاهراً معتبر اما نادرست تولید کند.

در کاربردهای دانشنامه‌ای، تاریخی و علمی، استفاده از منابع قابل بررسی و راستی‌آزمایی مستقل ضروری است.

تزریق پرامپت

تزریق پرامپت (Prompt Injection) یکی از مسائل امنیتی مهم سامانه‌های مبتنی بر مدل‌های زبانی است.

در این نوع حمله، ورودی دستکاری‌شده می‌کوشد مدل یا برنامهٔ متصل به آن را وادار کند برخلاف دستور یا هدف مورد نظر سامانه رفتار کند.

NIST تزریق پرامپت را از آسیب‌پذیری‌های مهم سامانه‌های هوش مصنوعی مولد معرفی کرده و میان حملات مستقیم و غیرمستقیم تمایز گذاشته است.[۱۵]

تزریق مستقیم پرامپت

در تزریق مستقیم، مهاجم مستقیماً ورودی‌ای را برای تغییر رفتار مدل ارائه می‌کند.

برای مثال ممکن است تلاش کند دستورهای قبلی سامانه را نادیده بگیرد یا مدل را به انجام عملی خارج از هدف برنامه وادارد.

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

تزریق غیرمستقیم پرامپت

تزریق غیرمستقیم زمانی رخ می‌دهد که دستور مخرب نه مستقیماً از سوی کاربر، بلکه در محتوایی قرار گرفته باشد که مدل بعداً آن را دریافت یا بازیابی می‌کند.

این محتوا می‌تواند در:

  • صفحهٔ وب؛
  • سند؛
  • ایمیل؛
  • فایل؛
  • یا دادهٔ خارجی

قرار گرفته باشد.

NIST هشدار داده است که تزریق غیرمستقیم می‌تواند برنامه‌های یکپارچه‌شده با مدل زبانی را از طریق داده‌های بازیابی‌شده هدف قرار دهد.[۱۶]

امنیت پرامپت

تزریق پرامپت نشان می‌دهد که زبان طبیعی نباید به‌تنهایی به عنوان مرز امنیتی سامانه در نظر گرفته شود.

اگر مدل به ابزار یا داده‌های حساس دسترسی داشته باشد، کنترل دسترسی، اعتبارسنجی، محدودیت مجوزها و طراحی امنیتی مستقل ضروری است.

پروژهٔ امنیت هوش مصنوعی مولد OWASP نیز تزریق پرامپت را در فهرست خطرهای مهم برنامه‌های مبتنی بر مدل‌های زبانی قرار داده است.[۱۷]

پرامپت و تعامل انسان و رایانه

اهمیت تاریخی پرامپت در هوش مصنوعی مولد تا حد زیادی به تبدیل زبان طبیعی به رابطی برای کنترل سامانه‌های محاسباتی مربوط است.

در بسیاری از کاربردها، کاربر بدون نوشتن برنامهٔ رایانه‌ای می‌تواند هدف خود را با زبان معمولی بیان کند:

«این مقاله را خلاصه کن.»
«این داده‌ها را تحلیل کن.»
«برای این مسئله کد بنویس.»
«تصویری بر اساس این توصیف تولید کن.»

در نتیجه فاصله میان بیان هدف انسانی و استفاده از توان محاسباتی کاهش یافته است.

تفاوت پرامپت‌نویسی و برنامه‌نویسی

پرامپت‌نویسی و برنامه‌نویسی هر دو روشی برای هدایت رفتار یک سامانهٔ محاسباتی هستند، اما یکسان نیستند.

برنامهٔ رایانه‌ای معمولاً بر اساس نحو رسمی و قواعد مشخص اجرا می‌شود.

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

به همین دلیل پرامپت را نمی‌توان به‌طور عمومی معادل «کد» دانست.

پرامپت و عاملیت انسانی

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

مدل می‌تواند پیشنهادی تولید کند که دقیق، نادرست یا نامناسب باشد.

به همین دلیل در حوزه‌های حساس، پرامپت و پاسخ مدل نباید جایگزین ارزیابی تخصصی و تصمیم‌گیری مسئولانه شوند.

اهمیت پرامپت

پرامپت یکی از مفاهیم بنیادی در هوش مصنوعی مولد است، زیرا رابط میان هدف کاربر و فرایند تولید مدل را تشکیل می‌دهد.

اهمیت پرامپت را می‌توان در چند زمینه مشاهده کرد:

  • انتقال دستور به مدل؛
  • تعیین زمینهٔ مسئله؛
  • ارائهٔ نمونه؛
  • تعیین سبک و قالب پاسخ؛
  • واردکردن اسناد و اطلاعات مرجع؛
  • و هدایت مدل در وظایف پیچیده.

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

جمع‌بندی

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

مدل‌های زبانی متن پرامپت را به توکن تبدیل کرده و در چارچوب زمینه پردازش می‌کنند. توانایی مدل‌های بزرگ در استفاده از نمونه‌های موجود در پرامپت به توسعهٔ روش‌هایی مانند zero-shot، one-shot، few-shot و یادگیری درون‌زمینه‌ای انجامیده است.[۱۸]

پژوهش‌های بعدی نشان دادند که شیوهٔ سازمان‌دهی پرامپت می‌تواند بر عملکرد مدل در برخی مسائل پیچیده نیز اثر بگذارد؛ از جمله روش زنجیرهٔ فکر که در پژوهش‌های مربوط به استدلال چندمرحله‌ای بررسی شده است.[۱۹]

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

در کنار کاربردهای گسترده، پرامپت دارای محدودیت‌ها و مخاطرات امنیتی نیز هست. دستور دقیق تضمین‌کنندهٔ صحت خروجی نیست و حملاتی مانند تزریق پرامپت می‌توانند سامانه‌های متصل به منابع خارجی را هدف قرار دهند.[۲۰]

از این رو پرامپت را می‌توان نه «فرمان قطعی» برای ماشین، بلکه یکی از اصلی‌ترین ابزارهای ارتباط و هدایت سامانه‌های هوش مصنوعی مولد دانست.

جستارهای وابسته

منابع

کتاب‌شناسی

  • Brown, Tom B., Benjamin Mann, Nick Ryder, et al. “Language Models are Few-Shot Learners.” Advances in Neural Information Processing Systems 33 (2020): 1877–1901.
  • Liu, Pengfei, Weizhe Yuan, Jinlan Fu, Zhengbao Jiang, Hiroaki Hayashi, and Graham Neubig. “Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing.” ACM Computing Surveys 55, no. 9 (2023): 1–35.
  • National Institute of Standards and Technology. Artificial Intelligence Risk Management Framework: Generative Artificial Intelligence Profile. NIST AI 600-1. Gaithersburg, Maryland: NIST.
  • OpenAI. “Prompt Engineering.” OpenAI API Documentation.
  • Wei, Jason, Xuezhi Wang, Dale Schuurmans, et al. “Chain-of-Thought Prompting Elicits Reasoning in Large Language Models.” Advances in Neural Information Processing Systems 35 (2022): 24824–24837.