در درس قبلی با معنی مهندسی پرامپت و کلیات آن آشنا شدید در این قسمت کمی بیشتر به آن می پردازیم و روش های دیگر سوال کردن از هوش مصنوعی جهت دریافت پاسخ مناسب رو بررسی می کنیم.
شلیک چند پرامپت
یکی دیگر از روش های مهندسی پرامپت، ارسال چند درخواست نمونه به هوش مصنوعی می باشد. که به اصطلاح شلیک چند درخواست (تیر) هم می گویند.
به طور مثال در تصویر بالا ما چند سوال و پاسخ با گزینه های مثبت و منفی به ورودی چت جی بی تی می دهیم و یک سوال در انتها می پرسیم. پاسخی که سیستم به ما میدهد فقط در خط مثبت یا منفی بودن (مقدار بولین) می باشد.
(به غیر از تصویر بالا تمامی تصاویر در این مجموعه آموزشی توسط هوش مصنوعی ساخته شده اند)
نحوه ساختار بندی پرامپت ها در این روش بسیار مهم می باشد. از آنجایی که ما سه نمونه نوشته ایم پاسخ سیستم فقط مثبت و یا منفی بود.
در مورد ساختار بیشتر بدانیم
یکی از موارد استفاده از این روش، زمانی است که نیاز دارید خروجی به یک شیوه خاص ساختاری باشد که توصیف کردن آن برای مدل دشوار است. برای درک این موضوع، بهتر است یک مثال مرتبط را در نظر بگیریم:
فرض کنید شما نیاز دارید با تجزیه و تحلیل یک سری از مقالات، نام و شغل شهروندان معروف در شهرهای نزدیک را جمعآوری کنید.
شما میخواهید مدل هر مقاله را بخواند و یک لیستی از نامها و شغلها را در فرمت “نام نام خانوادگی و شغل” تولید کند. برای اینکه مدل این کار را انجام دهد، میتوانید به آن چند نمونه نشان دهید:
نمونه های ورودی به مدل هوش مصنوعی
مثال یک:
دکتر حسین رسولی یک وکیل بسیار معروف در تهرانپارس می باشد.
خروجی:
نام : دکتر حسین زسولی
شغل: وکیل
منطقه: تهرانپارس
مثال دو:
مهندس محمد آزادی یه متحصص حوزه بازاریابی دیجیتال در ستارخان هست.
نام: محمد آزادی
شغل: متخصص حوزه دیجیتال
منطقه: ستارخان
با نشان دادن این نمونه ها می توانید الگوی مشخصی را مدل بدهید و از این به بعد هر مقاله و یا متنی به هوش مصنوعی بدهید طبق ساختار مثال شما خروجی ها را به شما رائه خواهد کرد.
کاربردهای فراوان این نوع ساختار
این نوع ساختار و ارائه درخواست به هوش مصنوعی کاربردهای بسیار زیادی دارد. به طور مثال خلاصه سازی متن های ، خروجی گرفتن از یک سری اطلاعات خاص و بسیاری کاربرهای دیگر که میتوان مثال زد.
همین چند روز پیش بود که ما برای جابه جایی محصولات از یک سایت به سایت دیگر که مقادیر دیتابیس متفاوتی داشت از همین روش استفاده کردیم و در زمان ما بسیار صرفه جویی شده بود.
انواع شلیک پرامپت
کلمه “شلیک” در اینجا معادل “نمونه” است. به جز پرامپت (درخواست) کمترین نمونه (few-shot prompting)، دو نوع دیگر از تحریک با تعداد نمونههای مختلف وجود دارند.
لطفاً بیش از حد تفکر نکنید!
تفاوت تنها بین این نوعها در تعداد نمونههایی است که به مدل نشان داده میشود.
انواع آنها به شرح زیر است:
درخواست بدون نمونه (0-shot prompting): هیچ نمونهای به مدل نشان داده نمیشود.
درخواست با یک نمونه (1-shot prompting): تنها یک نمونه به مدل نشان داده میشود.
درخواست با تعداد کمترین نمونهها (few-shot prompting): دو یا بیشتر از دو نمونه به مدل نشان داده میشود.
این انواع نشان میدهند که چقدر دادههای آموزشی یا نمونهها به مدل برای انجام یک وظیفه خاص یا تولید خروجی مطلوب داده میشود.
درخواست بدون نمونه (0-shot prompting)
درخواست بدون نمونه (0-shot prompting) شکل ابتداییترین درخواست است.
در این حالت، به مدل یک درخواست بدون نمونه داده میشود و از آن خواسته میشود که یک پاسخ تولید کند.
به عبارت دیگر، در این نوع درخواست، مدل هیچ نمونه کاملی را ندیده است. تمام دستورها و درخواستهای نقشی که تاکنون دیدهاید، نمونههایی از درخواست بدون نمونه هستند.
یک مثال از درخواست بدون نمونه عبارت زیر است:
لطفاً ۲+۲ را جمع کنید.
این درخواست 0-shot است زیرا مدل را با هیچ نمونه کاملی آشنا نکردهایم.
درخواست با یک نمونه (1-shot prompting)
درخواست با یک نمونه (1-shot prompting) زمانی رخ میدهد که به مدل تنها یک نمونه را نشان میدهید. به عنوان مثال، معادل 1-shot درخواست بدون نمونه “Add 2+2:” به صورت زیر است:
3+3 : 6
2 +2 !
ما تنها یک نمونه کامل (Add 3+3: 6) را به مدل نشان دادهایم، بنابراین این یک درخواست 1-shot است.
درخواست با تعداد کمترین نمونهها (few-shot prompting)
درخواست با تعداد کمترین نمونهها (few-shot prompting) زمانی رخ میدهد که به مدل ۲ یا بیشتر از ۲ نمونه را نشان میدهید. همه درخواستهایی که قبل از بخش نوعهای مختلف درخواست آمدهاند، درخواستهای few-shot بودهاند. معادل few-shot درخواست برای درخواستهای فوق به شکل زیر است:
Add 3+3: 6
Add 5+5: 10
Add 2+2:
این اتفاق به وقوع میپیوندد زیرا حداقل ۲ نمونه کامل (Add 3+3: 6 و Add 5+5: 10) را به مدل نشان دادهایم. به طور عمومی، هر چه تعداد نمونههای بیشتری به مدل نشان داده شود، خروجی بهتر خواهد بود. بنابراین، در اکثر موارد، استفاده از درخواستهای few-shot نسبت به درخواستهای بدون نمونه و یک نمونه ترجیح داده میشود.
تکنیک های ترکیبی
همانطور که تا اکنون دیده شد، درخواستها (پرامپت ها) میتوانند فرمتها و پیچیدگیهای مختلفی داشته باشند.
آنها میتوانند شامل متن مرجع، دستورالعملها و چندین مثال ورودی-خروجی باشند.
با این حال، تاکنون فقط به صورت جداگانه به بررسی کلاسهای مختلف درخواستها پرداختهایم. ترکیب این تکنیکهای مختلف درخواستها میتواند منجر به درخواستهای قدرتمندتر شود.
اینجا یک مثال از یک درخواست است که شامل متن مرجع، دستورالعملها و چندین مثال ورودی-خروجی است:
توییتر یک پلتفرم شبکهای است که کاربران میتوانند پیامهای کوتاهی به نام “توییت” ارسال کنند.
توییتها میتوانند مثبت یا منفی باشند و ما میخواهیم بتوانیم توییتها را به عنوان مثبت یا منفی دستهبندی کنیم. در زیر چند مثال از توییتهای مثبت و منفی آمده است. لطفاً توییت آخر را به درستی دستهبندی کنید.
س: توییت: “چه روز زیبایی!”
این توییت مثبت است یا منفی؟
ج: مثبت
س: توییت: “از این کلاس متنفرم”
این توییت مثبت است یا منفی؟
ج: منفی
س: توییت: “عاشق جیبهای شلوارها هستم”
ج:
در مثال بالا جواب هوش مصنوعی کلمه “مثبت” خواهد بود.
با افزودن زمینه به مثالهای اضافی، اغلب میتوانیم عملکرد هوش مصنوعی را در کارهای مختلف بهبود ببخشیم.