چیتشیت
مدلهای VLA تجسدیافته و ایجنتهای کار با کامپیوتر
Embodied VLAs and Computer-Use Agents
فرمتهای اقدام برای رباتها، اسکیمای اقدام GUI، گیتهای ایمنی و حلقههای محدود ایجنت برای مرورگر و دسکتاپ.
فهرست مطالب
اصطلاحات کلیدی
مفهومها- VLA
- یک مدل واحد که تصویر و دستور را دریافت کرده و دستورات اقدام را خروجی میدهد.
- توکنسازی اکشن
- کوانتایز کردن هر هدف مفصل به 256 بازه (bin). هر بازه یک شناسه واژگان است.
- FAST
- تبدیل DCT بههمراه کوانتایزیشن. یک مسیر کامل اجرا 30 گامه به حدود 10 توکن تبدیل میشود.
- هد Flow-matching
- ترنسفورمر کوچک که توالی اقدام 50 گامه را از طریق جریان تصحیحشده تولید میکند.
- سیستم 1 / سیستم 2
- VLM بزرگ با سرعت کم برنامهریزی میکند. هد اقدام کوچک با سرعت بالا عمل میکند.
- انطباق بصری در رابط کاربری (GUI grounding)
- مدل مختصات (x, y) هدف دستور را روی اسکرینشات مشخص میکند.
- ایجنت ترکیبی
- استفادهی همزمان از اسکرینشات و درخت دسترسیپذیری.
- مرز خواندن/نوشتن
- خواندن هرگز پیامد مخرب ندارد. نوشتن نیازمند تأیید مجدد است.
فرمتهای اقدام VLA
مقایسه| شاخص | RT-2 | OpenVLA | π0 | GR00T 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 # خروجی تک هد
حلقهی ایجنت چندوجهی
گامبهگام- ایجنتگرفتن اسکرینشات از مرورگر.
- VLMپارس اسکرینشات، URL و هدف و تبدیل آن به برنامه.
- VLMتولید یک اقدام ساختاریافته JSON در هر گام.
- ایمنیارزیابی هر اقدام قبل از اجرا. رد اقدامات ناامن.
- پوشش (Wrapper)اجرای
apply_action(state, action)و بازگرداندن وضعیت جدید. - ایجنتمشاهده اسکرینشات بعدی. تکرار تا زمان رسیدن به
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"] |
رسید ایجنت مرورگر
معماریاجرای پروژهها
دستورها| دستور | کارکرد |
|---|---|
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 |
مقادیر پیشفرض و محدودیتها
پیشفرضها| تنظیم | پیشفرض | نکته |
|---|---|---|
maxSteps | 5 | باید یک عدد صحیح از 1 تا 100 باشد |
max_steps | 8 | بودجه گام CLI برگرفته از فایل وظیفه |
greenFraction | 0.0005 | بالاتر از آن، وضعیت برابر با complete است |
submitLabel | Save request | دکمه باید یکتا، فعال و غیرخطرناک باشد |
max_calls | 32 | سقف CLI. متد Controller::new مقادیر 0 یا بالای 100 را رد میکند |
Text length | 200 | تایپ دسکتاپ کاراکترهای خالی یا کنترلی را نمیپذیرد |
scale | 1.0 | فریم fixture. بازه مجاز بزرگتر از 0 تا 4.0 |
Command timeout | 20000 | میلیثانیه برای هر فراخوانی 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رسید - راهحل
- افزایش بودجه یا کاهش اقدامات
راهکارهای دفاعی در برابر تزریق
مقایسه| صفحه | naive | sanitizer | rw_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 و در لایه کنترلی قرار دهید.
- یک دستهبند ایمنی گامبهگام را قبل از هر اقدام اجرا کنید.
- قبل از ورود به حساب، خرید یا حذف فایل، از انسان تایید بگیرید.
- تنها ابزارهایی را مجاز کنید که وظیفه به آنها نیاز دارد.
- نشستهای مرورگر را فقط با اعتبارنامههای محدود به دامنه اجرا کنید.