Buckets:

rtrm's picture
download
raw
48.1 kB
import{s as Dl,n as Pl,o as Kl}from"../chunks/scheduler.893fe8c9.js";import{S as Ol,i as ea,e as i,s,c,h as ta,a as r,d as l,b as n,f as Ll,g as p,j as u,k as b,l as la,m as a,n as o,t as d,o as m,p as M}from"../chunks/index.6ee278c6.js";import{C as aa,H as rl,E as sa}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.be66e9fd.js";import{Y as ul}from"../chunks/Youtube.59d04f41.js";import{C as y}from"../chunks/CodeBlock.69b5f1d2.js";import{C as na}from"../chunks/CourseFloatingBanner.b902b8d5.js";function ia(cl){let f,Ve,_e,Ne,g,Ye,v,He,W,Qe,G,pl='În această secțiune vom examina câteva erori comune care pot apărea când încercați să generați predicții din modelul Transformer pe care l-ați ajustat recent. Aceasta vă va pregăti pentru <a href="/course/chapter8/section4">secțiunea 4</a>, unde vom explora cum să depanați faza de antrenament în sine.',Fe,I,Ae,$,ol='Am pregătit un <a href="https://huggingface.co/lewtun/distilbert-base-uncased-finetuned-squad-d5716d28" rel="nofollow">repository model șablon</a> pentru această secțiune, și dacă doriți să rulați codul din acest capitol trebuie mai întâi să copiați modelul în contul dumneavoastră pe <a href="https://huggingface.co" rel="nofollow">Hugging Face Hub</a>. Pentru a face acest lucru, mai întâi conectați-vă rulând fie următoarele într-un notebook Jupyter:',qe,k,Se,B,dl="sau următoarele în terminalul dumneavoastră preferat:",Ee,C,Le,x,ml="Aceasta vă va solicita să introduceți numele de utilizator și parola și va salva un token sub <em>~/.cache/huggingface/</em>. Odată ce v-ați conectat, puteți copia repository-ul șablon cu următoarea funcție:",De,X,Pe,z,Ml="Acum când apelați <code>copy_repository_template()</code>, aceasta va crea o copie a repository-ului șablon sub contul dumneavoastră.",Ke,_,Oe,R,yl="Pentru a începe călătoria noastră în lumea minunată a depanării modelelor Transformer, considerați următorul scenariu: lucrați cu un coleg la un proiect de răspuns la întrebări pentru a ajuta clienții unui site web de e-commerce să găsească răspunsuri despre produsele de consum. Colegul dumneavoastră vă trimite un mesaj precum:",et,V,fl='<p>Salut! Tocmai am rulat un experiment folosind tehnicile din <a href="/course/chapter7/7">Capitolul 7</a> al cursului Hugging Face și am obținut rezultate grozave pe SQuAD! Cred că putem folosi acest model ca punct de plecare pentru proiectul nostru. ID-ul modelului pe Hub este “lewtun/distillbert-base-uncased-finetuned-squad-d5716d28”. Simte-te liber să îl testezi :)</p>',tt,N,bl="Iar primul lucru la care vă gândiți este să încărcați modelul folosind <code>pipeline</code> din 🤗 Transformers:",lt,Y,at,H,st,Q,Jl="Oh nu, se pare că ceva a mers prost! Dacă sunteți nou în programare, acest tip de erori pot părea puțin criptice la început (ce este un <code>OSError</code>?!). Eroarea afișată aici este doar ultima parte dintr-un raport de eroare mult mai mare numit <em>Python traceback</em> (cunoscut și ca stack trace). De exemplu, dacă rulați acest cod pe Google Colab, ar trebui să vedeți ceva similar cu următoarea captură de ecran:",nt,J,jl='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter8/traceback.png" alt="Un traceback Python." width="100%"/>',it,F,wl='Există multe informații conținute în aceste rapoarte, așa că să parcurgem împreună părțile cheie. Primul lucru de reținut este că traceback-urile ar trebui citite <em>de jos în sus</em>. Aceasta poate părea ciudat dacă sunteți obișnuiți să citiți textul în engleză de sus în jos, dar reflectă faptul că traceback-ul arată secvența de apeluri de funcții pe care <code>pipeline</code> le face când descarcă modelul și tokenizer-ul. (Consultați <a href="/course/chapter2">Capitolul 2</a> pentru mai multe detalii despre cum funcționează <code>pipeline</code> în culise.)',rt,j,Tl="<p>🚨 Vedeți acea casetă albastră din jurul “6 frames” în traceback-ul din Google Colab? Aceasta este o caracteristică specială a Colab, care comprimă traceback-ul în “frame-uri”. Dacă nu reușiți să găsiți sursa unei erori, asigurați-vă că extindeți traceback-ul complet făcând clic pe acele două săgeți mici.</p>",ut,A,Ul="Aceasta înseamnă că ultima linie a traceback-ului indică ultimul mesaj de eroare și dă numele excepției care a fost ridicată. În acest caz, tipul excepției este <code>OSError</code>, care indică o eroare legată de sistem. Dacă citim mesajul de eroare însoțitor, putem vedea că pare să existe o problemă cu fișierul <em>config.json</em> al modelului și ni se dau două sugestii pentru a o rezolva:",ct,q,pt,w,hl='<p>💡 Dacă întâlniți un mesaj de eroare care este dificil de înțeles, doar copiați și lipiți mesajul în bara de căutare Google sau <a href="https://stackoverflow.com/" rel="nofollow">Stack Overflow</a> (da, chiar!). Există o șansă bună că nu sunteți prima persoană care întâlnește eroarea, și aceasta este o modalitate bună de a găsi soluții pe care alții din comunitate le-au postat. De exemplu, căutarea pentru <code>OSError: Can&#39;t load config for</code> pe Stack Overflow dă mai multe <a href="https://stackoverflow.com/search?q=OSError%3A+Can%27t+load+config+for+" rel="nofollow">rezultate</a> care ar putea fi folosite ca punct de plecare pentru rezolvarea problemei.</p>',ot,S,Zl="Prima sugestie ne cere să verificăm dacă ID-ul modelului este într-adevăr corect, așa că primul lucru de făcut este să copiem identificatorul și să îl lipim în bara de căutare a Hub-ului:",dt,T,gl='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter8/wrong-model-id.png" alt="Numele greșit al modelului." width="100%"/>',mt,E,vl="Hmm, într-adevăr pare că modelul colegului nostru nu este pe Hub… aha, dar există o greșeală de tipar în numele modelului! DistilBERT are doar un “l” în numele său, așa că să corectăm asta și să căutăm “lewtun/distilbert-base-uncased-finetuned-squad-d5716d28” în schimb:",Mt,U,Wl='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter8/true-model-id.png" alt="Numele corect al modelului." width="100%"/>',yt,L,Gl="Bun, aceasta a dat un rezultat. Acum să încercăm să descărcăm din nou modelul cu ID-ul corect:",ft,D,bt,P,Jt,K,Il="Argh, eșuat din nou — bun venit în viața de zi cu zi a unui inginer de machine learning! Deoarece am corectat ID-ul modelului, problema trebuie să fie în repository în sine. O modalitate rapidă de a accesa conținutul unui repository pe 🤗 Hub este prin funcția <code>list_repo_files()</code> din biblioteca <code>huggingface_hub</code>:",jt,O,wt,ee,Tt,te,$l='Interesant — nu pare să existe un fișier <em>config.json</em> în repository! Nu e de mirare că <code>pipeline</code>-ul nostru nu a putut încărca modelul; colegul nostru trebuie să fi uitat să împingă acest fișier pe Hub după ce l-a ajustat fin. În acest caz, problema pare destul de simplă de rezolvat: am putea să îi cerem să adauge fișierul, sau, deoarece putem vedea din ID-ul modelului că modelul preantrenat folosit a fost <a href="https://huggingface.co/distilbert-base-uncased" rel="nofollow"><code>distilbert-base-uncased</code></a>, putem descărca configurația pentru acest model și să o împingem în repository-ul nostru pentru a vedea dacă aceasta rezolvă problema. Să încercăm asta. Folosind tehnicile pe care le-am învățat în <a href="/course/chapter2">Capitolul 2</a>, putem descărca configurația modelului cu clasa <code>AutoConfig</code>:',Ut,le,ht,h,kl="<p>🚨 Abordarea pe care o adoptăm aici nu este infailibilă, deoarece colegul nostru poate să fi modificat configurația <code>distilbert-base-uncased</code> înainte de a ajusta fin modelul. În viața reală, am vrea să verificăm cu ei mai întâi, dar în scopurile acestei secțiuni vom presupune că au folosit configurația implicită.</p>",Zt,ae,Bl="Apoi putem împinge aceasta în repository-ul nostru de model cu funcția <code>push_to_hub()</code> a configurației:",gt,se,vt,ne,Cl="Acum putem testa dacă aceasta a funcționat încărcând modelul din cel mai recent commit pe ramura <code>main</code>:",Wt,ie,Gt,re,It,ue,xl="Woohoo, a funcționat! Să recapitulăm ce ați învățat tocmai:",$t,ce,Xl="<li>Mesajele de eroare în Python sunt cunoscute ca <em>traceback-uri</em> și sunt citite de jos în sus. Ultima linie a mesajului de eroare conține de obicei informațiile de care aveți nevoie pentru a localiza sursa problemei.</li> <li>Dacă ultima linie nu conține informații suficiente, parcurgeți traceback-ul în sus și vedeți dacă puteți identifica unde în codul sursă apare eroarea.</li> <li>Dacă niciunul dintre mesajele de eroare nu vă poate ajuta să depanați problema, încercați să căutați online o soluție la o problemă similară.</li> <li>Biblioteca <code>huggingface_hub</code> oferă o suită de instrumente pe care le puteți folosi pentru a interacționa cu și a depana repository-urile de pe Hub.</li>",kt,pe,zl="Acum că știți cum să depanați un pipeline, să aruncăm o privire la un exemplu mai complicat în forward pass-ul modelului în sine.",Bt,oe,Ct,de,_l="Deși <code>pipeline</code> este grozav pentru majoritatea aplicațiilor unde aveți nevoie să generați rapid predicții, uneori va trebui să accesați logit-urile modelului (să zicem, dacă aveți o post-procesare personalizată pe care ați dori să o aplicați). Pentru a vedea ce poate merge prost în acest caz, să extragem mai întâi modelul și tokenizer-ul din <code>pipeline</code>-ul nostru:",xt,me,Xt,Me,Rl="Apoi avem nevoie de o întrebare, așa că să vedem dacă framework-urile noastre preferate sunt suportate:",zt,ye,_t,fe,Vl='Așa cum am văzut în <a href="/course/chapter7">Capitolul 7</a>, pașii obișnuiți pe care trebuie să îi facem sunt tokenizarea intrărilor, extragerea logit-urilor token-urilor de început și sfârșit, și apoi decodarea span-ului de răspuns:',Rt,be,Vt,Je,Nt,je,Nl="Oh nu, se pare că avem o eroare în codul nostru! Dar nu ne temem de puțină depanare. Puteți folosi debugger-ul Python într-un notebook:",Yt,we,Ht,Te,Yl="sau într-un terminal:",Qt,Ue,Ft,he,Hl="Aici, citirea mesajului de eroare ne spune că <code>&#39;list&#39; object has no attribute &#39;size&#39;</code>, și putem vedea o săgeată <code>--&gt;</code> care indică linia unde a fost ridicată problema în <code>model(**inputs)</code>. Puteți depana aceasta interactiv folosind debugger-ul Python, dar pentru moment vom afișa pur și simplu o porțiune din <code>inputs</code> pentru a vedea ce avem:",At,Ze,qt,ge,St,ve,Ql="Aceasta cu siguranță arată ca o <code>list</code> Python obișnuită, dar să verificăm din nou tipul:",Et,We,Lt,Ge,Dt,Ie,Fl='Da, aceasta este cu siguranță o <code>list</code> Python. Deci ce a mers prost? Amintiți-vă din <a href="/course/chapter2">Capitolul 2</a> că clasele <code>AutoModelForXxx</code> din 🤗 Transformers operează pe <em>tensori</em> (fie în PyTorch sau TensorFlow), și o operație comună este să extragi dimensiunile unui tensor folosind <code>Tensor.size()</code> în, să zicem, PyTorch. Să aruncăm din nou o privire la traceback, pentru a vedea care linie a declanșat excepția:',Pt,$e,Kt,ke,Al='Se pare că codul nostru a încercat să apeleze <code>input_ids.size()</code>, dar aceasta în mod clar nu va funcționa pentru o <code>list</code> Python, care este doar un container. Cum putem rezolva această problemă? Căutarea mesajului de eroare pe Stack Overflow oferă destul de multe <a href="https://stackoverflow.com/search?q=AttributeError%3A+%27list%27+object+has+no+attribute+%27size%27&amp;s=c15ec54c-63cb-481d-a749-408920073e8f" rel="nofollow">rezultate</a> relevante. Făcând clic pe primul afișează o întrebare similară cu a noastră, cu răspunsul arătat în captura de ecran de mai jos:',Ot,Z,ql='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter8/stack-overflow.png" alt="Un răspuns de pe Stack Overflow." width="100%"/>',el,Be,Sl="Răspunsul recomandă să adăugăm <code>return_tensors=&#39;pt&#39;</code> la tokenizer, așa că să vedem dacă aceasta funcționează pentru noi:",tl,Ce,ll,xe,al,Xe,El='Minunat, a funcționat! Acesta este un exemplu grozav de cât de util poate fi Stack Overflow: prin identificarea unei probleme similare, am putut beneficia de experiența altora din comunitate. Cu toate acestea, o căutare ca aceasta nu va da întotdeauna un răspuns relevant, așa că ce puteți face în astfel de cazuri? Din fericire, există o comunitate primitoare de dezvoltatori pe <a href="https://discuss.huggingface.co/" rel="nofollow">forumurile Hugging Face</a> care vă pot ajuta! În secțiunea următoare, vom arunca o privire asupra modului în care puteți formula întrebări bune pe forum care au șanse să primească răspuns.',sl,ze,nl,Re,il;return g=new aa({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),v=new rl({props:{title:"Ce să faci când primești o eroare",local:"ce-sa-fac-cand-primesti-o-eroare",headingTag:"h1"}}),W=new na({props:{chapter:8,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/en/chapter8/section2.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter8/section2.ipynb"}]}}),I=new ul({props:{id:"DQ-CpJn6Rc4"}}),k=new y({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMG5vdGVib29rX2xvZ2luJTBBJTBBbm90ZWJvb2tfbG9naW4oKQ==",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> notebook_login
notebook_login()`,wrap:!1}}),C=new y({props:{code:"aHVnZ2luZ2ZhY2UtY2xpJTIwbG9naW4=",highlighted:"huggingface-cli login",wrap:!1}}),X=new y({props:{code:"ZnJvbSUyMGRpc3R1dGlscy5kaXJfdXRpbCUyMGltcG9ydCUyMGNvcHlfdHJlZSUwQWZyb20lMjBodWdnaW5nZmFjZV9odWIlMjBpbXBvcnQlMjBSZXBvc2l0b3J5JTJDJTIwc25hcHNob3RfZG93bmxvYWQlMkMlMjBjcmVhdGVfcmVwbyUyQyUyMGdldF9mdWxsX3JlcG9fbmFtZSUwQSUwQSUwQWRlZiUyMGNvcHlfcmVwb3NpdG9yeV90ZW1wbGF0ZSgpJTNBJTBBJTIwJTIwJTIwJTIwJTIzJTIwQ2xvbmUlMjB0aGUlMjByZXBvJTIwYW5kJTIwZXh0cmFjdCUyMHRoZSUyMGxvY2FsJTIwcGF0aCUwQSUyMCUyMCUyMCUyMHRlbXBsYXRlX3JlcG9faWQlMjAlM0QlMjAlMjJsZXd0dW4lMkZkaXN0aWxiZXJ0LWJhc2UtdW5jYXNlZC1maW5ldHVuZWQtc3F1YWQtZDU3MTZkMjglMjIlMEElMjAlMjAlMjAlMjBjb21taXRfaGFzaCUyMCUzRCUyMCUyMmJlM2VhZmZjMjg2NjlkNzkzMjQ5MjY4MWNkNWYzZTg5MDVlMzU4YjQlMjIlMEElMjAlMjAlMjAlMjB0ZW1wbGF0ZV9yZXBvX2RpciUyMCUzRCUyMHNuYXBzaG90X2Rvd25sb2FkKHRlbXBsYXRlX3JlcG9faWQlMkMlMjByZXZpc2lvbiUzRGNvbW1pdF9oYXNoKSUwQSUyMCUyMCUyMCUyMCUyMyUyMENyZWF0ZSUyMGFuJTIwZW1wdHklMjByZXBvJTIwb24lMjB0aGUlMjBIdWIlMEElMjAlMjAlMjAlMjBtb2RlbF9uYW1lJTIwJTNEJTIwdGVtcGxhdGVfcmVwb19pZC5zcGxpdCglMjIlMkYlMjIpJTVCMSU1RCUwQSUyMCUyMCUyMCUyMGNyZWF0ZV9yZXBvKG1vZGVsX25hbWUlMkMlMjBleGlzdF9vayUzRFRydWUpJTBBJTIwJTIwJTIwJTIwJTIzJTIwQ2xvbmUlMjB0aGUlMjBlbXB0eSUyMHJlcG8lMEElMjAlMjAlMjAlMjBuZXdfcmVwb19pZCUyMCUzRCUyMGdldF9mdWxsX3JlcG9fbmFtZShtb2RlbF9uYW1lKSUwQSUyMCUyMCUyMCUyMG5ld19yZXBvX2RpciUyMCUzRCUyMG1vZGVsX25hbWUlMEElMjAlMjAlMjAlMjByZXBvJTIwJTNEJTIwUmVwb3NpdG9yeShsb2NhbF9kaXIlM0RuZXdfcmVwb19kaXIlMkMlMjBjbG9uZV9mcm9tJTNEbmV3X3JlcG9faWQpJTBBJTIwJTIwJTIwJTIwJTIzJTIwQ29weSUyMGZpbGVzJTBBJTIwJTIwJTIwJTIwY29weV90cmVlKHRlbXBsYXRlX3JlcG9fZGlyJTJDJTIwbmV3X3JlcG9fZGlyKSUwQSUyMCUyMCUyMCUyMCUyMyUyMFB1c2glMjB0byUyMEh1YiUwQSUyMCUyMCUyMCUyMHJlcG8ucHVzaF90b19odWIoKQ==",highlighted:`<span class="hljs-keyword">from</span> distutils.dir_util <span class="hljs-keyword">import</span> copy_tree
<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> Repository, snapshot_download, create_repo, get_full_repo_name
<span class="hljs-keyword">def</span> <span class="hljs-title function_">copy_repository_template</span>():
<span class="hljs-comment"># Clone the repo and extract the local path</span>
template_repo_id = <span class="hljs-string">&quot;lewtun/distilbert-base-uncased-finetuned-squad-d5716d28&quot;</span>
commit_hash = <span class="hljs-string">&quot;be3eaffc28669d7932492681cd5f3e8905e358b4&quot;</span>
template_repo_dir = snapshot_download(template_repo_id, revision=commit_hash)
<span class="hljs-comment"># Create an empty repo on the Hub</span>
model_name = template_repo_id.split(<span class="hljs-string">&quot;/&quot;</span>)[<span class="hljs-number">1</span>]
create_repo(model_name, exist_ok=<span class="hljs-literal">True</span>)
<span class="hljs-comment"># Clone the empty repo</span>
new_repo_id = get_full_repo_name(model_name)
new_repo_dir = model_name
repo = Repository(local_dir=new_repo_dir, clone_from=new_repo_id)
<span class="hljs-comment"># Copy files</span>
copy_tree(template_repo_dir, new_repo_dir)
<span class="hljs-comment"># Push to Hub</span>
repo.push_to_hub()`,wrap:!1}}),_=new rl({props:{title:"Depanarea pipeline-ului din 🤗 Transformers",local:"depanarea-pipeline-ului-din-transformers",headingTag:"h2"}}),Y=new y({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBbW9kZWxfY2hlY2twb2ludCUyMCUzRCUyMGdldF9mdWxsX3JlcG9fbmFtZSglMjJkaXN0aWxsYmVydC1iYXNlLXVuY2FzZWQtZmluZXR1bmVkLXNxdWFkLWQ1NzE2ZDI4JTIyKSUwQXJlYWRlciUyMCUzRCUyMHBpcGVsaW5lKCUyMnF1ZXN0aW9uLWFuc3dlcmluZyUyMiUyQyUyMG1vZGVsJTNEbW9kZWxfY2hlY2twb2ludCk=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline
model_checkpoint = get_full_repo_name(<span class="hljs-string">&quot;distillbert-base-uncased-finetuned-squad-d5716d28&quot;</span>)
reader = pipeline(<span class="hljs-string">&quot;question-answering&quot;</span>, model=model_checkpoint)`,wrap:!1}}),H=new y({props:{code:"JTIyJTIyJTIyJTBBT1NFcnJvciUzQSUyMENhbid0JTIwbG9hZCUyMGNvbmZpZyUyMGZvciUyMCdsZXd0dW4lMkZkaXN0aWxsYmVydC1iYXNlLXVuY2FzZWQtZmluZXR1bmVkLXNxdWFkLWQ1NzE2ZDI4Jy4lMjBNYWtlJTIwc3VyZSUyMHRoYXQlM0ElMEElMEEtJTIwJ2xld3R1biUyRmRpc3RpbGxiZXJ0LWJhc2UtdW5jYXNlZC1maW5ldHVuZWQtc3F1YWQtZDU3MTZkMjgnJTIwaXMlMjBhJTIwY29ycmVjdCUyMG1vZGVsJTIwaWRlbnRpZmllciUyMGxpc3RlZCUyMG9uJTIwJ2h0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZtb2RlbHMnJTBBJTBBLSUyMG9yJTIwJ2xld3R1biUyRmRpc3RpbGxiZXJ0LWJhc2UtdW5jYXNlZC1maW5ldHVuZWQtc3F1YWQtZDU3MTZkMjgnJTIwaXMlMjB0aGUlMjBjb3JyZWN0JTIwcGF0aCUyMHRvJTIwYSUyMGRpcmVjdG9yeSUyMGNvbnRhaW5pbmclMjBhJTIwY29uZmlnLmpzb24lMjBmaWxlJTBBJTIyJTIyJTIy",highlighted:`<span class="hljs-string">&quot;&quot;&quot;
OSError: Can&#x27;t load config for &#x27;lewtun/distillbert-base-uncased-finetuned-squad-d5716d28&#x27;. Make sure that:
- &#x27;lewtun/distillbert-base-uncased-finetuned-squad-d5716d28&#x27; is a correct model identifier listed on &#x27;https://huggingface.co/models&#x27;
- or &#x27;lewtun/distillbert-base-uncased-finetuned-squad-d5716d28&#x27; is the correct path to a directory containing a config.json file
&quot;&quot;&quot;</span>`,wrap:!1}}),q=new y({props:{code:"JTIyJTIyJTIyJTBBTWFrZSUyMHN1cmUlMjB0aGF0JTNBJTBBJTBBLSUyMCdsZXd0dW4lMkZkaXN0aWxsYmVydC1iYXNlLXVuY2FzZWQtZmluZXR1bmVkLXNxdWFkLWQ1NzE2ZDI4JyUyMGlzJTIwYSUyMGNvcnJlY3QlMjBtb2RlbCUyMGlkZW50aWZpZXIlMjBsaXN0ZWQlMjBvbiUyMCdodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGbW9kZWxzJyUwQSUwQS0lMjBvciUyMCdsZXd0dW4lMkZkaXN0aWxsYmVydC1iYXNlLXVuY2FzZWQtZmluZXR1bmVkLXNxdWFkLWQ1NzE2ZDI4JyUyMGlzJTIwdGhlJTIwY29ycmVjdCUyMHBhdGglMjB0byUyMGElMjBkaXJlY3RvcnklMjBjb250YWluaW5nJTIwYSUyMGNvbmZpZy5qc29uJTIwZmlsZSUwQSUyMiUyMiUyMg==",highlighted:`<span class="hljs-string">&quot;&quot;&quot;
Make sure that:
- &#x27;lewtun/distillbert-base-uncased-finetuned-squad-d5716d28&#x27; is a correct model identifier listed on &#x27;https://huggingface.co/models&#x27;
- or &#x27;lewtun/distillbert-base-uncased-finetuned-squad-d5716d28&#x27; is the correct path to a directory containing a config.json file
&quot;&quot;&quot;</span>`,wrap:!1}}),D=new y({props:{code:"bW9kZWxfY2hlY2twb2ludCUyMCUzRCUyMGdldF9mdWxsX3JlcG9fbmFtZSglMjJkaXN0aWxiZXJ0LWJhc2UtdW5jYXNlZC1maW5ldHVuZWQtc3F1YWQtZDU3MTZkMjglMjIpJTBBcmVhZGVyJTIwJTNEJTIwcGlwZWxpbmUoJTIycXVlc3Rpb24tYW5zd2VyaW5nJTIyJTJDJTIwbW9kZWwlM0Rtb2RlbF9jaGVja3BvaW50KQ==",highlighted:`model_checkpoint = get_full_repo_name(<span class="hljs-string">&quot;distilbert-base-uncased-finetuned-squad-d5716d28&quot;</span>)
reader = pipeline(<span class="hljs-string">&quot;question-answering&quot;</span>, model=model_checkpoint)`,wrap:!1}}),P=new y({props:{code:"JTIyJTIyJTIyJTBBT1NFcnJvciUzQSUyMENhbid0JTIwbG9hZCUyMGNvbmZpZyUyMGZvciUyMCdsZXd0dW4lMkZkaXN0aWxiZXJ0LWJhc2UtdW5jYXNlZC1maW5ldHVuZWQtc3F1YWQtZDU3MTZkMjgnLiUyME1ha2UlMjBzdXJlJTIwdGhhdCUzQSUwQSUwQS0lMjAnbGV3dHVuJTJGZGlzdGlsYmVydC1iYXNlLXVuY2FzZWQtZmluZXR1bmVkLXNxdWFkLWQ1NzE2ZDI4JyUyMGlzJTIwYSUyMGNvcnJlY3QlMjBtb2RlbCUyMGlkZW50aWZpZXIlMjBsaXN0ZWQlMjBvbiUyMCdodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGbW9kZWxzJyUwQSUwQS0lMjBvciUyMCdsZXd0dW4lMkZkaXN0aWxiZXJ0LWJhc2UtdW5jYXNlZC1maW5ldHVuZWQtc3F1YWQtZDU3MTZkMjgnJTIwaXMlMjB0aGUlMjBjb3JyZWN0JTIwcGF0aCUyMHRvJTIwYSUyMGRpcmVjdG9yeSUyMGNvbnRhaW5pbmclMjBhJTIwY29uZmlnLmpzb24lMjBmaWxlJTBBJTIyJTIyJTIy",highlighted:`<span class="hljs-string">&quot;&quot;&quot;
OSError: Can&#x27;t load config for &#x27;lewtun/distilbert-base-uncased-finetuned-squad-d5716d28&#x27;. Make sure that:
- &#x27;lewtun/distilbert-base-uncased-finetuned-squad-d5716d28&#x27; is a correct model identifier listed on &#x27;https://huggingface.co/models&#x27;
- or &#x27;lewtun/distilbert-base-uncased-finetuned-squad-d5716d28&#x27; is the correct path to a directory containing a config.json file
&quot;&quot;&quot;</span>`,wrap:!1}}),O=new y({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMGxpc3RfcmVwb19maWxlcyUwQSUwQWxpc3RfcmVwb19maWxlcyhyZXBvX2lkJTNEbW9kZWxfY2hlY2twb2ludCk=",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> list_repo_files
list_repo_files(repo_id=model_checkpoint)`,wrap:!1}}),ee=new y({props:{code:"JTVCJy5naXRhdHRyaWJ1dGVzJyUyQyUyMCdSRUFETUUubWQnJTJDJTIwJ3B5dG9yY2hfbW9kZWwuYmluJyUyQyUyMCdzcGVjaWFsX3Rva2Vuc19tYXAuanNvbiclMkMlMjAndG9rZW5pemVyX2NvbmZpZy5qc29uJyUyQyUyMCd0cmFpbmluZ19hcmdzLmJpbiclMkMlMjAndm9jYWIudHh0JyU1RA==",highlighted:'[<span class="hljs-string">&#x27;.gitattributes&#x27;</span>, <span class="hljs-string">&#x27;README.md&#x27;</span>, <span class="hljs-string">&#x27;pytorch_model.bin&#x27;</span>, <span class="hljs-string">&#x27;special_tokens_map.json&#x27;</span>, <span class="hljs-string">&#x27;tokenizer_config.json&#x27;</span>, <span class="hljs-string">&#x27;training_args.bin&#x27;</span>, <span class="hljs-string">&#x27;vocab.txt&#x27;</span>]',wrap:!1}}),le=new y({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Db25maWclMEElMEFwcmV0cmFpbmVkX2NoZWNrcG9pbnQlMjAlM0QlMjAlMjJkaXN0aWxiZXJ0LWJhc2UtdW5jYXNlZCUyMiUwQWNvbmZpZyUyMCUzRCUyMEF1dG9Db25maWcuZnJvbV9wcmV0cmFpbmVkKHByZXRyYWluZWRfY2hlY2twb2ludCk=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoConfig
pretrained_checkpoint = <span class="hljs-string">&quot;distilbert-base-uncased&quot;</span>
config = AutoConfig.from_pretrained(pretrained_checkpoint)`,wrap:!1}}),se=new y({props:{code:"Y29uZmlnLnB1c2hfdG9faHViKG1vZGVsX2NoZWNrcG9pbnQlMkMlMjBjb21taXRfbWVzc2FnZSUzRCUyMkFkZCUyMGNvbmZpZy5qc29uJTIyKQ==",highlighted:'config.push_to_hub(model_checkpoint, commit_message=<span class="hljs-string">&quot;Add config.json&quot;</span>)',wrap:!1}}),ie=new y({props:{code:"cmVhZGVyJTIwJTNEJTIwcGlwZWxpbmUoJTIycXVlc3Rpb24tYW5zd2VyaW5nJTIyJTJDJTIwbW9kZWwlM0Rtb2RlbF9jaGVja3BvaW50JTJDJTIwcmV2aXNpb24lM0QlMjJtYWluJTIyKSUwQSUwQWNvbnRleHQlMjAlM0QlMjByJTIyJTIyJTIyJTBBRXh0cmFjdGl2ZSUyMFF1ZXN0aW9uJTIwQW5zd2VyaW5nJTIwaXMlMjB0aGUlMjB0YXNrJTIwb2YlMjBleHRyYWN0aW5nJTIwYW4lMjBhbnN3ZXIlMjBmcm9tJTIwYSUyMHRleHQlMEFnaXZlbiUyMGElMjBxdWVzdGlvbi4lMjBBbiUyMGV4YW1wbGUlMjBvZiUyMGElMjBxdWVzdGlvbiUyMGFuc3dlcmluZyUyMGRhdGFzZXQlMjBpcyUyMHRoZSUyMFNRdUFEJTBBZGF0YXNldCUyQyUyMHdoaWNoJTIwaXMlMjBlbnRpcmVseSUyMGJhc2VkJTIwb24lMjB0aGF0JTIwdGFzay4lMjBJZiUyMHlvdSUyMHdvdWxkJTIwbGlrZSUyMHRvJTIwZmluZS10dW5lJTIwYSUwQW1vZGVsJTIwb24lMjBhJTIwU1F1QUQlMjB0YXNrJTJDJTIweW91JTIwbWF5JTIwbGV2ZXJhZ2UlMjB0aGUlMEFleGFtcGxlcyUyRnB5dG9yY2glMkZxdWVzdGlvbi1hbnN3ZXJpbmclMkZydW5fc3F1YWQucHklMjBzY3JpcHQuJTBBJTBBJUYwJTlGJUE0JTk3JTIwVHJhbnNmb3JtZXJzJTIwaXMlMjBpbnRlcm9wZXJhYmxlJTIwd2l0aCUyMHRoZSUyMFB5VG9yY2glMkMlMjBUZW5zb3JGbG93JTJDJTIwYW5kJTIwSkFYJTBBZnJhbWV3b3JrcyUyQyUyMHNvJTIweW91JTIwY2FuJTIwdXNlJTIweW91ciUyMGZhdm91cml0ZSUyMHRvb2xzJTIwZm9yJTIwYSUyMHdpZGUlMjB2YXJpZXR5JTIwb2YlMjB0YXNrcyElMEElMjIlMjIlMjIlMEElMEFxdWVzdGlvbiUyMCUzRCUyMCUyMldoYXQlMjBpcyUyMGV4dHJhY3RpdmUlMjBxdWVzdGlvbiUyMGFuc3dlcmluZyUzRiUyMiUwQXJlYWRlcihxdWVzdGlvbiUzRHF1ZXN0aW9uJTJDJTIwY29udGV4dCUzRGNvbnRleHQp",highlighted:`reader = pipeline(<span class="hljs-string">&quot;question-answering&quot;</span>, model=model_checkpoint, revision=<span class="hljs-string">&quot;main&quot;</span>)
context = <span class="hljs-string">r&quot;&quot;&quot;
Extractive Question Answering is the task of extracting an answer from a text
given a question. An example of a question answering dataset is the SQuAD
dataset, which is entirely based on that task. If you would like to fine-tune a
model on a SQuAD task, you may leverage the
examples/pytorch/question-answering/run_squad.py script.
🤗 Transformers is interoperable with the PyTorch, TensorFlow, and JAX
frameworks, so you can use your favourite tools for a wide variety of tasks!
&quot;&quot;&quot;</span>
question = <span class="hljs-string">&quot;What is extractive question answering?&quot;</span>
reader(question=question, context=context)`,wrap:!1}}),re=new y({props:{code:"JTdCJ3Njb3JlJyUzQSUyMDAuMzg2Njk1MzU1MTc2OTI1NjYlMkMlMEElMjAnc3RhcnQnJTNBJTIwMzQlMkMlMEElMjAnZW5kJyUzQSUyMDk1JTJDJTBBJTIwJ2Fuc3dlciclM0ElMjAndGhlJTIwdGFzayUyMG9mJTIwZXh0cmFjdGluZyUyMGFuJTIwYW5zd2VyJTIwZnJvbSUyMGElMjB0ZXh0JTIwZ2l2ZW4lMjBhJTIwcXVlc3Rpb24nJTdE",highlighted:`{<span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.38669535517692566</span>,
<span class="hljs-string">&#x27;start&#x27;</span>: <span class="hljs-number">34</span>,
<span class="hljs-string">&#x27;end&#x27;</span>: <span class="hljs-number">95</span>,
<span class="hljs-string">&#x27;answer&#x27;</span>: <span class="hljs-string">&#x27;the task of extracting an answer from a text given a question&#x27;</span>}`,wrap:!1}}),oe=new rl({props:{title:"Depanarea forward pass-ului modelului dumneavoastră",local:"depanarea-forward-pass-ului-modelului-dumneavoastra",headingTag:"h2"}}),me=new y({props:{code:"dG9rZW5pemVyJTIwJTNEJTIwcmVhZGVyLnRva2VuaXplciUwQW1vZGVsJTIwJTNEJTIwcmVhZGVyLm1vZGVs",highlighted:`tokenizer = reader.tokenizer
model = reader.model`,wrap:!1}}),ye=new y({props:{code:"cXVlc3Rpb24lMjAlM0QlMjAlMjJXaGljaCUyMGZyYW1ld29ya3MlMjBjYW4lMjBJJTIwdXNlJTNGJTIy",highlighted:'question = <span class="hljs-string">&quot;Which frameworks can I use?&quot;</span>',wrap:!1}}),be=new y({props:{code:"aW1wb3J0JTIwdG9yY2glMEElMEFpbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIocXVlc3Rpb24lMkMlMjBjb250ZXh0JTJDJTIwYWRkX3NwZWNpYWxfdG9rZW5zJTNEVHJ1ZSklMEFpbnB1dF9pZHMlMjAlM0QlMjBpbnB1dHMlNUIlMjJpbnB1dF9pZHMlMjIlNUQlNUIwJTVEJTBBb3V0cHV0cyUyMCUzRCUyMG1vZGVsKCoqaW5wdXRzKSUwQWFuc3dlcl9zdGFydF9zY29yZXMlMjAlM0QlMjBvdXRwdXRzLnN0YXJ0X2xvZ2l0cyUwQWFuc3dlcl9lbmRfc2NvcmVzJTIwJTNEJTIwb3V0cHV0cy5lbmRfbG9naXRzJTBBJTIzJTIwR2V0JTIwdGhlJTIwbW9zdCUyMGxpa2VseSUyMGJlZ2lubmluZyUyMG9mJTIwYW5zd2VyJTIwd2l0aCUyMHRoZSUyMGFyZ21heCUyMG9mJTIwdGhlJTIwc2NvcmUlMEFhbnN3ZXJfc3RhcnQlMjAlM0QlMjB0b3JjaC5hcmdtYXgoYW5zd2VyX3N0YXJ0X3Njb3JlcyklMEElMjMlMjBHZXQlMjB0aGUlMjBtb3N0JTIwbGlrZWx5JTIwZW5kJTIwb2YlMjBhbnN3ZXIlMjB3aXRoJTIwdGhlJTIwYXJnbWF4JTIwb2YlMjB0aGUlMjBzY29yZSUwQWFuc3dlcl9lbmQlMjAlM0QlMjB0b3JjaC5hcmdtYXgoYW5zd2VyX2VuZF9zY29yZXMpJTIwJTJCJTIwMSUwQWFuc3dlciUyMCUzRCUyMHRva2VuaXplci5jb252ZXJ0X3Rva2Vuc190b19zdHJpbmcoJTBBJTIwJTIwJTIwJTIwdG9rZW5pemVyLmNvbnZlcnRfaWRzX3RvX3Rva2VucyhpbnB1dF9pZHMlNUJhbnN3ZXJfc3RhcnQlM0FhbnN3ZXJfZW5kJTVEKSUwQSklMEFwcmludChmJTIyUXVlc3Rpb24lM0ElMjAlN0JxdWVzdGlvbiU3RCUyMiklMEFwcmludChmJTIyQW5zd2VyJTNBJTIwJTdCYW5zd2VyJTdEJTIyKQ==",highlighted:`<span class="hljs-keyword">import</span> torch
inputs = tokenizer(question, context, add_special_tokens=<span class="hljs-literal">True</span>)
input_ids = inputs[<span class="hljs-string">&quot;input_ids&quot;</span>][<span class="hljs-number">0</span>]
outputs = model(**inputs)
answer_start_scores = outputs.start_logits
answer_end_scores = outputs.end_logits
<span class="hljs-comment"># Get the most likely beginning of answer with the argmax of the score</span>
answer_start = torch.argmax(answer_start_scores)
<span class="hljs-comment"># Get the most likely end of answer with the argmax of the score</span>
answer_end = torch.argmax(answer_end_scores) + <span class="hljs-number">1</span>
answer = tokenizer.convert_tokens_to_string(
tokenizer.convert_ids_to_tokens(input_ids[answer_start:answer_end])
)
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Question: <span class="hljs-subst">{question}</span>&quot;</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Answer: <span class="hljs-subst">{answer}</span>&quot;</span>)`,wrap:!1}}),Je=new y({props:{code:"JTIyJTIyJTIyJTBBT1NFcnJvciUzQSUyMENhbid0JTIwbG9hZCUyMGNvbmZpZyUyMGZvciUyMCdsZXd0dW4lMkZkaXN0aWxsYmVydC1iYXNlLXVuY2FzZWQtZmluZXR1bmVkLXNxdWFkLWQ1NzE2ZDI4Jy4lMjBNYWtlJTIwc3VyZSUyMHRoYXQlM0ElMEElMEEtJTIwJ2xld3R1biUyRmRpc3RpbGxiZXJ0LWJhc2UtdW5jYXNlZC1maW5ldHVuZWQtc3F1YWQtZDU3MTZkMjgnJTIwaXMlMjBhJTIwY29ycmVjdCUyMG1vZGVsJTIwaWRlbnRpZmllciUyMGxpc3RlZCUyMG9uJTIwJ2h0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZtb2RlbHMnJTBBJTBBLSUyMG9yJTIwJ2xld3R1biUyRmRpc3RpbGxiZXJ0LWJhc2UtdW5jYXNlZC1maW5ldHVuZWQtc3F1YWQtZDU3MTZkMjgnJTIwaXMlMjB0aGUlMjBjb3JyZWN0JTIwcGF0aCUyMHRvJTIwYSUyMGRpcmVjdG9yeSUyMGNvbnRhaW5pbmclMjBhJTIwY29uZmlnLmpzb24lMjBmaWxlJTBBJTIyJTIyJTIy",highlighted:`<span class="hljs-string">&quot;&quot;&quot;
OSError: Can&#x27;t load config for &#x27;lewtun/distillbert-base-uncased-finetuned-squad-d5716d28&#x27;. Make sure that:
- &#x27;lewtun/distillbert-base-uncased-finetuned-squad-d5716d28&#x27; is a correct model identifier listed on &#x27;https://huggingface.co/models&#x27;
- or &#x27;lewtun/distillbert-base-uncased-finetuned-squad-d5716d28&#x27; is the correct path to a directory containing a config.json file
&quot;&quot;&quot;</span>`,wrap:!1}}),we=new ul({props:{id:"rSPyvPw0p9k"}}),Ue=new ul({props:{id:"5PkZ4rbHL6c"}}),Ze=new y({props:{code:"aW5wdXRzJTVCJTIyaW5wdXRfaWRzJTIyJTVEJTVCJTNBNSU1RA==",highlighted:'inputs[<span class="hljs-string">&quot;input_ids&quot;</span>][:<span class="hljs-number">5</span>]',wrap:!1}}),ge=new y({props:{code:"JTVCMTAxJTJDJTIwMjAyOSUyQyUyMDc3MDUlMkMlMjAyMDE1JTJDJTIwMjA2NCU1RA==",highlighted:'[<span class="hljs-number">101</span>, <span class="hljs-number">2029</span>, <span class="hljs-number">7705</span>, <span class="hljs-number">2015</span>, <span class="hljs-number">2064</span>]',wrap:!1}}),We=new y({props:{code:"dHlwZShpbnB1dHMlNUIlMjJpbnB1dF9pZHMlMjIlNUQp",highlighted:'<span class="hljs-built_in">type</span>(inputs[<span class="hljs-string">&quot;input_ids&quot;</span>])',wrap:!1}}),Ge=new y({props:{code:"bGlzdA==",highlighted:'<span class="hljs-built_in">list</span>',wrap:!1}}),$e=new y({props:{code:"fiUyRm1pbmljb25kYTMlMkZlbnZzJTJGaHVnZ2luZ2ZhY2UlMkZsaWIlMkZweXRob24zLjglMkZzaXRlLXBhY2thZ2VzJTJGdHJhbnNmb3JtZXJzJTJGbW9kZWxzJTJGZGlzdGlsYmVydCUyRm1vZGVsaW5nX2Rpc3RpbGJlcnQucHklMjBpbiUyMGZvcndhcmQoc2VsZiUyQyUyMGlucHV0X2lkcyUyQyUyMGF0dGVudGlvbl9tYXNrJTJDJTIwaGVhZF9tYXNrJTJDJTIwaW5wdXRzX2VtYmVkcyUyQyUyMG91dHB1dF9hdHRlbnRpb25zJTJDJTIwb3V0cHV0X2hpZGRlbl9zdGF0ZXMlMkMlMjByZXR1cm5fZGljdCklMEElMjAlMjAlMjAlMjA0NzElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByYWlzZSUyMFZhbHVlRXJyb3IoJTIyWW91JTIwY2Fubm90JTIwc3BlY2lmeSUyMGJvdGglMjBpbnB1dF9pZHMlMjBhbmQlMjBpbnB1dHNfZW1iZWRzJTIwYXQlMjB0aGUlMjBzYW1lJTIwdGltZSUyMiklMEElMjAlMjAlMjAlMjA0NzIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBlbGlmJTIwaW5wdXRfaWRzJTIwaXMlMjBub3QlMjBOb25lJTNBJTBBLS0lM0UlMjA0NzMlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpbnB1dF9zaGFwZSUyMCUzRCUyMGlucHV0X2lkcy5zaXplKCklMEElMjAlMjAlMjAlMjA0NzQlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBlbGlmJTIwaW5wdXRzX2VtYmVkcyUyMGlzJTIwbm90JTIwTm9uZSUzQSUwQSUyMCUyMCUyMCUyMDQ3NSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGlucHV0X3NoYXBlJTIwJTNEJTIwaW5wdXRzX2VtYmVkcy5zaXplKCklNUIlM0EtMSU1RCUwQSUwQUF0dHJpYnV0ZUVycm9yJTNBJTIwJ2xpc3QnJTIwb2JqZWN0JTIwaGFzJTIwbm8lMjBhdHRyaWJ1dGUlMjAnc2l6ZSc=",highlighted:`~<span class="hljs-regexp">/miniconda3/</span>envs<span class="hljs-regexp">/huggingface/</span>lib<span class="hljs-regexp">/python3.8/</span>site-packages<span class="hljs-regexp">/transformers/m</span>odels<span class="hljs-regexp">/distilbert/m</span>odeling_distilbert.py in forward(self, input_ids, attention_mask, head_mask, inputs_embeds, output_attentions, output_hidden_states, return_dict)
<span class="hljs-number">471</span> raise ValueError(<span class="hljs-string">&quot;You cannot specify both input_ids and inputs_embeds at the same time&quot;</span>)
<span class="hljs-number">472</span> elif input_ids is not None:
--&gt; <span class="hljs-number">473</span> input_shape = input_ids.<span class="hljs-keyword">size</span>()
<span class="hljs-number">474</span> elif inputs_embeds is not None:
<span class="hljs-number">475</span> input_shape = inputs_embeds.<span class="hljs-keyword">size</span>()[:-<span class="hljs-number">1</span>]
AttributeError: <span class="hljs-string">&#x27;list&#x27;</span> object has no attribute <span class="hljs-string">&#x27;size&#x27;</span>`,wrap:!1}}),Ce=new y({props:{code:"aW5wdXRzJTIwJTNEJTIwdG9rZW5pemVyKHF1ZXN0aW9uJTJDJTIwY29udGV4dCUyQyUyMGFkZF9zcGVjaWFsX3Rva2VucyUzRFRydWUlMkMlMjByZXR1cm5fdGVuc29ycyUzRCUyMnB0JTIyKSUwQWlucHV0X2lkcyUyMCUzRCUyMGlucHV0cyU1QiUyMmlucHV0X2lkcyUyMiU1RCU1QjAlNUQlMEFvdXRwdXRzJTIwJTNEJTIwbW9kZWwoKippbnB1dHMpJTBBYW5zd2VyX3N0YXJ0X3Njb3JlcyUyMCUzRCUyMG91dHB1dHMuc3RhcnRfbG9naXRzJTBBYW5zd2VyX2VuZF9zY29yZXMlMjAlM0QlMjBvdXRwdXRzLmVuZF9sb2dpdHMlMEElMjMlMjBHZXQlMjB0aGUlMjBtb3N0JTIwbGlrZWx5JTIwYmVnaW5uaW5nJTIwb2YlMjBhbnN3ZXIlMjB3aXRoJTIwdGhlJTIwYXJnbWF4JTIwb2YlMjB0aGUlMjBzY29yZSUwQWFuc3dlcl9zdGFydCUyMCUzRCUyMHRvcmNoLmFyZ21heChhbnN3ZXJfc3RhcnRfc2NvcmVzKSUwQSUyMyUyMEdldCUyMHRoZSUyMG1vc3QlMjBsaWtlbHklMjBlbmQlMjBvZiUyMGFuc3dlciUyMHdpdGglMjB0aGUlMjBhcmdtYXglMjBvZiUyMHRoZSUyMHNjb3JlJTBBYW5zd2VyX2VuZCUyMCUzRCUyMHRvcmNoLmFyZ21heChhbnN3ZXJfZW5kX3Njb3JlcyklMjAlMkIlMjAxJTBBYW5zd2VyJTIwJTNEJTIwdG9rZW5pemVyLmNvbnZlcnRfdG9rZW5zX3RvX3N0cmluZyglMEElMjAlMjAlMjAlMjB0b2tlbml6ZXIuY29udmVydF9pZHNfdG9fdG9rZW5zKGlucHV0X2lkcyU1QmFuc3dlcl9zdGFydCUzQWFuc3dlcl9lbmQlNUQpJTBBKSUwQXByaW50KGYlMjJRdWVzdGlvbiUzQSUyMCU3QnF1ZXN0aW9uJTdEJTIyKSUwQXByaW50KGYlMjJBbnN3ZXIlM0ElMjAlN0JhbnN3ZXIlN0QlMjIp",highlighted:`inputs = tokenizer(question, context, add_special_tokens=<span class="hljs-literal">True</span>, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>)
input_ids = inputs[<span class="hljs-string">&quot;input_ids&quot;</span>][<span class="hljs-number">0</span>]
outputs = model(**inputs)
answer_start_scores = outputs.start_logits
answer_end_scores = outputs.end_logits
<span class="hljs-comment"># Get the most likely beginning of answer with the argmax of the score</span>
answer_start = torch.argmax(answer_start_scores)
<span class="hljs-comment"># Get the most likely end of answer with the argmax of the score</span>
answer_end = torch.argmax(answer_end_scores) + <span class="hljs-number">1</span>
answer = tokenizer.convert_tokens_to_string(
tokenizer.convert_ids_to_tokens(input_ids[answer_start:answer_end])
)
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Question: <span class="hljs-subst">{question}</span>&quot;</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Answer: <span class="hljs-subst">{answer}</span>&quot;</span>)`,wrap:!1}}),xe=new y({props:{code:"JTIyJTIyJTIyJTBBUXVlc3Rpb24lM0ElMjBXaGljaCUyMGZyYW1ld29ya3MlMjBjYW4lMjBJJTIwdXNlJTNGJTBBQW5zd2VyJTNBJTIwcHl0b3JjaCUyQyUyMHRlbnNvcmZsb3clMkMlMjBhbmQlMjBqYXglMEElMjIlMjIlMjI=",highlighted:`<span class="hljs-string">&quot;&quot;&quot;
Question: Which frameworks can I use?
Answer: pytorch, tensorflow, and jax
&quot;&quot;&quot;</span>`,wrap:!1}}),ze=new sa({props:{source:"https://github.com/huggingface/course/blob/main/chapters/ro/chapter8/2.mdx"}}),{c(){f=i("meta"),Ve=s(),_e=i("p"),Ne=s(),c(g.$$.fragment),Ye=s(),c(v.$$.fragment),He=s(),c(W.$$.fragment),Qe=s(),G=i("p"),G.innerHTML=pl,Fe=s(),c(I.$$.fragment),Ae=s(),$=i("p"),$.innerHTML=ol,qe=s(),c(k.$$.fragment),Se=s(),B=i("p"),B.textContent=dl,Ee=s(),c(C.$$.fragment),Le=s(),x=i("p"),x.innerHTML=ml,De=s(),c(X.$$.fragment),Pe=s(),z=i("p"),z.innerHTML=Ml,Ke=s(),c(_.$$.fragment),Oe=s(),R=i("p"),R.textContent=yl,et=s(),V=i("blockquote"),V.innerHTML=fl,tt=s(),N=i("p"),N.innerHTML=bl,lt=s(),c(Y.$$.fragment),at=s(),c(H.$$.fragment),st=s(),Q=i("p"),Q.innerHTML=Jl,nt=s(),J=i("div"),J.innerHTML=jl,it=s(),F=i("p"),F.innerHTML=wl,rt=s(),j=i("blockquote"),j.innerHTML=Tl,ut=s(),A=i("p"),A.innerHTML=Ul,ct=s(),c(q.$$.fragment),pt=s(),w=i("blockquote"),w.innerHTML=hl,ot=s(),S=i("p"),S.textContent=Zl,dt=s(),T=i("div"),T.innerHTML=gl,mt=s(),E=i("p"),E.textContent=vl,Mt=s(),U=i("div"),U.innerHTML=Wl,yt=s(),L=i("p"),L.textContent=Gl,ft=s(),c(D.$$.fragment),bt=s(),c(P.$$.fragment),Jt=s(),K=i("p"),K.innerHTML=Il,jt=s(),c(O.$$.fragment),wt=s(),c(ee.$$.fragment),Tt=s(),te=i("p"),te.innerHTML=$l,Ut=s(),c(le.$$.fragment),ht=s(),h=i("blockquote"),h.innerHTML=kl,Zt=s(),ae=i("p"),ae.innerHTML=Bl,gt=s(),c(se.$$.fragment),vt=s(),ne=i("p"),ne.innerHTML=Cl,Wt=s(),c(ie.$$.fragment),Gt=s(),c(re.$$.fragment),It=s(),ue=i("p"),ue.textContent=xl,$t=s(),ce=i("ul"),ce.innerHTML=Xl,kt=s(),pe=i("p"),pe.textContent=zl,Bt=s(),c(oe.$$.fragment),Ct=s(),de=i("p"),de.innerHTML=_l,xt=s(),c(me.$$.fragment),Xt=s(),Me=i("p"),Me.textContent=Rl,zt=s(),c(ye.$$.fragment),_t=s(),fe=i("p"),fe.innerHTML=Vl,Rt=s(),c(be.$$.fragment),Vt=s(),c(Je.$$.fragment),Nt=s(),je=i("p"),je.textContent=Nl,Yt=s(),c(we.$$.fragment),Ht=s(),Te=i("p"),Te.textContent=Yl,Qt=s(),c(Ue.$$.fragment),Ft=s(),he=i("p"),he.innerHTML=Hl,At=s(),c(Ze.$$.fragment),qt=s(),c(ge.$$.fragment),St=s(),ve=i("p"),ve.innerHTML=Ql,Et=s(),c(We.$$.fragment),Lt=s(),c(Ge.$$.fragment),Dt=s(),Ie=i("p"),Ie.innerHTML=Fl,Pt=s(),c($e.$$.fragment),Kt=s(),ke=i("p"),ke.innerHTML=Al,Ot=s(),Z=i("div"),Z.innerHTML=ql,el=s(),Be=i("p"),Be.innerHTML=Sl,tl=s(),c(Ce.$$.fragment),ll=s(),c(xe.$$.fragment),al=s(),Xe=i("p"),Xe.innerHTML=El,sl=s(),c(ze.$$.fragment),nl=s(),Re=i("p"),this.h()},l(e){const t=ta("svelte-u9bgzb",document.head);f=r(t,"META",{name:!0,content:!0}),t.forEach(l),Ve=n(e),_e=r(e,"P",{}),Ll(_e).forEach(l),Ne=n(e),p(g.$$.fragment,e),Ye=n(e),p(v.$$.fragment,e),He=n(e),p(W.$$.fragment,e),Qe=n(e),G=r(e,"P",{"data-svelte-h":!0}),u(G)!=="svelte-116q82i"&&(G.innerHTML=pl),Fe=n(e),p(I.$$.fragment,e),Ae=n(e),$=r(e,"P",{"data-svelte-h":!0}),u($)!=="svelte-2bz7c3"&&($.innerHTML=ol),qe=n(e),p(k.$$.fragment,e),Se=n(e),B=r(e,"P",{"data-svelte-h":!0}),u(B)!=="svelte-jhmaqm"&&(B.textContent=dl),Ee=n(e),p(C.$$.fragment,e),Le=n(e),x=r(e,"P",{"data-svelte-h":!0}),u(x)!=="svelte-1mg6flt"&&(x.innerHTML=ml),De=n(e),p(X.$$.fragment,e),Pe=n(e),z=r(e,"P",{"data-svelte-h":!0}),u(z)!=="svelte-1mvq3zp"&&(z.innerHTML=Ml),Ke=n(e),p(_.$$.fragment,e),Oe=n(e),R=r(e,"P",{"data-svelte-h":!0}),u(R)!=="svelte-hh38nk"&&(R.textContent=yl),et=n(e),V=r(e,"BLOCKQUOTE",{"data-svelte-h":!0}),u(V)!=="svelte-1h5wd1i"&&(V.innerHTML=fl),tt=n(e),N=r(e,"P",{"data-svelte-h":!0}),u(N)!=="svelte-1npwsbj"&&(N.innerHTML=bl),lt=n(e),p(Y.$$.fragment,e),at=n(e),p(H.$$.fragment,e),st=n(e),Q=r(e,"P",{"data-svelte-h":!0}),u(Q)!=="svelte-zjmu2y"&&(Q.innerHTML=Jl),nt=n(e),J=r(e,"DIV",{class:!0,"data-svelte-h":!0}),u(J)!=="svelte-1iz0chj"&&(J.innerHTML=jl),it=n(e),F=r(e,"P",{"data-svelte-h":!0}),u(F)!=="svelte-15mn9u7"&&(F.innerHTML=wl),rt=n(e),j=r(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),u(j)!=="svelte-1bk6wwx"&&(j.innerHTML=Tl),ut=n(e),A=r(e,"P",{"data-svelte-h":!0}),u(A)!=="svelte-p1d22m"&&(A.innerHTML=Ul),ct=n(e),p(q.$$.fragment,e),pt=n(e),w=r(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),u(w)!=="svelte-hbjwlc"&&(w.innerHTML=hl),ot=n(e),S=r(e,"P",{"data-svelte-h":!0}),u(S)!=="svelte-1ld4kn3"&&(S.textContent=Zl),dt=n(e),T=r(e,"DIV",{class:!0,"data-svelte-h":!0}),u(T)!=="svelte-41xios"&&(T.innerHTML=gl),mt=n(e),E=r(e,"P",{"data-svelte-h":!0}),u(E)!=="svelte-15s120b"&&(E.textContent=vl),Mt=n(e),U=r(e,"DIV",{class:!0,"data-svelte-h":!0}),u(U)!=="svelte-hrqqnv"&&(U.innerHTML=Wl),yt=n(e),L=r(e,"P",{"data-svelte-h":!0}),u(L)!=="svelte-1ozal7z"&&(L.textContent=Gl),ft=n(e),p(D.$$.fragment,e),bt=n(e),p(P.$$.fragment,e),Jt=n(e),K=r(e,"P",{"data-svelte-h":!0}),u(K)!=="svelte-z9bm67"&&(K.innerHTML=Il),jt=n(e),p(O.$$.fragment,e),wt=n(e),p(ee.$$.fragment,e),Tt=n(e),te=r(e,"P",{"data-svelte-h":!0}),u(te)!=="svelte-k39yic"&&(te.innerHTML=$l),Ut=n(e),p(le.$$.fragment,e),ht=n(e),h=r(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),u(h)!=="svelte-egz8ym"&&(h.innerHTML=kl),Zt=n(e),ae=r(e,"P",{"data-svelte-h":!0}),u(ae)!=="svelte-1kh5p0v"&&(ae.innerHTML=Bl),gt=n(e),p(se.$$.fragment,e),vt=n(e),ne=r(e,"P",{"data-svelte-h":!0}),u(ne)!=="svelte-17y3u8w"&&(ne.innerHTML=Cl),Wt=n(e),p(ie.$$.fragment,e),Gt=n(e),p(re.$$.fragment,e),It=n(e),ue=r(e,"P",{"data-svelte-h":!0}),u(ue)!=="svelte-1qg8mq1"&&(ue.textContent=xl),$t=n(e),ce=r(e,"UL",{"data-svelte-h":!0}),u(ce)!=="svelte-1kite45"&&(ce.innerHTML=Xl),kt=n(e),pe=r(e,"P",{"data-svelte-h":!0}),u(pe)!=="svelte-1r8fyou"&&(pe.textContent=zl),Bt=n(e),p(oe.$$.fragment,e),Ct=n(e),de=r(e,"P",{"data-svelte-h":!0}),u(de)!=="svelte-dtz915"&&(de.innerHTML=_l),xt=n(e),p(me.$$.fragment,e),Xt=n(e),Me=r(e,"P",{"data-svelte-h":!0}),u(Me)!=="svelte-1gwri2l"&&(Me.textContent=Rl),zt=n(e),p(ye.$$.fragment,e),_t=n(e),fe=r(e,"P",{"data-svelte-h":!0}),u(fe)!=="svelte-fr6ok0"&&(fe.innerHTML=Vl),Rt=n(e),p(be.$$.fragment,e),Vt=n(e),p(Je.$$.fragment,e),Nt=n(e),je=r(e,"P",{"data-svelte-h":!0}),u(je)!=="svelte-19nrxp7"&&(je.textContent=Nl),Yt=n(e),p(we.$$.fragment,e),Ht=n(e),Te=r(e,"P",{"data-svelte-h":!0}),u(Te)!=="svelte-lugt8z"&&(Te.textContent=Yl),Qt=n(e),p(Ue.$$.fragment,e),Ft=n(e),he=r(e,"P",{"data-svelte-h":!0}),u(he)!=="svelte-1gcj3ky"&&(he.innerHTML=Hl),At=n(e),p(Ze.$$.fragment,e),qt=n(e),p(ge.$$.fragment,e),St=n(e),ve=r(e,"P",{"data-svelte-h":!0}),u(ve)!=="svelte-1kfsd9w"&&(ve.innerHTML=Ql),Et=n(e),p(We.$$.fragment,e),Lt=n(e),p(Ge.$$.fragment,e),Dt=n(e),Ie=r(e,"P",{"data-svelte-h":!0}),u(Ie)!=="svelte-1u9909n"&&(Ie.innerHTML=Fl),Pt=n(e),p($e.$$.fragment,e),Kt=n(e),ke=r(e,"P",{"data-svelte-h":!0}),u(ke)!=="svelte-16zeowh"&&(ke.innerHTML=Al),Ot=n(e),Z=r(e,"DIV",{class:!0,"data-svelte-h":!0}),u(Z)!=="svelte-s7fvfq"&&(Z.innerHTML=ql),el=n(e),Be=r(e,"P",{"data-svelte-h":!0}),u(Be)!=="svelte-vrdnh"&&(Be.innerHTML=Sl),tl=n(e),p(Ce.$$.fragment,e),ll=n(e),p(xe.$$.fragment,e),al=n(e),Xe=r(e,"P",{"data-svelte-h":!0}),u(Xe)!=="svelte-1ml5mn9"&&(Xe.innerHTML=El),sl=n(e),p(ze.$$.fragment,e),nl=n(e),Re=r(e,"P",{}),Ll(Re).forEach(l),this.h()},h(){b(f,"name","hf:doc:metadata"),b(f,"content",ra),b(J,"class","flex justify-center"),b(j,"class","tip"),b(w,"class","tip"),b(T,"class","flex justify-center"),b(U,"class","flex justify-center"),b(h,"class","warning"),b(Z,"class","flex justify-center")},m(e,t){la(document.head,f),a(e,Ve,t),a(e,_e,t),a(e,Ne,t),o(g,e,t),a(e,Ye,t),o(v,e,t),a(e,He,t),o(W,e,t),a(e,Qe,t),a(e,G,t),a(e,Fe,t),o(I,e,t),a(e,Ae,t),a(e,$,t),a(e,qe,t),o(k,e,t),a(e,Se,t),a(e,B,t),a(e,Ee,t),o(C,e,t),a(e,Le,t),a(e,x,t),a(e,De,t),o(X,e,t),a(e,Pe,t),a(e,z,t),a(e,Ke,t),o(_,e,t),a(e,Oe,t),a(e,R,t),a(e,et,t),a(e,V,t),a(e,tt,t),a(e,N,t),a(e,lt,t),o(Y,e,t),a(e,at,t),o(H,e,t),a(e,st,t),a(e,Q,t),a(e,nt,t),a(e,J,t),a(e,it,t),a(e,F,t),a(e,rt,t),a(e,j,t),a(e,ut,t),a(e,A,t),a(e,ct,t),o(q,e,t),a(e,pt,t),a(e,w,t),a(e,ot,t),a(e,S,t),a(e,dt,t),a(e,T,t),a(e,mt,t),a(e,E,t),a(e,Mt,t),a(e,U,t),a(e,yt,t),a(e,L,t),a(e,ft,t),o(D,e,t),a(e,bt,t),o(P,e,t),a(e,Jt,t),a(e,K,t),a(e,jt,t),o(O,e,t),a(e,wt,t),o(ee,e,t),a(e,Tt,t),a(e,te,t),a(e,Ut,t),o(le,e,t),a(e,ht,t),a(e,h,t),a(e,Zt,t),a(e,ae,t),a(e,gt,t),o(se,e,t),a(e,vt,t),a(e,ne,t),a(e,Wt,t),o(ie,e,t),a(e,Gt,t),o(re,e,t),a(e,It,t),a(e,ue,t),a(e,$t,t),a(e,ce,t),a(e,kt,t),a(e,pe,t),a(e,Bt,t),o(oe,e,t),a(e,Ct,t),a(e,de,t),a(e,xt,t),o(me,e,t),a(e,Xt,t),a(e,Me,t),a(e,zt,t),o(ye,e,t),a(e,_t,t),a(e,fe,t),a(e,Rt,t),o(be,e,t),a(e,Vt,t),o(Je,e,t),a(e,Nt,t),a(e,je,t),a(e,Yt,t),o(we,e,t),a(e,Ht,t),a(e,Te,t),a(e,Qt,t),o(Ue,e,t),a(e,Ft,t),a(e,he,t),a(e,At,t),o(Ze,e,t),a(e,qt,t),o(ge,e,t),a(e,St,t),a(e,ve,t),a(e,Et,t),o(We,e,t),a(e,Lt,t),o(Ge,e,t),a(e,Dt,t),a(e,Ie,t),a(e,Pt,t),o($e,e,t),a(e,Kt,t),a(e,ke,t),a(e,Ot,t),a(e,Z,t),a(e,el,t),a(e,Be,t),a(e,tl,t),o(Ce,e,t),a(e,ll,t),o(xe,e,t),a(e,al,t),a(e,Xe,t),a(e,sl,t),o(ze,e,t),a(e,nl,t),a(e,Re,t),il=!0},p:Pl,i(e){il||(d(g.$$.fragment,e),d(v.$$.fragment,e),d(W.$$.fragment,e),d(I.$$.fragment,e),d(k.$$.fragment,e),d(C.$$.fragment,e),d(X.$$.fragment,e),d(_.$$.fragment,e),d(Y.$$.fragment,e),d(H.$$.fragment,e),d(q.$$.fragment,e),d(D.$$.fragment,e),d(P.$$.fragment,e),d(O.$$.fragment,e),d(ee.$$.fragment,e),d(le.$$.fragment,e),d(se.$$.fragment,e),d(ie.$$.fragment,e),d(re.$$.fragment,e),d(oe.$$.fragment,e),d(me.$$.fragment,e),d(ye.$$.fragment,e),d(be.$$.fragment,e),d(Je.$$.fragment,e),d(we.$$.fragment,e),d(Ue.$$.fragment,e),d(Ze.$$.fragment,e),d(ge.$$.fragment,e),d(We.$$.fragment,e),d(Ge.$$.fragment,e),d($e.$$.fragment,e),d(Ce.$$.fragment,e),d(xe.$$.fragment,e),d(ze.$$.fragment,e),il=!0)},o(e){m(g.$$.fragment,e),m(v.$$.fragment,e),m(W.$$.fragment,e),m(I.$$.fragment,e),m(k.$$.fragment,e),m(C.$$.fragment,e),m(X.$$.fragment,e),m(_.$$.fragment,e),m(Y.$$.fragment,e),m(H.$$.fragment,e),m(q.$$.fragment,e),m(D.$$.fragment,e),m(P.$$.fragment,e),m(O.$$.fragment,e),m(ee.$$.fragment,e),m(le.$$.fragment,e),m(se.$$.fragment,e),m(ie.$$.fragment,e),m(re.$$.fragment,e),m(oe.$$.fragment,e),m(me.$$.fragment,e),m(ye.$$.fragment,e),m(be.$$.fragment,e),m(Je.$$.fragment,e),m(we.$$.fragment,e),m(Ue.$$.fragment,e),m(Ze.$$.fragment,e),m(ge.$$.fragment,e),m(We.$$.fragment,e),m(Ge.$$.fragment,e),m($e.$$.fragment,e),m(Ce.$$.fragment,e),m(xe.$$.fragment,e),m(ze.$$.fragment,e),il=!1},d(e){e&&(l(Ve),l(_e),l(Ne),l(Ye),l(He),l(Qe),l(G),l(Fe),l(Ae),l($),l(qe),l(Se),l(B),l(Ee),l(Le),l(x),l(De),l(Pe),l(z),l(Ke),l(Oe),l(R),l(et),l(V),l(tt),l(N),l(lt),l(at),l(st),l(Q),l(nt),l(J),l(it),l(F),l(rt),l(j),l(ut),l(A),l(ct),l(pt),l(w),l(ot),l(S),l(dt),l(T),l(mt),l(E),l(Mt),l(U),l(yt),l(L),l(ft),l(bt),l(Jt),l(K),l(jt),l(wt),l(Tt),l(te),l(Ut),l(ht),l(h),l(Zt),l(ae),l(gt),l(vt),l(ne),l(Wt),l(Gt),l(It),l(ue),l($t),l(ce),l(kt),l(pe),l(Bt),l(Ct),l(de),l(xt),l(Xt),l(Me),l(zt),l(_t),l(fe),l(Rt),l(Vt),l(Nt),l(je),l(Yt),l(Ht),l(Te),l(Qt),l(Ft),l(he),l(At),l(qt),l(St),l(ve),l(Et),l(Lt),l(Dt),l(Ie),l(Pt),l(Kt),l(ke),l(Ot),l(Z),l(el),l(Be),l(tl),l(ll),l(al),l(Xe),l(sl),l(nl),l(Re)),l(f),M(g,e),M(v,e),M(W,e),M(I,e),M(k,e),M(C,e),M(X,e),M(_,e),M(Y,e),M(H,e),M(q,e),M(D,e),M(P,e),M(O,e),M(ee,e),M(le,e),M(se,e),M(ie,e),M(re,e),M(oe,e),M(me,e),M(ye,e),M(be,e),M(Je,e),M(we,e),M(Ue,e),M(Ze,e),M(ge,e),M(We,e),M(Ge,e),M($e,e),M(Ce,e),M(xe,e),M(ze,e)}}}const ra='{"title":"Ce să faci când primești o eroare","local":"ce-sa-fac-cand-primesti-o-eroare","sections":[{"title":"Depanarea pipeline-ului din 🤗 Transformers","local":"depanarea-pipeline-ului-din-transformers","sections":[],"depth":2},{"title":"Depanarea forward pass-ului modelului dumneavoastră","local":"depanarea-forward-pass-ului-modelului-dumneavoastra","sections":[],"depth":2}],"depth":1}';function ua(cl){return Kl(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class ya extends Ol{constructor(f){super(),ea(this,f,ua,ia,Dl,{})}}export{ya as component};

Xet Storage Details

Size:
48.1 kB
·
Xet hash:
47e81a7e5743effb79da70d202b28360664e736a1cf783b4d257e5b781e8e0e2

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.