Downloads · 30 days
16
37% of all-time downloads
ayoubkirouane/Sophea-Nano-Policy-LIBERO-Greek-v1
Sophea-Nano-Policy-LIBERO-Greek-v1 is a robotics model from ayoubkirouane. Use it for the robotics task on the model card, and read the license before you ship it in a product. It is set up for cosmos. The card lists the license as other.
<div style="display:flex;align-items:center;gap:18px;padding:16px 20px;margin-bottom:16px;border-radius:14px;background:linear-gradient(100deg,e8f5ec 0%,f7fbf8 62%);border:1px solid c6e7d1"<img alt="KIEFERSA" style="f…
Downloads · 30 days
16
37% of all-time downloads
All-time downloads
43
Public
Parameters
15.2B
31.5 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors31.5 GB · 100%
From the Hugging Face model README
Bilingual (Greek/English) VLA policy from the paper Measuring Language Transfer in Robot Policies: Adding Greek to a Cosmos3 Vision-Language-Action Policy.
A vision-language-action manipulation policy that follows instructions in Greek and English. Trained by imitation on LIBERO-90 demonstrations with bilingual instructions. No architecture change: the text tower is frozen; only the training data differs from the base recipe.
Base: nvidia/Cosmos3-Nano. Checkpoint: action_policy_l90_bil_s43 / iter_000002000.
Every number is read against a wrong-instruction control: the same policy given a deliberately unrelated command. That floor is what separates following the instruction from a motion prior that happens to succeed.
<div style="overflow-x:auto"> <table style="width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif"> <thead><tr> <th style="padding:10px 8px;font-weight:500;border-bottom:2px solid #0a8043;color:#0a8043;font-size:14px;text-align:left;">condition</th> <th style="padding:10px 8px;font-weight:500;border-bottom:2px solid #0a8043;color:#0a8043;font-size:14px;text-align:center;">success</th> <th style="padding:10px 8px;font-weight:500;border-bottom:2px solid #0a8043;color:#0a8043;font-size:14px;text-align:center;">margin over control</th> </tr></thead><tbody> <tr><td style="padding:7px 8px;padding-left:20px;text-align:left;border-bottom:1px solid rgba(128,128,128,.15);">English instructions</td><td style="padding:7px 8px;text-align:center;border-bottom:1px solid rgba(128,128,128,.15);">62.7%</td><td style="padding:7px 8px;text-align:center;border-bottom:1px solid rgba(128,128,128,.15);font-weight:700;color:#0a8043;">+41.3</td></tr> <tr><td style="padding:7px 8px;padding-left:20px;text-align:left;border-bottom:1px solid rgba(128,128,128,.15);font-weight:700;color:#0a8043;">Greek instructions</td><td style="padding:7px 8px;text-align:center;border-bottom:1px solid rgba(128,128,128,.15);font-weight:700;color:#0a8043;">28.2%</td><td style="padding:7px 8px;text-align:center;border-bottom:1px solid rgba(128,128,128,.15);font-weight:700;color:#0a8043;">+6.8</td></tr> <tr><td style="padding:7px 8px;padding-left:20px;text-align:left;border-bottom:1px solid rgba(128,128,128,.15);">Greek, phrasings never seen in training</td><td style="padding:7px 8px;text-align:center;border-bottom:1px solid rgba(128,128,128,.15);">27.8%</td><td style="padding:7px 8px;text-align:center;border-bottom:1px solid rgba(128,128,128,.15);font-weight:700;color:#0a8043;">+6.4</td></tr> <tr><td style="padding:7px 8px;padding-left:20px;text-align:left;border-bottom:1px solid rgba(128,128,128,.15);">wrong instruction (control)</td><td style="padding:7px 8px;text-align:center;border-bottom:1px solid rgba(128,128,128,.15);">21.4%</td><td style="padding:7px 8px;text-align:center;border-bottom:1px solid rgba(128,128,128,.15);font-weight:700;color:#0a8043;">0</td></tr> </tbody></table></div>The control is not chance; read the margin. Chance on this suite is about 1.1%. A policy that ignores the instruction still succeeds 21.4% of the time by performing a task in the scene, so the instruction-following signal is the margin above that floor: 6.8 points in Greek, 41.3 in English. Greek success is 45% of English.
Same task, same initial state; only the instruction language changes. The bar shows the instruction sent, a language badge, and the simulator's verdict (✓ / ✗). Percentages are this model's 20-trial success on that task.
Task 55, English and Greek side by side (EN 100% · EL 100%)

| English instruction | Greek instruction |
|---|---|
![]() | ![]() |
| put the moka pot on the stove · 100% | Βάλε τη μηχανή μόκα στην κουζίνα (εστία) · 55% |
![]() | ![]() |
| pick up the ketchup and put it in the basket · 100% | Πάρε το κέτσαπ και βάλε το στο καλάθι · 5%, a failure we publish on purpose |
Everything below was run for this card from the released safetensors directory, not from the training
checkpoint. Stack: NVIDIA cosmos-framework 1.2.2 (Python 3.13) for the policy server, and
LIBERO in a separate Python 3.10 environment for the
simulator client. The server also needs the Wan2.2 video VAE (Wan2.2_VAE.pth, ~2.8 GB) from the Cosmos3
checkpoint bundle.
1. Download
huggingface-cli download KIEFERSA/Sophea-Nano-Policy-LIBERO-Greek-v1 --local-dir ./Sophea-Nano-Policy-LIBERO-Greek-v1
2. Serve the policy (one GPU, ~32 GB)
cd cosmos-framework
python -m cosmos_framework.scripts.action_policy_server_libero \
--experiment action_policy_libero_nano \
--experiment-overrides "model.config.tokenizer.vae_path=/path/to/Wan2.2_VAE.pth" \
--checkpoint-path ./Sophea-Nano-Policy-LIBERO-Greek-v1 \
--action-normalization quantile_rot \
--action-stats-path cosmos_framework/data/generator/action/normalizer_stats/libero_native_frame_wise_relative_rot6d.json \
--raw-action-dim 10 --fps 20 --port 8000
curl -s localhost:8000/info # ready when this returns JSON
3. Run the closed-loop evaluation. LIBERO must be importable (PYTHONPATH to its checkout) and needs
~/.libero/config.yaml; the first from libero.libero import benchmark prompts for it interactively,
answer N once. Set LIBERO_ROOT to the LeRobot-format suite you evaluate on.
export MUJOCO_GL=egl LIBERO_ROOT=/path/to/LIBERO_LeRobot_v3/libero_90
python cosmos_framework/simulation/libero/closed_loop_eval.py \
--server_url http://localhost:8000 --task_suite libero_90 \
--num_trials_per_task 20 --num_envs 8 --camera agentview,wrist --image_size 256 \
--action_space frame_wise_relative --rotation_space 6d --action_dim 10 \
--output_dir out_english
That is the English condition. Results land in out_english/summary.json (overall_success_rate plus
per-task task_results).
4. Evaluate under Greek, and run the control. The evaluator rewrites each task's instruction through a
JSON map given as INSTRUCTION_MAP_JSON, English instruction → replacement. Three entries, so the format is exact:
{
"put the middle black bowl on the plate": "Βάλε το μεσαίο μαύρο μπολ στο πιάτο",
"pick up the alphabet soup and put it in the tray": "Πιάσε τη σούπα με αλφαβητάκια και βάλε την στο δίσκο",
"turn on the stove and put the frying pan on it": "Άνοιξε την κουζίνα (εστία) και βάλε το τηγάνι πάνω της"
}
INSTRUCTION_MAP_JSON=greek_map.json python cosmos_framework/simulation/libero/closed_loop_eval.py ... --output_dir out_greek
INSTRUCTION_MAP_JSON=wrong_map.json python cosmos_framework/simulation/libero/closed_loop_eval.py ... --output_dir out_wrong
The wrong-instruction control maps every task to another task's Greek; it is the floor every Greek number in this card is read against. Two rules the evaluator enforces: keys are matched case-insensitively, and a task missing from the map aborts the run rather than silently falling back to English. LIBERO-90 has 90 tasks but 74 unique instructions; a map must cover all 74. Supply your own Greek map.
5. Call the policy directly (what the evaluator does under the hood)
POST /predict
{"image": "<base64 PNG, agentview>", "prompt": "Πιάσε τη σούπα με αλφαβητάκια και βάλε την στο δίσκο",
"domain_name": "libero", "image_size": 256}
→ {"action": [[a0, ..., a9], ... 16 steps], "video": ["<base64 PNG>", ...]}
Actions are 10-d, frame-wise relative, 6-d rotation, in chunks of 16 at 20 FPS, de-normalised by the
quantile_rot stats file passed to the server.
6. Record GIFs like the ones above: add --save_gifs --gif_fps 20 --num_envs 1 --task_ids 55 to step 3.
Weights follow the base model's license (NVIDIA Open Model License).