من به این فکر میکردم که بعد از درخت افکار چه میآید — اگر بتوانید روی مراحل استدلال جستجو کنید، چرا روی اعمال هم جستجو نکنید؟ این دقیقاً همان کاری است که LATS (جستجوی درخت عامل زبانی) انجام میدهد، و به همین دلیل است که الان آن را میخوانم. مقاله اندی ژو، کای یان، میچال شلاپنتوخ-روتمن، هائوهان وانگ و یو-شیونگ وانگ (ICML 2024، arXiv:2310.04406) واضحترین تلفیق استدلال، عمل و برنامهریزی در یک چارچوب عامل واحد است، و نتایج واقعاً بهسختی قابل رد کردن هستند.
مقاله
مشکل اصلی که LATS به آن میپردازد، شکاف ساختاری در کارهای قبلی عاملهاست. ReAct استدلال و عمل را در هم میآمیزد، اما مکانیزمی برای بازگشت و امتحان مسیر متفاوت وقتی مسیر اشتباه میرود، ندارد. درخت افکار امکان انشعاب روی مراحل استدلال را فراهم میکند، اما بر دانش داخلی LM عمل میکند — نمیتواند ابزارها را فراخوانی کند یا بازخورد خارجی را در طول جستجو دریافت کند. Reflexion خوداصلاحی کلامی اضافه میکند، اما حلقه بازتلاش خطی آن مسیر جدیدی را بدون کاوش در جایگزینها تعهد میکند. LATS هر سه ایده را با یک ستون فقرات واقعی جستجوی درخت مونت کارلو (MCTS) ادغام میکند، و به عوامل LLM اجازه میدهد چندین شاخه را کاوش کنند، بازخورد محیط واقعی دریافت کنند و وقتی مسیری شکست میخورد، به عقب برگردند.
ماشینآلات فنی یک حلقه MCTS شش مرحلهای است: انتخاب (گره بعدی برای کاوش را از طریق فرمول UCT انتخاب کنید)، گسترش (n عمل کاندید را از LM نمونهبرداری کنید)، ارزیابی (هر گره را با یک تابع ارزش ترکیبی امتیاز دهید)، شبیهسازی (به حالت پایانی گسترش دهید)، بازپخش (مقادیر اجداد را بهروزرسانی کنید)، و بازتاب (در شکست، خلاصه کلامی از آنچه اشتباه رفته تولید کنید و آن را بهعنوان زمینه ذخیره کنید). تابع ارزش شایسته توجه است: V(s) = λ·LM(s) + (1−λ)·SC(s)، که در آن LM(s) تخمین خود LM از کیفیت مسیر پس از دریافت بازخورد محیط است، و SC(s) یک امتیاز خودسازگاری بر اساس تعداد دفعاتی است که آن عمل در گرههای خواهر نمونهبرداری میشود. این یک مدل پاداش آموزشدیده نیست — تابع ارزش کاملاً مبتنی بر پرامپت است.
ایدههای کلیدی
- در HumanEval، GPT-4 + LATS به 92.7٪ pass@1 میرسد، در مقایسه با 91.0٪ برای GPT-4 + Reflexion و 56.9٪ برای GPT-3.5 + ReAct بهتنهایی. GPT-3.5 + LATS به 83.8٪ میپرد.
- در HotPotQA، LATS (CoT + ReAct) به 0.71 تطبیق دقیق میرسد در مقایسه با 0.32 برای پایه ReAct — بیش از دو برابر کردن دقت چندمرحلهای.
- در WebShop (پیمایش وب + خرید)، LATS امتیاز 75.9 (38.0٪ موفقیت) در مقایسه با Reflexion در 64.2 (35.0٪) دارد — یک شکاف معنادار در کاری که نیاز به مدیریت حالت در بسیاری از صفحات دارد.
- در بازی 24 (یک پازل استدلال خالص)، LATS به 0.44 موفقیت میرسد در مقایسه با 0.20 ToT، با وجود استفاده از همان ستون فقرات GPT-4.
- بهطور شگفتانگیز، LATS گرههای کمتری را برای یافتن راهحل نسبت به ToT گسترش میدهد (بهطور متوسط 66.65 در مقابل 84.05 گره در HotPotQA در k=50) و توکنهای کمتری مصرف میکند (173,290 در مقابل 210,215)، حتی اگر از نظر تئوری گرانتر به نظر برسد.
چه چیزی پایدار است — و چه چیزی نه
اعداد معیار واقعی هستند و چارچوب از نظر مفهومی تمیز است. فرمول UCT یک مصالحه اصولی کاوش–بهرهبرداری فراهم میکند که BFS/DFS موردی ToT فاقد آن است. ادغام بازخورد محیط خارجی در تابع ارزش — بهجای دروننگری خالص LM — حرکت درستی است، و نتایج آن را نشان میدهند.
اما مقاله یک فرض حیاتی را حمل میکند که نویسندگان بدون آزمایش کامل آن را میپذیرند: LATS نیاز به توانایی بازگرداندن محیط به حالت قبلی دارد. بدون checkpointing، نمیتوانید درخت را منشعب کنید — وقتی عملی انجام شد، متعهد هستید. نویسندگان اشاره میکنند که برای وظایف LM این اغلب با "کپی-چسباندن ورودیهای متنی تاریخی" قابل مدیریت است، اما برای محیطهای عمل واقعی (پایگاههای داده، سیستمهای فایل، APIها با عوارض جانبی) این یک نیاز سخت است که بسیاری از سیستمهای تولید نمیتوانند آن را برآورده کنند. نتایج WebShop، اگرچه بهتر از پایههاست، نشان میدهد که در محیطهای پیچیده، خودبازتابها تمایل به عمومی شدن دارند تا خاص — عوامل میتوانند متوقف شوند و اشتباهات سطحی متفاوت اما ساختاری یکسان را تکرار کنند. مقاله به این اشاره میکند اما هیچ درمانی ارائه نمیدهد.
همچنین هیچ جداسازی وجود ندارد که سهم ساختار MCTS را در مقابل طراحی تابع ارزش جدا کند. این محتمل است که یک رویکرد انشعاب سادهتر با همان تابع ارزش ترکیبی، بخش زیادی از شکاف را پر کند، و نویسندگان این را مستقیماً آزمایش نمیکنند.
چرا این برای هوش مصنوعی مالی مهم است
دفترهای Beancount یک محیط تقریباً ایدهآل برای جستجوی درخت به سبک LATS به یک دلیل اصلی هستند: هر دفتری توسط یک مخزن git پشتیبانی میشود. نیاز بازگرداندن حالت — محدودیت سختی که LATS را در بسیاری از محیطهای واقعی غیرعملی میکند — بهطور پیشپاافتاده توسط git checkout یا git stash برآورده میشود. یک عامل write-back میتواند ورودیهای دفتر کاندید را در چندین شاخه پیشنهاد کند، آنها را در برابر محدودیتهای ترازنامه (تابع ارزش) امتیاز دهد، و فقط مسیر بالاترین امتیاز را ثبت کند. شاخههای شکستخورده یک بازتاب کلامی دریافت میکنند: "ورودی ثبتشده داراییها = بدهیها + حقوق صاحبان سهام را نقض کرد زیرا نوع حساب اشتباه طبقهبندی شده بود."
طراحی تابع ارزش ترکیبی نیز مستقیماً قابل استفاده است. برای یک عامل دفتر، LM(s) یک ورودی پیشنهادی را بر اساس تناسب معنایی امتیاز میدهد (آیا این بهعنوان دسته درست به نظر میرسد؟)، در حالی که SC(s) ردیابی میکند که عامل چقدر تراکنشهای مشابه گذشته را بهطور سازگار طبقهبندی میکند — یک بررسی خودسازگاری طبیعی ریشهدار در تاریخچه خود دفتر.
بازگرداندن حالت تنها جایی است که من در قیاس مالی عقبنشینی میکنم. دفترهای واقعی اغلب اثرات پاییندستی دارند: یک ورودی ثبتشده یک فاکتور را فعال میکند که یک گردش کار پرداخت را فعال میکند. در این موارد فرض LATS شکسته میشود. بهطور خاص برای Beancount، جایی که دفتر یک فایل متن ساده تحت کنترل git است و تغییرات محلی قبل از فعال شدن هر محرک پاییندستی رخ میدهد، فرض برقرار است — اما این یک محدودیت طراحی است که باید صریح نگه داشته شود.
چه چیزی بعد بخوانید
- برنامهریزی مبتنی بر MCTS بدون مدلهای محیط: "استدلال با مدل زبان، برنامهریزی با مدل جهان است" (Hao و همکاران، 2023، arXiv:2305.14992) — RAP، که LATS بر آن بنا میشود و آن را بهبود میبخشد.
- تابع ارزش LM چقدر خوب تعمیم مییابد؟ "بیایید قدم به قدم تأیید کنیم" (Lightman و همکاران، 2023، arXiv:2305.20050) — مدلهای پاداش فرآیندی بهعنوان جایگزینی برای توابع ارزش مبتنی بر پرامپت.
- برنامهریزی ایمن چندمرحلهای تحت برگشتناپذیری: "تصمیمگیری با مدلهای زبان از طریق پرامپتدهی متوالی" (Creswell و همکاران، 2023) — یک رویکرد برنامهریزی سادهتر که از نیاز بازگرداندن حالت اجتناب میکند.
