چیت‌شیت

مدل‌های VLA تجسد‌یافته و ایجنت‌های کار با کامپیوتر

Embodied VLAs and Computer-Use Agents

فرمت‌های اقدام برای ربات‌ها، اسکیمای اقدام GUI، گیت‌های ایمنی و حلقه‌های محدود ایجنت برای مرورگر و دسکتاپ.

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

اصطلاحات کلیدی

مفهوم‌ها
VLA
یک مدل واحد که تصویر و دستور را دریافت کرده و دستورات اقدام را خروجی می‌دهد.
توکن‌سازی اکشن
کوانتایز کردن هر هدف مفصل به 256 بازه (bin). هر بازه یک شناسه واژگان است.
FAST
تبدیل DCT به‌همراه کوانتایزیشن. یک مسیر کامل اجرا 30 گامه به حدود 10 توکن تبدیل می‌شود.
هد Flow-matching
ترنسفورمر کوچک که توالی اقدام 50 گامه را از طریق جریان تصحیح‌شده تولید می‌کند.
سیستم 1 / سیستم 2
VLM بزرگ با سرعت کم برنامه‌ریزی می‌کند. هد اقدام کوچک با سرعت بالا عمل می‌کند.
انطباق بصری در رابط کاربری (GUI grounding)
مدل مختصات (x, y) هدف دستور را روی اسکرین‌شات مشخص می‌کند.
ایجنت ترکیبی
استفاده‌ی هم‌زمان از اسکرین‌شات و درخت دسترسی‌پذیری.
مرز خواندن/نوشتن
خواندن هرگز پیامد مخرب ندارد. نوشتن نیازمند تأیید مجدد است.

فرمت‌های اقدام VLA

مقایسه
شاخصRT-2OpenVLAπ0GR00T N1
الگوPaLM-X + بازه‌های گسستهLlama 7B + بازه‌های گسستههد flow-matchingسیستم دوگانه انسان‌نما
خروجی اقدام10 توکن در هر گام256 بازه در هر بُعدتوالی پیوسته 50 گامهزیرهدف‌ها، سپس دستورات مفصل
نرخ3-5 هرتز4-5 هرتز روی یک A100عملاً 50 هرتزبرنامه‌ریزی ~1 هرتز، اجرا 50-100 هرتز
ترکیب داده وب به ربات~1:1~0.5:1مشابهداده‌های شبیه‌سازی به واقعیت
وزن‌هابستهبازبازباز

توکنایزرهای اقدام در کد

کد
python
tokens = discretize(action, bins=256)                  # تبدیل [-1,1]^D به بازه‌های عدد صحیح D
idx = int((a + 1) / 2 * (bins - 1))                    # سپس محدودسازی به 0..bins-1
recovered = undiscretize(tokens, bins=256)             # عرض بازه = 2/255 ~ 0.0078
fast_tokens = fast_compress(trajectory, keep_coeff=4)  # تبدیل DCT به ازای هر بُعد، bins=32
coeffs = dct(series)[:keep_coeff]                      # حفظ مولفه‌های فرکانس‌پایین
continuous_flow_count = 1                              # خروجی تک هد

حلقه‌ی ایجنت چندوجهی

گام‌به‌گام
  1. ایجنتگرفتن اسکرین‌شات از مرورگر.
  2. VLMپارس اسکرین‌شات، URL و هدف و تبدیل آن به برنامه.
  3. VLMتولید یک اقدام ساختاریافته JSON در هر گام.
  4. ایمنیارزیابی هر اقدام قبل از اجرا. رد اقدامات ناامن.
  5. پوشش (Wrapper)اجرای apply_action(state, action) و بازگرداندن وضعیت جدید.
  6. ایجنتمشاهده اسکرین‌شات بعدی. تکرار تا زمان رسیدن به done.

اسکیمای اقدام GUI

کار و کد
وظیفهکد
کلیک روی هدف"click": ["x", "y", "element_desc"]
تایپ متن"type": ["text", "x", "y"]
اسکرول"scroll": ["direction", "amount"]
کشیدن و رها کردن (Drag)"drag": ["x0", "y0", "x1", "y1"]
انتخاب یک گزینه"select": ["option_index"]
رفتن به یک URL"navigate": ["url"]
برش و بزرگ‌نمایی"screenshot_region": ["x0", "y0", "x1", "y1"]
پایان وظیفه"done": ["success", "explanation"]

رسید ایجنت مرورگر

معماری
مشاهدهobservecapture> 0.0005blockedوظیفهname, email, allowedOriginrunAgentmaxSteps = 5انتخابfill, click, done, blockedدرایورobserve, act, captureinspectPNGpixels.py greenFractionرسیدstatus, trace, visual

اجرای پروژه‌ها

دستورها
دستورکارکرد
python3 scripts/project_test.py browser-agent --init learning-artifacts/browser-agentایجاد فضای کاری شروع. تا زمان پیاده‌سازی با خطا مواجه می‌شود
python3 scripts/project_test.py browser-agent --all --path learning-artifacts/browser-agent --strictارزیابی و نمره‌دهی تمام مراحل فضای کاری شما
node cli.ts --task samples/contact.json --output browser-run.jsonاجرای وظیفه فرم آفلاین و ذخیره رسید
node cli.ts --task samples/contact.json --liveراه‌اندازی Chromium واقعی. ابتدا BROWSE_BIN را تنظیم کنید
rustc --edition 2021 cli.rs -o desktop-cliساخت اجراکننده‌ی اقدام دسکتاپ
./desktop-cli samples/actions.tsv desktop-framesاجرای شش اقدام TSV. خروجی فریم‌های PPM و trace.txt

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

پیش‌فرض‌ها
تنظیمپیش‌فرضنکته
maxSteps5باید یک عدد صحیح از 1 تا 100 باشد
max_steps8بودجه گام CLI برگرفته از فایل وظیفه
greenFraction0.0005بالاتر از آن، وضعیت برابر با complete است
submitLabelSave requestدکمه باید یکتا، فعال و غیرخطرناک باشد
max_calls32سقف CLI. متد Controller::new مقادیر 0 یا بالای 100 را رد می‌کند
Text length200تایپ دسکتاپ کاراکترهای خالی یا کنترلی را نمی‌پذیرد
scale1.0فریم fixture. بازه مجاز بزرگتر از 0 تا 4.0
Command timeout20000میلی‌ثانیه برای هر فراخوانی browse در gstack

خطاها و راه‌حل‌ها

عیب‌یابی
  • origin changed

    علت
    آدرس URL از allowedOrigin خارج شد
    راه‌حل
    اجرا را روی loopback origin مجاز نگه دارید
  • missing or ambiguous field

    علت
    برچسب با صفر یا دو فیلد مطابقت دارد
    راه‌حل
    از برچسب‌های دقیق و یکتا استفاده کنید
  • completion values disagree

    علت
    مقدار done برابر true است اما یکی از مقادیر مغایرت دارد
    راه‌حل
    به بنر موفقیت اعتماد نکنید
  • unsafe or ambiguous submit

    علت
    دکمه خطرناک، غیرفعال یا غیریمتا است
    راه‌حل
    تنها یک دکمه ارسال امن قرار دهید
  • stalled

    علت
    مشاهده پس از انجام اقدام تکرار می‌شود
    راه‌حل
    بررسی کنید که درایور اقدام را اعمال کند
  • screenshot-error

    علت
    خطا در ثبت تصویر یا بررسی PNG
    راه‌حل
    خروج CLI با وضعیت 2. تصویر را اصلاح کنید
  • stale frame

    علت
    نسخه‌ی کلیک مربوط به آخرین تصویر ثبت‌شده نیست
    راه‌حل
    دوباره تصویر را ثبت کرده و از نسخه جدید آن استفاده کنید
  • action budget exhausted

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

راهکارهای دفاعی در برابر تزریق

مقایسه
صفحهnaivesanitizerrw_boundary
سالمارسال موفقارسال موفقارسال موفق
تزریق متن آشکارارسال به /api/exfilشناسایی می‌کندعملیات نوشتن را مسدود می‌کند
تزریق بخش URL (Fragment)ارسال به /api/exfilنادیده می‌گیردعملیات نوشتن را مسدود می‌کند
نقطه ضعفپیروی از متن صفحهعدم بررسی URLهانیازمند مبدا محتوای صحیح

اعداد کلیدی

مفهوم‌ها
بودجه کنترل
حلقه کنترل 30 هرتز یعنی 33 میلی‌ثانیه زمان برای هر اقدام.
پروژه Open X-Embodiment
شامل 970 هزار مسیر کامل اجرا روی 22 ربات برای OpenVLA.
انطباق ربات
فاین‌تیونینگ با LoRA روی 100 تا 1000 نمونه دموی مختص وظیفه.
OpenAI CUA در زمان عرضه
OSWorld 38.1%، WebArena 58.1%، WebVoyager 87%.
Gemini 2.5 Computer Use
فقط مرورگر، 13 اقدام، ~70% در Online-Mind2Web.
WebArena-Verified
رفع ~11.3% موارد منفی کاذب. زیرمجموعه دشوار شامل 258 وظیفه است.
AgentVista
مدل‌های پیشرو 27-40%. مدل‌های باز 10-20%.

پرسش‌ها

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

نکات ایمنی

نکته‌ها
  • محدودیت‌های مفاصل، سرعت و فضای کاری را خارج از VLA و در لایه کنترلی قرار دهید.
  • یک دسته‌بند ایمنی گام‌به‌گام را قبل از هر اقدام اجرا کنید.
  • قبل از ورود به حساب، خرید یا حذف فایل، از انسان تایید بگیرید.
  • تنها ابزارهایی را مجاز کنید که وظیفه به آن‌ها نیاز دارد.
  • نشست‌های مرورگر را فقط با اعتبارنامه‌های محدود به دامنه اجرا کنید.