تصویر شاخص مقاله پرامپت خودانتقادی و بازنویسی Self-Refine

پرامپت خودانتقادی و بازنویسی؛ روش Self-Refine برای جواب بهتر

⏱ زمان مطالعه: حدود ۱۱ دقیقه
آموزش · پرامپت‌نویسی

بیشتر کاربران هوش مصنوعی یک عادت مشترک دارند: پرامپت را می‌نویسند، جواب اول را می‌گیرند و همان را برمی‌دارند. اما جواب اول تقریباً هیچ‌وقت بهترین جوابی نیست که مدل می‌تواند بدهد. تکنیک «خودانتقادی و بازنویسی» یا همان Self-Refine، مدل را وادار می‌کند اول جواب بدهد، بعد جوابش را مثل یک منتقد سخت‌گیر بکوبد و در پایان نسخه‌ای بهتر بسازد. تمام این کار در یک پیام و بدون هیچ ابزار اضافه‌ای انجام می‌شود.

چکیده. روش خودانتقادی و بازنویسی یک حلقه‌ی سه‌مرحله‌ای است: تولید پاسخ اولیه، نقد صریح همان پاسخ، و بازنویسی بر پایه‌ی آن نقد. پژوهش اصلی این روش با عنوان Self-Refine در سال ۲۰۲۳ منتشر شد و بنا بر گزارش نویسندگان، در مجموعه‌ای از وظیفه‌های متنی و برنامه‌نویسی به‌طور میانگین حدود ۲۰ درصد بهبود مطلق نسبت به تولید مستقیم پاسخ به‌دست آورد، آن هم بدون هیچ آموزش اضافه‌ای. در این مقاله پرامپت آماده، چهار نسخه‌ی موقعیتی، محدودیت‌های واقعی تکنیک و یک چک‌لیست اجرایی را می‌خوانید.

تصویر شاخص مقاله پرامپت خودانتقادی و بازنویسی Self-Refine

۱) چرا جواب اول هیچ‌وقت بهترین جواب نیست

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

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

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

۲) روش خودانتقادی و بازنویسی دقیقاً چیست

این تکنیک یک حلقه‌ی سه‌مرحله‌ای است که هر سه مرحله را همان مدل انجام می‌دهد:

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

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

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

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

سه مرحله تکنیک Self-Refine شامل پاسخ، نقد و بازنویسی

۳) پرامپت آماده‌ی خودانتقادی و بازنویسی

ساده‌ترین نسخه‌ی این تکنیک که می‌توانید همین حالا کپی کنید و در انتهای هر درخواستی بگذارید:

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

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

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

۴) پشتوانه‌ی پژوهشی این تکنیک

ایده‌ی خودانتقادی و بازنویسی در مقاله‌ای با عنوان Self-Refine در سال ۲۰۲۳ صورت‌بندی شد. طبق گزارش نویسندگان، آن‌ها این روش را روی مجموعه‌ای از وظیفه‌های متنوع، از بازنویسی متن و پاسخ به پرسش گرفته تا تولید و بهینه‌سازی کد، آزمودند و به‌طور میانگین حدود ۲۰ درصد بهبود مطلق نسبت به تولید مستقیم پاسخ گزارش کردند.

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

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

۵) مرز واقعی تکنیک؛ جایی که خودانتقادی کافی نیست

یکی از پژوهش‌های شناخته‌شده‌ی بعدی با عنوان «مدل‌های زبانی بزرگ هنوز نمی‌توانند استدلال خود را تصحیح کنند» نشان داد که وقتی پای استدلال منطقی و ریاضی در میان باشد، خودتصحیحی بدون بازخورد بیرونی نه‌تنها لزوماً کمک نمی‌کند، بلکه گاهی پاسخ درست را به پاسخ نادرست تبدیل می‌کند. دلیلش روشن است: اگر مدل خطای خودش را تشخیص نمی‌داد، از ابتدا آن خطا را مرتکب نمی‌شد.

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

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

۶) چهار نسخه‌ی موقعیتی از این پرامپت

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

نسخه‌ی نوشتن و محتوا

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

نسخه‌ی کد و برنامه‌نویسی

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

نسخه‌ی تصمیم و تحلیل کسب‌وکار

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

نسخه‌ی آموزش و توضیح

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

الگوی مشترک هر چهار نسخه یکی است: به مدل بگویید در مرحله‌ی نقد «چه کسی» باشد و «با چه معیاری» نگاه کند. این دو قید، تفاوت میان نقد تشریفاتی و نقد مفید است.

محدودیت خودتصحیحی مدل‌های زبانی بدون بازخورد بیرونی

۷) پنج اشتباه رایج در اجرای این تکنیک

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

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

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

اشتباه چهارم: نقد بدون معیار. «بهترش کن» یک معیار نیست. «کوتاه‌ترش کن بدون حذف هیچ نکته‌ی کلیدی» یک معیار است.

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

۸) ترکیب با دیگر تکنیک‌های پرامپت‌نویسی

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

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

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

۹) چک‌لیست اجرایی هفت‌خطی

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

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

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

آیا این تکنیک روی همه‌ی مدل‌ها کار می‌کند؟

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

چند بار باید حلقه را تکرار کنم؟

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

تفاوت این روش با گفتن «بهترش کن» چیست؟

در حالت «بهترش کن» مدل نمی‌داند چه چیزی ایراد داشته و معمولاً فقط واژه‌ها را عوض می‌کند. در این روش، مرحله‌ی نقد ایرادها را صریح و مشخص روی کاغذ می‌آورد و بازنویسی روی همان فهرست مشخص انجام می‌شود.

آیا این تکنیک جلوی توهم و خطای واقعیت را می‌گیرد؟

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

آیا استفاده از این روش مصرف توکن را بالا می‌برد؟

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

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

(0 رأی)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *