Buckets:

rtrm's picture
|
download
raw
12 kB
# Quiz la final de capitol [[quiz-la-final-de-capitol]]
<CourseFloatingBanner
chapter={2}
classNames="absolute z-10 right-0 top-0"
/>
### 1. Care este ordinea pipeline-ului de modelare a limbajului?
<Question
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 tokenizeze textul și îl convertească în ID-uri, astfel încât 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: true
}
]}
/>
### 2. Câte dimensiuni are tensorul generat de modelul Transformer și care sunt acestea?
<Question
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: true
}
]}
/>
### 3. Care dintre următoarele este un exemplu de tokenizare a cuvintelor secundare?
<Question
choices={[
{
text: "WordPiece",
explain: "Da, acesta este un exemplu de tokenizare a cuvintelor secundare!",
correct: true
},
{
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: true
},
{
text: "Unigram",
explain: "Da, acesta este un exemplu de tokenizare a cuvintelor secundare!",
correct: true
},
{
text: "Nimic din cele de mai sus",
explain: "Incorect!"
}
]}
/>
### 4. Ce este un model head?
<Question
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țineheadsde 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: true
}
]}
/>
{#if fw === 'pt'}
### 5. Ce este un AutoModel?
<Question
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: true
},
{
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ă!"
}
]}
/>
{:else}
### 5. Ce este un TFAutoModel?
<Question
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: true
},
{
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ă!"
}
]}
/>
{/if}
### 6. Care sunt tehnicile de care trebuie să țineți cont atunci când grupați secvențe de diferite lungimi?
<Question
choices={[
{
text: "Trunchierea",
explain: "Da, trunchierea este o modalitate corectă de a uniformiza secvențele astfel încât acestea se încadreze într-o formă dreptunghiulară. Este totuși singura modalitate?",
correct: true
},
{
text: "Returning tensors",
explain: "Deși celelalte tehnici permit 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 se potrivească într-o formă dreptunghiulară. Este, însă, singura?",
correct: true
},
{
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 țineți cont.",
correct: true
}
]}
/>
### 7. Care este scopul aplicării unei funcții SoftMax asupra logit-urilor produse de un model de clasificare a secvențelor?
<Question
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 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: true
},
{
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: true
}
]}
/>
### 8. În jurul cărei metode se concentrează cea mai mare parte a API-ului tokenizer?
<Question
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: true
},
{
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."
}
]}
/>
### 9. Ce conține variabila `result` în acest exemplu de cod?
```py
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
result = tokenizer.tokenize("Hello!")
```
<Question
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: true
},
{
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."
}
]}
/>
{#if fw === 'pt'}
### 10. Este ceva greșit în următorul cod?
```py
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
model = AutoModel.from_pretrained("gpt2")
encoded = tokenizer("Hey!", return_tensors="pt")
result = model(**encoded)
```
<Question
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 interpreteze ieșirea acestui tokenizator, așa ieșirea modelului (dacă va rula chiar!) nu va avea sens."
},
{
text: "Tokenizerul și modelul trebuie provină întotdeauna din același checkpoint.",
explain: "Corect!",
correct: true
},
{
text: "Este o bună practică folosiți trunchierea și padding-ul cu tokenizatorul, întrucât fiecare intrare este un lot.",
explain: "Este adevărat orice intrare de model are nevoie 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."
}
]}
/>
{:else}
### 10. Este ceva greșit în următorul cod?
```py
from transformers import AutoTokenizer, TFAutoModel
tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
model = TFAutoModel.from_pretrained("gpt2")
encoded = tokenizer("Hey!", return_tensors="pt")
result = model(**encoded)
```
<Question
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 interpreteze ieșirea acestui tokenizator, așa ieșirea modelului (dacă va rula chiar!) nu va avea sens."
},
{
text: "Tokenizerul și modelul trebuie provină întotdeauna din același checkpoint.",
explain: "Corect!",
correct: true
},
{
text: "Este o bună practică folosiți trunchierea și padding-ul cu tokenizatorul, întrucât fiecare intrare este un lot.",
explain: "Este adevărat orice intrare de model trebuie 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."
}
]}
/>
{/if}
<EditOnGithub source="https://github.com/huggingface/course/blob/main/chapters/ro/chapter2/9.mdx" />

Xet Storage Details

Size:
12 kB
·
Xet hash:
c328fd00759cc11e0740d009db4c6be497bf5959eed6e06615fc6d72758ba318

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