AY-Robots ٹرائی پیج: روبوٹ کے مالک ہوئے بغیر شروع کرنے کے تین طریقے، بشمول پالیسی انفرنس کے لیے GPU کرائے پر لینا
GR00T N1.7ریموٹ انفرنسکلاؤڈ GPULeRobotSO-100لیٹنسی

لوکل GPU کے بغیر GR00T انفرنس چلائیں

AY-Robots ResearchAugust 23, 202619 منٹ کا مطالعہ

آپ کی روبوٹ مشین میں GPU نہیں ہے۔ GR00T پالیسی سرور کو کرائے کے کلاؤڈ GPU پر رکھیں، ایکشن چنکس کو آرم پر سٹریم کریں، اور بالکل جانیں کہ نیٹ ورک پر آپ کا کتنا خرچ آتا ہے۔

ایک Raspberry Pi ایک کو سیریل بس کے ذریعے چلانے اور دو USB کیمروں سے فریم حاصل کرنے کے لیے کافی ہے۔ یہ تین ارب پیرامیٹر والے کو چلانے کے لیے کافی نہیں ہے: NVIDIA کی README کے مطابق GR00T N1.7 انفرنس کے لیے 16 GB یا اس سے زیادہ VRAM والے ایک GPU کی ضرورت ہوتی ہے۔ یہ دیکھنے کے لیے کہ آپ کا فائن ٹیونڈ چیک پوائنٹ بازو پر کیا کرتا ہے بغیر کارڈ خریدے، پالیسی کو کرائے کے کلاؤڈ GPU پر رکھیں، روبوٹ لوپ کو USB پورٹس والی مشین پر رکھیں، اور مشاہدات اور ایکشن چنکس کو نیٹ ورک پر بھیجیں۔

یہ کام کرتا ہے، یہ مفت نہیں ہے، اور قیمت تمام کاموں پر یکساں طور پر تقسیم نہیں ہوتی۔ ذیل میں: NVIDIA کا اپنا پالیسی سرور، lerobot کا async اسٹیک، وہ حساب جو پہلے سے بتاتا ہے کہ آیا آپ کا اپلنک کافی تیز ہے، اور پلیٹ فارم کا راستہ۔ یہ سب Isaac-GR00T مین برانچ (N1.7 GA) اور lerobot 0.6.1 کے خلاف 23 اگست 2026 کو چیک کیا گیا۔

جو آپ کو جاننے کی ضرورت ہے

  • GR00T N1.7, GR00T N1.5 اور Pi0.5 تقریباً 3 B پیرامیٹر ماڈلز ہیں۔ کوئی بھی روبوٹ کنٹرولر پر بغیر ڈسکریٹ GPU کے فٹ نہیں ہوتا۔
  • Isaac-GR00T اور lerobot دونوں کلائنٹ-سرور تقسیم کے ساتھ آتے ہیں۔ آپ ٹرانسپورٹ نہیں لکھتے۔
  • مشاہدات وائر کی لاگت پر حاوی ہوتے ہیں، نہ کہ ایکشنز: دو غیر کمپریسڈ 640x480 RGB فریمز 1,843,200 بائٹس ہوتے ہیں، جو تقریباً 14.7 Mbit فی کال بنتے ہیں، اور کوئی بھی اسٹیک انہیں کمپریس نہیں کرتا۔
  • AY-Robots ماڈل کے لحاظ سے فی ایکشن اسٹیپ 20 سے 485 ms کی فہرست دیتا ہے۔ انٹرنیٹ راؤنڈ ٹرپس اس کے اوپر آتے ہیں۔
  • ریموٹ انفرنس سست پک اینڈ پلیس کے لیے موزوں ہے، تیز ری ایکٹو حرکت کے لیے نہیں۔ ایک طویل ایگزیکیوشن ہورائزن وقت خریدتا ہے اور مشاہدے کی تازگی کی قیمت پر آتا ہے۔
  • کوئی بھی سرور عوامی IP پر جیسا کہ بھیجا گیا ہے، محفوظ نہیں ہے، اور lerobot کا ایک غیر پیچ شدہ RCE رکھتا ہے۔ اسے ٹنل کریں۔

پالیسی روبوٹ مشین پر کیوں فٹ نہیں ہوگی

AY-Robots کی تربیت یافتہ پانچ پالیسیوں میں سے دو ورک سٹیشن کارڈ پر چلتی ہیں، تین نہیں۔ انفرنس لیٹنسی نیچے دیا گیا کالم فی ایکشن سٹیپ ہے، اور یہ وہ تعداد ہے جو آپ کے نیٹ ورک راؤنڈ ٹرپ سے مقابلہ کرتی ہے۔

پالیسیپیرامیٹرزفی ایکشن سٹیپ انفرنستربیت کے لیے GPU ٹیرکم از کم ایپی سوڈزڈیٹا سیٹ فارمیٹ
GR00T N1.7~3 B, ~40 M trained during fine-tuning152 msA100 80 GB or H100 80 GB50LeRobot v2.0 or v2.1
GR00T N1.5~3 B165 msA100 80 GB or H100 80 GB50LeRobot v2.0 or v2.1
Pi0.5~3 B, PaliGemma backbone485 msA100 80 GB or H100 80 GB50LeRobot v3.0
SmolVLA~450 M245 msRTX 4090 or any 24 GB card30LeRobot v3.0
ACT~80 M20 msRTX 4090 or any 24 GB card50LeRobot v3.0
The AY-Robots policies page comparing the five trainable policies by parameters, GPU tier, inference latency and minimum episodes
The same five rows on /policies. The latency column decides whether a policy survives a network hop.

اسے ایک فیصلہ سمجھیں، نہ کہ معمولی بات۔ACT جو 20 ms فی قدم پر روبوٹ مشین پر چلتا ہے اور آپ کو اس کے بارے میں دوبارہ سوچنے کی ضرورت نہیں پڑتی۔Pi0.5 جو 485 ms پر ایک پیکٹ آپ کی عمارت سے نکلنے سے پہلے ایک سیکنڈ کا ایک تہائی حصہ صرف کر چکا ہوتا ہے۔پالیسی کا موازنہ اور GR00T N1.7 vs Pi0.5 درستگی کے پہلو کو شامل کرتے ہیں۔

ACT کا کوئی بنیادی ماڈل نہیں ہے

GR00T N1.7، GR00T N1.5 اور Pi0.5 ایک وینڈر چیک پوائنٹ سے شروع ہوتے ہیں (nvidia/GR00T-N1.7-3B، nvidia/GR00T-N1.5-3B، lerobot/pi05_base)۔ ACT اس وقت تک موجود نہیں ہوتا جب تک آپ اسے اپنے کام پر تربیت نہ دیں، لہذا جب تک کوئی تربیتی کام نہیں چلتا، دور سے پیش کرنے کے لیے کچھ نہیں ہوتا۔ دیکھیں ACT on SO-100۔

موجودہ دو کلائنٹ-سرور اسٹیکس

Isaac-GR00T ایک ZeroMQ ریکویسٹ-ریپلائی سرور فراہم کرتا ہے؛ lerobot ایک gRPC سرور فراہم کرتا ہے جو غیر ہم وقت ساز انفرنس کے گرد بنایا گیا ہے۔ دونوں ایک GR00T قبول کرتے ہیں چیک پوائنٹ۔ lerobot کی معاون پالیسیوں کی فہرست async_inference/constants.py میں act, smolvla, diffusion, tdmpc, vqbet, pi0, pi05 اور groot ہیں؛ اس کی روبوٹ فہرست so100_follower, so101_follower, bi_so_follower اور omx_follower ہے۔

Isaac-GR00T PolicyServerlerobot async inference
اینٹری پوائنٹgr00t/eval/run_gr00t_server.pypython -m lerobot.async_inference.policy_server
ٹرانسپورٹZeroMQ REQ/REPgRPC, add_insecure_port / insecure_channel
سیریلائزیشنmsgpack + msgpack_numpy, allow_pickle=False enforcedpickle.dumps / pickle.loads, marked # nosec
ڈیفالٹ پورٹ55558080
ڈیفالٹ بائنڈ0.0.0.0, تمام انٹرفیسlocalhost
تصدیقکلاس کے ذریعے معاون api_token، CLI کے ذریعے پاس نہیں کیا گیاکوئی نہیں
کلائنٹ ٹائم آؤٹ15000 ms (PolicyClient timeout_ms)2 s مشاہداتی قطار کا ٹائم آؤٹ
ایگزیکیوشن ماڈلہم وقت ساز: بلاک کریں، پھر چنک کو ایگزیکیوٹ کریںغیر ہم وقت ساز: ایگزیکیوٹ کریں جبکہ اگلا چنک کمپیوٹ ہو رہا ہو

سیریلائزیشن کی قطار جتنی نظر آتی ہے اس سے کہیں زیادہ اہمیت رکھتی ہے۔ GR00T کا MsgSerializer دونوں سمتوں میں آبجیکٹ-ڈی ٹائپ این ڈی ارے پے لوڈز کو مسترد کرتا ہے، کیونکہ msgpack_numpy بصورت دیگر انہیں پکل کو دے دیتا۔ lerobot اس کے بجائے پکل کرتا ہے: policy_server.py درخواست کے ڈیٹا پر pickle.loads کو کال کرتا ہے، robot_client.py بھیجی گئی آبزرویشن کو پکل کرتا ہے۔ ایک قابل اعتماد LAN پر قابل دفاع، لیکن ایک بار جب پورٹ انٹرنیٹ سے قابل رسائی ہو جائے تو ناقابل دفاع۔

راستہ A: NVIDIA کا اپنا GR00T پالیسی سرور

یہ وہ راستہ ہے جسے NVIDIA SO-100 اور SO-101 ہارڈویئر کے لیے دستاویز کرتا ہے، اور اگر آپ کا چیک پوائنٹ examples/finetune.sh سے --embodiment-tag NEW_EMBODIMENT کے ساتھ آیا ہے تو اسے استعمال کرنا ہے۔ یہ اقدامات وہ چیز شامل کرتے ہیں جو اپ اسٹریم README میں نہیں ہے: پورٹ کو روبوٹ تک پہنچانا بغیر اسے دوسروں کے سامنے ظاہر کیے۔

  1. 1
    کرائے کے GPU باکس پر GR00T انسٹال کریں

    سب ماڈیولز درکار ہیں، اور کلون کرنے سے پہلے git-lfs کا موجود ہونا ضروری ہے ورنہ demo_data میں پارکیٹ فائلیں پوائنٹرز کے طور پر پہنچیں گی۔ فلیش-اٹین اور ٹینسر آر ٹی ڈیفالٹ انسٹالیشن کے ساتھ آتے ہیں۔ ایک تازہ پوڈ امیج پر پھنسنے کی جگہ: torchcodec 0.8.0 واحد معاون ویڈیو بیک اینڈ ہے اور صرف FFmpeg 4 سے 7 کو لوڈ کرتا ہے۔ اوبنٹو 25.10 اور 26.04 FFmpeg 8 کے ساتھ آتے ہیں، لہذا GR00T Could not load libtorchcodec کے ساتھ ناکام ہو جاتا ہے۔ FFmpeg 8 سے کم ورژن انسٹال کریں اور اس کی لائبریریوں کو LD_LIBRARY_PATH پر رکھیں۔

    bash
    sudo apt install git-lfs && git lfs install
    curl -LsSf https://astral.sh/uv/install.sh | sh
    sudo apt-get update && sudo apt-get install -y ffmpeg
    
    git clone --recurse-submodules https://github.com/NVIDIA/Isaac-GR00T
    cd Isaac-GR00T
    uv sync --python 3.12
    uv run python -c "import gr00t; print('GR00T installed successfully')"
  2. 2
    گیٹڈ بیک بون کے خلاف تصدیق کریں

    ہر GR00T N1.7 چیک پوائنٹ، بشمول آپ کا اپنا فائن ٹیون، پہلے استعمال پر گیٹڈ nvidia/Cosmos-Reason2-2B کو لوڈ کرتا ہے۔ ماڈل پیج پر رسائی کی درخواست کریں اور پوڈ پر لاگ ان کریں، ورنہ لوڈنگ GatedRepoError کے ساتھ ناکام ہو جائے گی۔

    bash
    uv run huggingface-cli login
    # or:  export HF_TOKEN=<your_token>
  3. 3
    پالیسی سرور شروع کریں

    --model-path کو اپنی چیک پوائنٹ ڈائریکٹری کی طرف اشارہ کریں؛ اس راستے پر سرور --modality-config-path کو نظر انداز کرتا ہے، جسے صرف ری پلے پاتھ پر پڑھا جاتا ہے۔ --model-path کو چھوڑ دیں اور اس کے بجائے --dataset-path اور --execution-horizon پاس کریں ایک ReplayPolicy کے لیے جو ریکارڈ شدہ کارروائیوں کو ری پلے کرتی ہے، یہ وائرنگ کے کام کرنے کو ثابت کرنے کا سب سے سستا طریقہ ہے۔

    bash
    uv run python gr00t/eval/run_gr00t_server.py \
      --model-path /workspace/so100_finetune/checkpoint-10000 \
      --embodiment-tag NEW_EMBODIMENT \
      --device cuda:0 \
      --host 127.0.0.1 --port 5555
  4. 4
    پورٹ 5555 کو روبوٹ مشین تک ٹنل کریں

    لوپ بیک سے بائنڈ کریں، جیسا کہ اوپر ہے، اور پورٹ کو SSH یا وائر گارڈ طرز کے میش پر لے جائیں۔ یہ انکرپشن اور تصدیق فراہم کرتا ہے جو ZeroMQ ساکٹ نہیں کرتا، تقریباً ایک ملی سیکنڈ کے لیے۔

    bash
    # on the robot machine
    ssh -N -L 5555:127.0.0.1:5555 root@<pod-host> -p <pod-ssh-port>
    
    # sanity check that something answers
    nc -vz 127.0.0.1 5555
  5. 5
    سرووز کے ساتھ روبوٹ کلائنٹ چلائیں

    کلائنٹ کو اپنے یو وی ماحول کی ضرورت ہے: اسے lerobot کے روبوٹ ڈرائیورز درکار ہیں، نہ کہ ٹریننگ اسٹیک۔ eval_so100.py so100_follower، so101_follower اور koch_follower کو امپورٹ کرتا ہے، لہذا اپنی بازو سے مماثل --robot.type پاس کریں (اپ اسٹریم README so101_follower استعمال کرتا ہے)۔ کیمرہ کیز کو ٹریننگ سے مماثل ہونا چاہیے: اڈاپٹر بالکل front اور wrist کو پڑھتا ہے، اور انہیں تبدیل کرنے سے پالیسی کو غلط منظر دکھایا جاتا ہے۔

    bash
    cd gr00t/eval/real_robot/SO100
    uv sync
    uv pip install --no-deps -e ../../../../
    
    uv run --no-sync python eval_so100.py \
      --robot.type=so100_follower \
      --robot.port=/dev/ttyACM0 \
      --robot.id=orange_follower \
      --robot.cameras="{ front: {type: opencv, index_or_path: 6, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30}}" \
      --policy_host=127.0.0.1 \
      --policy_port=5555 \
      --lang_instruction="pick up the red block and put it in the bin"
دو ڈیفالٹس جو آپ کو پریشان کریں گے

run_gr00t_server.py بطور ڈیفالٹ --host 0.0.0.0 پر سیٹ ہوتا ہے، ہر انٹرفیس کو بائنڈ کرتا ہے: ایک پوڈ پر پبلک IP کے ساتھ جو ایک کھلا انفرنس اینڈ پوائنٹ ہے۔ اور PolicyServer کلاس ایک api_token قبول کرتی ہے اور اسے ہر درخواست پر توثیق کرتی ہے، لیکن run_gr00t_server.py کبھی بھی اسے پاس نہیں کرتا، لہذا CLI سرور غیر تصدیق شدہ رہتا ہے چاہے آپ کچھ بھی کنفیگر کریں۔ 127.0.0.1 پر بائنڈ کریں اور ٹنل کریں۔ ایک ZMQError: Address already in use کا مطلب ہے کہ پورٹ 5555 استعمال میں ہے؛ --port پاس کریں۔

روٹ B: لیرو بوٹ غیر ہم وقت ساز انفرنس

لیرو بوٹ ایک مختلف مسئلہ حل کرتا ہے۔ ماڈل کے سوچنے کے دوران روبوٹ کو بلاک کرنے کے بجائے، کلائنٹ اپنی موجودہ قطار میں قدم بڑھاتا رہتا ہے جبکہ سرور اگلے چنک کا حساب لگاتا ہے۔ یہ ایکشن چنکنگ کو مزید آگے بڑھایا گیا ہے، جو SmolVLA کے ساتھ متعارف کرایا گیا غیر ہم وقت ساز اسٹیک ہے۔ یہ GR00T چیک پوائنٹ کے ساتھ بھی کام کرتا ہے۔

bash
# GPU machine
pip install -e ".[async]"
python -m lerobot.async_inference.policy_server \
     --host=127.0.0.1 \
     --port=8080

# robot machine, after tunnelling 8080
python -m lerobot.async_inference.robot_client \
    --server_address=127.0.0.1:8080 \
    --robot.type=so100_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=follower_so100 \
    --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30}}" \
    --task="pick up the red block and put it in the bin" \
    --policy_type=groot \
    --pretrained_name_or_path=<user>/my_groot_finetune \
    --policy_device=cuda \
    --actions_per_chunk=50 \
    --chunk_size_threshold=0.5 \
    --debug_visualize_queue_size=True
GPU پر پالیسی سرور، USB پورٹس والی مشین پر روبوٹ کلائنٹ

سرور خالی شروع ہوتا ہے: اسے نہیں معلوم کہ وہ کون سی پالیسی فراہم کر رہا ہے جب تک کہ کلائنٹ کا پہلا ہینڈ شیک اسے نہ بتا دے، جو کرائے کے پوڈ پر آسان ہے۔ بازو کی ہموار حرکت کا فیصلہ کرنے والے دو کنٹرولز actions_per_chunk اور chunk_size_threshold (lerobot کی دستاویزات دوسرے کو g کہتی ہیں، SmolVLA پیپر کے بعد)، اور دستاویزی اقدار اور فراہم کردہ اقدار میں مطابقت نہیں ہے۔

پیرامیٹرlerobot 0.6.1 کوڈ میں قدریہ کیا کرتا ہےنوٹ
actions_per_chunkکوئی ڈیفالٹ نہیں، مطلوبہہر کال پر واپس کی جانے والی کارروائیاںدستاویزات کی جدول میں 50 درج ہیں؛ ڈیٹا کلاس فیلڈ کا کوئی ڈیفالٹ نہیں ہے، لہذا CLI ایک قدر کا مطالبہ کرتا ہے
chunk_size_threshold0.5کیو بھرنے کا تناسب جس پر یا اس سے کم کلائنٹ ایک تازہ مشاہدہ بھیجتا ہےدستاویزات کی جدول میں 0.7 کہا گیا ہے؛ کوڈ اور دستاویزات کی اپنی مثال میں 0.5 کہا گیا ہے
fps30کلائنٹ کنٹرول کی شرح، environment_dt = 1/fps سیٹ کرتی ہےاگر کیو خالی ہوتی رہے تو اسے کم کریں
inference_latency1/30 s (33.3 ms)سرور پر ہدف انفرنس لیٹنسیایک ہدف، پیمائش نہیں
obs_queue_timeout2 sسرور مشاہداتی کیو پر کتنی دیر انتظار کرتا ہےایک سست اپ لنک سب سے پہلے یہاں ظاہر ہوتا ہے
aggregate_fn_nameweighted_averageاوورلیپنگ چنک ریجنز کو کیسے ملایا جاتا ہے0.3 پرانا + 0.7 نیا؛ latest_only، average اور conservative بھی فراہم کیے جاتے ہیں۔ رجسٹری configs.py میں AGGREGATE_FUNCTIONS ہے، نہ کہ robot_client.py جیسا کہ دستاویزات دعویٰ کرتی ہیں
lerobot پالیسی سرور میں ایک غیر پیچ شدہ RCE موجود ہے

CVE-2026-25874 lerobot کی async inference پائپ لائن میں غیر تصدیق شدہ ریموٹ کوڈ ایگزیکیوشن ہے: `pickle.loads()` غیر تصدیق شدہ gRPC چینل پر TLS کے بغیر موصول ہونے والے ڈیٹا پر، جو `SendPolicyInstructions`، `SendObservations` اور `GetActions` کالز کے ذریعے قابل رسائی ہے۔ CWE-502، NVD سے CVSS 3.1 بیس سکور 9.8، تفویض کرنے والے CNA سے 4.0 بیس سکور 9.3۔ ریکارڈ میں LeRobot 0.5.1 تک متاثرہ کے طور پر درج ہے اور پالیسی سرور اور روبوٹ کلائنٹ دونوں کا نام لیا گیا ہے، لہذا آپ کے بازو کے ساتھ والی مشین دائرہ کار میں ہے۔ اپ گریڈ کرنا حل نہیں ہے: ریکارڈ میں اپ اسٹریم ایشو 3047 اور پیچ، PR 3048 کا حوالہ دیا گیا ہے، جو pickle کو safetensors اور JSON سے بدلتا ہے، اور 23 اگست 2026 کو دونوں ابھی بھی کھلے ہیں۔ `policy_server.py` مین پر اب بھی درخواست کے ڈیٹا پر `pickle.loads` کو کال کرتا ہے جبکہ `serve()` `add_insecure_port` کے ساتھ بائنڈ ہوتا ہے۔ لوپ بیک سے بائنڈ کریں اور کبھی بھی پورٹ فارورڈ 8080 نہ کریں۔

وہ حسابی عمل جو فیصلہ کرتا ہے کہ آیا آپ کا لنک کافی تیز ہے

لوگ اسے چھوڑ دیتے ہیں اور پھر ایک دن اس پر صرف کرتے ہیں۔ اس میں دو منٹ لگتے ہیں اور یہ تقریباً ہمیشہ فیصلہ کن ہوتا ہے۔

NVIDIA کے eval_so100.py میں تبصرہ شدہ آبزرویشن ڈکٹ بتاتا ہے کہ وائر پر کیا جاتا ہے: uint8 میں (480, 640, 3) شکل کے دو اری، چھ جوائنٹ فلوٹس، ایک لینگویج سٹرنگ۔ یہ فی فریم 921,600 بائٹس، دو کیمروں کے لیے 1,843,200 بائٹس، تقریباً 14.7 Mbit ہے، اور کوئی بھی اسٹیک اسے JPEG کمپریس نہیں کرتا۔ واپس آنے والا چنک 6 فلوٹس کے چند درجن مراحل پر مشتمل ہوتا ہے۔ آپ کی اپ لوڈ ہر چیز کا فیصلہ کرتی ہے، آپ کی ڈاؤن لوڈ نہیں۔

اپ لوڈ بینڈوتھایک آبزرویشن (14.7 Mbit) پش کرنے کا وقت30 FPS بازو کے لیے فیصلہ
10 Mbit/s، عام ہوم اپ لوڈ~1.47 sناقابل استعمال۔ بازو ہر چنک کے درمیان رک جاتا ہے۔
25 Mbit/s~0.59 sصرف سست پک اینڈ پلیس، ایک طویل عمل درآمد کے افق کے ساتھ۔
50 Mbit/s~0.29 sجان بوجھ کر کیے جانے والے کاموں کے لیے قابل عمل۔
100 Mbit/s~0.15 sپک اینڈ پلیس کے لیے ٹھیک ہے، تیز حرکت پر نظر آتا ہے۔
1 Gbit/s فائبر یا ڈیٹا سینٹر~0.015 sاس کے بجائے ماڈل رکاوٹ بن جاتا ہے۔

وہ بجٹ جس میں آپ کو فٹ ہونا ہے

GR00T SO-100 کلائنٹ ہم وقت ساز ہے: یہ policy.get_action(obs) کو کال کرتا ہے، چنک کے پہلے action_horizon مراحل کو 30 FPS پر چلاتا ہے، پھر دوبارہ کال کرتا ہے۔ چنک کا سائز اور افق مختلف اعداد ہیں: NVIDIA کی تعیناتی گائیڈ 16 کے ایک ایکشن چنک سائز کی سفارش کرتی ہے، ریئل ٹائم چنکنگ کے ساتھ مل کر کم از کم 32، جبکہ eval_so100.py 8 کا ایک ایگزیکیوشن افق فراہم کرتا ہے۔ 30 FPS پر آٹھ مراحل فی کال 267 ms کی حرکت ہے، اور باقی سب کچھ اس کے اندر فٹ ہونا چاہیے۔

text
observation upload   14.7 Mbit / 100 Mbit/s   = 147 ms
network round trip                            =  30 ms
model inference (AY-Robots figure, N1.7)      = 152 ms
action chunk return + deserialize             =  ~2 ms
                                                -------
total per call                                  331 ms

budget at action_horizon = 8   ->  267 ms   FAIL, arm pauses ~64 ms per chunk
budget at action_horizon = 16  ->  533 ms   fits, with headroom
budget at action_horizon = 32  -> 1067 ms   fits, observations now ~1 s stale
حل شدہ مثال: 100 Mbit/s اپلنک، 30 ms راؤنڈ ٹرپ، GR00T N1.7

افق کو بڑھانا ایک سیدھا حل ہے اور یہ مفت نہیں ہے: بازو ایک ایسے مشاہدے پر عمل کرتا ہے جو اب پرانا ہو چکا ہے۔ اصولی حل ریئل ٹائم چنکنگ ہے، جو موجودہ چنک کے چلنے کے دوران اگلے چنک کا حساب لگاتی ہے، ان کارروائیوں کو منجمد کرتی ہے جن کی ضمانت ہے کہ وہ چلیں گی اور باقی کو ان پینٹ کرتی ہے؛ RTC پیپر اسے بغیر کسی دوبارہ تربیت کے انفرنس تاخیر کے لیے مضبوط قرار دیتا ہے۔ پہلے یہ دیکھیں کہ یہ کہاں کھڑا ہے۔ NVIDIA RTC کو تجرباتی قرار دیتا ہے، ایک نچلی سطح کا ماڈل پریمیٹو جو action_head.get_action(..., options={"rtc_overlap_steps": ..., "rtc_frozen_steps": ...}) کے ذریعے قابل رسائی ہے، جو Gr00tPolicy یا سرور-کلائنٹ پاتھ میں وائرڈ نہیں ہے، جہاں options غیر استعمال شدہ ہے، بغیر کسی ٹیسٹ اور مثال کے۔ ایک پالیسی سرور پر آپ کو غیر ہم وقت ساز ایگزیکیوشن ملتی ہے، RTC نہیں۔

نیٹ ورک سے پہلے ماڈل کی لاگت کیا ہے

NVIDIA GR00T N1.7 کو ایک کیمرے کے ساتھ 4 ڈینوائزنگ مراحل پر اینڈ ٹو اینڈ بینچ مارک کرتا ہے۔ H100 80GB HBM3 پر: PyTorch eager میں 85.8 ms (11.7 Hz)، torch.compile کے ساتھ 48.6 ms (20.6 Hz)، TensorRT full pipeline کے ساتھ 27.9 ms (35.9 Hz)۔ eager mode میں ایک L40 128.3 ms (7.8 Hz) لیتا ہے۔ NVIDIA 10 Hz کو عام ہیرا پھیری کے لیے تجویز کردہ کم از کم قرار دیتا ہے، اور 10 Hz سے کم صرف سست، غیر رد عمل والے کاموں کے لیے موزوں ہے۔ یہ دوبارہ منصوبہ بندی کی شرحیں ہیں: ایک 10 Hz پالیسی اب بھی ایک 30 FPS بازو کو ایکشن چنکنگ کے ذریعے چلا سکتی ہے۔ دوسرا کیمرہ آپ کو غلط سمت میں لے جاتا ہے۔

بھروسہ کرنے سے پہلے اسے ناپیں

اوپر دیا گیا ہر نمبر ایک پیش گوئی ہے۔ چار کمانڈز اسے ایک پیمائش میں بدل دیتی ہیں، جسے کسی ایسے کام کے لیے پوڈ-آور مختص کرنے سے پہلے چلانا ضروری ہے جو کبھی کام نہیں آنے والا تھا۔

  1. 1
    خام راؤنڈ ٹرپ حاصل کریں

    پوڈ کے خلاف، CDN کے خلاف نہیں۔ انحراف کو اوسط کے قریب سے دیکھیں۔ جھٹکا بازو کو ہکلاتا ہے، اوسط لیٹنسی نہیں۔

    bash
    ping -c 50 <pod-host>
    # the mdev column is the number that predicts stutter
  2. 2
    اپنے پاس موجود اپ لنک کی پیمائش کریں، نہ کہ جس کے لیے آپ ادائیگی کرتے ہیں

    رہائشی اپ لوڈ عام طور پر ڈاؤن لوڈ کا ایک حصہ ہوتا ہے، اور یہ اوپر دی گئی بینڈوتھ ٹیبل میں موجود نمبر ہے۔

    bash
    # on the pod
    iperf3 -s
    
    # on the robot machine, -R omitted so this measures upload
    iperf3 -c <pod-host> -t 30
  3. 3
    کلائنٹ کا اپنا لیٹنسی لاگ پڑھیں

    LeRobot روبوٹ کلائنٹ ہر چنک کے لیے سرور سے کلائنٹ کی لیٹنسی اور ڈی سیریلائزیشن کا وقت لاگ کرتا ہے۔ روٹ B پر آپ کو کسی بیرونی ٹولنگ کی ضرورت نہیں ہے۔

    text
    Received action chunk for step #240 | Latest action: #232 |
      Incoming actions: 240:289 |
      Network latency (server->client): 187.44ms |
      Deserialization time: 3.10ms
  4. 4
    ایکشن کی قطار کو خالی ہوتے دیکھیں

    --debug_visualize_queue_size=True پاس کریں اور کلائنٹ رن ٹائم پر قطار کا سائز پلاٹ کرتا ہے۔ اگر یہ بار بار صفر پر پہنچ جاتا ہے تو آپ بجٹ سے باہر ہیں: fps کم کریں، actions_per_chunk بڑھائیں، یا chunk_size_threshold بڑھائیں تاکہ مشاہدات زیادہ کثرت سے باہر جائیں۔

    bash
    python -m lerobot.async_inference.robot_client \
        ... \
        --debug_visualize_queue_size=True

ریموٹ انفرنس دراصل کس کام آتی ہے

کرائے کے GPU پر پالیسی، آپ کی میز پر بازو
فوائد
  • آپ حقیقی ہارڈ ویئر پر 3 B پیرامیٹر پالیسی کا جائزہ لے سکتے ہیں بغیر کسی ایسے کارڈ کے مالک ہوئے جو بازو سے زیادہ مہنگا ہو۔
  • GPU فی گھنٹہ کرائے پر لیا جاتا ہے، لہذا ایک ناکام چیک پوائنٹ پر چند ڈالر لاگت آتی ہے۔
  • روبوٹ کی طرف چھوٹی رہتی ہے: lerobot ڈرائیورز، دو کیمرے، ایک سیریل پورٹ، اور آپ اسے چھوئے بغیر چیک پوائنٹس تبدیل کرتے ہیں۔
توازن
  • غیر کمپریسڈ مشاہدات وائر کی لاگت پر حاوی ہیں، اور رہائشی اپ لوڈ ایک پابند رکاوٹ ہے۔
  • جیٹر لیٹنسی سے زیادہ نقصان دہ ہے: ایک لنک جو اوسطاً 40 ms ہے اور 300 ms تک بڑھ جاتا ہے، وہاں رکاوٹ پیدا کرتا ہے جہاں ایک مستحکم 120 ms لنک نہیں کرتا۔
  • تیز رد عمل والے کام کسی بھی افق پر راؤنڈ ٹرپ کو برداشت نہیں کر پاتے۔
  • دونوں سرورز CLI فارم میں غیر تصدیق شدہ بھیجے جاتے ہیں، لہذا ٹنلنگ کا کام آپ کا ہے۔
  • ایک چنک کے درمیان کنکشن کا منقطع ہونا بازو کو ایک پرانی کارروائی پر چھوڑ دیتا ہے۔ روبوٹ کی طرف اپنا واچ ڈاگ شامل کریں۔
کامعوامی انٹرنیٹ پر کام کرتا ہے؟کیوں
ایک جامد چیز اٹھائیں، اسے ایک ڈبے میں رکھیںہاںمشاہدے اور عمل کے درمیان کچھ نہیں حرکت کرتا ہے۔
بلاکوں کو جان بوجھ کر رفتار سے اسٹیک کریںہاں، action_horizon 16 یا اس سے زیادہ پرغلطیاں اتنی آہستہ جمع ہوتی ہیں کہ اگلے چنک پر ٹھیک کی جا سکیں۔
ایک دراز کھولیں، ایک چیز داخل کریںعام طور پررابطہ سے بھرپور لیکن سست۔ رابطے پر رکنے اور چلنے پر نظر رکھیں۔
ایک حرکت پذیر چیز کی پیروی کریںنہیںپالیسی 300 ms سے 1 s پرانے مشاہدے پر عمل کرتی ہے۔
پکڑیں، توازن رکھیں، یا پھسلنے سے بازیافت کریںنہیںتصحیح کی ونڈو ایک راؤنڈ ٹرپ سے چھوٹی ہے۔
ایک 30 Hz ہم وقت ساز بند لوپنہیںبجٹ 33 ms اینڈ ٹو اینڈ ہے۔ یہاں تک کہ ایک LAN بھی جدوجہد کرتا ہے۔

اگر ایک ریموٹ رن ہر ایپی سوڈ میں ایک ہی مقام پر رکاوٹ پیدا کرتا ہے، تو نیٹ ورک شاید وجہ نہیں ہے۔ ایک پالیسی جو ہر بار ایک ہی جوائنٹ اینگل پر ہچکچاتی ہے وہ عام طور پر ڈیٹا کا مسئلہ ہوتا ہے؛ دیکھیں ناکامی کے موڈ کے صفحات، خاص طور پر ایک پالیسی جو صرف ایک سیٹ اپ میں کام کرتی ہے اور نقصان کم ہوتا ہے لیکن پالیسی کچھ نہیں کرتی.

خود کرنا بمقابلہ AY-Robots پر کرنا

  1. اسپاٹ مارکیٹ سے ایک GPU کرایہ پر لیں اور اپنی پسند کی قیمت پر کافی VRAM کا انتظار کریں۔
  2. CUDA، uv، ایک ffmpeg torchcodec جو قبول کرتا ہے، اور GR00T اسٹیک کو سب ماڈیولز کے ساتھ انسٹال کریں۔
  3. گیٹڈ `nvidia/Cosmos-Reason2-2B` بیک بون تک رسائی کی درخواست کریں اور پوڈ پر ایک ٹوکن رکھیں۔
  4. اپنا چیک پوائنٹ پوڈ پر کھینچیں۔
  5. سرور کو لوپ بیک پر شروع کریں، پھر روبوٹ مشین سے ایک SSH ٹنل بنائیں۔
  6. کلائنٹ اور ڈرائیورز کے لیے روبوٹ مشین پر دوسرا ماحول انسٹال کریں۔
  7. کیمرہ کیز، جوائنٹ ناموں اور زبان کی ہدایات کو اس سے ملائیں جو چیک پوائنٹ نے دیکھا تھا۔
  8. پوڈ پر نظر رکھیں۔ رات بھر چلنے والا ایک بھولا ہوا A100 تجربے سے زیادہ مہنگا پڑتا ہے۔
بیکار پوڈ ہی اصل لاگت ہے

جب روبوٹ رک جاتا ہے تو GPU کا بل نہیں رکتا۔ ریموٹ انفرنس پر ضائع ہونے والا زیادہ تر پیسہ اس سرور پر جاتا ہے جو سب کے چلے جانے کے بعد بھی چلتا رہا۔ الارم سیٹ کریں، یا خودکار طور پر بند کرنے کا انتظام کریں۔

AY-Robots MCP سرور کا صفحہ جو AI ایجنٹس کے لیے ٹولز کے طور پر ظاہر کیے گئے پلیٹ فارم آپریشنز کی فہرست دیتا ہے۔
MCP صفحہ: پروویژننگ اور انفرنس آپریشنز کو ایسے ٹولز کے طور پر ظاہر کیا گیا ہے جنہیں ایک ایجنٹ کال کر سکتا ہے۔

ریموٹ انفرنس سیشن کی لاگت کیا ہے

دو اعداد اہم ہیں: کارڈ کی فی گھنٹہ کی شرح، اور آپ اسے کتنی دیر تک چلنے دیتے ہیں۔ پہلا شائع شدہ ہے؛ دوسرا لوگوں کو حیران کرتا ہے۔

کارڈرن پاڈ کمیونٹی کلاؤڈرن پاڈ سیکیور کلاؤڈکے لیے مناسب
A100 PCIe 80 GB1.19 USD/h1.39 USD/hGR00T N1.7, GR00T N1.5, Pi0.5
A100 SXM 80 GB1.39 USD/h1.59 USD/hوہی، تھوڑا تیز
H100 PCIe 80 GB1.99 USD/h2.89 USD/hتیز ترین ٹیر؛ NVIDIA کی 11.7 Hz ایگر فگر H100 80GB HBM3 کے لیے ہے
L40S 48 GB0.79 USD/h0.99 USD/hصرف انفرنس، 16 GB فلور سے اوپر
RTX 4090 24 GB0.34 USD/h0.74 USD/hSmolVLA, ACT

یہ شرحیں 23 اگست 2026 کو رن پاڈ کے پرائسنگ پیج سے پڑھی گئی تھیں، اور اسپاٹ مارکیٹس میں تبدیلی آتی رہتی ہے۔ AY-Robots اس کے بجائے ایک مکمل رن کی قیمت بتاتا ہے: A100 یا H100 ٹیر پر 1.20 سے 2.00 USD فی گھنٹہ کے حساب سے 3 سے 6 گھنٹے، GR00T یا Pi0.5 رن کے لیے تقریباً 4 سے 12 USD؛ 24 GB ٹیر پر 0.30 سے 0.60 USD فی گھنٹہ کے حساب سے 2 سے 5 گھنٹے، SmolVLA یا ACT کے لیے 1 سے 3 USD۔ ایک انفرنس سیشن ٹریننگ رن کو لاگت میں تب ہی ہرا سکتا ہے جب آپ اسے روک دیں، جس کے لیے آئیڈل واچ ڈاگ ہوتا ہے۔ دیکھیں بلنگ دستاویزات اور پرائسنگ پیج.

The AY-Robots cost table showing which GPU each policy needs, typical run time and price, and episodes before a policy is useful
The cost table on /try: which card each model needs and what a run typically costs.

اگر آپ نیٹ ورک کو لوپ میں نہیں رکھنا چاہتے

ریموٹ انفرنس ہارڈویئر کے مسئلے کو حل کرتا ہے اور لیٹنسی کا مسئلہ پیدا کرتا ہے۔ بعض اوقات بہتر جواب ایک ایسی پالیسی ہوتی ہے جو آپ کے پاس موجود ہارڈویئر کے مطابق ہو۔

  • ACT، تقریباً 80 M پیرامیٹرز اور 20 ms فی ایکشن سٹیپ، کم از کم 50 ایپیسوڈز، کوئی بھی 24 GB کارڈ۔ ایک بار بار دہرائے جانے والے سنگل ٹاسک سیٹ اپ پر یہ اکثر ایک ریموٹ 3 B ماڈل کو ہرا دیتا ہے، کیونکہ یہ کبھی پیکٹ کا انتظار نہیں کرتا۔
  • SmolVLA، تقریباً 450 M پیرامیٹرز اور 245 ms فی ایکشن سٹیپ، کم از کم 30 ایپیسوڈز۔ یہ وہ لینگویج کنڈیشنگ برقرار رکھتا ہے جس کی ACT میں کمی ہے، اور lerobot دستاویزات کے مطابق انفرنس کے وقت یہ تقریباً 2 GB لیتا ہے جبکہ PI0 کے لیے تقریباً 14 GB درکار ہوتا ہے۔
  • تجارت کے درستگی والے نصف کے لیے ACT بمقابلہ GR00T N1.7۔

ایک درمیانی راستہ بھی ہے: کلاؤڈ میں تربیت دیں، مقامی طور پر جانچ کریں۔ فائن ٹیوننگ کو 80 GB کارڈ کی ضرورت ہوتی ہے اور اسے لیٹنسی کی پرواہ نہیں ہوتی، لہذا SO-100 پر GR00T N1.7 کی تربیت کو ریموٹلی تربیت دینا غیر متنازعہ ہے۔ صرف ایویلیویشن لوپ میں ریئل ٹائم کی رکاوٹ ہوتی ہے؛ تربیتی دستاویزات اور ماڈل اور آرم میٹرکس اس نصف کو پورا کرتے ہیں۔

ابھی تک ڈیسک پر کوئی آرم نہیں؟

بغیر سائن اپ کے براؤزر میں ایک حقیقی SO-100 چلائیں، پانچ قابل تربیت پالیسیوں کا ان کے حقیقی لیٹنسی نمبرز کے ساتھ موازنہ کریں، یا ایک GPU کرائے پر لے کر تربیت دیں۔ شروع کرنے کے تین طریقے، جن میں سے کسی کو بھی ایسے ہارڈویئر کی ضرورت نہیں جو آپ کے پاس نہ ہو۔

ہارڈویئر کے بغیر آزمائیں

اکثر پوچھے گئے سوالات

کیا میں GR00T N1.7 کو Raspberry Pi پر چلا سکتا ہوں اگر GPU دور دراز ہو؟

جی ہاں، کلائنٹ-سرور کی تقسیم اسی مقصد کے لیے ہے۔ Pi lerobot ڈرائیورز چلاتا ہے، دو کیمرے اور ایک سیریل بس پڑھتا ہے، اور مشاہدات کو پالیسی سرور کو بھیجتا ہے؛ یہ کبھی ماڈل کو لوڈ نہیں کرتا۔ رکاوٹ VRAM سے اپ لوڈ بینڈوتھ پر منتقل ہو جاتی ہے: دو غیر کمپریسڈ 640x480 RGB فریم فی کال 1,843,200 بائٹس ہوتے ہیں، اور کوئی بھی اسٹیک انہیں کمپریس نہیں کرتا۔

نیٹ ورک دراصل کتنی تاخیر کا اضافہ کرتا ہے؟

راؤنڈ ٹرپ کا وقت جمع مشاہدے کی منتقلی کا وقت۔ منتقلی کا وقت 14.7 Mbit کو آپ کی اپ لوڈ بینڈوتھ سے تقسیم کیا جاتا ہے: تقریباً 147 ms ایک 100 Mbit/s لنک پر، 1.47 s ایک 10 Mbit/s لنک پر۔ دونوں ماڈل کے اپنے انفرنس ٹائم کے اوپر آتے ہیں، جسے AY-Robots GR00T N1.7 کے لیے 152 ms اور Pi0.5 کے لیے 485 ms درج کرتا ہے۔ پوڈ کے خلاف ping اور iperf3 سے پیمائش کریں، نہ کہ اسپیڈ ٹیسٹ سرور سے۔

کیا ریموٹ انفرنس ایک حقیقی کام کے لیے کافی ہے؟

سست، سوچ سمجھ کر اٹھانے اور رکھنے کے لیے، ہاں۔ کسی بھی رد عمل والے کام کے لیے، نہیں۔ NVIDIA کی تعیناتی گائیڈ ہم وقت ساز سنگل سٹیپ کی ضرورت کو 30 FPS پر تقریباً 33 ms اینڈ ٹو اینڈ بتاتی ہے، اور نوٹ کرتی ہے کہ کیپچر، نیٹ ورک، انفرنس اور پوسٹ پروسیسنگ انٹرنیٹ کے بغیر بھی معمول کے مطابق اس سے تجاوز کر جاتے ہیں۔

سرورز کون سا پورٹ استعمال کرتے ہیں اور کیا اسے کھولنا محفوظ ہے؟

Isaac-GR00T کا PolicyServer ZeroMQ پر پورٹ 5555 پر ڈیفالٹ کرتا ہے اور اپنے CLI میں 0.0.0.0 کو بائنڈ کرتا ہے۔ lerobot gRPC پر پورٹ 8080 پر ڈیفالٹ کرتا ہے اور localhost کو بائنڈ کرتا ہے۔ دونوں کو ظاہر کرنا محفوظ نہیں ہے: GR00T کلاس ایک api_token کو سپورٹ کرتی ہے لیکن run_gr00t_server.py کبھی اسے پاس نہیں کرتا، اور lerobot ایک غیر محفوظ gRPC چینل پر ڈیٹا کو پکل کرتا ہے، جو CVE-2026-25874 ہے۔ لوپ بیک پر بائنڈ کریں اور ایک SSH ٹنل استعمال کریں۔

کیا lerobot کو اپ گریڈ کرنے سے CVE-2026-25874 ٹھیک ہو جاتا ہے؟

23 اگست 2026 تک نہیں۔ CVE ریکارڈ LeRobot کو 0.5.1 تک متاثرہ کے طور پر درج کرتا ہے اور PyPI 0.6.1 بھیجتا ہے، لیکن وہ پل ریکویسٹ جو پکل کو async پائپ لائن سے ہٹا دے گی ابھی بھی کھلی ہے، اور main پر policy_server.py اب بھی درخواست کے ڈیٹا پر pickle.loads کو کال کرتا ہے۔ نیٹ ورک آئسولیشن کو تخفیف کے طور پر سمجھیں، نہ کہ ورژن میں اضافہ، اور فرض کریں کہ روبوٹ سائیڈ کلائنٹ بھی دائرہ کار میں ہے۔

کیا میں GR00T چیک پوائنٹ کے ساتھ lerobot کے async کلائنٹ کو استعمال کر سکتا ہوں؟

جی ہاں۔ lerobot 0.6.1 SUPPORTED_POLICIES میں groot کو act, smolvla, diffusion, tdmpc, vqbet, pi0 اور pi05 کے ساتھ درج کرتا ہے، اور so100_follower اور so101_follower دونوں SUPPORTED_ROBOTS میں ہیں۔ --policy_type=groot پاس کریں اور --pretrained_name_or_path کو اپنے چیک پوائنٹ کی طرف اشارہ کریں۔ آپ کو غیر ہم وقت ساز عمل درآمد ملتا ہے، جسے GR00T SO-100 مثال لاگو نہیں کرتی، pickle ٹرانسپورٹ کی قیمت پر۔

مختصر ورژن

ایک 3 B کے لیے ریموٹ انفرنس پالیسی ایک حل شدہ انجینئرنگ مسئلہ ہے جس کے ساتھ ایک حل نہ ہونے والا فزکس کا مسئلہ منسلک ہے۔ انجینئرنگ دو کمانڈز اور ایک SSH ٹنل ہے۔ فزکس یہ ہے کہ ایک 1.8 MB مشاہدے کو دوسرے ملک میں ایک GPU تک پہنچنا ہے اور بازو کے اعمال ختم ہونے سے پہلے واپس آنا ہے۔ کچھ بھی کرایہ پر لینے سے پہلے حساب لگائیں، ایک ایسا کام منتخب کریں جو پرانے مشاہدے کو برداشت کر سکے، اور لنک کے بہتر ہونے کی امید کرنے کے بجائے عمل درآمد کے افق کو بڑھائیں۔

اگر آپ نے ابھی تک کوئی ڈیٹا سیٹ ریکارڈ نہیں کیا ہے، اپنا پہلا ڈیٹا سیٹ ریکارڈ کریں اور SO-100 سیٹ اپ گائیڈ پہلے آتے ہیں، اور LeRobot ڈیٹا سیٹ فارمیٹ اندراج بتاتا ہے کہ ریکارڈر کیا لکھتا ہے۔ پس منظر میں ہے ویژن-لینگویج-ایکشن ماڈلز اور فلو-میچنگ پالیسی کا کام؛ ارینا اندراج ہر بینچ مارک نمبر کو ایک ماخذ سے جوڑتا ہے۔

Sources

Sources

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started