import{s as Ze,o as qe}from"../chunks/scheduler.893fe8c9.js";import{S as Ee,i as Ae,e as he,s as c,c as p,h as We,a as ve,d as u,b as m,f as je,g as d,k as Ue,l as Ve,m as s,n as f,o,D as Ie,t as l,p as $,E as Je}from"../chunks/index.6ee278c6.js";import{C as Fe,H as k,E as Qe}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.ea3ad860.js";import{C as Me}from"../chunks/CodeBlock.8bdd5f33.js";import{C as Be}from"../chunks/CourseFloatingBanner.c25cfa5e.js";import{Q as h}from"../chunks/Question.6edba373.js";import{F as Xe}from"../chunks/FrameworkSwitchCourse.77a18d50.js";function De(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,x){f(r,t,x),s(t,g,x),f(n,t,x),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 Ge(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,x){f(r,t,x),s(t,g,x),f(n,t,x),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 He(v){let r,g,n,b,t,x;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 Me({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(a){d(r.$$.fragment,a),g=m(a),d(n.$$.fragment,a),b=m(a),d(t.$$.fragment,a)},m(a,z){f(r,a,z),s(a,g,z),f(n,a,z),s(a,b,z),f(t,a,z),x=!0},i(a){x||(l(r.$$.fragment,a),l(n.$$.fragment,a),l(t.$$.fragment,a),x=!0)},o(a){o(r.$$.fragment,a),o(n.$$.fragment,a),o(t.$$.fragment,a),x=!1},d(a){a&&(u(g),u(b)),$(r,a),$(n,a),$(t,a)}}}function Re(v){let r,g,n,b,t,x;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 Me({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(a){d(r.$$.fragment,a),g=m(a),d(n.$$.fragment,a),b=m(a),d(t.$$.fragment,a)},m(a,z){f(r,a,z),s(a,g,z),f(n,a,z),s(a,b,z),f(t,a,z),x=!0},i(a){x||(l(r.$$.fragment,a),l(n.$$.fragment,a),l(t.$$.fragment,a),x=!0)},o(a){o(r.$$.fragment,a),o(n.$$.fragment,a),o(t.$$.fragment,a),x=!1},d(a){a&&(u(g),u(b)),$(r,a),$(n,a),$(t,a)}}}function Se(v){let r,g,n,b,t,x,a,z,T,K,C,O,j,ee,U,te,I,ie,J,ae,Z,re,q,ne,E,ue,A,oe,M,y,N,W,le,V,se,F,ce,Q,me,B,pe,X,de,D,fe,G,$e,H,ge,_,w,L,R,be,Y,xe;t=new Xe({props:{fw:v[0]}}),a=new Fe({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),T=new k({props:{title:"Quiz la final de capitol",local:"quiz-la-final-de-capitol",headingTag:"h1"}}),C=new Be({props:{chapter:2,classNames:"absolute z-10 right-0 top-0"}}),j=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"}}),U=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}]}}),I=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"}}),J=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}]}}),Z=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"}}),q=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!"}]}}),E=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 ye=[Ge,De],S=[];function _e(e,i){return e[0]==="pt"?0:1}M=_e(v),y=S[M]=ye[M](v),W=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"}}),V=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}]}}),F=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"}}),Q=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}]}}),B=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"}}),X=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."}]}}),D=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 Me({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 we=[Re,He],P=[];function Te(e,i){return e[0]==="pt"?0:1}return _=Te(v),w=P[_]=we[_](v),R=new Qe({props:{source:"https://github.com/huggingface/course/blob/main/chapters/ro/chapter2/9.mdx"}}),{c(){r=he("meta"),g=c(),n=he("p"),b=c(),p(t.$$.fragment),x=c(),p(a.$$.fragment),z=c(),p(T.$$.fragment),K=c(),p(C.$$.fragment),O=c(),p(j.$$.fragment),ee=c(),p(U.$$.fragment),te=c(),p(I.$$.fragment),ie=c(),p(J.$$.fragment),ae=c(),p(Z.$$.fragment),re=c(),p(q.$$.fragment),ne=c(),p(E.$$.fragment),ue=c(),p(A.$$.fragment),oe=c(),y.c(),N=c(),p(W.$$.fragment),le=c(),p(V.$$.fragment),se=c(),p(F.$$.fragment),ce=c(),p(Q.$$.fragment),me=c(),p(B.$$.fragment),pe=c(),p(X.$$.fragment),de=c(),p(D.$$.fragment),fe=c(),p(G.$$.fragment),$e=c(),p(H.$$.fragment),ge=c(),w.c(),L=c(),p(R.$$.fragment),be=c(),Y=he("p"),this.h()},l(e){const i=We("svelte-u9bgzb",document.head);r=ve(i,"META",{name:!0,content:!0}),i.forEach(u),g=m(e),n=ve(e,"P",{}),je(n).forEach(u),b=m(e),d(t.$$.fragment,e),x=m(e),d(a.$$.fragment,e),z=m(e),d(T.$$.fragment,e),K=m(e),d(C.$$.fragment,e),O=m(e),d(j.$$.fragment,e),ee=m(e),d(U.$$.fragment,e),te=m(e),d(I.$$.fragment,e),ie=m(e),d(J.$$.fragment,e),ae=m(e),d(Z.$$.fragment,e),re=m(e),d(q.$$.fragment,e),ne=m(e),d(E.$$.fragment,e),ue=m(e),d(A.$$.fragment,e),oe=m(e),y.l(e),N=m(e),d(W.$$.fragment,e),le=m(e),d(V.$$.fragment,e),se=m(e),d(F.$$.fragment,e),ce=m(e),d(Q.$$.fragment,e),me=m(e),d(B.$$.fragment,e),pe=m(e),d(X.$$.fragment,e),de=m(e),d(D.$$.fragment,e),fe=m(e),d(G.$$.fragment,e),$e=m(e),d(H.$$.fragment,e),ge=m(e),w.l(e),L=m(e),d(R.$$.fragment,e),be=m(e),Y=ve(e,"P",{}),je(Y).forEach(u),this.h()},h(){Ue(r,"name","hf:doc:metadata"),Ue(r,"content",Pe)},m(e,i){Ve(document.head,r),s(e,g,i),s(e,n,i),s(e,b,i),f(t,e,i),s(e,x,i),f(a,e,i),s(e,z,i),f(T,e,i),s(e,K,i),f(C,e,i),s(e,O,i),f(j,e,i),s(e,ee,i),f(U,e,i),s(e,te,i),f(I,e,i),s(e,ie,i),f(J,e,i),s(e,ae,i),f(Z,e,i),s(e,re,i),f(q,e,i),s(e,ne,i),f(E,e,i),s(e,ue,i),f(A,e,i),s(e,oe,i),S[M].m(e,i),s(e,N,i),f(W,e,i),s(e,le,i),f(V,e,i),s(e,se,i),f(F,e,i),s(e,ce,i),f(Q,e,i),s(e,me,i),f(B,e,i),s(e,pe,i),f(X,e,i),s(e,de,i),f(D,e,i),s(e,fe,i),f(G,e,i),s(e,$e,i),f(H,e,i),s(e,ge,i),P[_].m(e,i),s(e,L,i),f(R,e,i),s(e,be,i),s(e,Y,i),xe=!0},p(e,[i]){const Ce={};i&1&&(Ce.fw=e[0]),t.$set(Ce);let ze=M;M=_e(e),M!==ze&&(Je(),o(S[ze],1,1,()=>{S[ze]=null}),Ie(),y=S[M],y||(y=S[M]=ye[M](e),y.c()),l(y,1),y.m(N.parentNode,N));let ke=_;_=Te(e),_!==ke&&(Je(),o(P[ke],1,1,()=>{P[ke]=null}),Ie(),w=P[_],w||(w=P[_]=we[_](e),w.c()),l(w,1),w.m(L.parentNode,L))},i(e){xe||(l(t.$$.fragment,e),l(a.$$.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(E.$$.fragment,e),l(A.$$.fragment,e),l(y),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(D.$$.fragment,e),l(G.$$.fragment,e),l(H.$$.fragment,e),l(w),l(R.$$.fragment,e),xe=!0)},o(e){o(t.$$.fragment,e),o(a.$$.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(E.$$.fragment,e),o(A.$$.fragment,e),o(y),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(D.$$.fragment,e),o(G.$$.fragment,e),o(H.$$.fragment,e),o(w),o(R.$$.fragment,e),xe=!1},d(e){e&&(u(g),u(n),u(b),u(x),u(z),u(K),u(O),u(ee),u(te),u(ie),u(ae),u(re),u(ne),u(ue),u(oe),u(N),u(le),u(se),u(ce),u(me),u(pe),u(de),u(fe),u($e),u(ge),u(L),u(be),u(Y)),u(r),$(t,e),$(a,e),$(T,e),$(C,e),$(j,e),$(U,e),$(I,e),$(J,e),$(Z,e),$(q,e),$(E,e),$(A,e),S[M].d(e),$(W,e),$(V,e),$(F,e),$(Q,e),$(B,e),$(X,e),$(D,e),$(G,e),$(H,e),P[_].d(e),$(R,e)}}}const Pe='{"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 Ne(v,r,g){let n="pt";return qe(()=>{const b=new URLSearchParams(window.location.search);g(0,n=b.get("fw")||"pt")}),[n]}class at extends Ee{constructor(r){super(),Ae(this,r,Ne,Se,Ze,{})}}export{at as component};
