Η σελίδα δοκιμής των AY-Robots: τρεις τρόποι για να ξεκινήσετε χωρίς να διαθέτετε ρομπότ, συμπεριλαμβανομένης της ενοικίασης GPU για συμπερασματολογία πολιτικής
GR00T N1.7Απομακρυσμένη ΣυμπερασματολογίαGPU στο CloudLeRobotSO-100Καθυστέρηση

Εκτέλεση συμπερασμάτων GR00T χωρίς τοπική GPU

AY-Robots ResearchAugust 23, 202619 λεπτά ανάγνωσης

Το ρομποτικό σας μηχάνημα δεν διαθέτει GPU. Τοποθετήστε τον διακομιστή πολιτικής GR00T σε μια ενοικιαζόμενη GPU στο cloud, μεταδώστε τμήματα ενεργειών στον βραχίονα και μάθετε ακριβώς τι σας κοστίζει το δίκτυο.

Ένα Raspberry Pi είναι αρκετό για να οδηγήσει ένα μέσω σειριακού διαύλου και να τραβήξει καρέ από δύο κάμερες USB. Δεν είναι αρκετό για να εκτελέσει ένα μοντέλο τριών δισεκατομμυρίων παραμέτρων : το README της NVIDIA αναφέρει ότι η εξαγωγή συμπερασμάτων του GR00T N1.7 απαιτεί μία GPU με 16 GB ή περισσότερο VRAM. Για να δείτε τι κάνει το βελτιστοποιημένο σας checkpoint στον βραχίονα χωρίς να αγοράσετε κάρτα, τοποθετήστε την πολιτική σε μια ενοικιαζόμενη GPU στο cloud, κρατήστε τον βρόχο του ρομπότ στη μηχανή με τις θύρες USB και στείλτε παρατηρήσεις και τμήματα δράσης μέσω του δικτύου.

Λειτουργεί, δεν είναι δωρεάν και η τιμή δεν κατανέμεται ομοιόμορφα σε όλες τις εργασίες. Παρακάτω: ο δικός της διακομιστής πολιτικής της NVIDIA, η ασύγχρονη στοίβα του lerobot, η αριθμητική που λέει εκ των προτέρων αν η σύνδεσή σας είναι αρκετά γρήγορη και η διαδρομή της πλατφόρμας. Όλα αυτά ελέγχθηκαν έναντι του κύριου κλάδου του Isaac-GR00T (N1.7 GA) και του lerobot 0.6.1 στις 23 Αυγούστου 2026.

Τι πρέπει να γνωρίζετε

  • Τα GR00T N1.7, GR00T N1.5 και Pi0.5 είναι μοντέλα περίπου 3 δισεκατομμυρίων παραμέτρων. Κανένα δεν χωράει σε ελεγκτή ρομπότ χωρίς διακριτή GPU.
  • Το Isaac-GR00T και το lerobot διαθέτουν και τα δύο διαχωρισμό client-server. Δεν γράφετε εσείς τη μεταφορά.
  • Οι παρατηρήσεις κυριαρχούν στο κόστος καλωδίου, όχι οι ενέργειες: δύο ασυμπίεστα καρέ RGB 640x480 είναι 1.843.200 bytes, περίπου 14.7 Mbit ανά κλήση, και καμία στοίβα δεν τα συμπιέζει.
  • Η AY-Robots αναφέρει 20 έως 485 ms ανά βήμα δράσης ανά μοντέλο. Οι διαδρομές μετ' επιστροφής στο διαδίκτυο προστίθενται σε αυτό.
  • Η απομακρυσμένη εξαγωγή συμπερασμάτων ταιριάζει σε αργές εργασίες pick-and-place, όχι σε γρήγορη αντιδραστική κίνηση. Ένας μεγαλύτερος ορίζοντας εκτέλεσης κερδίζει χρόνο και κοστίζει σε φρεσκάδα παρατήρησης.
  • Κανένας διακομιστής δεν είναι ασφαλής σε δημόσια IP όπως παραδίδεται, και αυτός του lerobot φέρει ένα μη επιδιορθωμένο RCE. Δημιουργήστε ένα τούνελ.

Γιατί η πολιτική δεν θα χωρέσει στη μηχανή του ρομπότ

Δύο από τις πέντε πολιτικές που μπορεί να εκπαιδεύσει η AY-Robots τρέχουν σε κάρτα workstation, τρεις όχι. Η στήλη παρακάτω είναι ανά βήμα ενέργειας, και αυτός είναι ο αριθμός που ανταγωνίζεται τον χρόνο μετάδοσης του δικτύου σας.

ΠολιτικήΠαράμετροιΣυμπερασματολογία ανά βήμα ενέργειαςΕπίπεδο 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
Η σελίδα πολιτικών της AY-Robots που συγκρίνει τις πέντε εκπαιδεύσιμες πολιτικές ανά παραμέτρους, επίπεδο GPU, καθυστέρηση συμπερασματολογίας και ελάχιστα επεισόδια
Οι ίδιες πέντε σειρές στο /policies. Η στήλη καθυστέρησης αποφασίζει αν μια πολιτική επιβιώνει από ένα network hop.

Διαβάστε το ως απόφαση, όχι ως ασήμαντη πληροφορία. στα 20 ms ανά βήμα τρέχει στη μηχανή του ρομπότ και δεν το σκέφτεστε ποτέ ξανά. στα 485 ms έχει περάσει το ένα τρίτο του δευτερολέπτου πριν ένα πακέτο φύγει από το κτίριό σας. Η και προσθέτουν την πλευρά της ακρίβειας.

Το 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.

Οι δύο στοίβες client-server που υπάρχουν ήδη

Το 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 χρονικό όριο ουράς παρατήρησης
Μοντέλο εκτέλεσηςσύγχρονο: μπλοκάρει, μετά εκτελεί το κομμάτιασύγχρονο: εκτελεί ενώ το επόμενο κομμάτι υπολογίζεται

Η σειρά σειριοποίησης έχει μεγαλύτερη σημασία από ό,τι φαίνεται. Το MsgSerializer του GR00T αρνείται φορτία ndarray τύπου αντικειμένου και στις δύο κατευθύνσεις, επειδή το msgpack_numpy θα τα παρέδιδε διαφορετικά στο pickle. Το lerobot χρησιμοποιεί pickle αντ' αυτού: το policy_server.py καλεί το pickle.loads σε δεδομένα αιτήματος, το robot_client.py κάνει pickle την παρατήρηση που στέλνει. Υπερασπίσιμο σε ένα αξιόπιστο LAN, ανυπεράσπιστο μόλις η θύρα είναι προσβάσιμη από το διαδίκτυο.

Διαδρομή Α: Ο διακομιστής πολιτικής GR00T της NVIDIA

Αυτή είναι η διαδρομή που τεκμηριώνει η NVIDIA για το υλικό SO-100 και SO-101, και αυτή που πρέπει να χρησιμοποιήσετε εάν το checkpoint σας προήλθε από το examples/finetune.sh με --embodiment-tag NEW_EMBODIMENT. Τα βήματα προσθέτουν όσα παραλείπει το αρχικό README: τη μεταφορά της θύρας στο ρομπότ χωρίς να την εκθέσετε σε όλους τους άλλους.

  1. 1
    Εγκαταστήστε το GR00T στο ενοικιαζόμενο GPU box

    Τα υπομονάδες είναι απαραίτητα, και το git-lfs πρέπει να υπάρχει πριν από το clone, αλλιώς τα αρχεία parquet στο demo_data θα φτάσουν ως δείκτες. Το flash-attn και το TensorRT περιλαμβάνονται στην προεπιλεγμένη εγκατάσταση. Η παγίδα σε μια νέα εικόνα pod: το torchcodec 0.8.0 είναι το μόνο υποστηριζόμενο backend βίντεο και φορτώνει μόνο FFmpeg 4 έως 7. Το Ubuntu 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
    Επαληθεύστε την ταυτότητα έναντι του gated backbone

    Κάθε checkpoint GR00T N1.7, συμπεριλαμβανομένου του δικού σας fine-tune, φορτώνει το gated nvidia/Cosmos-Reason2-2B στην πρώτη χρήση. Ζητήστε πρόσβαση στη σελίδα του μοντέλου και συνδεθείτε στο pod, αλλιώς η φόρτωση αποτυγχάνει με ένα GatedRepoError.

    bash
    uv run huggingface-cli login
    # or:  export HF_TOKEN=<your_token>
  3. 3
    Εκκινήστε τον διακομιστή πολιτικής

    Δείξτε το --model-path στον κατάλογο του checkpoint σας· σε αυτή τη διαδρομή ο διακομιστής αγνοεί το --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 στη μηχανή του ρομπότ

    Δεσμεύστε στο loopback, όπως παραπάνω, και μεταφέρετε τη θύρα μέσω SSH ή ενός δικτύου τύπου WireGuard. Αυτό παρέχει την κρυπτογράφηση και την επαλήθευση ταυτότητας που δεν παρέχει η υποδοχή 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
    Εκτελέστε τον πελάτη ρομπότ δίπλα στους σερβοκινητήρες

    Ο πελάτης χρειάζεται το δικό του περιβάλλον uv: θέλει τους οδηγούς ρομπότ του 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, δεσμεύοντας κάθε διεπαφή: σε ένα pod με δημόσια IP αυτό είναι ένα ανοιχτό σημείο τελικής χρήσης συμπερασμάτων. Και η κλάση PolicyServer δέχεται ένα api_token και το επικυρώνει ανά αίτημα, αλλά το run_gr00t_server.py δεν περνάει ποτέ ένα, οπότε ο διακομιστής CLI είναι μη πιστοποιημένος ό,τι κι αν ρυθμίσετε. Δεσμεύστε στο 127.0.0.1 και κάντε tunneling. Ένα ZMQError: Address already in use σημαίνει ότι η θύρα 5555 είναι κατειλημμένη· περάστε το --port.

Διαδρομή Β: ασύγχρονη εξαγωγή συμπερασμάτων με lerobot

Το lerobot επιλύει ένα διαφορετικό πρόβλημα. Αντί να μπλοκάρει το ρομπότ ενώ το μοντέλο σκέφτεται, ο πελάτης συνεχίζει να προχωρά στην ουρά που ήδη έχει, ενώ ο διακομιστής υπολογίζει το επόμενο κομμάτι. Αυτό είναι τεμαχισμός ενέργειας προχωρημένο, η ασύγχρονη στοίβα που εισήχθη με το SmolVLA. Λειτουργεί και με ένα checkpoint 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

Ο διακομιστής ξεκινά κενός: δεν γνωρίζει ποια πολιτική εξυπηρετεί μέχρι το πρώτο handshake του πελάτη να του το πει, κάτι που είναι βολικό σε έναν ενοικιαζόμενο κόμβο. Οι δύο ρυθμίσεις που αποφασίζουν αν ο βραχίονας κινείται ομαλά είναι actions_per_chunk και chunk_size_threshold (τα έγγραφα του lerobot αναφέρουν το δεύτερο ως g, από την εργασία SmolVLA), και οι τεκμηριωμένες τιμές και οι τιμές που παρέχονται δεν συμφωνούν.

ΠαράμετροςΤιμή στον κώδικα lerobot 0.6.1Τι κάνειΣημείωση
actions_per_chunkχωρίς προεπιλογή, απαιτείταιΕνέργειες που επιστρέφονται ανά κλήσηΟ πίνακας τεκμηρίωσης αναφέρει 50· το πεδίο dataclass δεν έχει προεπιλογή, οπότε το 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Πόσο χρόνο περιμένει ο διακομιστής στην ουρά παρατηρήσεωνΜια αργή σύνδεση uplink εμφανίζεται πρώτα εδώ
aggregate_fn_nameweighted_averageΠώς αναμειγνύονται οι επικαλυπτόμενες περιοχές κομματιών0.3 παλιό + 0.7 νέο· τα latest_only, average και conservative επίσης παρέχονται. Το μητρώο είναι AGGREGATE_FUNCTIONS στο configs.py, όχι στο robot_client.py όπως ισχυρίζονται τα έγγραφα
Ο διακομιστής πολιτικής του lerobot έχει ένα RCE χωρίς ενημέρωση

Το CVE-2026-25874 είναι μη πιστοποιημένη απομακρυσμένη εκτέλεση κώδικα στην ασύγχρονη διοχέτευση συμπερασμάτων του lerobot: pickle.loads() σε δεδομένα που λαμβάνονται μέσω ενός μη πιστοποιημένου καναλιού gRPC χωρίς TLS, προσβάσιμο μέσω των κλήσεων SendPolicyInstructions, SendObservations και GetActions. CWE-502, βασική βαθμολογία CVSS 3.1 9.8 από το NVD, βασική βαθμολογία 4.0 9.3 από το αναθέτον CNA. Η καταγραφή αναφέρει το LeRobot έως 0.5.1 ως επηρεαζόμενο και ονομάζει τόσο τον διακομιστή πολιτικής όσο και τον πελάτη ρομπότ, οπότε η μηχανή δίπλα στον βραχίονά σας εμπίπτει στο πεδίο εφαρμογής. Η αναβάθμιση δεν είναι η λύση: η καταγραφή αναφέρει το upstream ζήτημα 3047 και την ενημέρωση, PR 3048, η οποία ανταλλάσσει το pickle με safetensors συν JSON, και στις 23 Αυγούστου 2026 και τα δύο είναι ακόμα ανοιχτά. Το policy_server.py στο main εξακολουθεί να καλεί το pickle.loads σε δεδομένα αιτήματος ενώ το serve() δεσμεύεται με add_insecure_port. Δεσμεύστε σε loopback και ποτέ μην προωθείτε τη θύρα 8080.

Η αριθμητική που αποφασίζει αν η σύνδεσή σας είναι αρκετά γρήγορη

Οι άνθρωποι το παραλείπουν αυτό και μετά ξοδεύουν μια μέρα σε . Χρειάζονται δύο λεπτά και είναι σχεδόν πάντα καθοριστικό.

Το σχολιασμένο λεξικό παρατηρήσεων στο eval_so100.py της NVIDIA λέει τι μεταδίδεται: δύο πίνακες σχήματος (480, 640, 3) σε uint8, έξι δεκαδικοί αριθμοί αρθρώσεων, μια συμβολοσειρά γλώσσας. Αυτό είναι 921.600 bytes ανά καρέ, 1.843.200 bytes για δύο κάμερες, περίπου 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, και μετά καλεί ξανά. Το μέγεθος του τμήματος (chunk size) και ο ορίζοντας (horizon) είναι διαφορετικοί αριθμοί: ο οδηγός ανάπτυξης της NVIDIA συνιστά μέγεθος τμήματος δράσης 16, τουλάχιστον 32 όταν συνδυάζεται με real-time chunking, ενώ 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 uplink, 30 ms round trip, GR00T N1.7

Η αύξηση του ορίζοντα είναι μια πρόχειρη λύση και όχι χωρίς κόστος: ο βραχίονας ενεργεί βάσει μιας παρατήρησης που είναι πλέον παλιά. Η ενδεδειγμένη λύση είναι το real-time chunking, το οποίο υπολογίζει το επόμενο τμήμα ενώ το τρέχον εκτελείται, παγώνει τις ενέργειες που είναι εγγυημένο ότι θα εκτελεστούν και συμπληρώνει τις υπόλοιπες· η δημοσίευση για το RTC αναφέρει ότι είναι ανθεκτικό στην καθυστέρηση συμπερασμάτων χωρίς επανεκπαίδευση. Ελέγξτε πρώτα πού βρίσκεται αυτό. Η NVIDIA χαρακτηρίζει το RTC πειραματικό, μια πρωτόγονη λειτουργία μοντέλου χαμηλού επιπέδου προσβάσιμη μέσω action_head.get_action(..., options={"rtc_overlap_steps": ..., "rtc_frozen_steps": ...}), μη ενσωματωμένο στο Gr00tPolicy ή στη διαδρομή server-client, όπου options δεν χρησιμοποιείται, χωρίς δοκιμές και χωρίς παράδειγμα. Μέσω ενός policy server αποκτάτε ασύγχρονη εκτέλεση, όχι RTC.

Τι κοστίζει το μοντέλο πριν το δίκτυο

Η NVIDIA αξιολογεί το GR00T N1.7 από άκρο σε άκρο σε 4 βήματα αποθορυβοποίησης με μία κάμερα. Σε ένα H100 80GB HBM3: 85.8 ms (11.7 Hz) σε PyTorch eager, 48.6 ms (20.6 Hz) με torch.compile, 27.9 ms (35.9 Hz) με την πλήρη pipeline του TensorRT. Ένα L40 σε eager mode χρειάζεται 128.3 ms (7.8 Hz). Η NVIDIA ορίζει τα 10 Hz ως το συνιστώμενο ελάχιστο για τυπική χειραγώγηση, και κάτω από 10 Hz κατάλληλο μόνο για αργές, μη αντιδραστικές εργασίες. Αυτές είναι ρυθμοί επανασχεδιασμού: μια πολιτική 10 Hz μπορεί ακόμα να κινήσει έναν βραχίονα 30 FPS μέσω του action chunking. Μια δεύτερη κάμερα σας οδηγεί σε λάθος κατεύθυνση.

Μετρήστε το πριν το εμπιστευτείτε

Κάθε αριθμός παραπάνω είναι μια πρόβλεψη. Τέσσερις εντολές τη μετατρέπουν σε μέτρηση, αξίζει να τις εκτελέσετε πριν δεσμεύσετε μια ώρα pod σε μια εργασία που δεν επρόκειτο ποτέ να λειτουργήσει.

  1. 1
    Λάβετε τον ακατέργαστο χρόνο μετ' επιστροφής

    Ενάντια στο pod, όχι σε ένα CDN. Παρακολουθήστε την απόκλιση τόσο στενά όσο και τον μέσο όρο: το jitter κάνει ένα ρομποτικό βραχίονα να κολλάει, όχι ο μέσος χρόνος καθυστέρησης.

    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 καταγράφει την καθυστέρηση από τον διακομιστή στον πελάτη και τον χρόνο αποσειριοποίησης για κάθε κομμάτι. Στη διαδρομή Β δεν χρειάζεστε εξωτερικά εργαλεία.

    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 δισεκατομμυρίων παραμέτρων σε πραγματικό υλικό χωρίς να διαθέτετε κάρτα που κοστίζει περισσότερο από τον βραχίονα.
  • Η GPU ενοικιάζεται ανά ώρα, οπότε ένα αποτυχημένο checkpoint κοστίζει μερικά δολάρια.
  • Η πλευρά του ρομπότ παραμένει μικρή: lerobot drivers, δύο κάμερες, μια σειριακή θύρα, και μπορείτε να αλλάζετε checkpoints χωρίς να την αγγίζετε.
Συμβιβασμοί
  • Οι ασυμπίεστες παρατηρήσεις κυριαρχούν στο κόστος μετάδοσης, και η οικιακή μεταφόρτωση είναι ο δεσμευτικός περιορισμός.
  • Το jitter βλάπτει περισσότερο από την καθυστέρηση: μια σύνδεση με μέσο όρο 40 ms και αιχμές στα 300 ms κολλάει, ενώ μια σταθερή σύνδεση 120 ms όχι.
  • Οι γρήγορες αντιδραστικές εργασίες δεν επιβιώνουν το ταξίδι μετ' επιστροφής σε κανέναν ορίζοντα.
  • Και οι δύο διακομιστές αποστέλλονται χωρίς έλεγχο ταυτότητας σε μορφή CLI, οπότε η εργασία σήραγγας είναι δική σας.
  • Μια αποσυνδεδεμένη σύνδεση στη μέση ενός τμήματος αφήνει τον βραχίονα να κρατά μια παρωχημένη ενέργεια. Προσθέστε τον δικό σας ρομποτικό φύλακα (watchdog) στην πλευρά του ρομπότ.
ΕργασίαΛειτουργεί μέσω του δημόσιου διαδικτύου;Γιατί
Διαλέξτε ένα στατικό αντικείμενο, τοποθετήστε το σε ένα δοχείοΝαιΤίποτα δεν κινείται μεταξύ παρατήρησης και ενέργειας.
Στοίβαξη κύβων με μεθοδικό ρυθμόΝαι, με action_horizon 16 ή περισσότεροΤα σφάλματα συσσωρεύονται αρκετά αργά ώστε να διορθωθούν στο επόμενο τμήμα.
Ανοίξτε ένα συρτάρι, εισάγετε ένα αντικείμενοΣυνήθωςΠλούσιο σε επαφές αλλά αργό. Προσοχή στο σταμάτα-ξεκίνα στην επαφή.
Ακολουθήστε ένα κινούμενο αντικείμενοΌχιΗ πολιτική ενεργεί βάσει μιας παρατήρησης ηλικίας 300 ms έως 1 s.
Πιάσιμο, ισορροπία ή ανάκτηση από ολίσθησηΌχιΤο παράθυρο διόρθωσης είναι μικρότερο από ένα ταξίδι μετ' επιστροφής.
Ένας σύγχρονος κλειστός βρόχος 30 HzΌχιΟ προϋπολογισμός είναι 33 ms από άκρο σε άκρο. Ακόμη και ένα LAN δυσκολεύεται.

Εάν μια απομακρυσμένη εκτέλεση κολλάει στο ίδιο σημείο σε κάθε επεισόδιο, το δίκτυο πιθανότατα δεν είναι η αιτία. Μια πολιτική που διστάζει στην ίδια γωνία άρθρωσης κάθε φορά είναι συνήθως πρόβλημα δεδομένων· δείτε τις σελίδες τρόπων αποτυχίας, ειδικότερα μια πολιτική που λειτουργεί μόνο σε μία ρύθμιση και η απώλεια μειώνεται αλλά η πολιτική δεν κάνει τίποτα.

Το να το κάνετε μόνοι σας έναντι του να το κάνετε στο AY-Robots

  1. Νοικιάστε μια GPU σε μια spot αγορά και περιμένετε για αρκετή VRAM σε τιμή που σας αρέσει.
  2. Εγκαταστήστε το CUDA, το uv, ένα ffmpeg torchcodec που είναι αποδεκτό, και το GR00T stack με τα submodules.
  3. Ζητήστε πρόσβαση στο gated `nvidia/Cosmos-Reason2-2B` backbone και τοποθετήστε ένα token στο pod.
  4. Μεταφέρετε το checkpoint σας στο pod.
  5. Εκκινήστε τον server σε loopback, και στη συνέχεια δημιουργήστε ένα SSH tunnel από το ρομποτικό μηχάνημα.
  6. Εγκαταστήστε ένα δεύτερο περιβάλλον στο ρομποτικό μηχάνημα για τον client και τους drivers.
  7. Αντιστοιχίστε τα κλειδιά κάμερας, τα ονόματα αρθρώσεων και την γλωσσική εντολή με αυτά που είδε το checkpoint.
  8. Παρακολουθήστε το pod. Ένα ξεχασμένο A100 που τρέχει όλη τη νύχτα κοστίζει περισσότερο από το πείραμα.
Το αδρανές pod είναι το πραγματικό κόστος

Ο λογαριασμός της GPU δεν σταματά όταν σταματά το ρομπότ. Τα περισσότερα χρήματα που χάνονται σε απομακρυσμένη inference πηγαίνουν σε έναν server που παρέμεινε ενεργός αφού όλοι αποχώρησαν. Ρυθμίστε ένα ξυπνητήρι ή αυτοματοποιήστε την απενεργοποίηση.

Η σελίδα του AY-Robots MCP server που παραθέτει τις λειτουργίες της πλατφόρμας εκτεθειμένες ως εργαλεία σε AI agents
Η σελίδα MCP: λειτουργίες παροχής και inference εκτεθειμένες ως εργαλεία που μπορεί να καλέσει ένας agent.

Τι κοστίζει μια απομακρυσμένη συνεδρία inference

Δύο αριθμοί έχουν σημασία: η ωριαία τιμή της κάρτας και πόσο καιρό την αφήνετε να λειτουργεί. Ο πρώτος δημοσιεύεται· ο δεύτερος εκπλήσσει τους ανθρώπους.

ΚάρταRunpod κοινοτικό cloudRunpod ασφαλές cloudΚατάλληλο για
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Η πιο γρήγορη βαθμίδα· η τιμή 11.7 Hz eager της NVIDIA αφορά μια 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

Αυτές οι τιμές διαβάστηκαν από τη σελίδα τιμολόγησης της Runpod στις 23 Αυγούστου 2026, και οι αγορές spot μεταβάλλονται. Η AY-Robots αναφέρει μια ολόκληρη εκτέλεση αντ' αυτού: 3 έως 6 ώρες με 1.20 έως 2.00 USD ανά ώρα στην βαθμίδα A100 ή H100, περίπου 4 έως 12 USD για μια εκτέλεση GR00T ή Pi0.5· 2 έως 5 ώρες με 0.30 έως 0.60 USD ανά ώρα στην βαθμίδα 24 GB, 1 έως 3 USD για SmolVLA ή ACT. Μια συνεδρία συμπερασματολογίας είναι πιο οικονομική από μια εκτέλεση εκπαίδευσης μόνο αν την σταματήσετε, για αυτό υπάρχει ο επόπτης αδράνειας. Δείτε τα έγγραφα χρέωσης και τη σελίδα τιμολόγησης.

Ο πίνακας κόστους της AY-Robots που δείχνει ποια GPU χρειάζεται κάθε πολιτική, τον τυπικό χρόνο εκτέλεσης και την τιμή, και τα επεισόδια πριν μια πολιτική γίνει χρήσιμη
Ο πίνακας κόστους στο /try: ποια κάρτα χρειάζεται κάθε μοντέλο και πόσο κοστίζει συνήθως μια εκτέλεση.

Αν προτιμάτε να μην έχετε το δίκτυο στον βρόχο

Η απομακρυσμένη εξαγωγή συμπερασμάτων λύνει ένα πρόβλημα υλικού και δημιουργεί ένα πρόβλημα καθυστέρησης. Μερικές φορές η καλύτερη απάντηση είναι μια πολιτική που ταιριάζει στο υλικό που διαθέτετε.

  • ACT, περίπου 80 M παραμέτρους και 20 ms ανά βήμα ενέργειας, 50 επεισόδια ελάχιστο, οποιαδήποτε κάρτα 24 GB. Σε μια επαναλαμβανόμενη ρύθμιση μονής εργασίας συχνά ξεπερνά ένα απομακρυσμένο μοντέλο 3 B, επειδή δεν περιμένει ποτέ ένα πακέτο.
  • SmolVLA, περίπου 450 M παραμέτρους και 245 ms ανά βήμα ενέργειας, 30 επεισόδια ελάχιστο. Διατηρεί την γλωσσική προσαρμογή που λείπει από το ACT, και τα lerobot docs το τοποθετούν περίπου στα 2 GB κατά τον χρόνο εξαγωγής συμπερασμάτων έναντι περίπου 14 GB για το PI0.
  • ACT vs GR00T N1.7 για το μισό της ακρίβειας της ανταλλαγής.

Υπάρχει επίσης μια μέση οδός: εκπαίδευση στο cloud, αξιολόγηση τοπικά. Βελτιστοποίηση χρειάζεται την κάρτα 80 GB και δεν ενδιαφέρεται για την καθυστέρηση, οπότε η εκπαίδευση του GR00T N1.7 σε ένα SO-100 απομακρυσμένα είναι αδιαμφισβήτητη. Μόνο ο βρόχος αξιολόγησης έχει περιορισμό πραγματικού χρόνου· τα έγγραφα εκπαίδευσης και μήτρα μοντέλου και βραχίονα καλύπτουν αυτό το μισό.

Δεν έχετε ακόμα βραχίονα στο γραφείο;

Οδηγήστε ένα πραγματικό SO-100 στον περιηγητή χωρίς εγγραφή, συγκρίνετε τις πέντε εκπαιδεύσιμες πολιτικές με τους πραγματικούς αριθμούς καθυστέρησης, ή νοικιάστε μια GPU και εκπαιδεύστε μία. Τρεις τρόποι για να ξεκινήσετε, κανένας δεν απαιτεί υλικό που δεν διαθέτετε.

Δοκιμάστε το χωρίς υλικό

Συχνές ερωτήσεις

Μπορώ να τρέξω το GR00T N1.7 σε ένα Raspberry Pi αν η GPU είναι απομακρυσμένη;

Ναι, γι' αυτό υπάρχει ο διαχωρισμός client-server. Το Pi τρέχει τους drivers του lerobot, διαβάζει δύο κάμερες και ένα σειριακό δίαυλο, και στέλνει παρατηρήσεις στον policy server· δεν φορτώνει ποτέ το μοντέλο. Ο περιορισμός μετατοπίζεται από τη VRAM στο εύρος ζώνης αποστολής: δύο ασυμπίεστα καρέ RGB 640x480 είναι 1.843.200 bytes ανά κλήση, και καμία στοίβα δεν τα συμπιέζει.

Πόση καθυστέρηση προσθέτει πραγματικά το δίκτυο;

Χρόνος μετ' επιστροφής συν χρόνος μεταφοράς παρατήρησης. Ο χρόνος μεταφοράς είναι 14.7 Mbit διαιρούμενος με το εύρος ζώνης αποστολής σας: περίπου 147 ms σε σύνδεση 100 Mbit/s, 1.47 s σε σύνδεση 10 Mbit/s. Και οι δύο προστίθενται στον χρόνο συμπερασματολογίας του ίδιου του μοντέλου, τον οποίο η AY-Robots αναφέρει ως 152 ms για το GR00T N1.7 και 485 ms για το Pi0.5. Μετρήστε με ping και iperf3 έναντι του pod, όχι ενός διακομιστή δοκιμής ταχύτητας.

Είναι η απομακρυσμένη συμπερασματολογία αρκετά καλή για μια πραγματική εργασία;

Για αργή, προσεκτική επιλογή και τοποθέτηση (pick-and-place), ναι. Για οτιδήποτε αντιδραστικό, όχι. Ο οδηγός ανάπτυξης της NVIDIA θέτει την απαίτηση συγχρονισμένου μονοβήματου στα περίπου 33 ms από άκρο σε άκρο στα 30 FPS, και σημειώνει ότι η λήψη, το δίκτυο, η συμπερασματολογία και η μετα-επεξεργασία υπερβαίνουν συνήθως αυτό, χωρίς να εμπλέκεται το διαδίκτυο.

Ποια θύρα χρησιμοποιούν οι servers και είναι ασφαλές να την ανοίξω;

Ο PolicyServer του Isaac-GR00T χρησιμοποιεί ως προεπιλογή τη θύρα 5555 μέσω ZeroMQ και δεσμεύει το 0.0.0.0 στο CLI του. Το lerobot χρησιμοποιεί ως προεπιλογή τη θύρα 8080 μέσω gRPC και δεσμεύει το localhost. Κανένα από τα δύο δεν είναι ασφαλές για έκθεση: η κλάση GR00T υποστηρίζει ένα api_token αλλά το run_gr00t_server.py δεν περνάει ποτέ ένα, και το lerobot κάνει pickle δεδομένα μέσω ενός μη ασφαλούς καναλιού gRPC, το οποίο είναι το CVE-2026-25874. Δεσμεύστε σε loopback και χρησιμοποιήστε ένα SSH tunnel.

Διορθώνει η αναβάθμιση του lerobot το CVE-2026-25874;

Όχι από τις 23 Αυγούστου 2026. Η καταγραφή CVE αναφέρει το LeRobot έως την έκδοση 0.5.1 ως επηρεαζόμενο και το PyPI διανέμει την 0.6.1, αλλά το pull request που θα αφαιρούσε το pickle από τον ασύγχρονο αγωγό είναι ακόμα ανοιχτό, και το policy_server.py στο main εξακολουθεί να καλεί το pickle.loads στα δεδομένα αιτήματος. Αντιμετωπίστε την απομόνωση δικτύου ως μέτρο μετριασμού, όχι ως αναβάθμιση έκδοσης, και υποθέστε ότι ο client στην πλευρά του ρομπότ είναι επίσης εντός πεδίου εφαρμογής.

Μπορώ να χρησιμοποιήσω τον ασύγχρονο client του lerobot με ένα GR00T checkpoint;

Ναι. Το lerobot 0.6.1 αναφέρει το groot στις SUPPORTED_POLICIES μαζί με τα act, smolvla, diffusion, tdmpc, vqbet, pi0 και pi05, και τόσο το so100_follower όσο και το so101_follower βρίσκονται στις SUPPORTED_ROBOTS. Περάστε --policy_type=groot και δείξτε το --pretrained_name_or_path στο checkpoint σας. Έχετε ασύγχρονη εκτέλεση, την οποία το παράδειγμα GR00T SO-100 δεν υλοποιεί, με κόστος τη μεταφορά pickle.

Η σύντομη εκδοχή

Η απομακρυσμένη συμπερασματολογία για ένα 3 B πολιτική είναι ένα λυμένο μηχανολογικό πρόβλημα με ένα άλυτο φυσικό πρόβλημα συνδεδεμένο. Η μηχανική είναι δύο εντολές και ένα SSH tunnel. Η φυσική είναι ότι μια παρατήρηση 1.8 MB πρέπει να φτάσει σε μια GPU σε άλλη χώρα και να επιστρέψει πριν ο βραχίονας ξεμείνει από ενέργειες. Κάντε τους υπολογισμούς πριν νοικιάσετε οτιδήποτε, επιλέξτε μια εργασία που ανέχεται μια παρωχημένη παρατήρηση και αυξήστε τον ορίζοντα εκτέλεσης αντί να ελπίζετε ότι η σύνδεση θα βελτιωθεί.

Εάν δεν έχετε καταγράψει ακόμα ένα σύνολο δεδομένων, καταγράψτε το πρώτο σας σύνολο δεδομένων και ο οδηγός εγκατάστασης SO-100 προηγούνται, και η μορφή συνόλου δεδομένων LeRobot καταχώριση εξηγεί τι καταγράφει ο καταγραφέας. Το υπόβαθρο βρίσκεται στα μοντέλα όρασης-γλώσσας-δράσης και την εργασία πολιτικής flow-matching· η καταχώριση arena συνδέει κάθε αριθμό αναφοράς με μια πηγή.

Sources

Sources

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started