آخرین بروزرسانی در ۲۸ تیر ۱۴۰۳ توسط Dr.Arman
با پیشرفتهای روزافزون در حوزه هوش مصنوعی و پردازش زبان طبیعی، یافتن روشهای موثر برای بهبود دقت و کیفیت پاسخهای مدلهای زبانی از اهمیت ویژهای برخوردار است. یکی از روشهای جدید و موثر پرامپت نویسی در این زمینه، روش Self-Consistency یا “خود-سازگاری” است. این روش، که به عنوان دنبالهای از روش CoT (Chain of Thought) شناخته میشود، با تکرار یک پرامپت چندین بار و اتخاذ نتیجهای که بیشترین تکرار را داشته باشد، به دست میآید.
روش پرامپت نویسی Self-Consistency چیست؟
تکنیک Self-Consistency به زبان ساده، مدل را به چالش میکشد که یک پرامپت را چندین بار پاسخ دهد و نتیجهای که بیشترین تعداد تکرار را داشته باشد به عنوان پاسخ نهایی انتخاب میکند. این روش در ترکیب با روش CoT میتواند نتایج دقیقتری ارائه دهد.
مثال از روش پرامپت نویسی Self-Consistency
برای درک بهتر این روش، به یک مثال ساده در مورد تحلیل ایمیلها میپردازیم. فرض کنید که یک شرکت نرمافزاری روزانه صدها ایمیل دریافت میکند و میخواهد از یک مدل برای دستهبندی ایمیلها به عنوان “مهم” یا “غیرمهم” استفاده کند. در اینجا مثالی از یک ایمیل آورده شده است:
سلام،
من یک نقص امنیتی بزرگ در سیستم شما کشف کردهام. اگرچه استفاده از آن آسان نیست، اما امکان دسترسی به تمامی دادههای کاربران شما وجود دارد. یک اثبات مفهومی به پیوست ارسال شده است. لطفاً این مسئله را هر چه زودتر برطرف کنید.
با احترام،
دانی
حالا در قالب یک پرامپت، از هوش مصنوعی مثلا gpt-4o میخواهیم ایمیل بالا را به عنوان “مهم” یا “غیرمهم” دستهبندی کند.
اکنون این کار را چندین بار انجام میدهیم و پاسخهای مختلفی دریافت میکنیم:
پاسخ 1: فرستنده یک نقص امنیتی بزرگ در سیستم کشف کرده است. این مهم است زیرا میتواند منجر به نفوذ به دادهها شود. من این ایمیل را “مهم” دستهبندی میکنم.
پاسخ 2: فرستنده یک نقص امنیتی بزرگ در سیستم کشف کرده است، اما هیچ اثبات مفهومی ارائه نداده و استفاده از آن آسان نیست. من این ایمیل را “غیرمهم” دستهبندی میکنم.
پاسخ 3: فرستنده احتمالاً یک هکر است و ممکن است به سیستم دسترسی داشته باشد. این مهم است زیرا میتواند منجر به نفوذ به دادهها شود. من این ایمیل را “مهم” دستهبندی میکنم.
با تولید چندین زنجیره فکر و اتخاذ پاسخی که بیشترین تکرار را داشته باشد (در اینجا “مهم”)، میتوانیم پاسخ نهایی مدل را با دقت بیشتری تعیین کنیم.
نوشتن پرامپت با استفاده از روش Self-Consistency
برای نوشتن پرامپت با استفاده از روش Self-Consistency، باید چند مرحله اساسی را دنبال کنیم. در اینجا یک روش کلی و مثال مشخص برای ایجاد یک پرامپت آورده شده است.
مراحل کلی:
انتخاب سوال یا مسئله: مسئلهای را انتخاب کنید که نیاز به پاسخ دقیق و صحیح دارد.
ایجاد پرامپت اولیه: مسئله را به شکل یک پرامپت قابل فهم برای مدل تبدیل کنید.
تولید چندین پاسخ مختلف: مدل را چندین بار با همان پرامپت پرسیده و پاسخهای مختلف را جمعآوری کنید.
انتخاب پاسخ نهایی: پاسخهایی که بیشترین سازگاری و تکرار را دارند به عنوان پاسخ نهایی انتخاب کنید.
مثال: مسئله حساب
فرض کنید مسئله ما به این شکل است:
Q: در یک جعبه 24 توپ قرمز و 18 توپ آبی وجود دارد. اگر 12 توپ قرمز و 7 توپ آبی را برداریم، چند توپ باقی میماند؟
- 1. انتخاب مسئله
ما مسئلهای درباره تعداد توپهای باقیمانده در یک جعبه پس از برداشتن تعدادی از آنها داریم.
- 2. ایجاد پرامپت اولیه
پرامپت به شکلی که مدل بتواند به آن پاسخ دهد نوشته میشود:
Q: در یک جعبه 24 توپ قرمز و 18 توپ آبی وجود دارد. اگر 12 توپ قرمز و 7 توپ آبی را برداریم، چند توپ باقی میماند؟
- 3. تولید چندین پاسخ مختلف
مدل را چندین بار با همان پرامپت پرسیده و پاسخهای مختلف را جمعآوری میکنیم:
Output 1:
در جعبه 24 توپ قرمز و 18 توپ آبی وجود دارد. اگر 12 توپ قرمز و 7 توپ آبی برداریم، توپهای باقیمانده به ترتیب 24 – 12 = 12 توپ قرمز و 18 – 7 = 11 توپ آبی است. بنابراین، در مجموع 12 + 11 = 23 توپ باقی میماند. پاسخ 23 است.
Output 2:
در جعبه 24 توپ قرمز و 18 توپ آبی وجود دارد. اگر 12 توپ قرمز و 7 توپ آبی برداریم، توپهای باقیمانده به ترتیب 24 – 12 = 12 توپ قرمز و 18 – 7 = 11 توپ آبی است. در مجموع 12 + 11 = 23 توپ باقی میماند. پاسخ 23 است.
Output 3:
در جعبه 24 توپ قرمز و 18 توپ آبی وجود دارد. اگر 12 توپ قرمز و 7 توپ آبی برداریم، توپهای باقیمانده به ترتیب 24 – 12 = 12 توپ قرمز و 18 – 7 = 11 توپ آبی است. بنابراین، در مجموع 12 + 7 = 19 توپ باقی میماند. پاسخ 19 است.
- 4. انتخاب پاسخ نهایی
پاسخهایی که بیشترین سازگاری و تکرار را دارند به عنوان پاسخ نهایی انتخاب میشود. در اینجا، دو پاسخ اول به عدد 23 و پاسخ سوم به عدد 19 میرسند. برای انتخاب پاسخ نهایی، پاسخهایی که بیشترین تکرار را دارند (در اینجا 23) انتخاب میشود.
نتیجه:
پرامپت نهایی با استفاده از روش Self-Consistency به مدل ارائه شده و پاسخهای مختلف جمعآوری شده و پاسخ نهایی به شکل زیر انتخاب میشود:
پاسخ نهایی: 23
نتایج روش Self-Consistency
روش پرامپت نویسی Self-Consistency نشان داده است که میتواند نتایج را در وظایف اساسی، استدلالهای عمومی و وظایف نمادین بهبود بخشد. حتی زمانی که روش CoT به تنهایی مؤثر نبوده است، روش Self-Consistency توانسته است نتایج بهتری ارائه دهد.
مزایا و معایب
مزایای Self-Consistency شامل افزایش دقت و اطمینان در پاسخها است، زیرا از پاسخهای متعدد برای رسیدن به یک نتیجه قطعی استفاده میشود. این روش به خصوص در وظایف پیچیده مانند محاسبات ریاضی و استدلال منطقی بسیار مؤثر است.
از معایب این روش میتوان به زمانبر بودن و نیاز به منابع محاسباتی بیشتر اشاره کرد، زیرا برای تولید چندین پاسخ نیاز به اجرای مدل به دفعات مکرر است. در مقابل، روش CoT میتواند سادهتر و سریعتر باشد اما ممکن است دقت کمتری داشته باشد.
جمعبندی
روش پرامپت نویسی Self-Consistency به عنوان یک بهبود قابل توجه بر روش پرامپت نویسی زنجیره فکر (CoT) عمل میکند. با ترکیب این تکنیکها و اتخاذ رأی اکثریت از پاسخهای زنجیره فکر، میتوانیم پرامپتهای مدل خود را بهبود دهیم و خروجیهای قابل اعتمادتر و دقیقتری بدست آوریم.
پرسشهای متداول
چگونه روش Self-Consistency نتایج مدلهای هوش مصنوعی را بهبود میبخشد؟
با تجمیع چندین پاسخ به یک پرامپت، روش Self-Consistency تضمین میکند که پاسخ نهایی به یک ورودی نمایانگر رأی اکثریت باشد که معمولاً دقیقتر و قابل اعتمادتر از پاسخهای فردی زنجیره فکر است.
منبع:
promptingguide

مطالب مرتبط