LATS: جستجوی درختی عامل زبانی — استدلال، عمل و برنامهریزی در یک چارچوب واحد
من در این فکر بودم که بعد از «درخت افکار» (Tree of Thoughts) چه میآید — اگر بتوان در مراحل استدلال جستجو کرد، چرا در اعمال جستجو نکنیم؟ این دقیقاً همان کاری است که LATS (جستجوی درختی عامل زبانی) انجام میدهد و به همین دلیل است که اکنون در حال مطالعه آن هستم. مقاله نوشته شده توسط Andy Zhou، Kai Yan، Michal Shlapentokh-Rothman، Haohan Wang و Yu-Xiong Wang (ICML 2024, arXiv:2310.04406) شفافترین تلفیق استدلال، عمل و برنامهریزی در یک چارچوب واحد عامل است و نتایج آن واقعاً غیرقابل چشمپوشی است.
مقاله
مسئله اصلی که LATS به آن میپردازد، یک شکاف ساختاری در کارهای قبلی روی عاملها است. روش ReAct استدلال و عمل را در هم میآمیزد اما مکانیزمی برای بازگشت و امتحان کردن مسیری متفاوت در زمانی که یک مسیر به خطا میرود ندارد. «درخت افکار» امکان انشعاب در مراحل استدلال را فراهم میکند اما بر دانش درونی مدل زبانی متکی است — این روش نمیتواند ابزاری را فراخوانی کند یا بازخورد خارجی را در حین جستجو دریافت کند. روش Reflexion خوداصلاحی زبانی را اضافه میکند، اما حلقه تکرار خطی آن به این معنی است که بدون بررسی گزینههای جایگزین، به یک مسیر جدید متعهد میشود. LATS هر سه ایده را با یک بدنه اصلی «جستجوی درختی مونت کارلو» (MCTS) ترکیب میکند و به عاملهای مدل زبانی اجازه میدهد تا چندین شاخه را کاوش کنند، بازخوردهای واقعی از محیط دریافت کنند و در صورت شکست یک مسیر، به عقب بازگردند.
مکانیزم فنی آن یک حلقه شش مرحلهای MCTS است: انتخاب (Selection - انتخاب گره بعدی برای کاوش از طریق فرمول UCT)، گسترش (Expansion - نمونهبرداری از n عمل کاندید از مدل زبانی)، ارزیابی (Evaluation - امتیازدهی به هر گره با یک تابع ارزش ترکیبی)، شبیهسازی (Simulation - اجرای مسیر تا رسیدن به حالت نهایی)، پسانتشار (Backpropagation - بهروزرسانی مقادیر اجداد)، و تامل (Reflection - در صورت شکست، تولید یک خلاصه زبانی از آنچه اشتباه پیش رفته و ذخیره آن به عنوان متن زمینه). تابع ارزش شایسته توجه است: V(s) = λ·LM(s) + (1−λ)·SC(s)، که در آن LM(s) تخمین خود مدل زبانی از کیفیت مسیر پس از دریافت بازخورد محیطی است، و SC(s) یک امتیاز ثبات درونی (self-consistency) بر اساس تعداد دفعات تکرار آن عمل در گرههای همزاد است. این یک مدل پاداش آموزشدیده نیست — تابع ارزش کاملاً مبتنی بر پرامپت (prompt-driven) است.
ایدههای کلیدی
- در بنچمارک HumanEval، ترکیب GPT-4 + LATS به نرخ موفقیت ۹۲.۷٪ (pass@1) میرسد، در حالی که این رقم برای GPT-4 + Reflexion معادل ۹۱.۰٪ و برای GPT-3.5 + ReAct به تنهایی ۵۶.۹٪ است. GPT-3.5 + LATS به ۸۳.۸٪ جهش میکند.
- در HotPotQA، روش LATS (ترکیب CoT + ReAct) به ۷۱٪ تطابق دقیق (exact match) میرسد در حالی که پایه ReAct تنها ۳۲٪ است — یعنی بیش از دو برابر شدن دقت در استدلالهای چند مرحلهای (multi-hop).
- در WebShop (ناوبری وب + خرید)، LATS امتیاز ۷۵.۹ (نرخ موفقیت ۳۸.۰٪) را در برابر Reflexion با امتیاز ۶۴.۲ (۳۵.۰٪) کسب میکند — شکافی معنادار در وظیفهای که نیازمند مدیریت حالت در صفحات مختلف است.
- در Game of 24 (یک معمای استدلالی خالص)، LATS به نرخ موفقیت ۴۴٪ میرسد در حالی که ToT به نرخ ۲۰٪ دست یافته بود، علیرغم اینکه هر دو از بدنه GPT-4 استفاده میکردند.
- بهطور شگفتانگیزی، LATS گرههای کمتری را برای یافتن راه حل نسبت به ToT گسترش میدهد (بهطور متوسط ۶۶.۶۵ گره در مقابل ۸۴.۰۵ گره در HotPotQA با k=50) و از توکنهای کمتری استفاده میکند (۱۷۳,۲۹۰ در مقابل ۲۱۰,۲۱۵)، حتی اگر در تئوری گرانتر به نظر برسد.
چه چیزی پابرجا میماند — و چه چیزی نه
اعداد بنچمارک واقعی هستند و چارچوب از نظر مفهومی تمیز است. فرمولبندی UCT یک توازن اصولی بین کاوش (exploration) و بهرهبرداری (exploitation) ایجاد میکند که جستجوهای ad-hoc مانند BFS/DFS در ToT فاقد آن هستند. ادغام بازخورد محیطی خارجی در تابع ارزش — به جای صرفاً دروننگری مدل زبانی — حرکت درستی است و نتایج آن را نشان میدهد.
با این حال، یک فرض حیاتی در مقاله نهفته است که نویسندگان آن را تایید کردهاند اما به اندازه کافی تحت فشار آزمایش قرار ندادهاند: LATS به قابلیت بازگرداندن محیط به حالت قبلی نیاز دارد. بدون قابلیت نقطهگذاری (checkpointing)، شما نمیتوانید درخت را منشعب کنید — به محض اینکه عملی انجام شد، به آن متعهد شدهاید. نویسندگان اشاره میکنند که برای وظایف مدل زبانی، این موضوع اغلب با «کپی-پیست کردن ورودیهای متنی قبلی» قابل مدیریت است، اما برای محیطهای عملی واقعی (پایگاههای داده، سیستمهای فایل، APIهایی با اثرات جانبی)، این یک الزام سخت است که بسیاری از سیستمهای عملیاتی نمیتوانند آن را برآورده کنند. نتایج WebShop، هرچند بهتر از خطوط پایه است، نشان میدهد که در محیطهای پیچیده، تاملهای درونی (self-reflections) تمایل دارند به جای هدفمند بودن، کلی شوند — عاملها ممکن است در تکرار اشتباهاتی که از نظر ظاهری متفاوت اما از نظر ساختاری یکسان هستند، گیر کنند. مقاله به این موضوع اشاره کرده اما راه حلی برای آن ندارد.
همچنین هیچ مطالعه ابلیشنی (ablation) برای جداسازی سهم ساختار MCTS در مقابل طراحی تابع ارزش وجود ندارد. محتمل است که یک رویکرد انشعاب سادهتر با همان تابع ارزش ترکیبی، بخش بزرگی از شکاف را پر کند، و نویسندگان این موضوع را مستقیماً آزمایش نکردهاند.
چرا این برای هوش مصنوعی مالی اهمیت دارد
دفاتر کل Beancount یک محیط تقریباً ایدهآل برای جستجوی درختی به سبک LATS هستند، به یک دلیل کلیدی: هر دفترکل توسط یک مخزن git پشتیبانی میشود. بازگشت وضعیت — همان الزام سختی که LATS را در بسیاری از سناریوهای دنیای واقعی غیرعملی میکند — در اینجا به سادگی با git checkout یا git stash انجام میشود. یک عامل ثبتکننده میتواند ورودیهای کاندید دفتر روزنامه را در چندین شاخه پیشنهاد دهد، آنها را بر اساس محدودیتهای ترازنامه (تابع ارزش) ارزیابی کند و تنها مسیری را که بالاترین امتیاز را دارد ثبت (commit) کند. شاخههای شکستخورده یک تامل زبانی دریافت میکنند: «ثبت ارسال شده پا یداری معادله داراییها = بدهیها + سرمایه را نقض کرد زیرا نوع حساب اشتباه طبقهبندی شده بود.»
طراحی تابع ارزش ترکیبی نیز مستقیماً قابل اجرا است. برای یک عامل دفترکل، LM(s) به یک ثبت پیشنهادی بر اساس تناسب معنایی امتیاز میدهد (آیا این شبیه به دستهبندی درست است؟)، در حالی که SC(s) میزان ثبات عامل در طبقهبندی تراکنشهای مشابه گذشته را ردیابی میکند — یک بررسی ثبات درونی طبیعی که ریشه در تاریخچه خود دفترکل دارد.
فرض بازگشت وضعیت تنها جایی است که من در مورد آنالوژی مالی کمی تردید دارم. دفاتر کل واقعی اغلب اثرات پاییندستی دارند: یک ثبت نهایی شده ممکن است منجر به صدور فاکتور شود که خود یک گردش کار پرداخت را فعال میکند. در آن موارد، فرض LATS از هم میپاشد. اما مخصوصاً برای Beancount، که در آن دفترکل یک فایل متن-ساده تحت کنترل git است و تغییرات پیش از هرگونه محرک پاییندستی، محلی هستند، این فرض صادق است — اما این یک محدودیت طراحی است که ارزش دارد صریحاً به آن توجه شود.
چه چیزی را بعداً بخوانیم
- برنامهریزی مبتنی بر MCTS بدون مدلهای محیطی: "Reasoning with Language Model is Planning with World Model" (Hao et al., 2023, arXiv:2305.14992) — روش RAP که LATS مستقیماً بر پایه آن ساخته شده و از آن بهتر عمل میکند.
- تابع ارزش مدل زبانی تا چه حد تعمیمپذیر است؟ "Let's Verify Step by Step" (Lightman et al., 2023, arXiv:2305.20050) — مدلهای پاداش فرآیند به عنوان جایگزینی برای توابع ارزش مبتنی بر پرامپت.
- برنامهریزی چند مرحلهای ایمن در شرایط برگشتناپذیری: "Decision-Making with Language Models via Successive Prompting" (Creswell et al., 2023) — یک رویکرد برنامهریزی سادهتر که از نیاز به بازگشت وضعیت اجتناب میکند.
