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 a,m as p,a as n,x as f,h as i,b as m,N as Dr,G as o,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(No){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(a),M=i(C,". Tambi\xE9n puedes unirte a una organizaci\xF3n existente o crear una nueva."),C.forEach(a),this.h()},h(){m(E,"href","https://huggingface.co/join"),m(E,"rel","nofollow")},m(k,C){u(k,b,C),o(b,J),o(b,E),o(E,j),o(b,M)},d(k){k&&a(b)}}}function gu(No){let b,J,E,j,M,k,C,K,Fr,xo,ma,Sr,Io,W,zr,ke,Lr,Or,Ro,X,Na,Mr,Nr,xa,xr,Bo,P,Pi,Uo,Z,Go,N,Q,Ia,Pe,Ir,Ra,Rr,Vo,da,Br,Yo,T,Ur,je,Gr,Vr,Ba,Yr,Jr,Jo,ee,Kr,Ua,Wr,Xr,Ko,qe,Wo,fa,Zr,Xo,ha,_a,ji,Zo,x,ae,Ga,Ce,Qr,Va,el,Qo,va,al,et,Te,at,oe,ol,Ae,Ya,tl,rl,ot,He,tt,A,ll,Ja,sl,il,De,nl,ul,rt,Fe,lt,I,te,Ka,Se,cl,Wa,pl,st,ga,ml,it,re,dl,ba,fl,hl,nt,le,_l,Xa,vl,gl,ut,ze,ct,$a,bl,pt,Le,mt,se,$l,Za,El,wl,dt,Oe,ft,Ea,yl,ht,Me,_t,R,ie,Qa,Ne,kl,wa,Pl,eo,jl,vt,xe,gt,w,ql,ya,Cl,Tl,ao,Al,Hl,oo,Dl,Fl,to,Sl,zl,bt,Ie,$t,ne,Ll,ro,Ol,Ml,Et,Re,wt,H,Nl,lo,xl,Il,so,Rl,Bl,yt,Be,kt,B,ue,io,Ue,Ul,ka,Gl,no,Vl,Pt,D,Yl,uo,Jl,Kl,co,Wl,Xl,jt,F,po,Zl,Ql,mo,es,as,Ge,os,fo,ts,rs,qt,Ve,Ct,ce,ls,Ye,ho,ss,is,Tt,Je,At,U,pe,_o,Ke,ns,Pa,us,vo,cs,Ht,me,ps,go,ms,ds,Dt,de,fs,bo,hs,_s,Ft,We,St,S,vs,$o,gs,bs,Eo,$s,Es,zt,Xe,Lt,fe,ws,wo,ys,ks,Ot,Ze,Mt,he,Ps,yo,js,qs,Nt,Qe,xt,ja,Cs,It,ea,Rt,_e,Ts,ko,As,Hs,Bt,ve,Ds,aa,Fs,Ss,Ut,G,ge,Po,oa,zs,jo,Ls,Gt,be,Os,ta,Ms,Ns,Vt,qa,Ca,qi,Yt,Ta,xs,Jt,q,ra,Is,qo,Rs,Bs,Us,Co,Gs,Vs,To,Ys,Js,Ao,Ks,Kt,z,Ws,Ho,Xs,Zs,Do,Qs,ei,Wt,Aa,Ha,Ci,Xt,V,$e,Fo,la,ai,So,oi,Zt,Ee,ti,zo,ri,li,Qt,we,sa,si,Lo,ii,ni,ui,ia,ci,Oo,pi,mi,er,y,di,na,fi,hi,ua,_i,vi,Mo,gi,bi,ca,$i,Ei,ar;return k=new Y({}),Z=new hu({props:{$$slots:{default:[vu]},$$scope:{ctx:No}}}),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.keras.callbacks 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.keras.callbacks <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>)'}}),ea=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>)'}}),oa=new Y({}),la=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"),xo=c(),ma=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."),Io=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(":"),Ro=c(),X=r("ul"),Na=r("li"),Mr=s("Mediante C\xF3digo, enviando (push) tus archivos al Hub."),Nr=c(),xa=r("li"),xr=s("Con la interfaz Web, con Drag-and-drop de tus archivos al Hub."),Bo=c(),P=r("iframe"),Uo=c(),d(Z.$$.fragment),Go=c(),N=r("h2"),Q=r("a"),Ia=r("span"),d(Pe.$$.fragment),Ir=c(),Ra=r("span"),Rr=s("Caracter\xEDsticas de los repositorios"),Vo=c(),da=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."),Yo=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 "),Ba=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."),Jo=c(),ee=r("p"),Kr=s("Como resultado, puedes cargar una versi\xF3n espec\xEDfica del modelo con el par\xE1metro "),Ua=r("code"),Wr=s("revision"),Xr=s(":"),Ko=c(),d(qe.$$.fragment),Wo=c(),fa=r("p"),Zr=s("Los archivos son editados f\xE1cilmente dentro de un repositorio. Incluso puedes observar el commit history y las diferencias:"),Xo=c(),ha=r("p"),_a=r("img"),Zo=c(),x=r("h2"),ae=r("a"),Ga=r("span"),d(Ce.$$.fragment),Qr=c(),Va=r("span"),el=s("Configuraci\xF3n inicial"),Qo=c(),va=r("p"),al=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),at=c(),oe=r("p"),ol=s("Si usas un notebook como Jupyter o Colaboratory, aseg\xFArate de tener instalada la biblioteca "),Ae=r("a"),Ya=r("code"),tl=s("huggingface_hub"),rl=s(". Esta biblioteca te permitir\xE1 interactuar por c\xF3digo con el Hub."),ot=c(),d(He.$$.fragment),tt=c(),A=r("p"),ll=s("Luego usa "),Ja=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"),Ka=r("span"),d(Se.$$.fragment),cl=c(),Wa=r("span"),pl=s("Convertir un modelo para todos los Frameworks"),st=c(),ga=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 "),ba=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 "),Xa=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(),$a=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 "),Za=r("code"),El=s("from_tf=True"),wl=s(" para convertir un checkpoint de TensorFlow a Pytorch:"),dt=c(),d(Oe.$$.fragment),ft=c(),Ea=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"),Qa=r("span"),d(Ne.$$.fragment),kl=c(),wa=r("span"),Pl=s("Compartir un modelo con "),eo=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 "),ya=r("a"),Cl=s("fine-tuning tutorial"),Tl=s(", la clase "),ao=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 "),oo=r("code"),Dl=s("push_to_hub=True"),Fl=s(" dentro de "),to=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 "),ro=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 "),lo=r("code"),xl=s("push_to_hub()"),Il=s(" en "),so=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"),io=r("span"),d(Ue.$$.fragment),Ul=c(),ka=r("span"),Gl=s("Compartir un modelo con "),no=r("code"),Vl=s("PushToHubCallback"),Pt=c(),D=r("p"),Yl=s("Los usuarios de TensorFlow pueden activar la misma funcionalidad con "),uo=r("code"),Jl=s("PushToHubCallback"),Kl=s(". En la funcion "),co=r("code"),Wl=s("PushToHubCallback"),Xl=s(", agrega:"),jt=c(),F=r("ul"),po=r("li"),Zl=s("Un directorio de salida para tu modelo."),Ql=c(),mo=r("li"),es=s("Un tokenizador."),as=c(),Ge=r("li"),os=s("El "),fo=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"),ho=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"),_o=r("span"),d(Ke.$$.fragment),ns=c(),Pa=r("span"),us=s("Usando la funci\xF3n "),vo=r("code"),cs=s("push_to_hub"),Ht=c(),me=r("p"),ps=s("Puedes llamar la funci\xF3n "),go=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 "),bo=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 "),$o=r("code"),gs=s("my-awesome-model"),bs=s(". Ahora los usuarios pueden cargar tu modelo con la funci\xF3n "),Eo=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 "),wo=r("code"),ys=s("organization"),ks=s(":"),Ot=c(),d(Ze.$$.fragment),Mt=c(),he=r("p"),Ps=s("La funci\xF3n "),yo=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(),ja=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(ea.$$.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 "),ko=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 "),aa=r("a"),Fs=s("documentaci\xF3n del Hub"),Ss=s("."),Ut=c(),G=r("h2"),ge=r("a"),Po=r("span"),d(oa.$$.fragment),zs=c(),jo=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 "),ta=r("a"),Ms=s("huggingface.co/new"),Ns=s(" para crear un nuevo repositorio:"),Vt=c(),qa=r("p"),Ca=r("img"),Yt=c(),Ta=r("p"),xs=s("Desde aqu\xED, a\xF1ade informaci\xF3n acerca del modelo:"),Jt=c(),q=r("ul"),ra=r("li"),Is=s("Selecciona el "),qo=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(),Co=r("li"),Gs=s("Escoge un nombre para tu modelo. Tambi\xE9n ser\xE1 el nombre del repositorio."),Vs=c(),To=r("li"),Ys=s("Elige si tu modelo es p\xFAblico o privado."),Js=c(),Ao=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 "),Ho=r("strong"),Xs=s("Files"),Zs=s(" y luego en el bot\xF3n "),Do=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(),Aa=r("p"),Ha=r("img"),Xt=c(),V=r("h2"),$e=r("a"),Fo=r("span"),d(la.$$.fragment),ai=c(),So=r("span"),oi=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 "),zo=r("code"),ri=s("README.md"),li=s(". Puedes agregar una de la siguiente manera:"),Qt=c(),we=r("ul"),sa=r("li"),si=s("Elaborando y subiendo manualmente el archivo"),Lo=r("code"),ii=s("README.md"),ni=s("."),ui=c(),ia=r("li"),ci=s("Dando click en el bot\xF3n "),Oo=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 "),na=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 "),ua=r("a"),_i=s("la documentaci\xF3n"),vi=s(" para m\xE1s detalles acerca de otras opciones que puedes controlar dentro del archivo "),Mo=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] ("),ca=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(a),J=p(e),E=l(e,"H1",{class:!0});var pa=n(E);j=l(pa,"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(a),Ti.forEach(a),C=p(pa),K=l(pa,"SPAN",{});var Hi=n(K);Fr=i(Hi,"Compartir un modelo"),Hi.forEach(a),pa.forEach(a),xo=p(e),ma=l(e,"P",{});var Di=n(ma);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(a),Io=p(e),W=l(e,"P",{});var or=n(W);zr=i(or,"En este tutorial aprender\xE1s dos m\xE9todos para compartir un modelo trained o fine-tuned en el "),ke=l(or,"A",{href:!0,rel:!0});var Fi=n(ke);Lr=i(Fi,"Model Hub"),Fi.forEach(a),Or=i(or,":"),or.forEach(a),Ro=p(e),X=l(e,"UL",{});var tr=n(X);Na=l(tr,"LI",{});var Si=n(Na);Mr=i(Si,"Mediante C\xF3digo, enviando (push) tus archivos al Hub."),Si.forEach(a),Nr=p(tr),xa=l(tr,"LI",{});var zi=n(xa);xr=i(zi,"Con la interfaz Web, con Drag-and-drop de tus archivos al Hub."),zi.forEach(a),tr.forEach(a),Bo=p(e),P=l(e,"IFRAME",{width:!0,height:!0,src:!0,title:!0,frameborder:!0,allow:!0}),n(P).forEach(a),Uo=p(e),f(Z.$$.fragment,e),Go=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);Ia=l(Li,"SPAN",{});var Oi=n(Ia);f(Pe.$$.fragment,Oi),Oi.forEach(a),Li.forEach(a),Ir=p(rr),Ra=l(rr,"SPAN",{});var Mi=n(Ra);Rr=i(Mi,"Caracter\xEDsticas de los repositorios"),Mi.forEach(a),rr.forEach(a),Vo=p(e),da=l(e,"P",{});var Ni=n(da);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(a),Yo=p(e),T=l(e,"P",{});var Da=n(T);Ur=i(Da,"El versioning desarrollado dentro del Model Hub es basado en git y "),je=l(Da,"A",{href:!0,rel:!0});var xi=n(je);Gr=i(xi,"git-lfs"),xi.forEach(a),Vr=i(Da,". En otras palabras, puedes tratar un modelo como un repositorio, brindando un mejor control de acceso y escalabilidad. Version control permite "),Ba=l(Da,"EM",{});var Ii=n(Ba);Yr=i(Ii,"revisions"),Ii.forEach(a),Jr=i(Da,", un m\xE9todo para apuntar a una versi\xF3n espec\xEDfica de un modelo utilizando un commit hash, tag o branch."),Da.forEach(a),Jo=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 "),Ua=l(lr,"CODE",{});var Ri=n(Ua);Wr=i(Ri,"revision"),Ri.forEach(a),Xr=i(lr,":"),lr.forEach(a),Ko=p(e),f(qe.$$.fragment,e),Wo=p(e),fa=l(e,"P",{});var Bi=n(fa);Zr=i(Bi,"Los archivos son editados f\xE1cilmente dentro de un repositorio. Incluso puedes observar el commit history y las diferencias:"),Bi.forEach(a),Xo=p(e),ha=l(e,"P",{});var Ui=n(ha);_a=l(Ui,"IMG",{src:!0,alt:!0}),Ui.forEach(a),Zo=p(e),x=l(e,"H2",{class:!0});var sr=n(x);ae=l(sr,"A",{id:!0,class:!0,href:!0});var Gi=n(ae);Ga=l(Gi,"SPAN",{});var Vi=n(Ga);f(Ce.$$.fragment,Vi),Vi.forEach(a),Gi.forEach(a),Qr=p(sr),Va=l(sr,"SPAN",{});var Yi=n(Va);el=i(Yi,"Configuraci\xF3n inicial"),Yi.forEach(a),sr.forEach(a),Qo=p(e),va=l(e,"P",{});var Ji=n(va);al=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(a),et=p(e),f(Te.$$.fragment,e),at=p(e),oe=l(e,"P",{});var ir=n(oe);ol=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);Ya=l(Ki,"CODE",{});var Wi=n(Ya);tl=i(Wi,"huggingface_hub"),Wi.forEach(a),Ki.forEach(a),rl=i(ir,". Esta biblioteca te permitir\xE1 interactuar por c\xF3digo con el Hub."),ir.forEach(a),ot=p(e),f(He.$$.fragment,e),tt=p(e),A=l(e,"P",{});var Fa=n(A);ll=i(Fa,"Luego usa "),Ja=l(Fa,"CODE",{});var Xi=n(Ja);sl=i(Xi,"notebook_login"),Xi.forEach(a),il=i(Fa," para iniciar sesi\xF3n al Hub, y sigue el link "),De=l(Fa,"A",{href:!0,rel:!0});var Zi=n(De);nl=i(Zi,"aqu\xED"),Zi.forEach(a),ul=i(Fa," para generar un token con el que iniciaremos sesi\xF3n:"),Fa.forEach(a),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);Ka=l(Qi,"SPAN",{});var en=n(Ka);f(Se.$$.fragment,en),en.forEach(a),Qi.forEach(a),cl=p(nr),Wa=l(nr,"SPAN",{});var an=n(Wa);pl=i(an,"Convertir un modelo para todos los Frameworks"),an.forEach(a),nr.forEach(a),st=p(e),ga=l(e,"P",{});var on=n(ga);ml=i(on,"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."),on.forEach(a),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 "),ba=l(ur,"A",{href:!0});var tn=n(ba);fl=i(tn,"aqu\xED"),tn.forEach(a),hl=i(ur," para instrucciones de instalaci\xF3n), y luego encuentra el modelo espec\xEDfico para tu tarea en el otro Framework."),ur.forEach(a),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 "),Xa=l(cr,"CODE",{});var rn=n(Xa);vl=i(rn,"from_pt=True"),rn.forEach(a),gl=i(cr," as\xED \u{1F917} Transformers convertir\xE1 el Pytorch checkpoint a un TensorFlow Checkpoint:"),cr.forEach(a),ut=p(e),f(ze.$$.fragment,e),ct=p(e),$a=l(e,"P",{});var ln=n($a);bl=i(ln,"Luego guardas tu nuevo modelo TensorFlow con su nuevo checkpoint:"),ln.forEach(a),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 "),Za=l(pr,"CODE",{});var sn=n(Za);El=i(sn,"from_tf=True"),sn.forEach(a),wl=i(pr," para convertir un checkpoint de TensorFlow a Pytorch:"),pr.forEach(a),dt=p(e),f(Oe.$$.fragment,e),ft=p(e),Ea=l(e,"P",{});var nn=n(Ea);yl=i(nn,"Si alg\xFAn modelo est\xE1 disponible en Flax, tambi\xE9n puedes convertir un checkpoint de Pytorch a Flax:"),nn.forEach(a),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);Qa=l(un,"SPAN",{});var cn=n(Qa);f(Ne.$$.fragment,cn),cn.forEach(a),un.forEach(a),kl=p(mr),wa=l(mr,"SPAN",{});var wi=n(wa);Pl=i(wi,"Compartir un modelo con "),eo=l(wi,"CODE",{});var pn=n(eo);jl=i(pn,"Trainer"),pn.forEach(a),wi.forEach(a),mr.forEach(a),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 "),ya=l(L,"A",{href:!0});var mn=n(ya);Cl=i(mn,"fine-tuning tutorial"),mn.forEach(a),Tl=i(L,", la clase "),ao=l(L,"CODE",{});var dn=n(ao);Al=i(dn,"TrainingArguments"),dn.forEach(a),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 "),oo=l(L,"CODE",{});var fn=n(oo);Dl=i(fn,"push_to_hub=True"),fn.forEach(a),Fl=i(L," dentro de "),to=l(L,"CODE",{});var hn=n(to);Sl=i(hn,"TrainingArguments"),hn.forEach(a),zl=i(L,":"),L.forEach(a),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 "),ro=l(dr,"CODE",{});var _n=n(ro);Ol=i(_n,"Trainer"),_n.forEach(a),Ml=i(dr,":"),dr.forEach(a),Et=p(e),f(Re.$$.fragment,e),wt=p(e),H=l(e,"P",{});var Sa=n(H);Nl=i(Sa,"Luego que realizas fine-tune a tu modelo, llamas "),lo=l(Sa,"CODE",{});var vn=n(lo);xl=i(vn,"push_to_hub()"),vn.forEach(a),Il=i(Sa," en "),so=l(Sa,"CODE",{});var gn=n(so);Rl=i(gn,"Trainer"),gn.forEach(a),Bl=i(Sa," 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!"),Sa.forEach(a),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);io=l(bn,"SPAN",{});var $n=n(io);f(Ue.$$.fragment,$n),$n.forEach(a),bn.forEach(a),Ul=p(fr),ka=l(fr,"SPAN",{});var yi=n(ka);Gl=i(yi,"Compartir un modelo con "),no=l(yi,"CODE",{});var En=n(no);Vl=i(En,"PushToHubCallback"),En.forEach(a),yi.forEach(a),fr.forEach(a),Pt=p(e),D=l(e,"P",{});var za=n(D);Yl=i(za,"Los usuarios de TensorFlow pueden activar la misma funcionalidad con "),uo=l(za,"CODE",{});var wn=n(uo);Jl=i(wn,"PushToHubCallback"),wn.forEach(a),Kl=i(za,". En la funcion "),co=l(za,"CODE",{});var yn=n(co);Wl=i(yn,"PushToHubCallback"),yn.forEach(a),Xl=i(za,", agrega:"),za.forEach(a),jt=p(e),F=l(e,"UL",{});var La=n(F);po=l(La,"LI",{});var kn=n(po);Zl=i(kn,"Un directorio de salida para tu modelo."),kn.forEach(a),Ql=p(La),mo=l(La,"LI",{});var Pn=n(mo);es=i(Pn,"Un tokenizador."),Pn.forEach(a),as=p(La),Ge=l(La,"LI",{});var hr=n(Ge);os=i(hr,"El "),fo=l(hr,"CODE",{});var jn=n(fo);ts=i(jn,"hub_model_id"),jn.forEach(a),rs=i(hr,", el cual es tu usuario Hub y el nombre del modelo."),hr.forEach(a),La.forEach(a),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);ho=l(qn,"CODE",{});var Cn=n(ho);ss=i(Cn,"fit"),Cn.forEach(a),qn.forEach(a),is=i(_r,", y \u{1F917} Transformers enviar\xE1 el modelo entrenado al Hub:"),_r.forEach(a),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);_o=l(Tn,"SPAN",{});var An=n(_o);f(Ke.$$.fragment,An),An.forEach(a),Tn.forEach(a),ns=p(vr),Pa=l(vr,"SPAN",{});var ki=n(Pa);us=i(ki,"Usando la funci\xF3n "),vo=l(ki,"CODE",{});var Hn=n(vo);cs=i(Hn,"push_to_hub"),Hn.forEach(a),ki.forEach(a),vr.forEach(a),Ht=p(e),me=l(e,"P",{});var gr=n(me);ps=i(gr,"Puedes llamar la funci\xF3n "),go=l(gr,"CODE",{});var Dn=n(go);ms=i(Dn,"push_to_hub"),Dn.forEach(a),ds=i(gr," directamente en tu modelo para subirlo al Hub."),gr.forEach(a),Dt=p(e),de=l(e,"P",{});var br=n(de);fs=i(br,"Especifica el nombre del modelo en "),bo=l(br,"CODE",{});var Fn=n(bo);hs=i(Fn,"push_to_hub"),Fn.forEach(a),_s=i(br,":"),br.forEach(a),Ft=p(e),f(We.$$.fragment,e),St=p(e),S=l(e,"P",{});var Oa=n(S);vs=i(Oa,"Esto crear\xE1 un repositorio bajo tu usuario con el nombre del modelo "),$o=l(Oa,"CODE",{});var Sn=n($o);gs=i(Sn,"my-awesome-model"),Sn.forEach(a),bs=i(Oa,". Ahora los usuarios pueden cargar tu modelo con la funci\xF3n "),Eo=l(Oa,"CODE",{});var zn=n(Eo);$s=i(zn,"from_pretrained"),zn.forEach(a),Es=i(Oa,":"),Oa.forEach(a),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 "),wo=l($r,"CODE",{});var Ln=n(wo);ys=i(Ln,"organization"),Ln.forEach(a),ks=i($r,":"),$r.forEach(a),Ot=p(e),f(Ze.$$.fragment,e),Mt=p(e),he=l(e,"P",{});var Er=n(he);Ps=i(Er,"La funci\xF3n "),yo=l(Er,"CODE",{});var On=n(yo);js=i(On,"push_to_hub"),On.forEach(a),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(a),Nt=p(e),f(Qe.$$.fragment,e),xt=p(e),ja=l(e,"P",{});var Mn=n(ja);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(a),It=p(e),f(ea.$$.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 "),ko=l(wr,"STRONG",{});var Nn=n(ko);As=i(Nn,"Files"),Nn.forEach(a),Hs=i(wr," observar\xE1s todos los archivos que has subido al repositorio."),wr.forEach(a),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 "),aa=l(yr,"A",{href:!0,rel:!0});var xn=n(aa);Fs=i(xn,"documentaci\xF3n del Hub"),xn.forEach(a),Ss=i(yr,"."),yr.forEach(a),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);Po=l(In,"SPAN",{});var Rn=n(Po);f(oa.$$.fragment,Rn),Rn.forEach(a),In.forEach(a),zs=p(kr),jo=l(kr,"SPAN",{});var Bn=n(jo);Ls=i(Bn,"Compartir con la interfaz web"),Bn.forEach(a),kr.forEach(a),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 "),ta=l(Pr,"A",{href:!0,rel:!0});var Un=n(ta);Ms=i(Un,"huggingface.co/new"),Un.forEach(a),Ns=i(Pr," para crear un nuevo repositorio:"),Pr.forEach(a),Vt=p(e),qa=l(e,"P",{});var Gn=n(qa);Ca=l(Gn,"IMG",{src:!0,alt:!0}),Gn.forEach(a),Yt=p(e),Ta=l(e,"P",{});var Vn=n(Ta);xs=i(Vn,"Desde aqu\xED, a\xF1ade informaci\xF3n acerca del modelo:"),Vn.forEach(a),Jt=p(e),q=l(e,"UL",{});var ye=n(q);ra=l(ye,"LI",{});var jr=n(ra);Is=i(jr,"Selecciona el "),qo=l(jr,"STRONG",{});var Yn=n(qo);Rs=i(Yn,"owner"),Yn.forEach(a),Bs=i(jr," (la persona propietaria) del repositorio. Puedes ser t\xFA o cualquier organizaci\xF3n a la que pertenezcas."),jr.forEach(a),Us=p(ye),Co=l(ye,"LI",{});var Jn=n(Co);Gs=i(Jn,"Escoge un nombre para tu modelo. Tambi\xE9n ser\xE1 el nombre del repositorio."),Jn.forEach(a),Vs=p(ye),To=l(ye,"LI",{});var Kn=n(To);Ys=i(Kn,"Elige si tu modelo es p\xFAblico o privado."),Kn.forEach(a),Js=p(ye),Ao=l(ye,"LI",{});var Wn=n(Ao);Ks=i(Wn,"Especifica la licencia que usar\xE1 tu modelo."),Wn.forEach(a),ye.forEach(a),Kt=p(e),z=l(e,"P",{});var Ma=n(z);Ws=i(Ma,"Ahora puedes hacer click en el tab "),Ho=l(Ma,"STRONG",{});var Xn=n(Ho);Xs=i(Xn,"Files"),Xn.forEach(a),Zs=i(Ma," y luego en el bot\xF3n "),Do=l(Ma,"STRONG",{});var Zn=n(Do);Qs=i(Zn,"Add file"),Zn.forEach(a),ei=i(Ma," para subir un nuevo archivo a tu repositorio. Luego arrastra y suelta un archivo a subir y le a\xF1ades un mensaje al commit."),Ma.forEach(a),Wt=p(e),Aa=l(e,"P",{});var Qn=n(Aa);Ha=l(Qn,"IMG",{src:!0,alt:!0}),Qn.forEach(a),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);Fo=l(eu,"SPAN",{});var au=n(Fo);f(la.$$.fragment,au),au.forEach(a),eu.forEach(a),ai=p(qr),So=l(qr,"SPAN",{});var ou=n(So);oi=i(ou,"A\xF1adiendo una tarjeta de modelo"),ou.forEach(a),qr.forEach(a),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 "),zo=l(Cr,"CODE",{});var tu=n(zo);ri=i(tu,"README.md"),tu.forEach(a),li=i(Cr,". Puedes agregar una de la siguiente manera:"),Cr.forEach(a),Qt=p(e),we=l(e,"UL",{});var Tr=n(we);sa=l(Tr,"LI",{});var Ar=n(sa);si=i(Ar,"Elaborando y subiendo manualmente el archivo"),Lo=l(Ar,"CODE",{});var ru=n(Lo);ii=i(ru,"README.md"),ru.forEach(a),ni=i(Ar,"."),Ar.forEach(a),ui=p(Tr),ia=l(Tr,"LI",{});var Hr=n(ia);ci=i(Hr,"Dando click en el bot\xF3n "),Oo=l(Hr,"STRONG",{});var lu=n(Oo);pi=i(lu,"Edit model card"),lu.forEach(a),mi=i(Hr," dentro del repositorio."),Hr.forEach(a),Tr.forEach(a),er=p(e),y=l(e,"P",{});var O=n(y);di=i(O,"Toma un momento para ver la "),na=l(O,"A",{href:!0,rel:!0});var su=n(na);fi=i(su,"tarjeta de modelo"),su.forEach(a),hi=i(O," de DistilBert para que tengas un buen ejemplo del tipo de informaci\xF3n que deber\xEDa incluir. Consulta "),ua=l(O,"A",{href:!0,rel:!0});var iu=n(ua);_i=i(iu,"la documentaci\xF3n"),iu.forEach(a),vi=i(O," para m\xE1s detalles acerca de otras opciones que puedes controlar dentro del archivo "),Mo=l(O,"CODE",{});var nu=n(Mo);gi=i(nu,"README.md"),nu.forEach(a),bi=i(O," como la huella de carbono del modelo o ejemplos de widgets. Consulta la documentaci\xF3n [aqu\xED] ("),ca=l(O,"A",{href:!0,rel:!0});var uu=n(ca);$i=i(uu,"https://huggingface.co/docs/hub/models-cards"),uu.forEach(a),Ei=i(O,")."),O.forEach(a),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(_a.src,ji="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/vis_diff.png")||m(_a,"src",ji),m(_a,"alt","vis_diff"),m(ae,"id","configuracin-inicial"),m(ae,"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(ae,"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(ba,"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(ya,"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(aa,"href","https://huggingface.co/docs/hub/how-to-upstream"),m(aa,"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(ta,"href","https://huggingface.co/new"),m(ta,"rel","nofollow"),Dr(Ca.src,qi="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/new_model_repo.png")||m(Ca,"src",qi),m(Ca,"alt","new_model_repo"),Dr(Ha.src,Ci="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/upload_file.png")||m(Ha,"src",Ci),m(Ha,"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(na,"href","https://huggingface.co/distilbert-base-uncased"),m(na,"rel","nofollow"),m(ua,"href","https://huggingface.co/docs/hub/models-cards"),m(ua,"rel","nofollow"),m(ca,"href","https://huggingface.co/docs/hub/models-cards"),m(ca,"rel","nofollow")},m(e,t){o(document.head,b),u(e,J,t),u(e,E,t),o(E,j),o(j,M),h(k,M,null),o(E,C),o(E,K),o(K,Fr),u(e,xo,t),u(e,ma,t),o(ma,Sr),u(e,Io,t),u(e,W,t),o(W,zr),o(W,ke),o(ke,Lr),o(W,Or),u(e,Ro,t),u(e,X,t),o(X,Na),o(Na,Mr),o(X,Nr),o(X,xa),o(xa,xr),u(e,Bo,t),u(e,P,t),u(e,Uo,t),h(Z,e,t),u(e,Go,t),u(e,N,t),o(N,Q),o(Q,Ia),h(Pe,Ia,null),o(N,Ir),o(N,Ra),o(Ra,Rr),u(e,Vo,t),u(e,da,t),o(da,Br),u(e,Yo,t),u(e,T,t),o(T,Ur),o(T,je),o(je,Gr),o(T,Vr),o(T,Ba),o(Ba,Yr),o(T,Jr),u(e,Jo,t),u(e,ee,t),o(ee,Kr),o(ee,Ua),o(Ua,Wr),o(ee,Xr),u(e,Ko,t),h(qe,e,t),u(e,Wo,t),u(e,fa,t),o(fa,Zr),u(e,Xo,t),u(e,ha,t),o(ha,_a),u(e,Zo,t),u(e,x,t),o(x,ae),o(ae,Ga),h(Ce,Ga,null),o(x,Qr),o(x,Va),o(Va,el),u(e,Qo,t),u(e,va,t),o(va,al),u(e,et,t),h(Te,e,t),u(e,at,t),u(e,oe,t),o(oe,ol),o(oe,Ae),o(Ae,Ya),o(Ya,tl),o(oe,rl),u(e,ot,t),h(He,e,t),u(e,tt,t),u(e,A,t),o(A,ll),o(A,Ja),o(Ja,sl),o(A,il),o(A,De),o(De,nl),o(A,ul),u(e,rt,t),h(Fe,e,t),u(e,lt,t),u(e,I,t),o(I,te),o(te,Ka),h(Se,Ka,null),o(I,cl),o(I,Wa),o(Wa,pl),u(e,st,t),u(e,ga,t),o(ga,ml),u(e,it,t),u(e,re,t),o(re,dl),o(re,ba),o(ba,fl),o(re,hl),u(e,nt,t),u(e,le,t),o(le,_l),o(le,Xa),o(Xa,vl),o(le,gl),u(e,ut,t),h(ze,e,t),u(e,ct,t),u(e,$a,t),o($a,bl),u(e,pt,t),h(Le,e,t),u(e,mt,t),u(e,se,t),o(se,$l),o(se,Za),o(Za,El),o(se,wl),u(e,dt,t),h(Oe,e,t),u(e,ft,t),u(e,Ea,t),o(Ea,yl),u(e,ht,t),h(Me,e,t),u(e,_t,t),u(e,R,t),o(R,ie),o(ie,Qa),h(Ne,Qa,null),o(R,kl),o(R,wa),o(wa,Pl),o(wa,eo),o(eo,jl),u(e,vt,t),h(xe,e,t),u(e,gt,t),u(e,w,t),o(w,ql),o(w,ya),o(ya,Cl),o(w,Tl),o(w,ao),o(ao,Al),o(w,Hl),o(w,oo),o(oo,Dl),o(w,Fl),o(w,to),o(to,Sl),o(w,zl),u(e,bt,t),h(Ie,e,t),u(e,$t,t),u(e,ne,t),o(ne,Ll),o(ne,ro),o(ro,Ol),o(ne,Ml),u(e,Et,t),h(Re,e,t),u(e,wt,t),u(e,H,t),o(H,Nl),o(H,lo),o(lo,xl),o(H,Il),o(H,so),o(so,Rl),o(H,Bl),u(e,yt,t),h(Be,e,t),u(e,kt,t),u(e,B,t),o(B,ue),o(ue,io),h(Ue,io,null),o(B,Ul),o(B,ka),o(ka,Gl),o(ka,no),o(no,Vl),u(e,Pt,t),u(e,D,t),o(D,Yl),o(D,uo),o(uo,Jl),o(D,Kl),o(D,co),o(co,Wl),o(D,Xl),u(e,jt,t),u(e,F,t),o(F,po),o(po,Zl),o(F,Ql),o(F,mo),o(mo,es),o(F,as),o(F,Ge),o(Ge,os),o(Ge,fo),o(fo,ts),o(Ge,rs),u(e,qt,t),h(Ve,e,t),u(e,Ct,t),u(e,ce,t),o(ce,ls),o(ce,Ye),o(Ye,ho),o(ho,ss),o(ce,is),u(e,Tt,t),h(Je,e,t),u(e,At,t),u(e,U,t),o(U,pe),o(pe,_o),h(Ke,_o,null),o(U,ns),o(U,Pa),o(Pa,us),o(Pa,vo),o(vo,cs),u(e,Ht,t),u(e,me,t),o(me,ps),o(me,go),o(go,ms),o(me,ds),u(e,Dt,t),u(e,de,t),o(de,fs),o(de,bo),o(bo,hs),o(de,_s),u(e,Ft,t),h(We,e,t),u(e,St,t),u(e,S,t),o(S,vs),o(S,$o),o($o,gs),o(S,bs),o(S,Eo),o(Eo,$s),o(S,Es),u(e,zt,t),h(Xe,e,t),u(e,Lt,t),u(e,fe,t),o(fe,ws),o(fe,wo),o(wo,ys),o(fe,ks),u(e,Ot,t),h(Ze,e,t),u(e,Mt,t),u(e,he,t),o(he,Ps),o(he,yo),o(yo,js),o(he,qs),u(e,Nt,t),h(Qe,e,t),u(e,xt,t),u(e,ja,t),o(ja,Cs),u(e,It,t),h(ea,e,t),u(e,Rt,t),u(e,_e,t),o(_e,Ts),o(_e,ko),o(ko,As),o(_e,Hs),u(e,Bt,t),u(e,ve,t),o(ve,Ds),o(ve,aa),o(aa,Fs),o(ve,Ss),u(e,Ut,t),u(e,G,t),o(G,ge),o(ge,Po),h(oa,Po,null),o(G,zs),o(G,jo),o(jo,Ls),u(e,Gt,t),u(e,be,t),o(be,Os),o(be,ta),o(ta,Ms),o(be,Ns),u(e,Vt,t),u(e,qa,t),o(qa,Ca),u(e,Yt,t),u(e,Ta,t),o(Ta,xs),u(e,Jt,t),u(e,q,t),o(q,ra),o(ra,Is),o(ra,qo),o(qo,Rs),o(ra,Bs),o(q,Us),o(q,Co),o(Co,Gs),o(q,Vs),o(q,To),o(To,Ys),o(q,Js),o(q,Ao),o(Ao,Ks),u(e,Kt,t),u(e,z,t),o(z,Ws),o(z,Ho),o(Ho,Xs),o(z,Zs),o(z,Do),o(Do,Qs),o(z,ei),u(e,Wt,t),u(e,Aa,t),o(Aa,Ha),u(e,Xt,t),u(e,V,t),o(V,$e),o($e,Fo),h(la,Fo,null),o(V,ai),o(V,So),o(So,oi),u(e,Zt,t),u(e,Ee,t),o(Ee,ti),o(Ee,zo),o(zo,ri),o(Ee,li),u(e,Qt,t),u(e,we,t),o(we,sa),o(sa,si),o(sa,Lo),o(Lo,ii),o(sa,ni),o(we,ui),o(we,ia),o(ia,ci),o(ia,Oo),o(Oo,pi),o(ia,mi),u(e,er,t),u(e,y,t),o(y,di),o(y,na),o(na,fi),o(y,hi),o(y,ua),o(ua,_i),o(y,vi),o(y,Mo),o(Mo,gi),o(y,bi),o(y,ca),o(ca,$i),o(y,Ei),ar=!0},p(e,[t]){const pa={};t&2&&(pa.$$scope={dirty:t,ctx:e}),Z.$set(pa)},i(e){ar||(_(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),_(ea.$$.fragment,e),_(oa.$$.fragment,e),_(la.$$.fragment,e),ar=!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(ea.$$.fragment,e),v(oa.$$.fragment,e),v(la.$$.fragment,e),ar=!1},d(e){a(b),e&&a(J),e&&a(E),g(k),e&&a(xo),e&&a(ma),e&&a(Io),e&&a(W),e&&a(Ro),e&&a(X),e&&a(Bo),e&&a(P),e&&a(Uo),g(Z,e),e&&a(Go),e&&a(N),g(Pe),e&&a(Vo),e&&a(da),e&&a(Yo),e&&a(T),e&&a(Jo),e&&a(ee),e&&a(Ko),g(qe,e),e&&a(Wo),e&&a(fa),e&&a(Xo),e&&a(ha),e&&a(Zo),e&&a(x),g(Ce),e&&a(Qo),e&&a(va),e&&a(et),g(Te,e),e&&a(at),e&&a(oe),e&&a(ot),g(He,e),e&&a(tt),e&&a(A),e&&a(rt),g(Fe,e),e&&a(lt),e&&a(I),g(Se),e&&a(st),e&&a(ga),e&&a(it),e&&a(re),e&&a(nt),e&&a(le),e&&a(ut),g(ze,e),e&&a(ct),e&&a($a),e&&a(pt),g(Le,e),e&&a(mt),e&&a(se),e&&a(dt),g(Oe,e),e&&a(ft),e&&a(Ea),e&&a(ht),g(Me,e),e&&a(_t),e&&a(R),g(Ne),e&&a(vt),g(xe,e),e&&a(gt),e&&a(w),e&&a(bt),g(Ie,e),e&&a($t),e&&a(ne),e&&a(Et),g(Re,e),e&&a(wt),e&&a(H),e&&a(yt),g(Be,e),e&&a(kt),e&&a(B),g(Ue),e&&a(Pt),e&&a(D),e&&a(jt),e&&a(F),e&&a(qt),g(Ve,e),e&&a(Ct),e&&a(ce),e&&a(Tt),g(Je,e),e&&a(At),e&&a(U),g(Ke),e&&a(Ht),e&&a(me),e&&a(Dt),e&&a(de),e&&a(Ft),g(We,e),e&&a(St),e&&a(S),e&&a(zt),g(Xe,e),e&&a(Lt),e&&a(fe),e&&a(Ot),g(Ze,e),e&&a(Mt),e&&a(he),e&&a(Nt),g(Qe,e),e&&a(xt),e&&a(ja),e&&a(It),g(ea,e),e&&a(Rt),e&&a(_e),e&&a(Bt),e&&a(ve),e&&a(Ut),e&&a(G),g(oa),e&&a(Gt),e&&a(be),e&&a(Vt),e&&a(qa),e&&a(Yt),e&&a(Ta),e&&a(Jt),e&&a(q),e&&a(Kt),e&&a(z),e&&a(Wt),e&&a(Aa),e&&a(Xt),e&&a(V),g(la),e&&a(Zt),e&&a(Ee),e&&a(Qt),e&&a(we),e&&a(er),e&&a(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(No){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};
