import{s as Ie,o as Je}from"../chunks/scheduler.37c15a92.js";import{S as Ze,i as qe,g as xe,s as c,r as p,A as Ae,h as ke,f as u,c as m,j as Te,u as d,k as Ce,y as Ee,a as s,v as f,t as o,b as je,d as l,w as $,p as Ue}from"../chunks/index.2bf4358c.js";import{C as he}from"../chunks/CodeBlock.4e987730.js";import{C as We}from"../chunks/CourseFloatingBanner.6add7356.js";import{Q as h}from"../chunks/Question.e61af2ef.js";import{F as Ve}from"../chunks/FrameworkSwitchCourse.8d4d4ab6.js";import{H as k,E as Fe}from"../chunks/getInferenceSnippets.24b50994.js";function Qe(v){let r,g,n,b;return r=new k({props:{title:"5. Ce este un TFAutoModel?",local:"5-ce-este-un-tfautomodel",headingTag:"h3"}}),n=new h({props:{choices:[{text:"Un model care se antrenează automat pe baza datelor dumneavoastră",explain:"Incorect. Poate îl confundați cu produsul nostru <a href='https://huggingface.co/autotrain'>AutoTrain</a>?"},{text:"Un obiect care returnează arhitectura corespunzătoare bazată pe checkpoint",explain:"Exact: <code>TFAutoModel</code> are nevoie doar să știe checkpoint-ul din care să se inițializeze pentru a returna arhitectura corectă.",correct:!0},{text:"Un model care detectează automat limba utilizată pentru intrările sale pentru a încărca ponderile corecte",explain:"Incorect; deși unele checkpoint-uri și modele pot gestiona mai multe limbi, nu există instrumente integrate pentru selectarea automată a checkpoint-ului în funcție de limbă. Ar trebui să consultați <a href='https://huggingface.co/models'>Model Hub</a> pentru a găsi cel mai bun checkpoint pentru sarcina dumneavoastră!"}]}}),{c(){p(r.$$.fragment),g=c(),p(n.$$.fragment)},l(t){d(r.$$.fragment,t),g=m(t),d(n.$$.fragment,t)},m(t,z){f(r,t,z),s(t,g,z),f(n,t,z),b=!0},i(t){b||(l(r.$$.fragment,t),l(n.$$.fragment,t),b=!0)},o(t){o(r.$$.fragment,t),o(n.$$.fragment,t),b=!1},d(t){t&&u(g),$(r,t),$(n,t)}}}function Be(v){let r,g,n,b;return r=new k({props:{title:"5. Ce este un AutoModel?",local:"5-ce-este-un-automodel",headingTag:"h3"}}),n=new h({props:{choices:[{text:"Un model care se antrenează automat pe baza datelor dumneavoastră",explain:"Incorect. Poate îl confundați cu produsul nostru <a href='https://huggingface.co/autotrain'>AutoTrain</a>?"},{text:"Un obiect care returnează arhitectura corespunzătoare bazată pe checkpoint.",explain:"Exact: <code>AutoModel</code> are nevoie doar să știe checkpoint-ul din care să se inițializeze pentru a returna arhitectura corectă.",correct:!0},{text:"Un model care detectează automat limba utilizată pentru intrările sale pentru a încărca ponderile corecte",explain:"Incorect; deși unele checkpoint-uri și modele pot gestiona mai multe limbi, nu există instrumente integrate pentru selectarea automată a checkpoint-ului în funcție de limbă. Ar trebui să consultați <a href='https://huggingface.co/models'>Model Hub</a> pentru a găsi cel mai bun checkpoint pentru sarcina dumneavoastră!"}]}}),{c(){p(r.$$.fragment),g=c(),p(n.$$.fragment)},l(t){d(r.$$.fragment,t),g=m(t),d(n.$$.fragment,t)},m(t,z){f(r,t,z),s(t,g,z),f(n,t,z),b=!0},i(t){b||(l(r.$$.fragment,t),l(n.$$.fragment,t),b=!0)},o(t){o(r.$$.fragment,t),o(n.$$.fragment,t),b=!1},d(t){t&&u(g),$(r,t),$(n,t)}}}function Xe(v){let r,g,n,b,t,z;return r=new k({props:{title:"10. Este ceva greșit în următorul cod?",local:"10-este-ceva-greșit-în-următorul-cod",headingTag:"h3"}}),n=new he({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMkMlMjBURkF1dG9Nb2RlbCUwQSUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKCUyMmJlcnQtYmFzZS1jYXNlZCUyMiklMEFtb2RlbCUyMCUzRCUyMFRGQXV0b01vZGVsLmZyb21fcHJldHJhaW5lZCglMjJncHQyJTIyKSUwQSUwQWVuY29kZWQlMjAlM0QlMjB0b2tlbml6ZXIoJTIySGV5ISUyMiUyQyUyMHJldHVybl90ZW5zb3JzJTNEJTIycHQlMjIpJTBBcmVzdWx0JTIwJTNEJTIwbW9kZWwoKiplbmNvZGVkKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, TFAutoModel

tokenizer = AutoTokenizer.from_pretrained(<span class="hljs-string">&quot;bert-base-cased&quot;</span>)
model = TFAutoModel.from_pretrained(<span class="hljs-string">&quot;gpt2&quot;</span>)

encoded = tokenizer(<span class="hljs-string">&quot;Hey!&quot;</span>, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>)
result = model(**encoded)`,wrap:!1}}),t=new h({props:{choices:[{text:"Nu, pare corect.",explain:"Din păcate, asocierea unui model cu un tokenizator care a fost antrenat cu un alt checkpoint rareori este o idee bună. Modelul nu a fost antrenat să interpreteze ieșirea acestui tokenizator, așa că ieșirea modelului (dacă va rula chiar!) nu va avea sens."},{text:"Tokenizerul și modelul trebuie să provină întotdeauna din același checkpoint.",explain:"Corect!",correct:!0},{text:"Este o bună practică să folosiți trunchierea și padding-ul cu tokenizatorul, întrucât fiecare intrare este un lot.",explain:"Este adevărat că orice intrare de model trebuie să fie sub formă de batch. Totuși, trunchierea sau padding-ul acestei secvențe nu ar avea neapărat sens deoarece este singura intrare, iar aceste tehnici se folosesc pentru a grupa o listă de propoziții într-un batch."}]}}),{c(){p(r.$$.fragment),g=c(),p(n.$$.fragment),b=c(),p(t.$$.fragment)},l(i){d(r.$$.fragment,i),g=m(i),d(n.$$.fragment,i),b=m(i),d(t.$$.fragment,i)},m(i,x){f(r,i,x),s(i,g,x),f(n,i,x),s(i,b,x),f(t,i,x),z=!0},i(i){z||(l(r.$$.fragment,i),l(n.$$.fragment,i),l(t.$$.fragment,i),z=!0)},o(i){o(r.$$.fragment,i),o(n.$$.fragment,i),o(t.$$.fragment,i),z=!1},d(i){i&&(u(g),u(b)),$(r,i),$(n,i),$(t,i)}}}function Ge(v){let r,g,n,b,t,z;return r=new k({props:{title:"10. Este ceva greșit în următorul cod?",local:"10-este-ceva-greșit-în-următorul-cod",headingTag:"h3"}}),n=new he({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMkMlMjBBdXRvTW9kZWwlMEElMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZCglMjJiZXJ0LWJhc2UtY2FzZWQlMjIpJTBBbW9kZWwlMjAlM0QlMjBBdXRvTW9kZWwuZnJvbV9wcmV0cmFpbmVkKCUyMmdwdDIlMjIpJTBBJTBBZW5jb2RlZCUyMCUzRCUyMHRva2VuaXplciglMjJIZXkhJTIyJTJDJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJwdCUyMiklMEFyZXN1bHQlMjAlM0QlMjBtb2RlbCgqKmVuY29kZWQp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained(<span class="hljs-string">&quot;bert-base-cased&quot;</span>)
model = AutoModel.from_pretrained(<span class="hljs-string">&quot;gpt2&quot;</span>)

encoded = tokenizer(<span class="hljs-string">&quot;Hey!&quot;</span>, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>)
result = model(**encoded)`,wrap:!1}}),t=new h({props:{choices:[{text:"Nu, pare corect.",explain:"Din păcate, asocierea unui model cu un tokenizator care a fost antrenat cu un alt checkpoint rareori este o idee bună. Modelul nu a fost antrenat să interpreteze ieșirea acestui tokenizator, așa că ieșirea modelului (dacă va rula chiar!) nu va avea sens."},{text:"Tokenizerul și modelul trebuie să provină întotdeauna din același checkpoint.",explain:"Corect!",correct:!0},{text:"Este o bună practică să folosiți trunchierea și padding-ul cu tokenizatorul, întrucât fiecare intrare este un lot.",explain:"Este adevărat că orice intrare de model are nevoie să fie sub formă de lot. Totuși, trunchierea sau padding-ul acestei secvențe nu ar avea neapărat sens deoarece este singura intrare, iar aceste tehnici se folosesc pentru a trata o listă de propoziții."}]}}),{c(){p(r.$$.fragment),g=c(),p(n.$$.fragment),b=c(),p(t.$$.fragment)},l(i){d(r.$$.fragment,i),g=m(i),d(n.$$.fragment,i),b=m(i),d(t.$$.fragment,i)},m(i,x){f(r,i,x),s(i,g,x),f(n,i,x),s(i,b,x),f(t,i,x),z=!0},i(i){z||(l(r.$$.fragment,i),l(n.$$.fragment,i),l(t.$$.fragment,i),z=!0)},o(i){o(r.$$.fragment,i),o(n.$$.fragment,i),o(t.$$.fragment,i),z=!1},d(i){i&&(u(g),u(b)),$(r,i),$(n,i),$(t,i)}}}function He(v){let r,g,n,b,t,z,i,x,T,Y,C,K,j,O,U,ee,I,te,J,ie,Z,ae,q,re,A,ne,M,_,P,E,ue,W,oe,V,le,F,se,Q,ce,B,me,X,pe,G,de,H,fe,w,y,N,R,$e,L,ge;t=new Ve({props:{fw:v[0]}}),i=new k({props:{title:"Quiz la final de capitol",local:"quiz-la-final-de-capitol",headingTag:"h1"}}),T=new We({props:{chapter:2,classNames:"absolute z-10 right-0 top-0"}}),C=new k({props:{title:"1. Care este ordinea pipeline-ului de modelare a limbajului?",local:"1-care-este-ordinea-pipeline-ului-de-modelare-a-limbajului",headingTag:"h3"}}),j=new h({props:{choices:[{text:"Primul, modelul, care gestionează textul și returnează predicții brute. Apoi, tokenizatorul interpretează aceste predicții și le convertește înapoi în text atunci când este necesar.",explain:"Modelul nu poate înțelege textul! Tokenizatorul trebuie mai întâi să tokenizeze textul și să îl convertească în ID-uri, astfel încât să poată fi înțeles de model."},{text:"Primul este tokenizatorul, care gestionează textul și returnează ID-uri. Modelul gestionează aceste ID-uri și generează o predicție, care poate fi un text.",explain:"Predicția modelului nu poate fi transformată imediat în text. Trebuie utilizat tokenizatorul pentru a converti predicția înapoi în text!"},{text:"Tokenizatorul gestionează textul și returnează ID-uri. Modelul gestionează aceste ID-uri și generează o predicție. Tokenizatorul poate fi apoi utilizat din nou pentru a converti aceste predicții înapoi în text.",explain:"Corect! Tokenizatorul poate fi utilizat atât pentru tokenizare, cât și pentru de-tokenizare.",correct:!0}]}}),U=new k({props:{title:"2. Câte dimensiuni are tensorul generat de modelul Transformer și care sunt acestea?",local:"2-câte-dimensiuni-are-tensorul-generat-de-modelul-transformer-și-care-sunt-acestea",headingTag:"h3"}}),I=new h({props:{choices:[{text:"2: Lungimea secvenței și mărimea lotului",explain:"Fals! Tensor-ul generat de model are a treia dimensiune: mărimea ascunsă."},{text:"2: Lungimea secvenței și mărimea ascunsă",explain:"Fals! Toate modelele Transformer gestionează loturi, chiar și cu o singură secvență; aceasta ar fi o dimensiune a lotului de 1!"},{text:"3: Lungimea secvenței, dimensiunea lotului și dimensiunea ascunsă",explain:"Corect!",correct:!0}]}}),J=new k({props:{title:"3. Care dintre următoarele este un exemplu de tokenizare a cuvintelor secundare?",local:"3-care-dintre-următoarele-este-un-exemplu-de-tokenizare-a-cuvintelor-secundare",headingTag:"h3"}}),Z=new h({props:{choices:[{text:"WordPiece",explain:"Da, acesta este un exemplu de tokenizare a cuvintelor secundare!",correct:!0},{text:"Tokenizare bazată pe caractere",explain:"Tokenizarea bazată pe caractere nu este un tip de tokenizare a cuvintelor secundare."},{text:"Separarea pe baza spațiului și a punctuației",explain:"Corect, aceasta este o schemă de tokenizare bazată pe cuvinte!"},{text:"BPE",explain:"Da, acesta este un exemplu de tokenizare a cuvintelor secundare!",correct:!0},{text:"Unigram",explain:"Da, acesta este un exemplu de tokenizare a cuvintelor secundare!",correct:!0},{text:"Nimic din cele de mai sus",explain:"Incorect!"}]}}),q=new k({props:{title:"4. Ce este un model head?",local:"4-ce-este-un-model-head",headingTag:"h3"}}),A=new h({props:{choices:[{text:"O componentă a rețelei Transformer de bază care redirecționează tensorii către straturile lor corecte",explain:"Incorect! Nu există o astfel de componentă."},{text:"Cunoscut și sub denumirea de mecanism de auto-atenție, acesta adaptează reprezentarea unui token în funcție de celelalte token-uri din secvență",explain:"Incorect! Layerul de auto-atenție conține „heads” de atenție, dar nu acestea sunt adaptation heads."},{text:"O componentă suplimentară, alcătuită de obicei din unul sau mai multe straturi, pentru a converti predicțiile transformatorului într-o sarcină specifică de ieșire",explain:"Corect. Adaptation heads (sau simplu heads) apar în diverse forme: language modeling heads, question answering heads, sequence classification heads...",correct:!0}]}});const ve=[Be,Qe],D=[];function Me(e,a){return e[0]==="pt"?0:1}M=Me(v),_=D[M]=ve[M](v),E=new k({props:{title:"6. Care sunt tehnicile de care trebuie să țineți cont atunci când grupați secvențe de diferite lungimi?",local:"6-care-sunt-tehnicile-de-care-trebuie-să-țineți-cont-atunci-când-grupați-secvențe-de-diferite-lungimi",headingTag:"h3"}}),W=new h({props:{choices:[{text:"Trunchierea",explain:"Da, trunchierea este o modalitate corectă de a uniformiza secvențele astfel încât acestea să se încadreze într-o formă dreptunghiulară. Este totuși singura modalitate?",correct:!0},{text:"Returning tensors",explain:"Deși celelalte tehnici vă permit să returnați tensori dreptunghiulari, doar a returna tensori nu ajută când combinați secvențele într-un lot."},{text:"Padding",explain:"Da, padding-ul este o modalitate corectă de a egaliza secvențele, astfel încât să se potrivească într-o formă dreptunghiulară. Este, însă, singura?",correct:!0},{text:"Attention masking",explain:"Absolut! Măștile de atenție sunt extrem de importante atunci când gestionați secvențe de lungimi diferite. Totuși, nu este singura tehnică de care trebuie să țineți cont.",correct:!0}]}}),V=new k({props:{title:"7. Care este scopul aplicării unei funcții SoftMax asupra logit-urilor produse de un model de clasificare a secvențelor?",local:"7-care-este-scopul-aplicării-unei-funcții-softmax-asupra-logit-urilor-produse-de-un-model-de-clasificare-a-secvențelor",headingTag:"h3"}}),F=new h({props:{choices:[{text:"Le atenuează logiturile pentru a fi mai de încredere.",explain:"Nu, funcția SoftMax nu afectează fiabilitatea rezultatelor."},{text:"Aplică o limită inferioară și superioară astfel încât valorile să fie inteligibile.",explain:"Corect! Valorile rezultate sunt cuprinse între 0 și 1. Totuși, nu este singurul motiv pentru care folosim o funcție SoftMax.",correct:!0},{text:"Suma totală a ieșirii devine 1, ducând la o interpretare probabilistică posibilă.",explain:"Corect! Totuși, nu este singurul motiv pentru care folosim o funcție SoftMax.",correct:!0}]}}),Q=new k({props:{title:"8. În jurul cărei metode se concentrează cea mai mare parte a API-ului tokenizer?",local:"8-în-jurul-cărei-metode-se-concentrează-cea-mai-mare-parte-a-api-ului-tokenizer",headingTag:"h3"}}),B=new h({props:{choices:[{text:"<code>encode</code>, deoarece poate codifica textul în ID-uri și ID-urile în predicții",explain:"Greșit! Deși metoda <code>encode</code> există pe tokenizers, ea nu există pe modele."},{text:"Apelarea directă a obiectului tokenizer.",explain:"Exact! Metoda <code>__call__</code> a tokenizatorului este foarte puternică și poate gestiona aproape orice. Este și metoda folosită pentru a obține predicții de la un model.",correct:!0},{text:"<code>pad</code>",explain:"Greșit! Padding-ul este foarte util, dar este doar o parte a API-ului tokenizer."},{text:"<code>tokenize</code>",explain:"Metoda <code>tokenize</code> este, fără îndoială, una dintre cele mai utile, dar nu reprezintă nucleul API-ului tokenizer."}]}}),X=new k({props:{title:"9. Ce conține variabila result în acest exemplu de cod?",local:"9-ce-conține-variabila-result-în-acest-exemplu-de-cod",headingTag:"h3"}}),G=new he({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMEElMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZCglMjJiZXJ0LWJhc2UtY2FzZWQlMjIpJTBBcmVzdWx0JTIwJTNEJTIwdG9rZW5pemVyLnRva2VuaXplKCUyMkhlbGxvISUyMik=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained(<span class="hljs-string">&quot;bert-base-cased&quot;</span>)
result = tokenizer.tokenize(<span class="hljs-string">&quot;Hello!&quot;</span>)`,wrap:!1}}),H=new h({props:{choices:[{text:"O listă de șiruri de caractere, fiecare șir fiind un token",explain:"Desigur! Convertiți aceste șiruri în ID-uri și transmiteți-le către un model!",correct:!0},{text:"O listă de ID-uri",explain:"Incorect; pentru asta folosim metoda <code>__call__</code> sau <code>convert_tokens_to_ids</code>!"},{text:"Un șir care conține toate token-urile",explain:"Nu ar fi optim, deoarece scopul este de a separa șirul inițial în mai multe token-uri."}]}});const _e=[Ge,Xe],S=[];function we(e,a){return e[0]==="pt"?0:1}return w=we(v),y=S[w]=_e[w](v),R=new Fe({props:{source:"https://github.com/huggingface/course/blob/main/chapters/rum/chapter2/9.mdx"}}),{c(){r=xe("meta"),g=c(),n=xe("p"),b=c(),p(t.$$.fragment),z=c(),p(i.$$.fragment),x=c(),p(T.$$.fragment),Y=c(),p(C.$$.fragment),K=c(),p(j.$$.fragment),O=c(),p(U.$$.fragment),ee=c(),p(I.$$.fragment),te=c(),p(J.$$.fragment),ie=c(),p(Z.$$.fragment),ae=c(),p(q.$$.fragment),re=c(),p(A.$$.fragment),ne=c(),_.c(),P=c(),p(E.$$.fragment),ue=c(),p(W.$$.fragment),oe=c(),p(V.$$.fragment),le=c(),p(F.$$.fragment),se=c(),p(Q.$$.fragment),ce=c(),p(B.$$.fragment),me=c(),p(X.$$.fragment),pe=c(),p(G.$$.fragment),de=c(),p(H.$$.fragment),fe=c(),y.c(),N=c(),p(R.$$.fragment),$e=c(),L=xe("p"),this.h()},l(e){const a=Ae("svelte-u9bgzb",document.head);r=ke(a,"META",{name:!0,content:!0}),a.forEach(u),g=m(e),n=ke(e,"P",{}),Te(n).forEach(u),b=m(e),d(t.$$.fragment,e),z=m(e),d(i.$$.fragment,e),x=m(e),d(T.$$.fragment,e),Y=m(e),d(C.$$.fragment,e),K=m(e),d(j.$$.fragment,e),O=m(e),d(U.$$.fragment,e),ee=m(e),d(I.$$.fragment,e),te=m(e),d(J.$$.fragment,e),ie=m(e),d(Z.$$.fragment,e),ae=m(e),d(q.$$.fragment,e),re=m(e),d(A.$$.fragment,e),ne=m(e),_.l(e),P=m(e),d(E.$$.fragment,e),ue=m(e),d(W.$$.fragment,e),oe=m(e),d(V.$$.fragment,e),le=m(e),d(F.$$.fragment,e),se=m(e),d(Q.$$.fragment,e),ce=m(e),d(B.$$.fragment,e),me=m(e),d(X.$$.fragment,e),pe=m(e),d(G.$$.fragment,e),de=m(e),d(H.$$.fragment,e),fe=m(e),y.l(e),N=m(e),d(R.$$.fragment,e),$e=m(e),L=ke(e,"P",{}),Te(L).forEach(u),this.h()},h(){Ce(r,"name","hf:doc:metadata"),Ce(r,"content",Re)},m(e,a){Ee(document.head,r),s(e,g,a),s(e,n,a),s(e,b,a),f(t,e,a),s(e,z,a),f(i,e,a),s(e,x,a),f(T,e,a),s(e,Y,a),f(C,e,a),s(e,K,a),f(j,e,a),s(e,O,a),f(U,e,a),s(e,ee,a),f(I,e,a),s(e,te,a),f(J,e,a),s(e,ie,a),f(Z,e,a),s(e,ae,a),f(q,e,a),s(e,re,a),f(A,e,a),s(e,ne,a),D[M].m(e,a),s(e,P,a),f(E,e,a),s(e,ue,a),f(W,e,a),s(e,oe,a),f(V,e,a),s(e,le,a),f(F,e,a),s(e,se,a),f(Q,e,a),s(e,ce,a),f(B,e,a),s(e,me,a),f(X,e,a),s(e,pe,a),f(G,e,a),s(e,de,a),f(H,e,a),s(e,fe,a),S[w].m(e,a),s(e,N,a),f(R,e,a),s(e,$e,a),s(e,L,a),ge=!0},p(e,[a]){const ye={};a&1&&(ye.fw=e[0]),t.$set(ye);let be=M;M=Me(e),M!==be&&(Ue(),o(D[be],1,1,()=>{D[be]=null}),je(),_=D[M],_||(_=D[M]=ve[M](e),_.c()),l(_,1),_.m(P.parentNode,P));let ze=w;w=we(e),w!==ze&&(Ue(),o(S[ze],1,1,()=>{S[ze]=null}),je(),y=S[w],y||(y=S[w]=_e[w](e),y.c()),l(y,1),y.m(N.parentNode,N))},i(e){ge||(l(t.$$.fragment,e),l(i.$$.fragment,e),l(T.$$.fragment,e),l(C.$$.fragment,e),l(j.$$.fragment,e),l(U.$$.fragment,e),l(I.$$.fragment,e),l(J.$$.fragment,e),l(Z.$$.fragment,e),l(q.$$.fragment,e),l(A.$$.fragment,e),l(_),l(E.$$.fragment,e),l(W.$$.fragment,e),l(V.$$.fragment,e),l(F.$$.fragment,e),l(Q.$$.fragment,e),l(B.$$.fragment,e),l(X.$$.fragment,e),l(G.$$.fragment,e),l(H.$$.fragment,e),l(y),l(R.$$.fragment,e),ge=!0)},o(e){o(t.$$.fragment,e),o(i.$$.fragment,e),o(T.$$.fragment,e),o(C.$$.fragment,e),o(j.$$.fragment,e),o(U.$$.fragment,e),o(I.$$.fragment,e),o(J.$$.fragment,e),o(Z.$$.fragment,e),o(q.$$.fragment,e),o(A.$$.fragment,e),o(_),o(E.$$.fragment,e),o(W.$$.fragment,e),o(V.$$.fragment,e),o(F.$$.fragment,e),o(Q.$$.fragment,e),o(B.$$.fragment,e),o(X.$$.fragment,e),o(G.$$.fragment,e),o(H.$$.fragment,e),o(y),o(R.$$.fragment,e),ge=!1},d(e){e&&(u(g),u(n),u(b),u(z),u(x),u(Y),u(K),u(O),u(ee),u(te),u(ie),u(ae),u(re),u(ne),u(P),u(ue),u(oe),u(le),u(se),u(ce),u(me),u(pe),u(de),u(fe),u(N),u($e),u(L)),u(r),$(t,e),$(i,e),$(T,e),$(C,e),$(j,e),$(U,e),$(I,e),$(J,e),$(Z,e),$(q,e),$(A,e),D[M].d(e),$(E,e),$(W,e),$(V,e),$(F,e),$(Q,e),$(B,e),$(X,e),$(G,e),$(H,e),S[w].d(e),$(R,e)}}}const Re='{"title":"Quiz la final de capitol","local":"quiz-la-final-de-capitol","sections":[{"title":"1. Care este ordinea pipeline-ului de modelare a limbajului?","local":"1-care-este-ordinea-pipeline-ului-de-modelare-a-limbajului","sections":[],"depth":3},{"title":"2. Câte dimensiuni are tensorul generat de modelul Transformer și care sunt acestea?","local":"2-câte-dimensiuni-are-tensorul-generat-de-modelul-transformer-și-care-sunt-acestea","sections":[],"depth":3},{"title":"3. Care dintre următoarele este un exemplu de tokenizare a cuvintelor secundare?","local":"3-care-dintre-următoarele-este-un-exemplu-de-tokenizare-a-cuvintelor-secundare","sections":[],"depth":3},{"title":"4. Ce este un model head?","local":"4-ce-este-un-model-head","sections":[],"depth":3},{"title":"5. Ce este un AutoModel?","local":"5-ce-este-un-automodel","sections":[],"depth":3},{"title":"5. Ce este un TFAutoModel?","local":"5-ce-este-un-tfautomodel","sections":[],"depth":3},{"title":"6. Care sunt tehnicile de care trebuie să țineți cont atunci când grupați secvențe de diferite lungimi?","local":"6-care-sunt-tehnicile-de-care-trebuie-să-țineți-cont-atunci-când-grupați-secvențe-de-diferite-lungimi","sections":[],"depth":3},{"title":"7. Care este scopul aplicării unei funcții SoftMax asupra logit-urilor produse de un model de clasificare a secvențelor?","local":"7-care-este-scopul-aplicării-unei-funcții-softmax-asupra-logit-urilor-produse-de-un-model-de-clasificare-a-secvențelor","sections":[],"depth":3},{"title":"8. În jurul cărei metode se concentrează cea mai mare parte a API-ului tokenizer?","local":"8-în-jurul-cărei-metode-se-concentrează-cea-mai-mare-parte-a-api-ului-tokenizer","sections":[],"depth":3},{"title":"9. Ce conține variabila result în acest exemplu de cod?","local":"9-ce-conține-variabila-result-în-acest-exemplu-de-cod","sections":[],"depth":3},{"title":"10. Este ceva greșit în următorul cod?","local":"10-este-ceva-greșit-în-următorul-cod","sections":[],"depth":3},{"title":"10. Este ceva greșit în următorul cod?","local":"10-este-ceva-greșit-în-următorul-cod","sections":[],"depth":3}],"depth":1}';function De(v,r,g){let n="pt";return Je(()=>{const b=new URLSearchParams(window.location.search);g(0,n=b.get("fw")||"pt")}),[n]}class et extends Ze{constructor(r){super(),qe(this,r,De,He,Ie,{})}}export{et as component};
