چیت‌شیت

مناظره، نقش‌ها و پنل‌های بازبینی

Debate, Roles and Review Panels

اجرای N ایجنت در R دور، تقسیم کار بین طراح، مجری، ناقد و اعتبارسنج، و مشروط‌سازی بازبینی‌ها به حد نصاب (quorum).

  • ۱۳ بخش
  • ۴ درس مرتبط
  • کد و دستورها عیناً از دوره‌ی اصلی
فهرست مطالب
  1. پروتکل مناظره
  2. توپولوژی‌های مناظره
  3. چهار نقش بنیادین
  4. پایپ‌لاین نقش‌ها در کد
  5. معماری تیم نرم‌افزاری
  6. پیام‌های تابلوی تسک‌ها
  7. API پنل بازبینی
  8. کد حد نصاب و بودجه
  9. پیش‌فرض‌ها و ارقام
  10. حالت‌های شکست
  11. اعدادی که باید به خاطر سپرد
  12. پرسش‌ها
  13. چک‌لیست انتشار

پروتکل مناظره

گام‌به‌گام
  1. هر یک از N ایجنتیک پاسخ اولیه برای پرسش تولید می‌کند.
  2. دور r = 2..Rهر ایجنت پاسخ‌های دور r-1 سایر ایجنت‌ها را می‌خواند.
  3. هر ایجنتطرف‌های ارتباط را نقد کرده و پاسخ به‌روزشده‌ای ارائه می‌دهد.
  4. هر دورپرسش را مجدداً تزریق کنید تا از دریفت موضوع جلوگیری شود.
  5. پس از R دوربر سر پاسخ‌های نهایی رأی‌گیری اکثریتی انجام دهید.
  6. هزینهN ایجنت × R دور = N·R فراخوانی LLM با زمینه‌ی در حال رشد.

توپولوژی‌های مناظره

مقایسه
عاملمش کاملستاره‌ای کم‌پشت
چه کسی چه کسی را می‌خواندهر مناظره‌کننده تمام طرف‌های ارتباط را می‌خواندشاخه‌ها فقط هاب را می‌خوانند
Runnerfull_mesh_roundsparse_star_round
تعداد عملیات در هر دورops += len(peers) به ازای هر مناظره‌کنندهشاخه‌ها فقط هاب را می‌خوانند
N=5, R=360 عملیات نقد12 عملیات نقد
پیشنهادها در N=5, R=31515
ریسک اصلیفروپاشی همگراییشکست هاب
راهکار رفع ریسکالزامی کردن دورهای عدم توافقچرخش هاب یا استفاده از چند هاب

چهار نقش بنیادین

مفهوم‌ها
طراح (Planner)
هدف را می‌خواند. خروجی یک برنامه یا مشخصات ساختاریافته است.
مجری (Executor)
در هر نوبت یک گام برنامه را می‌خواند. خروجی همان دست‌سازه است.
ناقد (Critic)
دست‌سازه را در برابر برنامه می‌سنجد. خروجی پذیرش/رد همراه با دلایل است.
اعتبارسنج (Verifier)
یک بررسی قطعی را اجرا می‌کند. خروجی قبولی/رد همراه با شواهد است.
ناقد در برابر اعتبارسنج
ناقد ذهنی و مبتنی بر LLM است. اعتبارسنج کد است. این‌ها یک نقش یکسان نیستند.
حذف ارتباطی توهم
در صورت نبود یک جزئیات، مجری نقش مربوطه را بر اساس نام خطاب قرار می‌دهد.
الگوی SOP
فرمول Code = SOP(Team). هر نقش دارای اسکیما ورودی/خروجی سخت‌گیرانه‌ای است.

پایپ‌لاین نقش‌ها در کد

کد
python
spec = planner(user_wish)          # مشخصات فنی با امضا و 3 تست
art = executor(spec)               # دست‌سازه یک رشته کد را نگه می‌دارد
crep = critic(spec, art)           # بررسی def، return، نام تسک
vrep = verifier(spec, art)         # تست‌ها را اجرا می‌کند
exec(art.code, ns, ns)             # فضای نام ساندباکسِ verifier
fn = ns.get(spec.task_name)        # نبود شیء قابل فراخوانی باعث شکست می‌شود
got = fn(*args)                    # مقایسه با مقدار مورد انتظار
if crep.approved and vrep.passed:  # تنها در صورت قبولی هر دو منتشر کنید

معماری تیم نرم‌افزاری

معماری
plan_requestsubtaskdiff_readyreview_neededapprovedtest_passedآدرس GitHub issueمعمار (Architect)برنامه همراه با زیرتسک‌ها + رابط‌هاتابلوی تسک‌هافایل / Redisکدنویس‌های A تا Dهر کدام ورک‌تری + Daytonaهماهنگ‌کننده‌ی مرجمرج سه‌طرفهبازبین (Reviewer)تایید یا درخواست تغییراتتستر (Tester)ساندباکس تمیزباز کردن PR

پیام‌های تابلوی تسک‌ها

دستورها
دستورعملکرد
plan_requestمعمار برنامه را همراه با DAG زیرتسک‌ها ثبت می‌کند
subtaskمعمار یک زیرتسک و فایل‌های آن را به کدنویس می‌فرستد
diff_readyکدنویس پچ را به merge_coord ارسال می‌کند
review_neededهماهنگ‌کننده‌ی مرج تفاوت‌های بازنگری مرج‌شده را به بازبین می‌فرستد
review_feedbackبازبین درخواست‌های تغییر را به کدنویس ارجاع می‌دهد
approvedبازبین تفاوت‌های بازنگری را به تستر تحویل می‌دهد
test_passedتستر به pr_opener دستور باز کردن PR را می‌دهد
test_failedتستر stacktraceها را به کدنویس بازمی‌گرداند

API پنل بازبینی

کار و کد
وظیفهکد
رد مکان‌های ساختگیvalidateFinding(raw, files)
دسته‌بندی بر اساس فایل، خط، قاعدهaggregate(reviews, files, quorum = 2)
اجرای بازبین‌ها همراه با محدودیت‌هاrunPanel(reviewers, budget, timeoutMs = 1000)
امتیازدهی در برابر برچسب‌هاevaluate(predicted, expected)
کلید دسته‌بندیJSON.stringify([f.file, f.line, f.rule])
اجرای دموnode cli.ts --input samples/review.json
وارد کردن گزارش PR--pr-report /path/review.json

کد حد نصاب و بودجه

کد
typescript
if (ids.has(review.reviewer)) throw new Error("duplicate reviewer");
if (seen.has(key)) continue;            // یک رأی به ازای هر بازبین در هر گروه
status: g.supporters.length >= quorum ? "consensus" : "needs-review",
disagreement: new Set(g.severities).size > 1,
if (spent + r.cost > budget) {          // وضعیت ردگیری محاسبات: "budget-skipped"
controller.abort();                     // رسیدن به موعد زمانی، وضعیت: "timeout"
precision: p.size ? hits / p.size : 0,  // پیش‌بینی‌های صفر نتیجه‌ی 0 می‌دهند

پیش‌فرض‌ها و ارقام

پیش‌فرض‌ها
تنظیمپیش‌فرضنکته
Debate rounds cap33 دور بخش عمده‌ی بهبود را به دست می‌آورد
Debate agents cap5فراتر از 5، باد کردن زمینه و هزینه غالب می‌شوند
Original Du et al. setupN=3, R=2انتخاب‌شده به دلیل هزینه
Critic revision rounds2سپس ارجاع به انسان
CLI `quorum`2حامیان مورد نیاز برای اجماع
CLI `budget`3واحدهای هزینه‌ی بازبین
CLI `timeout`1000میلی‌ثانیه به ازای هر بازبین
maxTurns12محدودیت نوبت گفت‌وگوی هماهنگ‌کننده

حالت‌های شکست

عیب‌یابی
  • همه‌ی ایجنت‌ها سخن پرصداترین را تکرار می‌کنند

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

    علت
    دریفت موضوع در طول دورهای متعدد
    راه‌حل
    تزریق مجدد پرسش در هر دور
  • هزینه‌ی بیش از 10 برابر یک فراخوانی CoT

    علت
    انفجار محاسباتی، N·R فراخوانی
    راه‌حل
    محدود کردن دورها به 3 و ایجنت‌ها به 5
  • همه بر سر پاسخ نادرست یکسانی توافق دارند

    علت
    پرامپت و مدل یکسان برای همه
    راه‌حل
    استفاده از پرامپت‌ها و مدل‌های متنوع
  • یک ایجنت نامناسب همه را خراب می‌کند

    علت
    هاب نامناسب در توپولوژی ستاره‌ای
    راه‌حل
    چرخش هاب یا استفاده از چند هاب
  • کد ظاهراً درست ولی همراه با باگ منتشر می‌شود

    علت
    پایپ‌لاین تماماً LLM، بدون اعتبارسنج
    راه‌حل
    افزودن بررسی قبولی/رد مبتنی بر کد
  • بازبین یک باگ شناخته‌شده را تأیید می‌کند

    علت
    تایید اشتباه
    راه‌حل
    آزمون ارزیابی با باگ تزریق‌شده، تنظیم زیر 5%

اعدادی که باید به خاطر سپرد

مفهوم‌ها
5 ایجنت، 5 دور
25 فراخوانی با زمینه‌ی در حال رشد.
NLSOM
جوامعی متشکل از 129 عضو.
MAST
ردیابی 1642 شکست. 21.3% آن‌ها شکاف اعتبارسنجی بودند.
حلقه‌ی اعتبارسنجی
دقت از 10% به 70%. بهبودی 7 برابری تنها با یک نقش.
افزایش تصاعدی توکن
یک اجرای تک‌ایجنتی 40 نوبتی، در چهار نقش به 160 نوبت تبدیل می‌شود.
شیوه‌نامه‌ی نمره‌دهی
25 نمره pass@1، 20 شتاب، 20 کیفیت بازبینی، 20 بهره‌وری توکن، 15 هماهنگی.

پرسش‌ها

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

چک‌لیست انتشار

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