import{s as dt,n as ct,o as ut}from"../chunks/scheduler.eb244325.js";import{S as ht,i as $t,e as a,s as l,c as r,h as yt,a as s,d as n,b as o,f as Be,g as p,j as m,k as ft,l as te,m as i,n as g,t as f,o as d,p as c}from"../chunks/index.3fe63ad3.js";import{C as bt}from"../chunks/CopyLLMTxtMenu.08242e11.js";import{C as qe}from"../chunks/CodeBlock.91baa5b4.js";import{H as u,E as Tt}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.234c3f85.js";function wt(Ne){let h,le,ne,oe,y,ae,b,se,T,Ze='π₀.₅ is a <strong>Vision-Language-Action model with open-world generalization</strong>, from Physical Intelligence. The LeRobot implementation is adapted from their open source <a href="https://github.com/Physical-Intelligence/openpi" rel="nofollow">OpenPI</a> repository.',re,w,pe,M,De='π₀.₅ represents a significant evolution from π₀, developed by <a href="https://www.physicalintelligence.company/blog/pi05" rel="nofollow">Physical Intelligence</a> to address a big challenge in robotics: <strong>open-world generalization</strong>. While robots can perform impressive tasks in controlled environments, π₀.₅ is designed to generalize to entirely new environments and situations that were never seen during training.',me,v,ge,C,Qe="As Physical Intelligence explains, the fundamental challenge isn’t performing tasks of agility or dexterity, but generalization, the ability to correctly perform tasks in new settings with new objects. Consider a robot cleaning different homes: each home has different objects in different places. Generalization must occur at multiple levels:",fe,J,Oe="<li><strong>Physical Level</strong>: Understanding how to pick up a spoon (by the handle) or plate (by the edge), even with unseen objects in cluttered environments</li> <li><strong>Semantic Level</strong>: Understanding task semantics, where to put clothes and shoes (laundry hamper, not on the bed), and what tools are appropriate for cleaning spills</li> <li><strong>Environmental Level</strong>: Adapting to “messy” real-world environments like homes, grocery stores, offices, and hospitals</li>",de,L,ce,_,Fe="The breakthrough innovation in π₀.₅ is <strong>co-training on heterogeneous data sources</strong>. The model learns from:",ue,U,Ke="<li><strong>Multimodal Web Data</strong>: Image captioning, visual question answering, object detection</li> <li><strong>Verbal Instructions</strong>: Humans coaching robots through complex tasks step-by-step</li> <li><strong>Subtask Commands</strong>: High-level semantic behavior labels (e.g., “pick up the pillow” for an unmade bed)</li> <li><strong>Cross-Embodiment Robot Data</strong>: Data from various robot platforms with different capabilities</li> <li><strong>Multi-Environment Data</strong>: Static robots deployed across many different homes</li> <li><strong>Mobile Manipulation Data</strong>: ~400 hours of mobile robot demonstrations</li>",he,x,et="This diverse training mixture creates a “curriculum” that enables generalization across physical, visual, and semantic levels simultaneously.",$e,I,ye,$,K,tt='<p>Install LeRobot by following our <a href="./installation">Installation Guide</a>.</p>',We,k,ee,nt="Install Pi0.5 dependencies by running:",Ye,R,be,H,Te,P,it="To use π₀.₅ in your LeRobot configuration, specify the policy type as:",we,G,Me,j,ve,z,Ce,S,lt="Here’s a complete training command for finetuning the base π₀.₅ model on your own dataset:",Je,V,Le,E,_e,X,ot=`<li><strong><code>--policy.compile_model=true</code></strong>: Enables model compilation for faster training</li> <li><strong><code>--policy.gradient_checkpointing=true</code></strong>: Reduces memory usage significantly during training</li> <li><strong><code>--policy.dtype=bfloat16</code></strong>: Use mixed precision training for efficiency</li> <li><strong><code>--batch_size=32</code></strong>: Batch size for training, adapt this based on your GPU memory</li> <li><strong><code>--policy.pretrained_path=lerobot/pi05_base</code></strong>: The base π₀.₅ model you want to finetune, options are:
<ul><li><a href="https://huggingface.co/lerobot/pi05_base" rel="nofollow">lerobot/pi05_base</a></li> <li><a href="https://huggingface.co/lerobot/pi05_libero" rel="nofollow">lerobot/pi05_libero</a> (specifically trained on the Libero dataset)</li></ul></li>`,Ue,A,at="If your dataset is not converted with <code>quantiles</code>, you can convert it with the following command:",xe,B,Ie,q,st="Or train pi05 with this normalization mapping: <code>--policy.normalization_mapping=&#39;{&quot;ACTION&quot;: &quot;MEAN_STD&quot;, &quot;STATE&quot;: &quot;MEAN_STD&quot;, &quot;VISUAL&quot;: &quot;IDENTITY&quot;}&#39;</code>",ke,W,Re,Y,He,N,rt="π₀.₅ has demonstrated strong performance on the Libero benchmark suite. To compare and test its LeRobot implementation, we finetuned the libero base model for an additional 6k steps on the Libero dataset and compared the results to the OpenPI reference results.",Pe,Z,pt="<thead><tr><th>Benchmark</th> <th>LeRobot Implementation</th> <th>OpenPI Reference</th></tr></thead> <tbody><tr><td><strong>Libero Spatial</strong></td> <td>97.0%</td> <td>98.8%</td></tr> <tr><td><strong>Libero Object</strong></td> <td>99.0%</td> <td>98.2%</td></tr> <tr><td><strong>Libero Goal</strong></td> <td>98.0%</td> <td>98.0%</td></tr> <tr><td><strong>Libero 10</strong></td> <td>96.0%</td> <td>92.4%</td></tr> <tr><td><strong>Average</strong></td> <td>97.5%</td> <td>96.85%</td></tr></tbody>",Ge,D,mt='These results demonstrate π₀.₅’s strong generalization capabilities across diverse robotic manipulation tasks. To reproduce these results, you can follow the instructions in the <a href="https://huggingface.co/docs/lerobot/libero" rel="nofollow">Libero</a> section.',je,Q,ze,O,gt='This model follows the <strong>Apache 2.0 License</strong>, consistent with the original <a href="https://github.com/Physical-Intelligence/openpi" rel="nofollow">OpenPI repository</a>.',Se,F,Ve,ie,Ee;return y=new bt({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),b=new u({props:{title:"π₀.₅ (Pi05) Policy",local:"π₀₅-pi05-policy",headingTag:"h1"}}),w=new u({props:{title:"Model Overview",local:"model-overview",headingTag:"h2"}}),v=new u({props:{title:"The Generalization Challenge",local:"the-generalization-challenge",headingTag:"h3"}}),L=new u({props:{title:"Co-Training on Heterogeneous Data",local:"co-training-on-heterogeneous-data",headingTag:"h3"}}),I=new u({props:{title:"Installation Requirements",local:"installation-requirements",headingTag:"h2"}}),R=new qe({props:{code:"cGlwJTIwaW5zdGFsbCUyMC1lJTIwJTIyLiU1QnBpJTVEJTIy",highlighted:'pip install -e <span class="hljs-string">&quot;.[pi]&quot;</span>',wrap:!1}}),H=new u({props:{title:"Usage",local:"usage",headingTag:"h2"}}),G=new qe({props:{code:"cG9saWN5LnR5cGUlM0RwaTA1",highlighted:'policy.<span class="hljs-built_in">type</span>=pi05',wrap:!1}}),j=new u({props:{title:"Training",local:"training",headingTag:"h2"}}),z=new u({props:{title:"Training Command Example",local:"training-command-example",headingTag:"h3"}}),V=new qe({props:{code:"cHl0aG9uJTIwc3JjJTJGbGVyb2JvdCUyRnNjcmlwdHMlMkZsZXJvYm90X3RyYWluLnB5JTVDJTBBJTIwJTIwJTIwJTIwLS1kYXRhc2V0LnJlcG9faWQlM0R5b3VyX2RhdGFzZXQlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXBvbGljeS50eXBlJTNEcGkwNSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tb3V0cHV0X2RpciUzRC4lMkZvdXRwdXRzJTJGcGkwNV90cmFpbmluZyUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tam9iX25hbWUlM0RwaTA1X3RyYWluaW5nJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1wb2xpY3kucmVwb19pZCUzRHlvdXJfcmVwb19pZCUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tcG9saWN5LnByZXRyYWluZWRfcGF0aCUzRGxlcm9ib3QlMkZwaTA1X2Jhc2UlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXBvbGljeS5jb21waWxlX21vZGVsJTNEdHJ1ZSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tcG9saWN5LmdyYWRpZW50X2NoZWNrcG9pbnRpbmclM0R0cnVlJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS13YW5kYi5lbmFibGUlM0R0cnVlJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1wb2xpY3kuZHR5cGUlM0RiZmxvYXQxNiUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tc3RlcHMlM0QzMDAwJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1wb2xpY3kuZGV2aWNlJTNEY3VkYSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tYmF0Y2hfc2l6ZSUzRDMy",highlighted:`python src/lerobot/scripts/lerobot_train.py\\
    --dataset.repo_id=your_dataset \\
    --policy.type=pi05 \\
    --output_dir=./outputs/pi05_training \\
    --job_name=pi05_training \\
    --policy.repo_id=your_repo_id \\
    --policy.pretrained_path=lerobot/pi05_base \\
    --policy.compile_model=<span class="hljs-literal">true</span> \\
    --policy.gradient_checkpointing=<span class="hljs-literal">true</span> \\
    --wandb.enable=<span class="hljs-literal">true</span> \\
    --policy.dtype=bfloat16 \\
    --steps=3000 \\
    --policy.device=cuda \\
    --batch_size=32`,wrap:!1}}),E=new u({props:{title:"Key Training Parameters",local:"key-training-parameters",headingTag:"h3"}}),B=new qe({props:{code:"cHl0aG9uJTIwc3JjJTJGbGVyb2JvdCUyRmRhdGFzZXRzJTJGdjMwJTJGYXVnbWVudF9kYXRhc2V0X3F1YW50aWxlX3N0YXRzLnB5JTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1yZXBvLWlkJTNEeW91cl9kYXRhc2V0JTIwJTVD",highlighted:`python src/lerobot/datasets/v30/augment_dataset_quantile_stats.py \\
    --repo-id=your_dataset \\`,wrap:!1}}),W=new u({props:{title:"Performance Results",local:"performance-results",headingTag:"h2"}}),Y=new u({props:{title:"Libero Benchmark Results",local:"libero-benchmark-results",headingTag:"h3"}}),Q=new u({props:{title:"License",local:"license",headingTag:"h2"}}),F=new Tt({props:{source:"https://github.com/huggingface/lerobot/blob/main/docs/source/pi05.mdx"}}),{c(){h=a("meta"),le=l(),ne=a("p"),oe=l(),r(y.$$.fragment),ae=l(),r(b.$$.fragment),se=l(),T=a("p"),T.innerHTML=Ze,re=l(),r(w.$$.fragment),pe=l(),M=a("p"),M.innerHTML=De,me=l(),r(v.$$.fragment),ge=l(),C=a("p"),C.textContent=Qe,fe=l(),J=a("ul"),J.innerHTML=Oe,de=l(),r(L.$$.fragment),ce=l(),_=a("p"),_.innerHTML=Fe,ue=l(),U=a("ol"),U.innerHTML=Ke,he=l(),x=a("p"),x.textContent=et,$e=l(),r(I.$$.fragment),ye=l(),$=a("ol"),K=a("li"),K.innerHTML=tt,We=l(),k=a("li"),ee=a("p"),ee.textContent=nt,Ye=l(),r(R.$$.fragment),be=l(),r(H.$$.fragment),Te=l(),P=a("p"),P.textContent=it,we=l(),r(G.$$.fragment),Me=l(),r(j.$$.fragment),ve=l(),r(z.$$.fragment),Ce=l(),S=a("p"),S.textContent=lt,Je=l(),r(V.$$.fragment),Le=l(),r(E.$$.fragment),_e=l(),X=a("ul"),X.innerHTML=ot,Ue=l(),A=a("p"),A.innerHTML=at,xe=l(),r(B.$$.fragment),Ie=l(),q=a("p"),q.innerHTML=st,ke=l(),r(W.$$.fragment),Re=l(),r(Y.$$.fragment),He=l(),N=a("p"),N.textContent=rt,Pe=l(),Z=a("table"),Z.innerHTML=pt,Ge=l(),D=a("p"),D.innerHTML=mt,je=l(),r(Q.$$.fragment),ze=l(),O=a("p"),O.innerHTML=gt,Se=l(),r(F.$$.fragment),Ve=l(),ie=a("p"),this.h()},l(e){const t=yt("svelte-u9bgzb",document.head);h=s(t,"META",{name:!0,content:!0}),t.forEach(n),le=o(e),ne=s(e,"P",{}),Be(ne).forEach(n),oe=o(e),p(y.$$.fragment,e),ae=o(e),p(b.$$.fragment,e),se=o(e),T=s(e,"P",{"data-svelte-h":!0}),m(T)!=="svelte-bfyakk"&&(T.innerHTML=Ze),re=o(e),p(w.$$.fragment,e),pe=o(e),M=s(e,"P",{"data-svelte-h":!0}),m(M)!=="svelte-9oyiak"&&(M.innerHTML=De),me=o(e),p(v.$$.fragment,e),ge=o(e),C=s(e,"P",{"data-svelte-h":!0}),m(C)!=="svelte-135zaix"&&(C.textContent=Qe),fe=o(e),J=s(e,"UL",{"data-svelte-h":!0}),m(J)!=="svelte-lsgo77"&&(J.innerHTML=Oe),de=o(e),p(L.$$.fragment,e),ce=o(e),_=s(e,"P",{"data-svelte-h":!0}),m(_)!=="svelte-p4tj3v"&&(_.innerHTML=Fe),ue=o(e),U=s(e,"OL",{"data-svelte-h":!0}),m(U)!=="svelte-1xckj6k"&&(U.innerHTML=Ke),he=o(e),x=s(e,"P",{"data-svelte-h":!0}),m(x)!=="svelte-1vbuorv"&&(x.textContent=et),$e=o(e),p(I.$$.fragment,e),ye=o(e),$=s(e,"OL",{});var Xe=Be($);K=s(Xe,"LI",{"data-svelte-h":!0}),m(K)!=="svelte-19fosg9"&&(K.innerHTML=tt),We=o(Xe),k=s(Xe,"LI",{});var Ae=Be(k);ee=s(Ae,"P",{"data-svelte-h":!0}),m(ee)!=="svelte-1b5b184"&&(ee.textContent=nt),Ye=o(Ae),p(R.$$.fragment,Ae),Ae.forEach(n),Xe.forEach(n),be=o(e),p(H.$$.fragment,e),Te=o(e),P=s(e,"P",{"data-svelte-h":!0}),m(P)!=="svelte-1dojefi"&&(P.textContent=it),we=o(e),p(G.$$.fragment,e),Me=o(e),p(j.$$.fragment,e),ve=o(e),p(z.$$.fragment,e),Ce=o(e),S=s(e,"P",{"data-svelte-h":!0}),m(S)!=="svelte-16cx9of"&&(S.textContent=lt),Je=o(e),p(V.$$.fragment,e),Le=o(e),p(E.$$.fragment,e),_e=o(e),X=s(e,"UL",{"data-svelte-h":!0}),m(X)!=="svelte-2n55hq"&&(X.innerHTML=ot),Ue=o(e),A=s(e,"P",{"data-svelte-h":!0}),m(A)!=="svelte-fjbiym"&&(A.innerHTML=at),xe=o(e),p(B.$$.fragment,e),Ie=o(e),q=s(e,"P",{"data-svelte-h":!0}),m(q)!=="svelte-1avqnxr"&&(q.innerHTML=st),ke=o(e),p(W.$$.fragment,e),Re=o(e),p(Y.$$.fragment,e),He=o(e),N=s(e,"P",{"data-svelte-h":!0}),m(N)!=="svelte-4hpbod"&&(N.textContent=rt),Pe=o(e),Z=s(e,"TABLE",{"data-svelte-h":!0}),m(Z)!=="svelte-8bc506"&&(Z.innerHTML=pt),Ge=o(e),D=s(e,"P",{"data-svelte-h":!0}),m(D)!=="svelte-19qd8cs"&&(D.innerHTML=mt),je=o(e),p(Q.$$.fragment,e),ze=o(e),O=s(e,"P",{"data-svelte-h":!0}),m(O)!=="svelte-xy3pkj"&&(O.innerHTML=gt),Se=o(e),p(F.$$.fragment,e),Ve=o(e),ie=s(e,"P",{}),Be(ie).forEach(n),this.h()},h(){ft(h,"name","hf:doc:metadata"),ft(h,"content",Mt)},m(e,t){te(document.head,h),i(e,le,t),i(e,ne,t),i(e,oe,t),g(y,e,t),i(e,ae,t),g(b,e,t),i(e,se,t),i(e,T,t),i(e,re,t),g(w,e,t),i(e,pe,t),i(e,M,t),i(e,me,t),g(v,e,t),i(e,ge,t),i(e,C,t),i(e,fe,t),i(e,J,t),i(e,de,t),g(L,e,t),i(e,ce,t),i(e,_,t),i(e,ue,t),i(e,U,t),i(e,he,t),i(e,x,t),i(e,$e,t),g(I,e,t),i(e,ye,t),i(e,$,t),te($,K),te($,We),te($,k),te(k,ee),te(k,Ye),g(R,k,null),i(e,be,t),g(H,e,t),i(e,Te,t),i(e,P,t),i(e,we,t),g(G,e,t),i(e,Me,t),g(j,e,t),i(e,ve,t),g(z,e,t),i(e,Ce,t),i(e,S,t),i(e,Je,t),g(V,e,t),i(e,Le,t),g(E,e,t),i(e,_e,t),i(e,X,t),i(e,Ue,t),i(e,A,t),i(e,xe,t),g(B,e,t),i(e,Ie,t),i(e,q,t),i(e,ke,t),g(W,e,t),i(e,Re,t),g(Y,e,t),i(e,He,t),i(e,N,t),i(e,Pe,t),i(e,Z,t),i(e,Ge,t),i(e,D,t),i(e,je,t),g(Q,e,t),i(e,ze,t),i(e,O,t),i(e,Se,t),g(F,e,t),i(e,Ve,t),i(e,ie,t),Ee=!0},p:ct,i(e){Ee||(f(y.$$.fragment,e),f(b.$$.fragment,e),f(w.$$.fragment,e),f(v.$$.fragment,e),f(L.$$.fragment,e),f(I.$$.fragment,e),f(R.$$.fragment,e),f(H.$$.fragment,e),f(G.$$.fragment,e),f(j.$$.fragment,e),f(z.$$.fragment,e),f(V.$$.fragment,e),f(E.$$.fragment,e),f(B.$$.fragment,e),f(W.$$.fragment,e),f(Y.$$.fragment,e),f(Q.$$.fragment,e),f(F.$$.fragment,e),Ee=!0)},o(e){d(y.$$.fragment,e),d(b.$$.fragment,e),d(w.$$.fragment,e),d(v.$$.fragment,e),d(L.$$.fragment,e),d(I.$$.fragment,e),d(R.$$.fragment,e),d(H.$$.fragment,e),d(G.$$.fragment,e),d(j.$$.fragment,e),d(z.$$.fragment,e),d(V.$$.fragment,e),d(E.$$.fragment,e),d(B.$$.fragment,e),d(W.$$.fragment,e),d(Y.$$.fragment,e),d(Q.$$.fragment,e),d(F.$$.fragment,e),Ee=!1},d(e){e&&(n(le),n(ne),n(oe),n(ae),n(se),n(T),n(re),n(pe),n(M),n(me),n(ge),n(C),n(fe),n(J),n(de),n(ce),n(_),n(ue),n(U),n(he),n(x),n($e),n(ye),n($),n(be),n(Te),n(P),n(we),n(Me),n(ve),n(Ce),n(S),n(Je),n(Le),n(_e),n(X),n(Ue),n(A),n(xe),n(Ie),n(q),n(ke),n(Re),n(He),n(N),n(Pe),n(Z),n(Ge),n(D),n(je),n(ze),n(O),n(Se),n(Ve),n(ie)),n(h),c(y,e),c(b,e),c(w,e),c(v,e),c(L,e),c(I,e),c(R),c(H,e),c(G,e),c(j,e),c(z,e),c(V,e),c(E,e),c(B,e),c(W,e),c(Y,e),c(Q,e),c(F,e)}}}const Mt='{"title":"π₀.₅ (Pi05) Policy","local":"π₀₅-pi05-policy","sections":[{"title":"Model Overview","local":"model-overview","sections":[{"title":"The Generalization Challenge","local":"the-generalization-challenge","sections":[],"depth":3},{"title":"Co-Training on Heterogeneous Data","local":"co-training-on-heterogeneous-data","sections":[],"depth":3}],"depth":2},{"title":"Installation Requirements","local":"installation-requirements","sections":[],"depth":2},{"title":"Usage","local":"usage","sections":[],"depth":2},{"title":"Training","local":"training","sections":[{"title":"Training Command Example","local":"training-command-example","sections":[],"depth":3},{"title":"Key Training Parameters","local":"key-training-parameters","sections":[],"depth":3}],"depth":2},{"title":"Performance Results","local":"performance-results","sections":[{"title":"Libero Benchmark Results","local":"libero-benchmark-results","sections":[],"depth":3}],"depth":2},{"title":"License","local":"license","sections":[],"depth":2}],"depth":1}';function vt(Ne){return ut(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class xt extends ht{constructor(h){super(),$t(this,h,vt,wt,dt,{})}}export{xt as component};
