import{s as Pe,n as ke,o as qe}from"../chunks/scheduler.36a0863c.js";import{S as Te,i as Le,g as n,s,u as ge,A as Me,h as r,f as a,c as l,j as v,v as be,y as i,k as d,o as m,a as t,w as ye,d as _e,t as xe,x as Ce}from"../chunks/index.d0f7a4c4.js";import{I as we}from"../chunks/IconCopyLink.bc5fad79.js";function ze(ee){let c,A,$,N,u,f,H,g,Y,M,ae="Filosofía",S,b,oe="🤗 Transformers es una biblioteca construida para:",U,y,te="<li>Los investigadores y educadores de NLP que busquen usar/estudiar/extender modelos transformers a gran escala</li> <li>Profesionales que quieren optimizar esos modelos y/o ponerlos en producción</li> <li>Ingenieros que solo quieren descargar un modelo preentrenado y usarlo para resolver una tarea NLP dada.</li>",F,_,ne="La biblioteca fue diseñada con dos fuertes objetivos en mente:",I,x,re=`<li><p>Que sea tan fácil y rápida de utilizar como sea posible:</p> <ul><li>Hemos limitado enormemente el número de abstracciones que el usuario tiene que aprender. De hecho, no hay casi abstracciones,
solo tres clases estándar necesarias para usar cada modelo: <a href="main_classes/configuration">configuration</a>,
<a href="main_classes/model">models</a> y <a href="main_classes/tokenizer">tokenizer</a>.</li> <li>Todas estas clases pueden ser inicializadas de forma simple y unificada a partir de ejemplos pre-entrenados mediante el uso de un método
<code>from_pretrained()</code> común de solicitud que se encargará de descargar (si es necesario), almacenar y cargar la solicitud de clase relacionada y datos asociados
(configurations’ hyper-parameters, tokenizers’ vocabulary, and models’ weights) a partir de un control pre-entrenado proporcionado en
<a href="https://huggingface.co/models" rel="nofollow">Hugging Face Hub</a> o de tu propio control guardado.</li> <li>Por encima de esas tres clases estándar, la biblioteca proporciona dos APIs: <code>pipeline()</code> para usar rápidamente un modelo (junto a su configuracion y tokenizer asociados)
sobre una tarea dada, y <code>Trainer</code>/<code>Keras.fit</code> para entrenar u optimizar de forma rápida un modelo dado.</li> <li>Como consecuencia, esta biblioteca NO es una caja de herramientas modular de bloques individuales para redes neuronales. Si quieres extender/construir sobre la biblioteca,
usa simplemente los módulos regulares de Python/PyTorch/TensorFlow/Keras y emplea las clases estándar de la biblioteca como punto de partida para reutilizar funcionalidades
tales como abrir/guardar modelo.</li></ul></li> <li><p>Proporciona modelos modernos con rendimientos lo más parecido posible a los modelos originales:</p> <ul><li>Proporcionamos al menos un ejemplo para cada arquitectura que reproduce un resultado proporcionado por los autores de dicha arquitectura.</li> <li>El código normalmente es parecido al código base original, lo cual significa que algún código Pytorch puede no ser tan
<em>pytorchic</em> como podría ser por haber sido convertido a código TensorFlow, y viceversa.</li></ul></li>`,B,C,se="Unos cuantos objetivos adicionales:",K,w,le="<li><p>Exponer las características internas de los modelos de la forma más coherente posible:</p> <ul><li>Damos acceso, mediante una sola API, a todos los estados ocultos y pesos de atención.</li> <li>Tokenizer y el modelo de API base están estandarizados para cambiar fácilmente entre modelos.</li></ul></li> <li><p>Incorporar una selección subjetiva de herramientas de gran potencial para la optimización/investigación de estos modelos:</p> <ul><li>Una forma sencilla/coherente de añadir nuevos tokens al vocabulario e incrustraciones (embeddings, en inglés) para optimización.</li> <li>Formas sencillas de camuflar y reducir “transformer heads”.</li></ul></li> <li><p>Cambiar fácilmente entre PyTorch y TensorFlow 2.0, permitiendo el entrenamiento usando un marco y la inferencia usando otro.</p></li>",D,p,h,E,P,Z,z,ie="Conceptos principales",O,k,de="La biblioteca está construida alrededor de tres tipos de clases para cada modelo:",J,q,ce=`<li><strong>Model classes</strong> como <code>BertModel</code>, que consisten en más de 30 modelos PyTorch (<a href="https://pytorch.org/docs/stable/nn.html#torch.nn.Module" rel="nofollow">torch.nn.Module</a>) o modelos Keras (<a href="https://www.tensorflow.org/api_docs/python/tf/keras/Model" rel="nofollow">tf.keras.Model</a>) que funcionan con pesos pre-entrenados proporcionados en la
biblioteca.</li> <li><strong>Configuration classes</strong> como <code>BertConfig</code>, que almacena todos los parámetros necesarios para construir un modelo.
No siempre tienes que generarla tu. En particular, si estas usando un modelo pre-entrenado sin ninguna modificación,
la creación del modelo se encargará automáticamente de generar la configuración (que es parte del modelo).</li> <li><strong>Tokenizer classes</strong> como <code>BertTokenizer</code>, que almacena el vocabulario para cada modelo y proporciona métodos para
codificar/decodificar strings en una lista de índices de “token embeddings” para ser empleados en un modelo.</li>`,Q,T,ue="Todas estas clases pueden ser generadas a partir de ejemplos pre-entrenados, y guardados localmente usando dos métodos:",R,L,pe=`<li><code>from_pretrained()</code> permite generar un modelo/configuración/tokenizer a partir de una versión pre-entrenada proporcionada ya sea por
la propia biblioteca (los modelos compatibles se pueden encontrar en <a href="https://huggingface.co/models" rel="nofollow">Model Hub</a>) o
guardados localmente (o en un servidor) por el usuario.</li> <li><code>save_pretrained()</code> permite guardar un modelo/configuración/tokenizer localmente, de forma que puede ser empleado de nuevo usando
<code>from_pretrained()</code>.</li>`,G,j,V;return g=new we({}),P=new we({}),{c(){c=n("meta"),A=s(),$=n("p"),N=s(),u=n("h1"),f=n("a"),H=n("span"),ge(g.$$.fragment),Y=s(),M=n("span"),M.textContent=ae,S=s(),b=n("p"),b.textContent=oe,U=s(),y=n("ul"),y.innerHTML=te,F=s(),_=n("p"),_.textContent=ne,I=s(),x=n("ul"),x.innerHTML=re,B=s(),C=n("p"),C.textContent=se,K=s(),w=n("ul"),w.innerHTML=le,D=s(),p=n("h2"),h=n("a"),E=n("span"),ge(P.$$.fragment),Z=s(),z=n("span"),z.textContent=ie,O=s(),k=n("p"),k.textContent=de,J=s(),q=n("ul"),q.innerHTML=ce,Q=s(),T=n("p"),T.textContent=ue,R=s(),L=n("ul"),L.innerHTML=pe,G=s(),j=n("p"),this.h()},l(e){const o=Me("svelte-1phssyn",document.head);c=r(o,"META",{name:!0,content:!0}),o.forEach(a),A=l(e),$=r(e,"P",{}),v($).forEach(a),N=l(e),u=r(e,"H1",{class:!0});var W=v(u);f=r(W,"A",{id:!0,class:!0,href:!0});var me=v(f);H=r(me,"SPAN",{});var fe=v(H);be(g.$$.fragment,fe),fe.forEach(a),me.forEach(a),Y=l(W),M=r(W,"SPAN",{"data-svelte-h":!0}),i(M)!=="svelte-of729x"&&(M.textContent=ae),W.forEach(a),S=l(e),b=r(e,"P",{"data-svelte-h":!0}),i(b)!=="svelte-1vbdb49"&&(b.textContent=oe),U=l(e),y=r(e,"UL",{"data-svelte-h":!0}),i(y)!=="svelte-6xtsel"&&(y.innerHTML=te),F=l(e),_=r(e,"P",{"data-svelte-h":!0}),i(_)!=="svelte-1wtux22"&&(_.textContent=ne),I=l(e),x=r(e,"UL",{"data-svelte-h":!0}),i(x)!=="svelte-1euljsf"&&(x.innerHTML=re),B=l(e),C=r(e,"P",{"data-svelte-h":!0}),i(C)!=="svelte-116kkxj"&&(C.textContent=se),K=l(e),w=r(e,"UL",{"data-svelte-h":!0}),i(w)!=="svelte-1stml3v"&&(w.innerHTML=le),D=l(e),p=r(e,"H2",{class:!0});var X=v(p);h=r(X,"A",{id:!0,class:!0,href:!0});var he=v(h);E=r(he,"SPAN",{});var ve=v(E);be(P.$$.fragment,ve),ve.forEach(a),he.forEach(a),Z=l(X),z=r(X,"SPAN",{"data-svelte-h":!0}),i(z)!=="svelte-10y35fx"&&(z.textContent=ie),X.forEach(a),O=l(e),k=r(e,"P",{"data-svelte-h":!0}),i(k)!=="svelte-1wizrvd"&&(k.textContent=de),J=l(e),q=r(e,"UL",{"data-svelte-h":!0}),i(q)!=="svelte-1wjca98"&&(q.innerHTML=ce),Q=l(e),T=r(e,"P",{"data-svelte-h":!0}),i(T)!=="svelte-11kx7ql"&&(T.textContent=ue),R=l(e),L=r(e,"UL",{"data-svelte-h":!0}),i(L)!=="svelte-nafgvv"&&(L.innerHTML=pe),G=l(e),j=r(e,"P",{}),v(j).forEach(a),this.h()},h(){d(c,"name","hf:doc:metadata"),d(c,"content",JSON.stringify($e)),d(f,"id","filosofa"),d(f,"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"),d(f,"href","#filosofa"),d(u,"class","relative group"),d(h,"id","conceptos-principales"),d(h,"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"),d(h,"href","#conceptos-principales"),d(p,"class","relative group")},m(e,o){m(document.head,c),t(e,A,o),t(e,$,o),t(e,N,o),t(e,u,o),m(u,f),m(f,H),ye(g,H,null),m(u,Y),m(u,M),t(e,S,o),t(e,b,o),t(e,U,o),t(e,y,o),t(e,F,o),t(e,_,o),t(e,I,o),t(e,x,o),t(e,B,o),t(e,C,o),t(e,K,o),t(e,w,o),t(e,D,o),t(e,p,o),m(p,h),m(h,E),ye(P,E,null),m(p,Z),m(p,z),t(e,O,o),t(e,k,o),t(e,J,o),t(e,q,o),t(e,Q,o),t(e,T,o),t(e,R,o),t(e,L,o),t(e,G,o),t(e,j,o),V=!0},p:ke,i(e){V||(_e(g.$$.fragment,e),_e(P.$$.fragment,e),V=!0)},o(e){xe(g.$$.fragment,e),xe(P.$$.fragment,e),V=!1},d(e){e&&(a(A),a($),a(N),a(u),a(S),a(b),a(U),a(y),a(F),a(_),a(I),a(x),a(B),a(C),a(K),a(w),a(D),a(p),a(O),a(k),a(J),a(q),a(Q),a(T),a(R),a(L),a(G),a(j)),a(c),Ce(g),Ce(P)}}}const $e={local:"filosofa",sections:[{local:"conceptos-principales",title:"Conceptos principales "}],title:"Filosofía"};function He(ee){return qe(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ne extends Te{constructor(c){super(),Le(this,c,He,ze,Pe,{})}}export{Ne as component};
