import{S as cu,i as pu,s as mu,e as r,k as c,w as d,t as s,M as du,c as l,d as o,m as p,a as n,x as f,h as i,b as m,N as Dr,G as a,g as u,y as h,q as _,o as v,B as g,v as fu}from"../chunks/vendor-hf-doc-builder.js";import{T as hu}from"../chunks/Tip-hf-doc-builder.js";import{Y as _u}from"../chunks/Youtube-hf-doc-builder.js";import{I as Y}from"../chunks/IconCopyLink-hf-doc-builder.js";import{C as $}from"../chunks/CodeBlock-hf-doc-builder.js";function vu(Na){let b,J,E,j,M;return{c(){b=r("p"),J=s("Para compartir un modelo con la comunidad necesitas una cuenta en "),E=r("a"),j=s("huggingface.co"),M=s(". Tambi\xE9n puedes unirte a una organizaci\xF3n existente o crear una nueva."),this.h()},l(k){b=l(k,"P",{});var C=n(b);J=i(C,"Para compartir un modelo con la comunidad necesitas una cuenta en "),E=l(C,"A",{href:!0,rel:!0});var K=n(E);j=i(K,"huggingface.co"),K.forEach(o),M=i(C,". Tambi\xE9n puedes unirte a una organizaci\xF3n existente o crear una nueva."),C.forEach(o),this.h()},h(){m(E,"href","https://huggingface.co/join"),m(E,"rel","nofollow")},m(k,C){u(k,b,C),a(b,J),a(b,E),a(E,j),a(b,M)},d(k){k&&o(b)}}}function gu(Na){let b,J,E,j,M,k,C,K,Fr,xa,mo,Sr,Ia,W,zr,ke,Lr,Or,Ra,X,xo,Mr,Nr,Io,xr,Ba,P,Pi,Ua,Z,Ga,N,Q,Ro,Pe,Ir,Bo,Rr,Va,fo,Br,Ya,T,Ur,je,Gr,Vr,Uo,Yr,Jr,Ja,ee,Kr,Go,Wr,Xr,Ka,qe,Wa,ho,Zr,Xa,_o,vo,ji,Za,x,oe,Vo,Ce,Qr,Yo,el,Qa,go,ol,et,Te,ot,ae,al,Ae,Jo,tl,rl,at,He,tt,A,ll,Ko,sl,il,De,nl,ul,rt,Fe,lt,I,te,Wo,Se,cl,Xo,pl,st,bo,ml,it,re,dl,$o,fl,hl,nt,le,_l,Zo,vl,gl,ut,ze,ct,Eo,bl,pt,Le,mt,se,$l,Qo,El,wl,dt,Oe,ft,wo,yl,ht,Me,_t,R,ie,ea,Ne,kl,yo,Pl,oa,jl,vt,xe,gt,w,ql,ko,Cl,Tl,aa,Al,Hl,ta,Dl,Fl,ra,Sl,zl,bt,Ie,$t,ne,Ll,la,Ol,Ml,Et,Re,wt,H,Nl,sa,xl,Il,ia,Rl,Bl,yt,Be,kt,B,ue,na,Ue,Ul,Po,Gl,ua,Vl,Pt,D,Yl,ca,Jl,Kl,pa,Wl,Xl,jt,F,ma,Zl,Ql,da,es,os,Ge,as,fa,ts,rs,qt,Ve,Ct,ce,ls,Ye,ha,ss,is,Tt,Je,At,U,pe,_a,Ke,ns,jo,us,va,cs,Ht,me,ps,ga,ms,ds,Dt,de,fs,ba,hs,_s,Ft,We,St,S,vs,$a,gs,bs,Ea,$s,Es,zt,Xe,Lt,fe,ws,wa,ys,ks,Ot,Ze,Mt,he,Ps,ya,js,qs,Nt,Qe,xt,qo,Cs,It,eo,Rt,_e,Ts,ka,As,Hs,Bt,ve,Ds,oo,Fs,Ss,Ut,G,ge,Pa,ao,zs,ja,Ls,Gt,be,Os,to,Ms,Ns,Vt,Co,To,qi,Yt,Ao,xs,Jt,q,ro,Is,qa,Rs,Bs,Us,Ca,Gs,Vs,Ta,Ys,Js,Aa,Ks,Kt,z,Ws,Ha,Xs,Zs,Da,Qs,ei,Wt,Ho,Do,Ci,Xt,V,$e,Fa,lo,oi,Sa,ai,Zt,Ee,ti,za,ri,li,Qt,we,so,si,La,ii,ni,ui,io,ci,Oa,pi,mi,er,y,di,no,fi,hi,uo,_i,vi,Ma,gi,bi,co,$i,Ei,or;return k=new Y({}),Z=new hu({props:{$$slots:{default:[vu]},$$scope:{ctx:Na}}}),Pe=new Y({}),qe=new $({props:{code:`model = AutoModel.from_pretrained(
    "julien-c/EsperBERTo-small", revision="v2.0.1"  # tag name, or branch name, or commit hash
)`,highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>model = AutoModel.from_pretrained(
<span class="hljs-meta">... </span>    <span class="hljs-string">&quot;julien-c/EsperBERTo-small&quot;</span>, revision=<span class="hljs-string">&quot;v2.0.1&quot;</span>  <span class="hljs-comment"># tag name, or branch name, or commit hash</span>
<span class="hljs-meta">... </span>)`}}),Ce=new Y({}),Te=new $({props:{code:"huggingface-cli login",highlighted:"huggingface-cli login"}}),He=new $({props:{code:"pip install huggingface_hub",highlighted:"pip install huggingface_hub"}}),Fe=new $({props:{code:`from huggingface_hub import notebook_login

notebook_login()`,highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> notebook_login

<span class="hljs-meta">&gt;&gt;&gt; </span>notebook_login()`}}),Se=new Y({}),ze=new $({props:{code:'tf_model = TFDistilBertForSequenceClassification.from_pretrained("path/to/awesome-name-you-picked", from_pt=True)',highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model = TFDistilBertForSequenceClassification.from_pretrained(<span class="hljs-string">&quot;path/to/awesome-name-you-picked&quot;</span>, from_pt=<span class="hljs-literal">True</span>)'}}),Le=new $({props:{code:'tf_model.save_pretrained("path/to/awesome-name-you-picked")',highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model.save_pretrained(<span class="hljs-string">&quot;path/to/awesome-name-you-picked&quot;</span>)'}}),Oe=new $({props:{code:`pt_model = DistilBertForSequenceClassification.from_pretrained("path/to/awesome-name-you-picked", from_tf=True)
pt_model.save_pretrained("path/to/awesome-name-you-picked")`,highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>pt_model = DistilBertForSequenceClassification.from_pretrained(<span class="hljs-string">&quot;path/to/awesome-name-you-picked&quot;</span>, from_tf=<span class="hljs-literal">True</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>pt_model.save_pretrained(<span class="hljs-string">&quot;path/to/awesome-name-you-picked&quot;</span>)`}}),Me=new $({props:{code:`flax_model = FlaxDistilBertForSequenceClassification.from_pretrained(
    "path/to/awesome-name-you-picked", from_pt=True
)`,highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>flax_model = FlaxDistilBertForSequenceClassification.from_pretrained(
<span class="hljs-meta">... </span>    <span class="hljs-string">&quot;path/to/awesome-name-you-picked&quot;</span>, from_pt=<span class="hljs-literal">True</span>
<span class="hljs-meta">... </span>)`}}),Ne=new Y({}),xe=new _u({props:{id:"Z1-XMy-GNLQ"}}),Ie=new $({props:{code:'training_args = TrainingArguments(output_dir="my-awesome-model", push_to_hub=True)',highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>training_args = TrainingArguments(output_dir=<span class="hljs-string">&quot;my-awesome-model&quot;</span>, push_to_hub=<span class="hljs-literal">True</span>)'}}),Re=new $({props:{code:`trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=small_train_dataset,
    eval_dataset=small_eval_dataset,
    compute_metrics=compute_metrics,
)`,highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>trainer = Trainer(
<span class="hljs-meta">... </span>    model=model,
<span class="hljs-meta">... </span>    args=training_args,
<span class="hljs-meta">... </span>    train_dataset=small_train_dataset,
<span class="hljs-meta">... </span>    eval_dataset=small_eval_dataset,
<span class="hljs-meta">... </span>    compute_metrics=compute_metrics,
<span class="hljs-meta">... </span>)`}}),Be=new $({props:{code:"trainer.push_to_hub()",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>trainer.push_to_hub()'}}),Ue=new Y({}),Ve=new $({props:{code:`from transformers import PushToHubCallback

push_to_hub_callback = PushToHubCallback(
    output_dir="./your_model_save_path", tokenizer=tokenizer, hub_model_id="your-username/my-awesome-model"
)`,highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> PushToHubCallback

<span class="hljs-meta">&gt;&gt;&gt; </span>push_to_hub_callback = PushToHubCallback(
<span class="hljs-meta">... </span>    output_dir=<span class="hljs-string">&quot;./your_model_save_path&quot;</span>, tokenizer=tokenizer, hub_model_id=<span class="hljs-string">&quot;your-username/my-awesome-model&quot;</span>
<span class="hljs-meta">... </span>)`}}),Je=new $({props:{code:"model.fit(tf_train_dataset, validation_data=tf_validation_dataset, epochs=3, callbacks=push_to_hub_callback)",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>model.fit(tf_train_dataset, validation_data=tf_validation_dataset, epochs=<span class="hljs-number">3</span>, callbacks=push_to_hub_callback)'}}),Ke=new Y({}),We=new $({props:{code:'pt_model.push_to_hub("my-awesome-model")',highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>pt_model.push_to_hub(<span class="hljs-string">&quot;my-awesome-model&quot;</span>)'}}),Xe=new $({props:{code:`from transformers import AutoModel

model = AutoModel.from_pretrained("your_username/my-awesome-model")`,highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModel

<span class="hljs-meta">&gt;&gt;&gt; </span>model = AutoModel.from_pretrained(<span class="hljs-string">&quot;your_username/my-awesome-model&quot;</span>)`}}),Ze=new $({props:{code:'pt_model.push_to_hub("my-awesome-model", organization="my-awesome-org")',highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>pt_model.push_to_hub(<span class="hljs-string">&quot;my-awesome-model&quot;</span>, organization=<span class="hljs-string">&quot;my-awesome-org&quot;</span>)'}}),Qe=new $({props:{code:'tokenizer.push_to_hub("my-awesome-model")',highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer.push_to_hub(<span class="hljs-string">&quot;my-awesome-model&quot;</span>)'}}),eo=new $({props:{code:'tf_model.push_to_hub("my-awesome-model")',highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model.push_to_hub(<span class="hljs-string">&quot;my-awesome-model&quot;</span>)'}}),ao=new Y({}),lo=new Y({}),{c(){b=r("meta"),J=c(),E=r("h1"),j=r("a"),M=r("span"),d(k.$$.fragment),C=c(),K=r("span"),Fr=s("Compartir un modelo"),xa=c(),mo=r("p"),Sr=s("Los \xFAltimos dos tutoriales mostraron c\xF3mo puedes realizar fine-tunning a un modelo con PyTorch, Keras y \u{1F917} Accelerate para configuraciones distribuidas. \xA1El siguiente paso es compartir tu modelo con la comunidad! En Hugging Face creemos en compartir abiertamente a todos el conocimiento y los recursos para democratizar la inteligencia artificial. En este sentido, te animamos a considerar compartir tu modelo con la comunidad, de esta forma ayudas a otros ahorrando tiempo y recursos."),Ia=c(),W=r("p"),zr=s("En este tutorial aprender\xE1s dos m\xE9todos para compartir un modelo trained o fine-tuned en el "),ke=r("a"),Lr=s("Model Hub"),Or=s(":"),Ra=c(),X=r("ul"),xo=r("li"),Mr=s("Mediante C\xF3digo, enviando (push) tus archivos al Hub."),Nr=c(),Io=r("li"),xr=s("Con la interfaz Web, con Drag-and-drop de tus archivos al Hub."),Ba=c(),P=r("iframe"),Ua=c(),d(Z.$$.fragment),Ga=c(),N=r("h2"),Q=r("a"),Ro=r("span"),d(Pe.$$.fragment),Ir=c(),Bo=r("span"),Rr=s("Caracter\xEDsticas de los repositorios"),Va=c(),fo=r("p"),Br=s("Cada repositorio en el Model Hub se comporta como cualquier otro repositorio en GitHub. Nuestros repositorios ofrecen versioning, commit history, y la habilidad para visualizar diferencias."),Ya=c(),T=r("p"),Ur=s("El versioning desarrollado dentro del Model Hub es basado en git y "),je=r("a"),Gr=s("git-lfs"),Vr=s(". En otras palabras, puedes tratar un modelo como un repositorio, brindando un mejor control de acceso y escalabilidad. Version control permite "),Uo=r("em"),Yr=s("revisions"),Jr=s(", un m\xE9todo para apuntar a una versi\xF3n espec\xEDfica de un modelo utilizando un commit hash, tag o branch."),Ja=c(),ee=r("p"),Kr=s("Como resultado, puedes cargar una versi\xF3n espec\xEDfica del modelo con el par\xE1metro "),Go=r("code"),Wr=s("revision"),Xr=s(":"),Ka=c(),d(qe.$$.fragment),Wa=c(),ho=r("p"),Zr=s("Los archivos son editados f\xE1cilmente dentro de un repositorio. Incluso puedes observar el commit history y las diferencias:"),Xa=c(),_o=r("p"),vo=r("img"),Za=c(),x=r("h2"),oe=r("a"),Vo=r("span"),d(Ce.$$.fragment),Qr=c(),Yo=r("span"),el=s("Configuraci\xF3n inicial"),Qa=c(),go=r("p"),ol=s("Antes de compartir un modelo al Hub necesitar\xE1s tus credenciales de Hugging Face. Si tienes acceso a una terminal ejecuta el siguiente comando en el entorno virtual donde \u{1F917} Transformers est\xE9 instalado. Esto guardar\xE1 tu token de acceso dentro de tu carpeta cache de Hugging Face (~/.cache/ by default):"),et=c(),d(Te.$$.fragment),ot=c(),ae=r("p"),al=s("Si usas un notebook como Jupyter o Colaboratory, aseg\xFArate de tener instalada la biblioteca "),Ae=r("a"),Jo=r("code"),tl=s("huggingface_hub"),rl=s(". Esta biblioteca te permitir\xE1 interactuar por c\xF3digo con el Hub."),at=c(),d(He.$$.fragment),tt=c(),A=r("p"),ll=s("Luego usa "),Ko=r("code"),sl=s("notebook_login"),il=s(" para iniciar sesi\xF3n al Hub, y sigue el link "),De=r("a"),nl=s("aqu\xED"),ul=s(" para generar un token con el que iniciaremos sesi\xF3n:"),rt=c(),d(Fe.$$.fragment),lt=c(),I=r("h2"),te=r("a"),Wo=r("span"),d(Se.$$.fragment),cl=c(),Xo=r("span"),pl=s("Convertir un modelo para todos los Frameworks"),st=c(),bo=r("p"),ml=s("Para asegurarnos que tu modelo pueda ser usado por alguien que est\xE9 trabajando con un framework diferente, te recomendamos convertir y subir tu modelo con checkpoints de pytorch y tensorflow. Aunque los usuarios a\xFAn son capaces de cargar su modelo desde un framework diferente, si se omite este paso ser\xE1 m\xE1s lento debido a que \u{1F917} Transformers necesitar\xE1 convertir el checkpoint sobre-la-marcha."),it=c(),re=r("p"),dl=s("Convertir un checkpoint para otro framework es f\xE1cil. Aseg\xFArate tener Pytorch y TensorFlow instalado (V\xE9ase "),$o=r("a"),fl=s("aqu\xED"),hl=s(" para instrucciones de instalaci\xF3n), y luego encuentra el modelo espec\xEDfico para tu tarea en el otro Framework."),nt=c(),le=r("p"),_l=s("Por ejemplo, supongamos que has entrenado DistilBert para clasificaci\xF3n de secuencias en PyTorch y quieres convertirlo a su equivalente en TensorFlow. Cargas el equivalente en TensorFlow de tu modelo para tu tarea y especificas "),Zo=r("code"),vl=s("from_pt=True"),gl=s(" as\xED \u{1F917} Transformers convertir\xE1 el Pytorch checkpoint a un TensorFlow Checkpoint:"),ut=c(),d(ze.$$.fragment),ct=c(),Eo=r("p"),bl=s("Luego guardas tu nuevo modelo TensorFlow con su nuevo checkpoint:"),pt=c(),d(Le.$$.fragment),mt=c(),se=r("p"),$l=s("De manera similar, especificas "),Qo=r("code"),El=s("from_tf=True"),wl=s(" para convertir un checkpoint de TensorFlow a Pytorch:"),dt=c(),d(Oe.$$.fragment),ft=c(),wo=r("p"),yl=s("Si alg\xFAn modelo est\xE1 disponible en Flax, tambi\xE9n puedes convertir un checkpoint de Pytorch a Flax:"),ht=c(),d(Me.$$.fragment),_t=c(),R=r("h2"),ie=r("a"),ea=r("span"),d(Ne.$$.fragment),kl=c(),yo=r("span"),Pl=s("Compartir un modelo con "),oa=r("code"),jl=s("Trainer"),vt=c(),d(xe.$$.fragment),gt=c(),w=r("p"),ql=s("Compartir un modelo al Hub es tan simple como a\xF1adir un par\xE1metro extra o un callback. Si recuerdas del tutorial de "),ko=r("a"),Cl=s("fine-tuning tutorial"),Tl=s(", la clase "),aa=r("code"),Al=s("TrainingArguments"),Hl=s(" es donde especificas los Hiperpar\xE1metros y opciones de entrenamiento adicionales. Una de estas opciones incluye la habilidad de compartir un modelo directamente al Hub. Para ello configuras "),ta=r("code"),Dl=s("push_to_hub=True"),Fl=s(" dentro de "),ra=r("code"),Sl=s("TrainingArguments"),zl=s(":"),bt=c(),d(Ie.$$.fragment),$t=c(),ne=r("p"),Ll=s("A continuaci\xF3n, como usualmente, pasa tus argumentos de entrenamiento a "),la=r("code"),Ol=s("Trainer"),Ml=s(":"),Et=c(),d(Re.$$.fragment),wt=c(),H=r("p"),Nl=s("Luego que realizas fine-tune a tu modelo, llamas "),sa=r("code"),xl=s("push_to_hub()"),Il=s(" en "),ia=r("code"),Rl=s("Trainer"),Bl=s(" para enviar el modelo al Hub!\u{1F917} Transformers incluso a\xF1adir\xE1 autom\xE1ticamente los Hiperpar\xE1metros de entrenamiento, resultados de entrenamiento y versiones del Framework a tu model card!"),yt=c(),d(Be.$$.fragment),kt=c(),B=r("h2"),ue=r("a"),na=r("span"),d(Ue.$$.fragment),Ul=c(),Po=r("span"),Gl=s("Compartir un modelo con "),ua=r("code"),Vl=s("PushToHubCallback"),Pt=c(),D=r("p"),Yl=s("Los usuarios de TensorFlow pueden activar la misma funcionalidad con "),ca=r("code"),Jl=s("PushToHubCallback"),Kl=s(". En la funcion "),pa=r("code"),Wl=s("PushToHubCallback"),Xl=s(", agrega:"),jt=c(),F=r("ul"),ma=r("li"),Zl=s("Un directorio de salida para tu modelo."),Ql=c(),da=r("li"),es=s("Un tokenizador."),os=c(),Ge=r("li"),as=s("El "),fa=r("code"),ts=s("hub_model_id"),rs=s(", el cual es tu usuario Hub y el nombre del modelo."),qt=c(),d(Ve.$$.fragment),Ct=c(),ce=r("p"),ls=s("Agregamos el callback a "),Ye=r("a"),ha=r("code"),ss=s("fit"),is=s(", y \u{1F917} Transformers enviar\xE1 el modelo entrenado al Hub:"),Tt=c(),d(Je.$$.fragment),At=c(),U=r("h2"),pe=r("a"),_a=r("span"),d(Ke.$$.fragment),ns=c(),jo=r("span"),us=s("Usando la funci\xF3n "),va=r("code"),cs=s("push_to_hub"),Ht=c(),me=r("p"),ps=s("Puedes llamar la funci\xF3n "),ga=r("code"),ms=s("push_to_hub"),ds=s(" directamente en tu modelo para subirlo al Hub."),Dt=c(),de=r("p"),fs=s("Especifica el nombre del modelo en "),ba=r("code"),hs=s("push_to_hub"),_s=s(":"),Ft=c(),d(We.$$.fragment),St=c(),S=r("p"),vs=s("Esto crear\xE1 un repositorio bajo tu usuario con el nombre del modelo "),$a=r("code"),gs=s("my-awesome-model"),bs=s(". Ahora los usuarios pueden cargar tu modelo con la funci\xF3n "),Ea=r("code"),$s=s("from_pretrained"),Es=s(":"),zt=c(),d(Xe.$$.fragment),Lt=c(),fe=r("p"),ws=s("Si perteneces a una organizaci\xF3n y quieres compartir tu modelo bajo el nombre de la organizaci\xF3n, a\xF1ade el par\xE1metro "),wa=r("code"),ys=s("organization"),ks=s(":"),Ot=c(),d(Ze.$$.fragment),Mt=c(),he=r("p"),Ps=s("La funci\xF3n "),ya=r("code"),js=s("push_to_hub"),qs=s(" tambi\xE9n puede ser usada para a\xF1adir archivos al repositorio del modelo. Por ejemplo, a\xF1ade un tokenizador al repositorio:"),Nt=c(),d(Qe.$$.fragment),xt=c(),qo=r("p"),Cs=s("O quiz\xE1s te gustar\xEDa a\xF1adir la versi\xF3n de TensorFlow de tu modelo fine-tuned en Pytorch:"),It=c(),d(eo.$$.fragment),Rt=c(),_e=r("p"),Ts=s("Ahora, cuando navegues a tu perfil en Hugging Face, deber\xEDas observar el repositorio de tu modelo creado recientemente. Si das click en el tab "),ka=r("strong"),As=s("Files"),Hs=s(" observar\xE1s todos los archivos que has subido al repositorio."),Bt=c(),ve=r("p"),Ds=s("Para m\xE1s detalles sobre c\xF3mo crear y subir archivos al repositorio, consulta la "),oo=r("a"),Fs=s("documentaci\xF3n del Hub"),Ss=s("."),Ut=c(),G=r("h2"),ge=r("a"),Pa=r("span"),d(ao.$$.fragment),zs=c(),ja=r("span"),Ls=s("Compartir con la interfaz web"),Gt=c(),be=r("p"),Os=s("Los usuarios que prefieran un enfoque no-code tienen la opci\xF3n de cargar su modelo a trav\xE9s de la interfaz gr\xE1fica del Hub. Visita la p\xE1gina "),to=r("a"),Ms=s("huggingface.co/new"),Ns=s(" para crear un nuevo repositorio:"),Vt=c(),Co=r("p"),To=r("img"),Yt=c(),Ao=r("p"),xs=s("Desde aqu\xED, a\xF1ade informaci\xF3n acerca del modelo:"),Jt=c(),q=r("ul"),ro=r("li"),Is=s("Selecciona el "),qa=r("strong"),Rs=s("owner"),Bs=s(" (la persona propietaria) del repositorio. Puedes ser t\xFA o cualquier organizaci\xF3n a la que pertenezcas."),Us=c(),Ca=r("li"),Gs=s("Escoge un nombre para tu modelo. Tambi\xE9n ser\xE1 el nombre del repositorio."),Vs=c(),Ta=r("li"),Ys=s("Elige si tu modelo es p\xFAblico o privado."),Js=c(),Aa=r("li"),Ks=s("Especifica la licencia que usar\xE1 tu modelo."),Kt=c(),z=r("p"),Ws=s("Ahora puedes hacer click en el tab "),Ha=r("strong"),Xs=s("Files"),Zs=s(" y luego en el bot\xF3n "),Da=r("strong"),Qs=s("Add file"),ei=s(" para subir un nuevo archivo a tu repositorio. Luego arrastra y suelta un archivo a subir y le a\xF1ades un mensaje al commit."),Wt=c(),Ho=r("p"),Do=r("img"),Xt=c(),V=r("h2"),$e=r("a"),Fa=r("span"),d(lo.$$.fragment),oi=c(),Sa=r("span"),ai=s("A\xF1adiendo una tarjeta de modelo"),Zt=c(),Ee=r("p"),ti=s("Para asegurarnos que los usuarios entiendan las capacidades de tu modelo, sus limitaciones, posibles sesgos y consideraciones \xE9ticas, por favor a\xF1ade una tarjeta (como una tarjeta de presentaci\xF3n) al repositorio del modelo. La tarjeta de modelo es definida en el archivo "),za=r("code"),ri=s("README.md"),li=s(". Puedes agregar una de la siguiente manera:"),Qt=c(),we=r("ul"),so=r("li"),si=s("Elaborando y subiendo manualmente el archivo"),La=r("code"),ii=s("README.md"),ni=s("."),ui=c(),io=r("li"),ci=s("Dando click en el bot\xF3n "),Oa=r("strong"),pi=s("Edit model card"),mi=s(" dentro del repositorio."),er=c(),y=r("p"),di=s("Toma un momento para ver la "),no=r("a"),fi=s("tarjeta de modelo"),hi=s(" de DistilBert para que tengas un buen ejemplo del tipo de informaci\xF3n que deber\xEDa incluir. Consulta "),uo=r("a"),_i=s("la documentaci\xF3n"),vi=s(" para m\xE1s detalles acerca de otras opciones que puedes controlar dentro del archivo "),Ma=r("code"),gi=s("README.md"),bi=s(" como la huella de carbono del modelo o ejemplos de widgets. Consulta la documentaci\xF3n [aqu\xED] ("),co=r("a"),$i=s("https://huggingface.co/docs/hub/models-cards"),Ei=s(")."),this.h()},l(e){const t=du('[data-svelte="svelte-1phssyn"]',document.head);b=l(t,"META",{name:!0,content:!0}),t.forEach(o),J=p(e),E=l(e,"H1",{class:!0});var po=n(E);j=l(po,"A",{id:!0,class:!0,href:!0});var Ti=n(j);M=l(Ti,"SPAN",{});var Ai=n(M);f(k.$$.fragment,Ai),Ai.forEach(o),Ti.forEach(o),C=p(po),K=l(po,"SPAN",{});var Hi=n(K);Fr=i(Hi,"Compartir un modelo"),Hi.forEach(o),po.forEach(o),xa=p(e),mo=l(e,"P",{});var Di=n(mo);Sr=i(Di,"Los \xFAltimos dos tutoriales mostraron c\xF3mo puedes realizar fine-tunning a un modelo con PyTorch, Keras y \u{1F917} Accelerate para configuraciones distribuidas. \xA1El siguiente paso es compartir tu modelo con la comunidad! En Hugging Face creemos en compartir abiertamente a todos el conocimiento y los recursos para democratizar la inteligencia artificial. En este sentido, te animamos a considerar compartir tu modelo con la comunidad, de esta forma ayudas a otros ahorrando tiempo y recursos."),Di.forEach(o),Ia=p(e),W=l(e,"P",{});var ar=n(W);zr=i(ar,"En este tutorial aprender\xE1s dos m\xE9todos para compartir un modelo trained o fine-tuned en el "),ke=l(ar,"A",{href:!0,rel:!0});var Fi=n(ke);Lr=i(Fi,"Model Hub"),Fi.forEach(o),Or=i(ar,":"),ar.forEach(o),Ra=p(e),X=l(e,"UL",{});var tr=n(X);xo=l(tr,"LI",{});var Si=n(xo);Mr=i(Si,"Mediante C\xF3digo, enviando (push) tus archivos al Hub."),Si.forEach(o),Nr=p(tr),Io=l(tr,"LI",{});var zi=n(Io);xr=i(zi,"Con la interfaz Web, con Drag-and-drop de tus archivos al Hub."),zi.forEach(o),tr.forEach(o),Ba=p(e),P=l(e,"IFRAME",{width:!0,height:!0,src:!0,title:!0,frameborder:!0,allow:!0}),n(P).forEach(o),Ua=p(e),f(Z.$$.fragment,e),Ga=p(e),N=l(e,"H2",{class:!0});var rr=n(N);Q=l(rr,"A",{id:!0,class:!0,href:!0});var Li=n(Q);Ro=l(Li,"SPAN",{});var Oi=n(Ro);f(Pe.$$.fragment,Oi),Oi.forEach(o),Li.forEach(o),Ir=p(rr),Bo=l(rr,"SPAN",{});var Mi=n(Bo);Rr=i(Mi,"Caracter\xEDsticas de los repositorios"),Mi.forEach(o),rr.forEach(o),Va=p(e),fo=l(e,"P",{});var Ni=n(fo);Br=i(Ni,"Cada repositorio en el Model Hub se comporta como cualquier otro repositorio en GitHub. Nuestros repositorios ofrecen versioning, commit history, y la habilidad para visualizar diferencias."),Ni.forEach(o),Ya=p(e),T=l(e,"P",{});var Fo=n(T);Ur=i(Fo,"El versioning desarrollado dentro del Model Hub es basado en git y "),je=l(Fo,"A",{href:!0,rel:!0});var xi=n(je);Gr=i(xi,"git-lfs"),xi.forEach(o),Vr=i(Fo,". En otras palabras, puedes tratar un modelo como un repositorio, brindando un mejor control de acceso y escalabilidad. Version control permite "),Uo=l(Fo,"EM",{});var Ii=n(Uo);Yr=i(Ii,"revisions"),Ii.forEach(o),Jr=i(Fo,", un m\xE9todo para apuntar a una versi\xF3n espec\xEDfica de un modelo utilizando un commit hash, tag o branch."),Fo.forEach(o),Ja=p(e),ee=l(e,"P",{});var lr=n(ee);Kr=i(lr,"Como resultado, puedes cargar una versi\xF3n espec\xEDfica del modelo con el par\xE1metro "),Go=l(lr,"CODE",{});var Ri=n(Go);Wr=i(Ri,"revision"),Ri.forEach(o),Xr=i(lr,":"),lr.forEach(o),Ka=p(e),f(qe.$$.fragment,e),Wa=p(e),ho=l(e,"P",{});var Bi=n(ho);Zr=i(Bi,"Los archivos son editados f\xE1cilmente dentro de un repositorio. Incluso puedes observar el commit history y las diferencias:"),Bi.forEach(o),Xa=p(e),_o=l(e,"P",{});var Ui=n(_o);vo=l(Ui,"IMG",{src:!0,alt:!0}),Ui.forEach(o),Za=p(e),x=l(e,"H2",{class:!0});var sr=n(x);oe=l(sr,"A",{id:!0,class:!0,href:!0});var Gi=n(oe);Vo=l(Gi,"SPAN",{});var Vi=n(Vo);f(Ce.$$.fragment,Vi),Vi.forEach(o),Gi.forEach(o),Qr=p(sr),Yo=l(sr,"SPAN",{});var Yi=n(Yo);el=i(Yi,"Configuraci\xF3n inicial"),Yi.forEach(o),sr.forEach(o),Qa=p(e),go=l(e,"P",{});var Ji=n(go);ol=i(Ji,"Antes de compartir un modelo al Hub necesitar\xE1s tus credenciales de Hugging Face. Si tienes acceso a una terminal ejecuta el siguiente comando en el entorno virtual donde \u{1F917} Transformers est\xE9 instalado. Esto guardar\xE1 tu token de acceso dentro de tu carpeta cache de Hugging Face (~/.cache/ by default):"),Ji.forEach(o),et=p(e),f(Te.$$.fragment,e),ot=p(e),ae=l(e,"P",{});var ir=n(ae);al=i(ir,"Si usas un notebook como Jupyter o Colaboratory, aseg\xFArate de tener instalada la biblioteca "),Ae=l(ir,"A",{href:!0,rel:!0});var Ki=n(Ae);Jo=l(Ki,"CODE",{});var Wi=n(Jo);tl=i(Wi,"huggingface_hub"),Wi.forEach(o),Ki.forEach(o),rl=i(ir,". Esta biblioteca te permitir\xE1 interactuar por c\xF3digo con el Hub."),ir.forEach(o),at=p(e),f(He.$$.fragment,e),tt=p(e),A=l(e,"P",{});var So=n(A);ll=i(So,"Luego usa "),Ko=l(So,"CODE",{});var Xi=n(Ko);sl=i(Xi,"notebook_login"),Xi.forEach(o),il=i(So," para iniciar sesi\xF3n al Hub, y sigue el link "),De=l(So,"A",{href:!0,rel:!0});var Zi=n(De);nl=i(Zi,"aqu\xED"),Zi.forEach(o),ul=i(So," para generar un token con el que iniciaremos sesi\xF3n:"),So.forEach(o),rt=p(e),f(Fe.$$.fragment,e),lt=p(e),I=l(e,"H2",{class:!0});var nr=n(I);te=l(nr,"A",{id:!0,class:!0,href:!0});var Qi=n(te);Wo=l(Qi,"SPAN",{});var en=n(Wo);f(Se.$$.fragment,en),en.forEach(o),Qi.forEach(o),cl=p(nr),Xo=l(nr,"SPAN",{});var on=n(Xo);pl=i(on,"Convertir un modelo para todos los Frameworks"),on.forEach(o),nr.forEach(o),st=p(e),bo=l(e,"P",{});var an=n(bo);ml=i(an,"Para asegurarnos que tu modelo pueda ser usado por alguien que est\xE9 trabajando con un framework diferente, te recomendamos convertir y subir tu modelo con checkpoints de pytorch y tensorflow. Aunque los usuarios a\xFAn son capaces de cargar su modelo desde un framework diferente, si se omite este paso ser\xE1 m\xE1s lento debido a que \u{1F917} Transformers necesitar\xE1 convertir el checkpoint sobre-la-marcha."),an.forEach(o),it=p(e),re=l(e,"P",{});var ur=n(re);dl=i(ur,"Convertir un checkpoint para otro framework es f\xE1cil. Aseg\xFArate tener Pytorch y TensorFlow instalado (V\xE9ase "),$o=l(ur,"A",{href:!0});var tn=n($o);fl=i(tn,"aqu\xED"),tn.forEach(o),hl=i(ur," para instrucciones de instalaci\xF3n), y luego encuentra el modelo espec\xEDfico para tu tarea en el otro Framework."),ur.forEach(o),nt=p(e),le=l(e,"P",{});var cr=n(le);_l=i(cr,"Por ejemplo, supongamos que has entrenado DistilBert para clasificaci\xF3n de secuencias en PyTorch y quieres convertirlo a su equivalente en TensorFlow. Cargas el equivalente en TensorFlow de tu modelo para tu tarea y especificas "),Zo=l(cr,"CODE",{});var rn=n(Zo);vl=i(rn,"from_pt=True"),rn.forEach(o),gl=i(cr," as\xED \u{1F917} Transformers convertir\xE1 el Pytorch checkpoint a un TensorFlow Checkpoint:"),cr.forEach(o),ut=p(e),f(ze.$$.fragment,e),ct=p(e),Eo=l(e,"P",{});var ln=n(Eo);bl=i(ln,"Luego guardas tu nuevo modelo TensorFlow con su nuevo checkpoint:"),ln.forEach(o),pt=p(e),f(Le.$$.fragment,e),mt=p(e),se=l(e,"P",{});var pr=n(se);$l=i(pr,"De manera similar, especificas "),Qo=l(pr,"CODE",{});var sn=n(Qo);El=i(sn,"from_tf=True"),sn.forEach(o),wl=i(pr," para convertir un checkpoint de TensorFlow a Pytorch:"),pr.forEach(o),dt=p(e),f(Oe.$$.fragment,e),ft=p(e),wo=l(e,"P",{});var nn=n(wo);yl=i(nn,"Si alg\xFAn modelo est\xE1 disponible en Flax, tambi\xE9n puedes convertir un checkpoint de Pytorch a Flax:"),nn.forEach(o),ht=p(e),f(Me.$$.fragment,e),_t=p(e),R=l(e,"H2",{class:!0});var mr=n(R);ie=l(mr,"A",{id:!0,class:!0,href:!0});var un=n(ie);ea=l(un,"SPAN",{});var cn=n(ea);f(Ne.$$.fragment,cn),cn.forEach(o),un.forEach(o),kl=p(mr),yo=l(mr,"SPAN",{});var wi=n(yo);Pl=i(wi,"Compartir un modelo con "),oa=l(wi,"CODE",{});var pn=n(oa);jl=i(pn,"Trainer"),pn.forEach(o),wi.forEach(o),mr.forEach(o),vt=p(e),f(xe.$$.fragment,e),gt=p(e),w=l(e,"P",{});var L=n(w);ql=i(L,"Compartir un modelo al Hub es tan simple como a\xF1adir un par\xE1metro extra o un callback. Si recuerdas del tutorial de "),ko=l(L,"A",{href:!0});var mn=n(ko);Cl=i(mn,"fine-tuning tutorial"),mn.forEach(o),Tl=i(L,", la clase "),aa=l(L,"CODE",{});var dn=n(aa);Al=i(dn,"TrainingArguments"),dn.forEach(o),Hl=i(L," es donde especificas los Hiperpar\xE1metros y opciones de entrenamiento adicionales. Una de estas opciones incluye la habilidad de compartir un modelo directamente al Hub. Para ello configuras "),ta=l(L,"CODE",{});var fn=n(ta);Dl=i(fn,"push_to_hub=True"),fn.forEach(o),Fl=i(L," dentro de "),ra=l(L,"CODE",{});var hn=n(ra);Sl=i(hn,"TrainingArguments"),hn.forEach(o),zl=i(L,":"),L.forEach(o),bt=p(e),f(Ie.$$.fragment,e),$t=p(e),ne=l(e,"P",{});var dr=n(ne);Ll=i(dr,"A continuaci\xF3n, como usualmente, pasa tus argumentos de entrenamiento a "),la=l(dr,"CODE",{});var _n=n(la);Ol=i(_n,"Trainer"),_n.forEach(o),Ml=i(dr,":"),dr.forEach(o),Et=p(e),f(Re.$$.fragment,e),wt=p(e),H=l(e,"P",{});var zo=n(H);Nl=i(zo,"Luego que realizas fine-tune a tu modelo, llamas "),sa=l(zo,"CODE",{});var vn=n(sa);xl=i(vn,"push_to_hub()"),vn.forEach(o),Il=i(zo," en "),ia=l(zo,"CODE",{});var gn=n(ia);Rl=i(gn,"Trainer"),gn.forEach(o),Bl=i(zo," para enviar el modelo al Hub!\u{1F917} Transformers incluso a\xF1adir\xE1 autom\xE1ticamente los Hiperpar\xE1metros de entrenamiento, resultados de entrenamiento y versiones del Framework a tu model card!"),zo.forEach(o),yt=p(e),f(Be.$$.fragment,e),kt=p(e),B=l(e,"H2",{class:!0});var fr=n(B);ue=l(fr,"A",{id:!0,class:!0,href:!0});var bn=n(ue);na=l(bn,"SPAN",{});var $n=n(na);f(Ue.$$.fragment,$n),$n.forEach(o),bn.forEach(o),Ul=p(fr),Po=l(fr,"SPAN",{});var yi=n(Po);Gl=i(yi,"Compartir un modelo con "),ua=l(yi,"CODE",{});var En=n(ua);Vl=i(En,"PushToHubCallback"),En.forEach(o),yi.forEach(o),fr.forEach(o),Pt=p(e),D=l(e,"P",{});var Lo=n(D);Yl=i(Lo,"Los usuarios de TensorFlow pueden activar la misma funcionalidad con "),ca=l(Lo,"CODE",{});var wn=n(ca);Jl=i(wn,"PushToHubCallback"),wn.forEach(o),Kl=i(Lo,". En la funcion "),pa=l(Lo,"CODE",{});var yn=n(pa);Wl=i(yn,"PushToHubCallback"),yn.forEach(o),Xl=i(Lo,", agrega:"),Lo.forEach(o),jt=p(e),F=l(e,"UL",{});var Oo=n(F);ma=l(Oo,"LI",{});var kn=n(ma);Zl=i(kn,"Un directorio de salida para tu modelo."),kn.forEach(o),Ql=p(Oo),da=l(Oo,"LI",{});var Pn=n(da);es=i(Pn,"Un tokenizador."),Pn.forEach(o),os=p(Oo),Ge=l(Oo,"LI",{});var hr=n(Ge);as=i(hr,"El "),fa=l(hr,"CODE",{});var jn=n(fa);ts=i(jn,"hub_model_id"),jn.forEach(o),rs=i(hr,", el cual es tu usuario Hub y el nombre del modelo."),hr.forEach(o),Oo.forEach(o),qt=p(e),f(Ve.$$.fragment,e),Ct=p(e),ce=l(e,"P",{});var _r=n(ce);ls=i(_r,"Agregamos el callback a "),Ye=l(_r,"A",{href:!0,rel:!0});var qn=n(Ye);ha=l(qn,"CODE",{});var Cn=n(ha);ss=i(Cn,"fit"),Cn.forEach(o),qn.forEach(o),is=i(_r,", y \u{1F917} Transformers enviar\xE1 el modelo entrenado al Hub:"),_r.forEach(o),Tt=p(e),f(Je.$$.fragment,e),At=p(e),U=l(e,"H2",{class:!0});var vr=n(U);pe=l(vr,"A",{id:!0,class:!0,href:!0});var Tn=n(pe);_a=l(Tn,"SPAN",{});var An=n(_a);f(Ke.$$.fragment,An),An.forEach(o),Tn.forEach(o),ns=p(vr),jo=l(vr,"SPAN",{});var ki=n(jo);us=i(ki,"Usando la funci\xF3n "),va=l(ki,"CODE",{});var Hn=n(va);cs=i(Hn,"push_to_hub"),Hn.forEach(o),ki.forEach(o),vr.forEach(o),Ht=p(e),me=l(e,"P",{});var gr=n(me);ps=i(gr,"Puedes llamar la funci\xF3n "),ga=l(gr,"CODE",{});var Dn=n(ga);ms=i(Dn,"push_to_hub"),Dn.forEach(o),ds=i(gr," directamente en tu modelo para subirlo al Hub."),gr.forEach(o),Dt=p(e),de=l(e,"P",{});var br=n(de);fs=i(br,"Especifica el nombre del modelo en "),ba=l(br,"CODE",{});var Fn=n(ba);hs=i(Fn,"push_to_hub"),Fn.forEach(o),_s=i(br,":"),br.forEach(o),Ft=p(e),f(We.$$.fragment,e),St=p(e),S=l(e,"P",{});var Mo=n(S);vs=i(Mo,"Esto crear\xE1 un repositorio bajo tu usuario con el nombre del modelo "),$a=l(Mo,"CODE",{});var Sn=n($a);gs=i(Sn,"my-awesome-model"),Sn.forEach(o),bs=i(Mo,". Ahora los usuarios pueden cargar tu modelo con la funci\xF3n "),Ea=l(Mo,"CODE",{});var zn=n(Ea);$s=i(zn,"from_pretrained"),zn.forEach(o),Es=i(Mo,":"),Mo.forEach(o),zt=p(e),f(Xe.$$.fragment,e),Lt=p(e),fe=l(e,"P",{});var $r=n(fe);ws=i($r,"Si perteneces a una organizaci\xF3n y quieres compartir tu modelo bajo el nombre de la organizaci\xF3n, a\xF1ade el par\xE1metro "),wa=l($r,"CODE",{});var Ln=n(wa);ys=i(Ln,"organization"),Ln.forEach(o),ks=i($r,":"),$r.forEach(o),Ot=p(e),f(Ze.$$.fragment,e),Mt=p(e),he=l(e,"P",{});var Er=n(he);Ps=i(Er,"La funci\xF3n "),ya=l(Er,"CODE",{});var On=n(ya);js=i(On,"push_to_hub"),On.forEach(o),qs=i(Er," tambi\xE9n puede ser usada para a\xF1adir archivos al repositorio del modelo. Por ejemplo, a\xF1ade un tokenizador al repositorio:"),Er.forEach(o),Nt=p(e),f(Qe.$$.fragment,e),xt=p(e),qo=l(e,"P",{});var Mn=n(qo);Cs=i(Mn,"O quiz\xE1s te gustar\xEDa a\xF1adir la versi\xF3n de TensorFlow de tu modelo fine-tuned en Pytorch:"),Mn.forEach(o),It=p(e),f(eo.$$.fragment,e),Rt=p(e),_e=l(e,"P",{});var wr=n(_e);Ts=i(wr,"Ahora, cuando navegues a tu perfil en Hugging Face, deber\xEDas observar el repositorio de tu modelo creado recientemente. Si das click en el tab "),ka=l(wr,"STRONG",{});var Nn=n(ka);As=i(Nn,"Files"),Nn.forEach(o),Hs=i(wr," observar\xE1s todos los archivos que has subido al repositorio."),wr.forEach(o),Bt=p(e),ve=l(e,"P",{});var yr=n(ve);Ds=i(yr,"Para m\xE1s detalles sobre c\xF3mo crear y subir archivos al repositorio, consulta la "),oo=l(yr,"A",{href:!0,rel:!0});var xn=n(oo);Fs=i(xn,"documentaci\xF3n del Hub"),xn.forEach(o),Ss=i(yr,"."),yr.forEach(o),Ut=p(e),G=l(e,"H2",{class:!0});var kr=n(G);ge=l(kr,"A",{id:!0,class:!0,href:!0});var In=n(ge);Pa=l(In,"SPAN",{});var Rn=n(Pa);f(ao.$$.fragment,Rn),Rn.forEach(o),In.forEach(o),zs=p(kr),ja=l(kr,"SPAN",{});var Bn=n(ja);Ls=i(Bn,"Compartir con la interfaz web"),Bn.forEach(o),kr.forEach(o),Gt=p(e),be=l(e,"P",{});var Pr=n(be);Os=i(Pr,"Los usuarios que prefieran un enfoque no-code tienen la opci\xF3n de cargar su modelo a trav\xE9s de la interfaz gr\xE1fica del Hub. Visita la p\xE1gina "),to=l(Pr,"A",{href:!0,rel:!0});var Un=n(to);Ms=i(Un,"huggingface.co/new"),Un.forEach(o),Ns=i(Pr," para crear un nuevo repositorio:"),Pr.forEach(o),Vt=p(e),Co=l(e,"P",{});var Gn=n(Co);To=l(Gn,"IMG",{src:!0,alt:!0}),Gn.forEach(o),Yt=p(e),Ao=l(e,"P",{});var Vn=n(Ao);xs=i(Vn,"Desde aqu\xED, a\xF1ade informaci\xF3n acerca del modelo:"),Vn.forEach(o),Jt=p(e),q=l(e,"UL",{});var ye=n(q);ro=l(ye,"LI",{});var jr=n(ro);Is=i(jr,"Selecciona el "),qa=l(jr,"STRONG",{});var Yn=n(qa);Rs=i(Yn,"owner"),Yn.forEach(o),Bs=i(jr," (la persona propietaria) del repositorio. Puedes ser t\xFA o cualquier organizaci\xF3n a la que pertenezcas."),jr.forEach(o),Us=p(ye),Ca=l(ye,"LI",{});var Jn=n(Ca);Gs=i(Jn,"Escoge un nombre para tu modelo. Tambi\xE9n ser\xE1 el nombre del repositorio."),Jn.forEach(o),Vs=p(ye),Ta=l(ye,"LI",{});var Kn=n(Ta);Ys=i(Kn,"Elige si tu modelo es p\xFAblico o privado."),Kn.forEach(o),Js=p(ye),Aa=l(ye,"LI",{});var Wn=n(Aa);Ks=i(Wn,"Especifica la licencia que usar\xE1 tu modelo."),Wn.forEach(o),ye.forEach(o),Kt=p(e),z=l(e,"P",{});var No=n(z);Ws=i(No,"Ahora puedes hacer click en el tab "),Ha=l(No,"STRONG",{});var Xn=n(Ha);Xs=i(Xn,"Files"),Xn.forEach(o),Zs=i(No," y luego en el bot\xF3n "),Da=l(No,"STRONG",{});var Zn=n(Da);Qs=i(Zn,"Add file"),Zn.forEach(o),ei=i(No," para subir un nuevo archivo a tu repositorio. Luego arrastra y suelta un archivo a subir y le a\xF1ades un mensaje al commit."),No.forEach(o),Wt=p(e),Ho=l(e,"P",{});var Qn=n(Ho);Do=l(Qn,"IMG",{src:!0,alt:!0}),Qn.forEach(o),Xt=p(e),V=l(e,"H2",{class:!0});var qr=n(V);$e=l(qr,"A",{id:!0,class:!0,href:!0});var eu=n($e);Fa=l(eu,"SPAN",{});var ou=n(Fa);f(lo.$$.fragment,ou),ou.forEach(o),eu.forEach(o),oi=p(qr),Sa=l(qr,"SPAN",{});var au=n(Sa);ai=i(au,"A\xF1adiendo una tarjeta de modelo"),au.forEach(o),qr.forEach(o),Zt=p(e),Ee=l(e,"P",{});var Cr=n(Ee);ti=i(Cr,"Para asegurarnos que los usuarios entiendan las capacidades de tu modelo, sus limitaciones, posibles sesgos y consideraciones \xE9ticas, por favor a\xF1ade una tarjeta (como una tarjeta de presentaci\xF3n) al repositorio del modelo. La tarjeta de modelo es definida en el archivo "),za=l(Cr,"CODE",{});var tu=n(za);ri=i(tu,"README.md"),tu.forEach(o),li=i(Cr,". Puedes agregar una de la siguiente manera:"),Cr.forEach(o),Qt=p(e),we=l(e,"UL",{});var Tr=n(we);so=l(Tr,"LI",{});var Ar=n(so);si=i(Ar,"Elaborando y subiendo manualmente el archivo"),La=l(Ar,"CODE",{});var ru=n(La);ii=i(ru,"README.md"),ru.forEach(o),ni=i(Ar,"."),Ar.forEach(o),ui=p(Tr),io=l(Tr,"LI",{});var Hr=n(io);ci=i(Hr,"Dando click en el bot\xF3n "),Oa=l(Hr,"STRONG",{});var lu=n(Oa);pi=i(lu,"Edit model card"),lu.forEach(o),mi=i(Hr," dentro del repositorio."),Hr.forEach(o),Tr.forEach(o),er=p(e),y=l(e,"P",{});var O=n(y);di=i(O,"Toma un momento para ver la "),no=l(O,"A",{href:!0,rel:!0});var su=n(no);fi=i(su,"tarjeta de modelo"),su.forEach(o),hi=i(O," de DistilBert para que tengas un buen ejemplo del tipo de informaci\xF3n que deber\xEDa incluir. Consulta "),uo=l(O,"A",{href:!0,rel:!0});var iu=n(uo);_i=i(iu,"la documentaci\xF3n"),iu.forEach(o),vi=i(O," para m\xE1s detalles acerca de otras opciones que puedes controlar dentro del archivo "),Ma=l(O,"CODE",{});var nu=n(Ma);gi=i(nu,"README.md"),nu.forEach(o),bi=i(O," como la huella de carbono del modelo o ejemplos de widgets. Consulta la documentaci\xF3n [aqu\xED] ("),co=l(O,"A",{href:!0,rel:!0});var uu=n(co);$i=i(uu,"https://huggingface.co/docs/hub/models-cards"),uu.forEach(o),Ei=i(O,")."),O.forEach(o),this.h()},h(){m(b,"name","hf:doc:metadata"),m(b,"content",JSON.stringify(bu)),m(j,"id","compartir-un-modelo"),m(j,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m(j,"href","#compartir-un-modelo"),m(E,"class","relative group"),m(ke,"href","https://huggingface.co/models"),m(ke,"rel","nofollow"),m(P,"width","560"),m(P,"height","315"),Dr(P.src,Pi="https://www.youtube.com/embed/XvSGPZFEjDY")||m(P,"src",Pi),m(P,"title","YouTube video player"),m(P,"frameborder","0"),m(P,"allow",`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope;
picture-in-picture`),P.allowFullscreen=!0,m(Q,"id","caractersticas-de-los-repositorios"),m(Q,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m(Q,"href","#caractersticas-de-los-repositorios"),m(N,"class","relative group"),m(je,"href","https://git-lfs.github.com/"),m(je,"rel","nofollow"),Dr(vo.src,ji="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/vis_diff.png")||m(vo,"src",ji),m(vo,"alt","vis_diff"),m(oe,"id","configuracin-inicial"),m(oe,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m(oe,"href","#configuracin-inicial"),m(x,"class","relative group"),m(Ae,"href","https://huggingface.co/docs/hub/adding-a-library"),m(Ae,"rel","nofollow"),m(De,"href","https://huggingface.co/settings/token"),m(De,"rel","nofollow"),m(te,"id","convertir-un-modelo-para-todos-los-frameworks"),m(te,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m(te,"href","#convertir-un-modelo-para-todos-los-frameworks"),m(I,"class","relative group"),m($o,"href","installation"),m(ie,"id","compartir-un-modelo-con-trainer"),m(ie,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m(ie,"href","#compartir-un-modelo-con-trainer"),m(R,"class","relative group"),m(ko,"href","training"),m(ue,"id","compartir-un-modelo-con-pushtohubcallback"),m(ue,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m(ue,"href","#compartir-un-modelo-con-pushtohubcallback"),m(B,"class","relative group"),m(Ye,"href","https://keras.io/api/models/model_training_apis/"),m(Ye,"rel","nofollow"),m(pe,"id","usando-la-funcin-pushtohub"),m(pe,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m(pe,"href","#usando-la-funcin-pushtohub"),m(U,"class","relative group"),m(oo,"href","https://huggingface.co/docs/hub/how-to-upstream"),m(oo,"rel","nofollow"),m(ge,"id","compartir-con-la-interfaz-web"),m(ge,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m(ge,"href","#compartir-con-la-interfaz-web"),m(G,"class","relative group"),m(to,"href","https://huggingface.co/new"),m(to,"rel","nofollow"),Dr(To.src,qi="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/new_model_repo.png")||m(To,"src",qi),m(To,"alt","new_model_repo"),Dr(Do.src,Ci="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/upload_file.png")||m(Do,"src",Ci),m(Do,"alt","upload_file"),m($e,"id","aadiendo-una-tarjeta-de-modelo"),m($e,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m($e,"href","#aadiendo-una-tarjeta-de-modelo"),m(V,"class","relative group"),m(no,"href","https://huggingface.co/distilbert-base-uncased"),m(no,"rel","nofollow"),m(uo,"href","https://huggingface.co/docs/hub/models-cards"),m(uo,"rel","nofollow"),m(co,"href","https://huggingface.co/docs/hub/models-cards"),m(co,"rel","nofollow")},m(e,t){a(document.head,b),u(e,J,t),u(e,E,t),a(E,j),a(j,M),h(k,M,null),a(E,C),a(E,K),a(K,Fr),u(e,xa,t),u(e,mo,t),a(mo,Sr),u(e,Ia,t),u(e,W,t),a(W,zr),a(W,ke),a(ke,Lr),a(W,Or),u(e,Ra,t),u(e,X,t),a(X,xo),a(xo,Mr),a(X,Nr),a(X,Io),a(Io,xr),u(e,Ba,t),u(e,P,t),u(e,Ua,t),h(Z,e,t),u(e,Ga,t),u(e,N,t),a(N,Q),a(Q,Ro),h(Pe,Ro,null),a(N,Ir),a(N,Bo),a(Bo,Rr),u(e,Va,t),u(e,fo,t),a(fo,Br),u(e,Ya,t),u(e,T,t),a(T,Ur),a(T,je),a(je,Gr),a(T,Vr),a(T,Uo),a(Uo,Yr),a(T,Jr),u(e,Ja,t),u(e,ee,t),a(ee,Kr),a(ee,Go),a(Go,Wr),a(ee,Xr),u(e,Ka,t),h(qe,e,t),u(e,Wa,t),u(e,ho,t),a(ho,Zr),u(e,Xa,t),u(e,_o,t),a(_o,vo),u(e,Za,t),u(e,x,t),a(x,oe),a(oe,Vo),h(Ce,Vo,null),a(x,Qr),a(x,Yo),a(Yo,el),u(e,Qa,t),u(e,go,t),a(go,ol),u(e,et,t),h(Te,e,t),u(e,ot,t),u(e,ae,t),a(ae,al),a(ae,Ae),a(Ae,Jo),a(Jo,tl),a(ae,rl),u(e,at,t),h(He,e,t),u(e,tt,t),u(e,A,t),a(A,ll),a(A,Ko),a(Ko,sl),a(A,il),a(A,De),a(De,nl),a(A,ul),u(e,rt,t),h(Fe,e,t),u(e,lt,t),u(e,I,t),a(I,te),a(te,Wo),h(Se,Wo,null),a(I,cl),a(I,Xo),a(Xo,pl),u(e,st,t),u(e,bo,t),a(bo,ml),u(e,it,t),u(e,re,t),a(re,dl),a(re,$o),a($o,fl),a(re,hl),u(e,nt,t),u(e,le,t),a(le,_l),a(le,Zo),a(Zo,vl),a(le,gl),u(e,ut,t),h(ze,e,t),u(e,ct,t),u(e,Eo,t),a(Eo,bl),u(e,pt,t),h(Le,e,t),u(e,mt,t),u(e,se,t),a(se,$l),a(se,Qo),a(Qo,El),a(se,wl),u(e,dt,t),h(Oe,e,t),u(e,ft,t),u(e,wo,t),a(wo,yl),u(e,ht,t),h(Me,e,t),u(e,_t,t),u(e,R,t),a(R,ie),a(ie,ea),h(Ne,ea,null),a(R,kl),a(R,yo),a(yo,Pl),a(yo,oa),a(oa,jl),u(e,vt,t),h(xe,e,t),u(e,gt,t),u(e,w,t),a(w,ql),a(w,ko),a(ko,Cl),a(w,Tl),a(w,aa),a(aa,Al),a(w,Hl),a(w,ta),a(ta,Dl),a(w,Fl),a(w,ra),a(ra,Sl),a(w,zl),u(e,bt,t),h(Ie,e,t),u(e,$t,t),u(e,ne,t),a(ne,Ll),a(ne,la),a(la,Ol),a(ne,Ml),u(e,Et,t),h(Re,e,t),u(e,wt,t),u(e,H,t),a(H,Nl),a(H,sa),a(sa,xl),a(H,Il),a(H,ia),a(ia,Rl),a(H,Bl),u(e,yt,t),h(Be,e,t),u(e,kt,t),u(e,B,t),a(B,ue),a(ue,na),h(Ue,na,null),a(B,Ul),a(B,Po),a(Po,Gl),a(Po,ua),a(ua,Vl),u(e,Pt,t),u(e,D,t),a(D,Yl),a(D,ca),a(ca,Jl),a(D,Kl),a(D,pa),a(pa,Wl),a(D,Xl),u(e,jt,t),u(e,F,t),a(F,ma),a(ma,Zl),a(F,Ql),a(F,da),a(da,es),a(F,os),a(F,Ge),a(Ge,as),a(Ge,fa),a(fa,ts),a(Ge,rs),u(e,qt,t),h(Ve,e,t),u(e,Ct,t),u(e,ce,t),a(ce,ls),a(ce,Ye),a(Ye,ha),a(ha,ss),a(ce,is),u(e,Tt,t),h(Je,e,t),u(e,At,t),u(e,U,t),a(U,pe),a(pe,_a),h(Ke,_a,null),a(U,ns),a(U,jo),a(jo,us),a(jo,va),a(va,cs),u(e,Ht,t),u(e,me,t),a(me,ps),a(me,ga),a(ga,ms),a(me,ds),u(e,Dt,t),u(e,de,t),a(de,fs),a(de,ba),a(ba,hs),a(de,_s),u(e,Ft,t),h(We,e,t),u(e,St,t),u(e,S,t),a(S,vs),a(S,$a),a($a,gs),a(S,bs),a(S,Ea),a(Ea,$s),a(S,Es),u(e,zt,t),h(Xe,e,t),u(e,Lt,t),u(e,fe,t),a(fe,ws),a(fe,wa),a(wa,ys),a(fe,ks),u(e,Ot,t),h(Ze,e,t),u(e,Mt,t),u(e,he,t),a(he,Ps),a(he,ya),a(ya,js),a(he,qs),u(e,Nt,t),h(Qe,e,t),u(e,xt,t),u(e,qo,t),a(qo,Cs),u(e,It,t),h(eo,e,t),u(e,Rt,t),u(e,_e,t),a(_e,Ts),a(_e,ka),a(ka,As),a(_e,Hs),u(e,Bt,t),u(e,ve,t),a(ve,Ds),a(ve,oo),a(oo,Fs),a(ve,Ss),u(e,Ut,t),u(e,G,t),a(G,ge),a(ge,Pa),h(ao,Pa,null),a(G,zs),a(G,ja),a(ja,Ls),u(e,Gt,t),u(e,be,t),a(be,Os),a(be,to),a(to,Ms),a(be,Ns),u(e,Vt,t),u(e,Co,t),a(Co,To),u(e,Yt,t),u(e,Ao,t),a(Ao,xs),u(e,Jt,t),u(e,q,t),a(q,ro),a(ro,Is),a(ro,qa),a(qa,Rs),a(ro,Bs),a(q,Us),a(q,Ca),a(Ca,Gs),a(q,Vs),a(q,Ta),a(Ta,Ys),a(q,Js),a(q,Aa),a(Aa,Ks),u(e,Kt,t),u(e,z,t),a(z,Ws),a(z,Ha),a(Ha,Xs),a(z,Zs),a(z,Da),a(Da,Qs),a(z,ei),u(e,Wt,t),u(e,Ho,t),a(Ho,Do),u(e,Xt,t),u(e,V,t),a(V,$e),a($e,Fa),h(lo,Fa,null),a(V,oi),a(V,Sa),a(Sa,ai),u(e,Zt,t),u(e,Ee,t),a(Ee,ti),a(Ee,za),a(za,ri),a(Ee,li),u(e,Qt,t),u(e,we,t),a(we,so),a(so,si),a(so,La),a(La,ii),a(so,ni),a(we,ui),a(we,io),a(io,ci),a(io,Oa),a(Oa,pi),a(io,mi),u(e,er,t),u(e,y,t),a(y,di),a(y,no),a(no,fi),a(y,hi),a(y,uo),a(uo,_i),a(y,vi),a(y,Ma),a(Ma,gi),a(y,bi),a(y,co),a(co,$i),a(y,Ei),or=!0},p(e,[t]){const po={};t&2&&(po.$$scope={dirty:t,ctx:e}),Z.$set(po)},i(e){or||(_(k.$$.fragment,e),_(Z.$$.fragment,e),_(Pe.$$.fragment,e),_(qe.$$.fragment,e),_(Ce.$$.fragment,e),_(Te.$$.fragment,e),_(He.$$.fragment,e),_(Fe.$$.fragment,e),_(Se.$$.fragment,e),_(ze.$$.fragment,e),_(Le.$$.fragment,e),_(Oe.$$.fragment,e),_(Me.$$.fragment,e),_(Ne.$$.fragment,e),_(xe.$$.fragment,e),_(Ie.$$.fragment,e),_(Re.$$.fragment,e),_(Be.$$.fragment,e),_(Ue.$$.fragment,e),_(Ve.$$.fragment,e),_(Je.$$.fragment,e),_(Ke.$$.fragment,e),_(We.$$.fragment,e),_(Xe.$$.fragment,e),_(Ze.$$.fragment,e),_(Qe.$$.fragment,e),_(eo.$$.fragment,e),_(ao.$$.fragment,e),_(lo.$$.fragment,e),or=!0)},o(e){v(k.$$.fragment,e),v(Z.$$.fragment,e),v(Pe.$$.fragment,e),v(qe.$$.fragment,e),v(Ce.$$.fragment,e),v(Te.$$.fragment,e),v(He.$$.fragment,e),v(Fe.$$.fragment,e),v(Se.$$.fragment,e),v(ze.$$.fragment,e),v(Le.$$.fragment,e),v(Oe.$$.fragment,e),v(Me.$$.fragment,e),v(Ne.$$.fragment,e),v(xe.$$.fragment,e),v(Ie.$$.fragment,e),v(Re.$$.fragment,e),v(Be.$$.fragment,e),v(Ue.$$.fragment,e),v(Ve.$$.fragment,e),v(Je.$$.fragment,e),v(Ke.$$.fragment,e),v(We.$$.fragment,e),v(Xe.$$.fragment,e),v(Ze.$$.fragment,e),v(Qe.$$.fragment,e),v(eo.$$.fragment,e),v(ao.$$.fragment,e),v(lo.$$.fragment,e),or=!1},d(e){o(b),e&&o(J),e&&o(E),g(k),e&&o(xa),e&&o(mo),e&&o(Ia),e&&o(W),e&&o(Ra),e&&o(X),e&&o(Ba),e&&o(P),e&&o(Ua),g(Z,e),e&&o(Ga),e&&o(N),g(Pe),e&&o(Va),e&&o(fo),e&&o(Ya),e&&o(T),e&&o(Ja),e&&o(ee),e&&o(Ka),g(qe,e),e&&o(Wa),e&&o(ho),e&&o(Xa),e&&o(_o),e&&o(Za),e&&o(x),g(Ce),e&&o(Qa),e&&o(go),e&&o(et),g(Te,e),e&&o(ot),e&&o(ae),e&&o(at),g(He,e),e&&o(tt),e&&o(A),e&&o(rt),g(Fe,e),e&&o(lt),e&&o(I),g(Se),e&&o(st),e&&o(bo),e&&o(it),e&&o(re),e&&o(nt),e&&o(le),e&&o(ut),g(ze,e),e&&o(ct),e&&o(Eo),e&&o(pt),g(Le,e),e&&o(mt),e&&o(se),e&&o(dt),g(Oe,e),e&&o(ft),e&&o(wo),e&&o(ht),g(Me,e),e&&o(_t),e&&o(R),g(Ne),e&&o(vt),g(xe,e),e&&o(gt),e&&o(w),e&&o(bt),g(Ie,e),e&&o($t),e&&o(ne),e&&o(Et),g(Re,e),e&&o(wt),e&&o(H),e&&o(yt),g(Be,e),e&&o(kt),e&&o(B),g(Ue),e&&o(Pt),e&&o(D),e&&o(jt),e&&o(F),e&&o(qt),g(Ve,e),e&&o(Ct),e&&o(ce),e&&o(Tt),g(Je,e),e&&o(At),e&&o(U),g(Ke),e&&o(Ht),e&&o(me),e&&o(Dt),e&&o(de),e&&o(Ft),g(We,e),e&&o(St),e&&o(S),e&&o(zt),g(Xe,e),e&&o(Lt),e&&o(fe),e&&o(Ot),g(Ze,e),e&&o(Mt),e&&o(he),e&&o(Nt),g(Qe,e),e&&o(xt),e&&o(qo),e&&o(It),g(eo,e),e&&o(Rt),e&&o(_e),e&&o(Bt),e&&o(ve),e&&o(Ut),e&&o(G),g(ao),e&&o(Gt),e&&o(be),e&&o(Vt),e&&o(Co),e&&o(Yt),e&&o(Ao),e&&o(Jt),e&&o(q),e&&o(Kt),e&&o(z),e&&o(Wt),e&&o(Ho),e&&o(Xt),e&&o(V),g(lo),e&&o(Zt),e&&o(Ee),e&&o(Qt),e&&o(we),e&&o(er),e&&o(y)}}}const bu={local:"compartir-un-modelo",sections:[{local:"caractersticas-de-los-repositorios",title:"Caracter\xEDsticas de los repositorios"},{local:"configuracin-inicial",title:"Configuraci\xF3n inicial"},{local:"convertir-un-modelo-para-todos-los-frameworks",title:"Convertir un modelo para todos los Frameworks"},{local:"compartir-un-modelo-con-trainer",title:"Compartir un modelo con `Trainer`"},{local:"compartir-un-modelo-con-pushtohubcallback",title:"Compartir un modelo con `PushToHubCallback`"},{local:"usando-la-funcin-pushtohub",title:"Usando la funci\xF3n `push_to_hub`"},{local:"compartir-con-la-interfaz-web",title:"Compartir con la interfaz web"},{local:"aadiendo-una-tarjeta-de-modelo",title:"A\xF1adiendo una tarjeta de modelo"}],title:"Compartir un modelo"};function $u(Na){return fu(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class ju extends cu{constructor(b){super();pu(this,b,$u,gu,mu,{})}}export{ju as default,bu as metadata};
