نشریه آفتاب خاورمیانه

مهندسی پرامپت؛ از اسطوره تا الگوریتم

منتشرشده در نشریه شماره ۴۱ آفتاب خاورمیانه - فروردین ۱۴۰۵

1405/01/26

مرتضی اکبرپور

مدیر تحلیل و آنالیز • بانک خاورمیانه

 

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

 

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

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

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

مولفه‌های پرامپت

فرض کنید می‌خواهیم از هوش مصنوعی برای نوشتن نیازهای کسب‌وکار (که معمولا در سازمان‌ها بین ‌واحدهای کسب‌وکار و مهندسان نرم‌افزار موضوع بحث است) کمک بگیریم.

 

داستان کاربر (User Story)

نیازمندی‌های کسب‌وکار توسط کارشناسان خبره کسب‌وکار براساس الگو و استاندارد مشخصی نوشته می‌شود (این الگو زبان مشترک بین کارشناسان کسب‌وکار و فناوری اطلاعات است). مثال زیر یک نمونه از الگویی است که کارشناسان کسب‌وکار باید آن را بنویسند:

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

 

معیارهای پذیرش (Acceptance Criteria)

در این قسمت از الگوی Given/When/Then استفاده می‌کنیم. این الگو کار تمام‌شده را دقیقا تشریح می‌کند و برای آن یک مورد تست (هر نیازی که مطرح می‌کنیم باید قبل از راستی‌آزمایی و نحوه تست آن را نیز به‌طور واضح توصیف کنیم) نوشته می‌شود.

• Given (با فرض اینکه): وضعیت اولیه را توصیف می‌کند. به‌عنوان مثال «با فرض اینکه موجودی انبار ۱۰ عدد است».

• When (وقتی که): اقدامی که انجام می‌شود. به‌عنوان مثال «وقتی تعداد کالای درخواستی از موجودی بیشتر باشد».

• Then (آنگاه): نتیجه‌ای که انتظار داریم. به‌عنوان مثال «آنگاه پیام «موجودی انبار کافی نیست» نمایش داده شود».

 

 

چک‌لیست (Definition of Ready)

گاهی مهمترین بخش نیاز کسب‌وکار بیشتر مربوط به "چگونگی" است؛ این الزامات معمولا شامل موارد زیر هستند: زمان و سرعت (پیش‌نویس گزارش حداکثر تا ۲۴ ساعت آینده آماده شود) و امنیت و محرمانگی (اطلاعات مشتریان در خروجی به‌صورت ناشناس، بدون نام و کد ملی، درج شود).

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

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

نیاز خام کسب‌وکار به‌شرح زیر است:

«واحد منابع انسانی می‌خواهد بتواند مرخصی کارکنان را به‌صورت سیستمی مدیریت کند تا کارکنان درخواست مرخصی ثبت کنند، مدیر مستقیم آن را تایید یا رد کند و واحد منابع انسانی گزارش وضعیت مرخصی‌ها را داشته باشد

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

1) داستان کاربر را با ساختار استاندارد زیر بنویسید:

 «به‌عنوان یک... می‌خواهم... تا بتوانم...»

2) برای هر داستان کاربر، معیارهای پذیرش را با Given / When / Then بنویسید.

3) سناریوهای ساده خطا را هم در نظر بگیرید، مانند:

اگر کارمند تعداد روزهای مرخصی کافی نداشته باشد

اگر مدیر هنوز پاسخ نداده باشد

اگر درخواست قبلا رد شده باشد

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

5) خروجی را به‌صورت مرتب و بخش‌بندی‌شده ارائه دهید.

وقتی متن بالا را به هوش مصنوعی بدهید، به‌شکل قابل‌توجهی نیاز کسب‌وکاری شما را برای برنامه‌نویسان و مهندسان نرم‌افزار آماده می‌کند؛ در زمانی بسیار کوتاهتر از آن چیزی که در روش‌های دستی صرف می‌شود.

از اسطوره تا الگوریتم

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

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

کلمات کلیدی
تدوین گر