بهینهسازی پرامپتها و تنظیم رفتارهای خودکار در مدلهای زبانی بزرگ همیشه با یک مانع بزرگ ریاضی روبهرو است: متن ماهیتی گسسته دارد و گرادیانی برای اجرای پسانتشار در آن تعریف نمیشود. از طرف دیگر، آموزش کامل مدلها یا تنظیمات مبتنی بر یادگیری تقویتی بسیار پرهزینهاند و فراخوانی مکرر APIها نیز هزینه ارزی را بهسرعت بالا میبرد. دستکاری دستی پرامپتها مقیاسپذیر نیست و توسعهدهنده به سازوکاری خودکار، بدون نیاز به مشتق و کمهزینه نیاز دارد.
در چنین فضایی، الگوریتمهای فراابتکاری الهامگرفته از طبیعت مانند بهینهسازی ازدحام ذرات (Particle Swarm Optimization یا PSO) و بهینهسازی کلونی مورچگان (Ant Colony Optimization یا ACO) به دنیای هوش مصنوعی بازگشتهاند. این متدها بدون نیاز به ساختار دیفرانسیلپذیر، تنها با اتکا به یک تابع برازش کارآمد و ارزان، فضاهای پارامتری پرامپت را جستوجو میکنند و وظایف مسیریابی بین چندین ایجنت را بر مبنای ردپای فرومون سامان میدهند.
اگر برای فراخوانی API مدلها با چالش پرداخت ارزی مواجه هستید یا از گیتویهای واسط سازگار با OpenAI استفاده میکنید، بودجهبندی تعداد فراخوانیها اهمیت دوچندان پیدا میکند. با الگوریتمهای ازدحامی میتوان در جمعیتی کوچک (حدود 10 تا 30 عضو) و در تکرارهای محدود، خروجیهای ساختاریافته و مسیرهای تصمیمگیری ایجنتها را با کمترین هزینه به نقطه بهینه رساند.
بهینهسازی الهامگرفته از طبیعت (Bio-inspired optimization) دوباره در دنیای مدلهای زبانی بزرگ (LLM) مطرح شده است. مقاله LMPSO (به شماره arXiv:2504.09247) از بهینهسازی ازدحام ذرات (Particle Swarm Optimization یا PSO) استفاده میکند؛ به این ترتیب که سرعت (velocity) هر ذره یک پرامپت (Prompt) است و مدل، کاندید بعدی را تولید میکند. این رویکرد روی خروجیهای ساختاریافته (Structured Output) متوالی (مانند عبارتهای ریاضی یا برنامهها) بسیار خوب جواب میدهد. مقاله Model Swarms (به شماره arXiv:2410.11163) با هر متخصصِ مدل زبانی مثل یک ذرهی PSO روی خمینه (Manifold) وزنهای مدل برخورد میکند و تنها با 200 نمونه، 13.3% بهبود میانگین را نسبت به 12 خط مبنا (Baseline) روی 9 دیتاست گزارش داده است. رویکرد SwarmPrompt (کنفرانس ICAART 2025) الگوریتمهای PSO و گرگ خاکستری را برای بهینهسازی پرامپت ترکیب میکند. مقاله AMRO-S (به شماره arXiv:2603.12933) با الهام از بهینهسازی کلونی مورچگان (Ant Colony Optimization یا ACO)، متخصصهای فرومونی برای مسیریابی ایجنتهای چندگانه ارائه میدهد که دستاوردهای درخشانی دارد: 4.7 برابر سرعت بیشتر، شواهد (Evidence) مسیریابی قابلتفسیر، و بهروزرسانی ناهمگام با دروازه کیفیت (quality-gated) که استنتاج را از یادگیری جدا میکند. در این درس، PSO را روی فضای پارامترهای پرامپت و ACO را روی مسیریابی ایجنت پیادهسازی میکنیم؛ همچنین بررسی خواهیم کرد که چرا این الگوریتمهای کلاسیک برای عصر مدلهای زبانی مناسباند و کجاها نباید سراغشان رفت.
مسئله
پرامپتی دارید که در ارزیابی وظیفه (Task) شما امتیاز 62% میگیرد و میخواهید آن را بهتر کنید. حرکت اولیهی ناشیانه، دستکاری دستی و بدون گرادیان (gradient) است که اصلاً مقیاس نمیپذیرد. یادگیری تقویتی (Reinforcement Learning) هم به سیگنالهای پاداش و مسیرهای پیشروی شبیهسازیشدهی (Rollout) کافی برای آموزش نیاز دارد. انتشار رو به عقب (Backpropagation) روی پرامپتها هم عملاً شدنی نیست؛ چون پرامپت یک رشته متنی گسسته است، نه یک پارامتر مشتقپذیر.
بهینهسازی کلاسیک الهامگرفته از طبیعت — یعنی PSO برای فضاهای جستوجوی پیوسته و ACO برای انتخاب مسیر — دقیقاً برای همین شرایط طراحی شده است: بدون نیاز به گرادیان، مبتنی بر جمعیت و ارزان بهازای هر ارزیابی. وقتی این روشها را برای گام جستوجوی بدون گرادیان با مدلهای زبانی ترکیب کنید، به یک بهینهساز فوقالعاده کاربردی میرسید.
همین الگوها برای مسیریابی ایجنتها در سیستمهای چندایجنت هم صدق میکنند. ردپای فرومونی به سبک ACO ثبت میکند که کدام ایجنت روی کدام نوع وظیفه بهترین نتیجه را داده است؛ به مسیریاب (Router) اجازه میدهد از این ردپا بهرهبرداری کند و همزمان فرومونها را تبخیر میکند تا مسیرها دوباره قابل کشف باشند.
مفاهیم
یادآوری الگوریتم PSO (کندی و ابرهارت، 1995)
بهینهسازی ازدحام ذرات: جمعیتی از ذرات در یک فضای جستوجوی پیوسته حضور دارند. هر ذره دارای موقعیت x_i و سرعت v_i است. در هر تکرار:
v_i <- w * v_i + c1 * r1 * (p_best_i - x_i) + c2 * r2 * (g_best - x_i)
x_i <- x_i + v_i
evaluate fitness(x_i)
update p_best_i if improved
update g_best if global best
که در آن p_best بهترین موقعیت شخصیِ ذره، g_best بهترین موقعیت کل ازدحام (swarm)، ضرایب w, c1, c2 وزنهای اینرسی (Inertia)، شناختی و اجتماعی، و r1, r2 ضرایب تصادفی هستند.
الگوریتم PSO روی خروجیهای مدل زبانی — LMPSO
مقاله arXiv:2504.09247 الگوریتم PSO را برای خروجیهای ساختاریافتهی تولیدشده با مدل زبانی (عبارتهای ریاضی، برنامهها) تطبیق میدهد. هر ذره یک خروجی کاندید است. سرعت در واقع پرامپتی است که توضیح میدهد چطور خروجی فعلی را به سمت بهترین موقعیت فردی یا سراسری تغییر دهیم. سپس مدل زبانی خروجی جدید را بر اساس همین پرامپتِ سرعت تولید میکند. «اینرسیِ» سرعت نیز پرامپتی مانند «تغییرات تدریجی و کوچک ایجاد کن» خواهد بود.
این روش در شرایط زیر عالی عمل میکند:
- خروجی ساختاریافته باشد (پارسشدنی و ارزیابیپذیر باشد).
- تابع برازش (Fitness Function) خودکار باشد (اجرای تستها، ارزیابی محاسباتی).
- جمعیت کوچک باشد (حدود 10 تا 30 ذره) تا تعداد کل فراخوانیهای مدل زبانی مهارپذیر بماند.
اما اگر سنجش تابع برازش نیاز به بازبینی انسانی داشته باشد، این رویکرد جواب نمیدهد؛ چون هزینه بهازای هر تکرار سرسامآور میشود.
رویکرد Model Swarms
مقاله arXiv:2410.11163 الگوریتم PSO را از لایه خروجی برمیدارد و به لایهی خودِ مدل میبرد. هر «ذره» یک مدل زبانی متخصص (پارامترها) است. ازدحام ذرات با یک بهروزرسانی بدون گرادیان، پارامترها را به سمت بهترین حالت جمعی هدایت میکند. نتیجهی گزارششده: 13.3% بهبود میانگین نسبت به 12 خط مبنا روی 9 دیتاست، آن هم فقط با 200 نمونه در هر تکرار.
نکتهی کلیدی اینجاست که مدلهای متخصصِ زبانی از قبل روی یک خمینهی پارامتری مشترک (وزنهای تطبیقدهنده [Adapter]، دلتاهای LoRA) به هم نزدیکاند. بنابراین اجرای PSO روی این زیرفضای کمبُعد، ارزان و کارآمد است.
یادآوری الگوریتم ACO (دوریگو، 1992)
بهینهسازی کلونی مورچگان: مورچهها گرافی را میپیمایند؛ هر مسیر یک ردپای فرومون دارد. احتمال حرکت مورچه با قدرت فرومون وزندهی میشود. مورچههایی که وظیفه را به پایان میرسانند، متناسب با کیفیت راهحل، فرومون ترشح میکنند. فرومون نیز در طول زمان تبخیر و کمرنگ میشود.
الگوریتم AMRO-S — روش ACO برای مسیریابی ایجنتها
مقاله arXiv:2603.12933 از ACO برای مسیریابی چندایجنت استفاده میکند. هر نوع وظیفه یک «مقصد» است و هر ایجنت یک مسیر احتمالی به شمار میرود. فرومونها مسیرهایی را که خروجیهای باکیفیت تولید میکنند قویتر میکنند. دستاوردهای کلیدی این رویکرد عبارتاند از:
- شواهد مسیریابی قابلتفسیر. قدرت فرومون یک سیگنال خوانا و قابلدرک برای انسان است.
- بهروزرسانی ناهمگام با دروازه کیفیت. فرومونها فقط بعد از قبولی در بررسیهای کیفی بهروز میشوند؛ امری که استنتاج را از فرایند یادگیری جدا میکند.
- 4.7 برابر سرعت بیشتر در بنچمارک مسیریابی چندایجنت.
دروازه کیفیت نقش حیاتی دارد: بدون آن، ایجنتهایی که سریع اما اشتباه جواب میدهند فرومون جمع میکنند و کل سیستم روی مسیرهای اشتباه قفل میشود.
چه زمانی از PSO یا ACO برای مدلهای زبانی استفاده کنیم؟
از PSO استفاده کنید وقتی:
- فضای جستوجو پیوسته است یا به پارامترهای پیوسته نگاشت میشود (امبدینگ پرامپتها، وزنهای LoRA، پارامترهای عددی تولید متن).
- محاسبه تابع برازش ارزان و خودکار است.
- اندازه جمعیت میتواند کوچک بماند (10 تا 30).
از ACO استفاده کنید وقتی:
- با یک مسئله مسیریابی (Routing) یا انتخاب مسیر روبهرو هستید.
- تصمیمها در طول زمان تقویت میشوند (همان تیپ وظایف دوباره برمیگردند).
- برای تصمیمهای مسیریابی به شواهد قابلتفسیر نیاز دارید.
از هیچکدام استفاده نکنید وقتی:
- تابع برازش به بازبینی دستی و انسانی نیاز دارد (هزینه هر تکرار بیش از حد بالا میرود).
- فضای جستوجو طوری گسسته و ترکیبیاتی است که PSO آن را پوشش نمیدهد (در این حالت سراغ الگوریتمهای ژنتیک بروید).
- تصمیمهای بلادرنگ به تاخیر (Latency) بسیار پایینی نیاز دارند (PSO و ACO در مقایسه با روشهای ابتکاری تکگذره کندتر همگرا میشوند).
چرا روشهای الهامگرفته از طبیعت همچنان برترند؟
روشهای مبتنی بر گرادیان به سیگنالهای مشتقپذیر نیاز دارند. خروجیهای مدل زبانی و تصمیمهای مسیریابی به این سادگیها مشتقپذیر نیستند. روشهای شبهگرادیانی (مثل مسیریابهای آموزشدیده با یادگیری تقویتی، بهینهسازهای پرامپت به سبک DPO) کار میکنند، اما آموزش پرهزینهای دارند.
الگوریتمهای PSO و ACO تنها به یک تابع ارزیاب نیاز دارند. اگر بتوانید به یک خروجی کاندید یا تصمیم مسیریابی امتیاز بدهید، بهینهسازی روی آن فضا امکانپذیر است؛ همین موضوع آستانهی ورود و پیادهسازی آنها را بسیار پایین میآورد.
محدودیتهای عملی
- بودجهی جمعیت. N ذره × T تکرار × هزینه هر ارزیابی. برای ارزیابیهای مدل زبانی با هزینهی تقریبی 0.02 دلار بهازای هر فراخوانی، اجرای 50 تکرار از یک PSO با 20 ذره حدود 20 دلار هزینه میبرد. هزینهها را از قبل برآورد کنید.
- اکتشاف در برابر بهرهبرداری (Exploration vs exploitation). نرخ تبخیر فرومون و اینرسی PSO با هم دادوستد دارند؛ تبخیر خیلی سریع باعث فراموشی راهحلها میشود و تبخیر خیلی کند سیستم را در بهینههای محلی اولیه گیر میاندازد.
- انحراف فاجعهبار (Catastrophic drift). اگر چشمانداز تابع برازش تغییر کند (ناهماهنگی در توزیع دادهها یا همان Distribution Shift)، هر دو الگوریتم ممکن است ابتدا همگرا شوند و سپس واگرا گردند. پایداریِ بهترین برازش را پیوسته پایش کنید.
ساخت آن
کد code/main.py این موارد را پیادهسازی میکند:
- کلاس
LMPSO— الگوریتم PSO روی پارامترهای عددی پرامپت (وزنهای دمای تولید و top_k). «تولید مدل زبانی» برای هر ذره به صورت یک تابع برازش اسکریپتی شبیهسازی شده است. این الگوریتم 30 تکرار اجرا میشود و همگرایی g_best را نمایش میدهد. - کلاس
AMRO_S— مسیریابی به سبک ACO با 3 ایجنت، 4 نوع وظیفه، ماتریس فرومون و 100 وظیفهی هدایتشده. توزیع (نوع وظیفه ← انتخاب ایجنت) را در طول زمان چاپ میکند تا شکلگیری ردپا را نشان دهد. - مقایسه: مسیریابی تصادفی در برابر مسیریابی ACO روی جریانی یکسان از وظایف، به همراه سنجش کیفیت و تاخیر.
اجرا کنید:
python3 code/main.py
خروجی مورد انتظار:
- برای LMPSO: برازش g_best در طول 30 تکرار، از مقداری تصادفی به سطحی نزدیک به بهینه میرسد.
- برای AMRO-S: جدول فرومون برای هر نوع وظیفه روی ایجنت مناسب تثبیت میشود؛ مسیریابی ACO از نظر کیفیت حدود 30 تا 40 درصد بهتر از حالت تصادفی عمل میکند و با کم کردن دفعات تلاش مجدد، تاخیر را هم کاهش میدهد.
کاربرد آن
راهنمای outputs/skill-swarm-optimizer.md به شما کمک میکند برای مسائل بهینهسازی مدلهای زبانی یا ایجنتها، بین PSO، ACO، الگوریتمهای ژنتیک و بهینهسازهای مبتنی بر گرادیان دست به انتخاب بزنید.
تحویل آن به محیط عملیاتی
- از کوچک شروع کنید. 10 تا 20 ذره و 20 تا 50 تکرار کافی است. فقط در صورتی مقیاس را بالا ببرید که منحنی همگرایی بهبود واضحی نشان دهد.
- فرومونها یا مقدار g_best را در هر تکرار ثبت کنید. دیباگ کردن بهینهسازهای مبتنی بر ازدحام بدون ثبت ردپا کابوس است.
- بهروزرسانیها را با دروازه کیفیت فیلتر کنید. بهویژه در مسیریابی ACO: ایجنتهایی که پاسخ اشتباه را سریع تحویل میدهند اصلاً نباید فرومون جمع کنند.
- هنگام ناهماهنگی در توزیع دادهها، تبخیر را بازنشانی کنید. وقتی توزیع دادههای ارزیابی تغییر میکند، فرومونهای قبلی بیاستفاده میشوند؛ نرخ تبخیر را ریست کنید یا موقتاً آن را دو برابر بالا ببرید.
- برای هزینه هر تکرار سقف تعیین کنید. متریک هزینه بهازای هر تکرار را لاگ کنید. الگوریتم PSOای که برای هر تکرار 500 دلار خرج برمیدارد تا تنها 0.5% بهبود ایجاد کند، ارزش بردن به پروداکشن را ندارد.
تمرینها
- اسکریپت
code/main.pyرا اجرا کنید. روند همگرایی LMPSO را بررسی کنید. اندازه جمعیت را با مقادیر 5، 10، 20 و 50 آزمایش کنید. در چه اندازهای زمان رسیدن به همگرایی اشباع میشود؟ - یک آزمایش «انحراف فاجعهبار» پیاده کنید: بعد از تکرار 30ام، تابع برازش را تغییر دهید. الگوریتم PSO با چه سرعتی با شرایط جدید هماهنگ میشود؟ آیا بازنشانی
p_bestفایدهای دارد؟ - به AMRO-S یک دروازه کیفیت اضافه کنید: رسوب فرومون تنها در صورتی مجاز باشد که امتیاز ارزیابی بالاتر از 0.7 باشد. این کار چه تغییری در روند همگرایی نسبت به نسخه بدون دروازه ایجاد میکند؟
- مقاله LMPSO (به شماره arXiv:2504.09247) را بخوانید. مفهوم «سرعت در قالب پرامپت» در این مقاله را با سرعت عددی در کد خودتان تطبیق دهید. چه بخشهایی در شبیهسازی جا مانده و چه بخشهایی حفظ شده است؟
- مقاله AMRO-S (به شماره arXiv:2603.12933) را بخوانید. سازوکار تفکیکشدهی «مسیر سریع استنتاج» با بهروزرسانی ناهمگام فرومون را پیادهسازی کنید. این کار زیر بار کاری مداوم چه تاثیری بر تاخیر سیستم میگذارد؟
اصطلاحات کلیدی
| اصطلاح | در گفتوگوها | معنای فنی و دقیق |
|---|---|---|
| PSO | بهینهسازی ازدحام ذرات | کندی و ابرهارت 1995؛ بهینهساز مبتنی بر جمعیت و بدون نیاز به گرادیان. |
| ACO | بهینهسازی کلونی مورچگان | دوریگو 1992؛ بهینهسازی مسیرها بر مبنای ردپای فرومون. |
| LMPSO | الگوریتم PSO با تولید مدل زبانی | مقاله arXiv:2504.09247؛ سرعت در قالب پرامپت بیان میشود و مدل کاندیدها را تولید میکند. |
| Model Swarms | الگوریتم PSO روی وزنهای مدل متخصص | مقاله arXiv:2410.11163؛ بهروزرسانی بدون گرادیان روی زیرفضای پارامترهای مدل. |
| AMRO-S | الگوریتم ACO برای مسیریابی ایجنتها | مقاله arXiv:2603.12933؛ ماتریس فرومون روی حاصلضرب نوع وظیفه در ایجنت. |
| p_best / g_best | بهترین فردی / بهترین سراسری | بهترین راهحلهای دیدهشده تا این لحظه، بهازای هر ذره و در کل ازدحام. |
| Pheromone | حافظهی مسیریابی | میزان وزن روی یک یال؛ با گذر زمان تبخیر میشود و با کیفیت بالا تقویت میگردد. |
| Quality-gated update | یادگیری فقط از اجراهای خوب | شرطیسازی ترشح فرومون به قبولی در آزمون بررسی کیفیت. |
| Catastrophic drift | ناهماهنگی در توزیع دادهها | تغییر چشمانداز تابع برازش؛ حالتی که در آن p_best و فرومونهای قدیمی ناکارآمد میشوند. |
برای مطالعهی بیشتر
- کندی و ابرهارت — Particle Swarm Optimization — مقاله اصلی PSO در سال 1995
- دوریگو — Ant Colony Optimization — پایههای الگوریتم ACO در سال 1992
- LMPSO — Language Model Particle Swarm Optimization — الگوریتم PSO برای خروجیهای ساختاریافتهی مدل زبانی
- Model Swarms — gradient-free LLM expert optimization — بهینهسازی PSO روی زیرفضای وزنهای مدل
- AMRO-S — ant-colony multi-agent routing — مسیریابی مبتنی بر فرومون همراه با دروازه کیفیت
