#
Quiz de sfârșit de capitol

Să testăm ce ați învățat în acest capitol!

###
1. În ce ordine ar trebui să citiți un traceback Python?

De sus în jos De jos în sus

###
2. Ce este un exemplu minimal reproductibil?

O implementare simplă a unei arhitecturi Transformer dintr-un articol de cercetare Un bloc de cod compact și autonom care poate fi rulat fără nicio dependență externă de fișiere sau date private O captură de ecran a traceback-ului Python Un notebook care conține întreaga analiză, inclusiv părți care nu sunt legate de eroare

###
3. Să presupunem că încercați să rulați următorul cod, care aruncă o eroare:

    from transformers import GPT3ForSequenceClassification

    # ImportError: cannot import name 'GPT3ForSequenceClassification' from 'transformers' (/Users/lewtun/miniconda3/envs/huggingface/lib/python3.8/site-packages/transformers/__init__.py)
    # ---------------------------------------------------------------------------
    # ImportError                               Traceback (most recent call last)
    # /var/folders/28/k4cy5q7s2hs92xq7_h89_vgm0000gn/T/ipykernel_30848/333858878.py in <module>
    # ----> 1 from transformers import GPT3ForSequenceClassification

    # ImportError: cannot import name 'GPT3ForSequenceClassification' from 'transformers' (/Users/lewtun/miniconda3/envs/huggingface/lib/python3.8/site-packages/transformers/__init__.py)

Care dintre următoarele ar putea fi o alegere bună pentru titlul unui subiect pe forum pentru a cere ajutor?

`ImportError: cannot import name 'GPT3ForSequenceClassification' from 'transformers' (/Users/lewtun/miniconda3/envs/huggingface/lib/python3.8/site-packages/transformers/__init__.py)` Problemă cu `from transformers import GPT3ForSequenceClassification` De ce nu pot importa `GPT3ForSequenceClassification`? Este GPT-3 suportat în 🤗 Transformers?

###
4. Să presupunem că ați încercat să rulați trainer.train() și vă confruntați cu o eroare criptică care nu vă spune exact de unde vine eroarea. Care dintre următoarele este primul loc unde ar trebui să căutați erori în pipeline-ul vostru de antrenament?

Pasul de optimizare unde calculăm gradienții și efectuăm backpropagation Pasul de evaluare unde calculăm metricile Seturile de date Dataloader-ele

###
5. Care este cea mai bună modalitate de a depana o eroare CUDA?

Postați mesajul de eroare pe forumuri sau GitHub. Executați același cod pe CPU. Citiți traceback-ul pentru a afla ce a cauzat eroarea. Reduceți dimensiunea batch-ului. Reporniți kernel-ul Jupyter.

###
6. Care este cea mai bună modalitate de a face ca o problemă pe GitHub să fie reparată?

Postați un exemplu complet reproductibil al bug-ului. Cereți în fiecare zi o actualizare. Inspectați codul sursă din jurul bug-ului și încercați să găsiți motivul pentru care se întâmplă. Postați rezultatele în problemă.

###
7. De ce este supraajustarea pe un batch de obicei o tehnică bună de depanare?

Nu este; supraajustarea este întotdeauna rea și ar trebui evitată. Ne permite să verificăm că modelul este capabil să reducă loss-ul la zero. Ne permite să verificăm că formele tensorilor intrărilor și etichetelor noastre sunt corecte.

###
8. De ce este o idee bună să includeți detalii despre mediul vostru de calcul cu transformers-cli env când creați o problemă nouă în repository-ul 🤗 Transformers?

Le permite întreținătorilor să înțeleagă ce versiune a bibliotecii folosiți. Le permite întreținătorilor să știe dacă rulați cod pe Windows, macOS sau Linux. Le permite întreținătorilor să știe dacă rulați cod pe un GPU sau CPU.
Update on GitHub