زنجیرهٔ چگالی؛ چطور از هوش مصنوعی خلاصه‌ای پُر و دقیق بگیریم

آموزش · پرامپت‌نویسی

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

چکیده. زنجیرهٔ چگالی یا Chain of Density روشی است که پژوهشگران دانشگاه کلمبیا و Salesforce در شهریور ۱۴۰۲ (سپتامبر ۲۰۲۳) معرفی کردند. ایدهٔ آن فشرده‌سازی تدریجی است: مدل اول یک خلاصهٔ رقیق می‌سازد، بعد چند بار آن را بازنویسی می‌کند و هر بار یکی‌دو «موجودیت مهمِ جاافتاده» را اضافه می‌کند، در حالی که طول خلاصه ثابت می‌ماند. در این آموزش متن کامل پرامپت، منطق پژوهش، یک مثال واقعی، نقطهٔ طلاییِ توقف و دو تمرین تعاملی را می‌بینی.
تکنیک زنجیرهٔ چگالی برای گرفتن خلاصهٔ پُر و دقیق از هوش مصنوعی

زنجیرهٔ چگالی یعنی چه

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

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

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

چرا خلاصهٔ اول همیشه رقیق است

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

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

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

پشتوانهٔ پژوهشی و منطق روش

این تکنیک در مقالهٔ «From Sparse to Dense: GPT-4 Summarization with Chain of Density Prompting» معرفی شد. نویسندگان آن گریفین آدامز، الکساندر فبری، فیصل لادک، اریک لمن و نوئمی الحداد از دانشگاه کلمبیا و Salesforce بودند و مقاله در کارگاه خلاصه‌سازیِ کنفرانس EMNLP سال ۲۰۲۳ ارائه شد.

پژوهشگران از مدل GPT-4 خواستند برای هر مقاله پنج خلاصهٔ پشت‌سرهم بسازد. خلاصهٔ اول عمداً رقیق و کم‌جزئیات بود. در هر مرحله مدل باید یک تا سه موجودیت مهمِ جدید از متن اصلی را که در خلاصهٔ قبلی نیامده بود پیدا می‌کرد و خلاصه را از نو می‌نوشت، طوری که طول ثابت بماند. چون طول تغییر نمی‌کرد، تنها راه جادادن اطلاعات تازه، فشرده‌کردن بقیهٔ متن بود.

یافتهٔ کلیدی این بود: چگالی اطلاعات در هر مرحله بالا می‌رفت، اما خواناییِ متن بی‌نهایت بهتر نمی‌شد. در ارزیابی انسانی، خوانندگان خلاصه‌های چگال‌تر از حالت پیش‌فرض GPT-4 را ترجیح می‌دادند، ولی چگال‌ترین خلاصه (مرحلهٔ پنجم) را هم دوست نداشتند، چون بیش‌ازحد فشرده و سخت‌خوان شده بود. نقطهٔ محبوبِ خوانندگان جایی در میانه بود؛ حدود مرحلهٔ دوم تا سوم، جایی که چگالی به سطح خلاصه‌های نوشتهٔ انسان نزدیک می‌شد.

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

متن کامل پرامپت

این نسخهٔ ساده‌شده را می‌توانی مستقیم استفاده کنی. متنی که می‌خواهی خلاصه شود را جای بخش آخر بگذار:

متن پایین را در سه دور خلاصه کن. طول هر خلاصه دقیقاً حدود ۸۰ کلمه و در هر سه دور ثابت بماند. دور ۱: یک خلاصهٔ کلی بنویس؛ اجازه داری مبهم و کم‌جزئیات باشد. دور ۲: یک تا سه «موجودیت مهمِ جاافتاده» را پیدا کن — یعنی نام، عدد، تاریخ، مکان، رویداد یا اصطلاح کلیدی که در متن هست ولی در خلاصهٔ دور ۱ نیامده. خلاصه را از نو بنویس، همان طول را حفظ کن، اما این موجودیت‌ها را هم پوشش بده. برای جا بازکردن، واژه‌های اضافه و عبارت‌های کلی را حذف کن، نه اطلاعات مهم را. دور ۳: همین کار را یک بار دیگر روی خلاصهٔ دور ۲ تکرار کن. در پایان فقط خلاصهٔ دور ۲ و دور ۳ را کنار هم بده و بگو کدام‌یک خواناتر مانده است. متن: «... اینجا متن خودت را بگذار ...»

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

یک مثال واقعی

فرض کن گزارشی داری دربارهٔ فروش یک فروشگاه اینترنتی. خلاصهٔ دور اول معمولاً چیزی شبیه این است:

«این گزارش عملکرد فروش فروشگاه را در فصل اخیر بررسی می‌کند و به روندها و چالش‌های مختلفی اشاره دارد و پیشنهادهایی برای بهبود ارائه می‌دهد.»

مراحل زنجیرهٔ چگالی؛ از خلاصهٔ رقیق و کلی تا خلاصهٔ فشرده و پرمعنا

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

«فروش فصل بهار ۱۸ درصد رشد کرد و به ۴٫۲ میلیارد تومان رسید، اما نرخ بازگشت کالا از ۶ به ۹ درصد بالا رفت. بیشترین رشد از دستهٔ لوازم خانگی و کمترین از پوشاک آمد. گزارش سه پیشنهاد می‌دهد: بازبینی عکس‌های محصول پوشاک، افزودن راهنمای سایز، و تمرکز تبلیغات فصل تابستان روی لوازم خانگی.»

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

نقطهٔ طلایی چگالی؛ کجا متوقف شویم

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

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

نقطهٔ طلایی زنجیرهٔ چگالی؛ تعادل میان فشردگی و خوانایی خلاصه

کجا به کار می‌آید و کجا نه

زنجیرهٔ چگالی جایی می‌درخشد که متن اصلی پر از واقعیت‌های مشخص باشد: گزارش‌های مالی، مقاله‌های خبری، یادداشت جلسه، مقالهٔ علمی، یا یک ایمیل بلندِ پر از جزئیات. هرجا که «چه کسی، چه چیزی، چند تا، کِی» مهم باشد، این روش سود می‌دهد.

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

چند اشتباه رایج

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

اشتباه دوم: پذیرفتنِ کورکورانهٔ آخرین خلاصه. چگال‌ترین نسخه لزوماً بهترین نیست؛ همیشه دو نسخهٔ آخر را مقایسه کن.

اشتباه سوم: اجازه‌دادن به مدل که موجودیت‌ها را از خودش بسازد. تأکید کن موجودیت‌ها باید از متن اصلی بیایند، نه از دانش عمومی مدل؛ وگرنه ریسک توهم بالا می‌رود.

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

پرسش‌های پرتکرار دربارهٔ زنجیرهٔ چگالی

این روش روی مدل‌های رایگان هم جواب می‌دهد؟

بله. پژوهش اصلی روی GPT-4 انجام شد، ولی منطق روش به مدل خاصی وابسته نیست. روی مدل‌های کوچک‌تر ممکن است لازم شود صریح‌تر بنویسی «طول را دقیقاً هشتاد کلمه نگه دار» و «فقط از متن بالا موجودیت بردار».

چند دور بازنویسی کافی است؟

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

تفاوتش با اینکه فقط بگویم «با جزئیات بیشتر خلاصه کن» چیست؟

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

می‌شود با کنترل قالب خروجی ترکیبش کرد؟

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

از کجا بفهمم چگالی واقعاً بالا رفته؟

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

✏️ تمرین

در زنجیرهٔ چگالی، هنگام افزودن موجودیت‌های تازه به خلاصه، چه چیزی باید ثابت بماند؟

🔒

این تمرین ویژهٔ اعضاست

برای دیدن این بخش باید عضو ویژه (VIP) باشی. با شمارهٔ موبایلت وارد شو تا ۱۴ روز دسترسی رایگان فعال شود.

🎁 ورود / ثبت‌نام و شروع ۱۴ روز رایگان
قبلاً عضو شده‌ای؟ فقط کافی است وارد شوی. اشتراک: از ۱۹۹٬۰۰۰ تومان / ماه
جمع‌بندی. زنجیرهٔ چگالی یک ترفند ساده با نتیجه‌ای بزرگ است: طول خلاصه را ثابت نگه می‌داری و مدل را وادار می‌کنی هر بار واقعیت‌های مشخص بیشتری را جای واژه‌های اضافه بگذارد. حاصل، خلاصه‌ای است که هم کوتاه است و هم پُر؛ فقط یادت باشد که چگالی نقطهٔ طلایی دارد و فشرده‌ترین نسخه لزوماً بهترین نیست. این درس بخشی از مجموعهٔ آموزش جامع پرامپت‌نویسی است؛ برای پرامپت‌های تازه و جدیدترین اخبار هوش مصنوعی هم به کانال @MrChatGPT_IR سر بزن.
(0 رأی)

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

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