Buckets:
| <meta charset="utf-8" /><meta name="hf:doc:metadata" content="{"title":"Contribuie la 🤗 Transformers","local":"contribuie-la--transformers","sections":[{"title":"Politica privind code agents","local":"politica-privind-code-agents","sections":[],"depth":2},{"title":"Bine ai venit în comunitatea 🤗 Transformers!","local":"bine-ai-venit-în-comunitatea--transformers","sections":[],"depth":2},{"title":"Modalități de a contribui","local":"modalități-de-a-contribui","sections":[],"depth":2},{"title":"Remedierea problemelor existente","local":"remedierea-problemelor-existente","sections":[],"depth":2},{"title":"Trimiterea unui issue legat de bug sau a unei cereri de funcție","local":"trimiterea-unui-issue-legat-de-bug-sau-a-unei-cereri-de-funcție","sections":[{"title":"Ai găsit un bug?","local":"ai-găsit-un-bug","sections":[],"depth":3},{"title":"Vrei o funcție nouă?","local":"vrei-o-funcție-nouă","sections":[],"depth":3}],"depth":2},{"title":"Vrei să implementezi un model nou?","local":"vrei-să-implementezi-un-model-nou","sections":[{"title":"Lista de verificare pentru contribuții de modele viziune-limbaj","local":"lista-de-verificare-pentru-contribuții-de-modele-viziune-limbaj","sections":[{"title":"Listă de verificare copiabilă pentru maintaineri","local":"listă-de-verificare-copiabilă-pentru-maintaineri","sections":[],"depth":4}],"depth":3}],"depth":2},{"title":"Vrei să adaugi documentație?","local":"vrei-să-adaugi-documentație","sections":[],"depth":2},{"title":"Programare cu AI agents","local":"programare-cu-ai-agents","sections":[],"depth":2},{"title":"Crearea unui Pull Request","local":"crearea-unui-pull-request","sections":[{"title":"Contribuții asistate de AI și agentice","local":"contribuții-asistate-de-ai-și-agentice","sections":[],"depth":3},{"title":"Lista de verificare pentru pull request","local":"lista-de-verificare-pentru-pull-request","sections":[],"depth":3},{"title":"Teste","local":"teste","sections":[],"depth":3},{"title":"Ghid de stil","local":"ghid-de-stil","sections":[],"depth":3},{"title":"Development pe Windows","local":"development-pe-windows","sections":[],"depth":3},{"title":"Sincronizarea unui repository fork cu upstream main (repository-ul Hugging Face)","local":"sincronizarea-unui-repository-fork-cu-upstream-main-repository-ul-hugging-face","sections":[],"depth":3}],"depth":2}],"depth":1}"/> | |
| <link href="/docs/transformers/main/ro/_app/immutable/entry/start.Cj0_j3du.js" rel="modulepreload"> | |
| <link href="/docs/transformers/main/ro/_app/immutable/chunks/CUCuKvpH.js" rel="modulepreload"> | |
| <link href="/docs/transformers/main/ro/_app/immutable/chunks/Dm_uEeBC.js" rel="modulepreload"> | |
| <link href="/docs/transformers/main/ro/_app/immutable/entry/app.2x2TdrVN.js" rel="modulepreload"> | |
| <link href="/docs/transformers/main/ro/_app/immutable/chunks/BFzpZI28.js" rel="modulepreload"> | |
| <link href="/docs/transformers/main/ro/_app/immutable/chunks/DM0RASQS.js" rel="modulepreload"> | |
| <link href="/docs/transformers/main/ro/_app/immutable/chunks/DsnmJJEf.js" rel="modulepreload"> | |
| <link href="/docs/transformers/main/ro/_app/immutable/chunks/DJ5hodCp.js" rel="modulepreload"> | |
| <link href="/docs/transformers/main/ro/_app/immutable/chunks/GYau11Sm.js" rel="modulepreload"> | |
| <link href="/docs/transformers/main/ro/_app/immutable/nodes/0.BonRETMf.js" rel="modulepreload"> | |
| <link href="/docs/transformers/main/ro/_app/immutable/chunks/B1k23FAg.js" rel="modulepreload"> | |
| <link href="/docs/transformers/main/ro/_app/immutable/chunks/utTYfj_T.js" rel="modulepreload"> | |
| <link href="/docs/transformers/main/ro/_app/immutable/nodes/8.Bz27DTyh.js" rel="modulepreload"> | |
| <link href="/docs/transformers/main/ro/_app/immutable/chunks/BcKuJYrM.js" rel="modulepreload"> | |
| <link href="/docs/transformers/main/ro/_app/immutable/chunks/BGhUAj7r.js" rel="modulepreload"> | |
| <!--122tzrt--><meta name="hf:doc:metadata" content="{"title":"Contribuie la 🤗 Transformers","local":"contribuie-la--transformers","sections":[{"title":"Politica privind code agents","local":"politica-privind-code-agents","sections":[],"depth":2},{"title":"Bine ai venit în comunitatea 🤗 Transformers!","local":"bine-ai-venit-în-comunitatea--transformers","sections":[],"depth":2},{"title":"Modalități de a contribui","local":"modalități-de-a-contribui","sections":[],"depth":2},{"title":"Remedierea problemelor existente","local":"remedierea-problemelor-existente","sections":[],"depth":2},{"title":"Trimiterea unui issue legat de bug sau a unei cereri de funcție","local":"trimiterea-unui-issue-legat-de-bug-sau-a-unei-cereri-de-funcție","sections":[{"title":"Ai găsit un bug?","local":"ai-găsit-un-bug","sections":[],"depth":3},{"title":"Vrei o funcție nouă?","local":"vrei-o-funcție-nouă","sections":[],"depth":3}],"depth":2},{"title":"Vrei să implementezi un model nou?","local":"vrei-să-implementezi-un-model-nou","sections":[{"title":"Lista de verificare pentru contribuții de modele viziune-limbaj","local":"lista-de-verificare-pentru-contribuții-de-modele-viziune-limbaj","sections":[{"title":"Listă de verificare copiabilă pentru maintaineri","local":"listă-de-verificare-copiabilă-pentru-maintaineri","sections":[],"depth":4}],"depth":3}],"depth":2},{"title":"Vrei să adaugi documentație?","local":"vrei-să-adaugi-documentație","sections":[],"depth":2},{"title":"Programare cu AI agents","local":"programare-cu-ai-agents","sections":[],"depth":2},{"title":"Crearea unui Pull Request","local":"crearea-unui-pull-request","sections":[{"title":"Contribuții asistate de AI și agentice","local":"contribuții-asistate-de-ai-și-agentice","sections":[],"depth":3},{"title":"Lista de verificare pentru pull request","local":"lista-de-verificare-pentru-pull-request","sections":[],"depth":3},{"title":"Teste","local":"teste","sections":[],"depth":3},{"title":"Ghid de stil","local":"ghid-de-stil","sections":[],"depth":3},{"title":"Development pe Windows","local":"development-pe-windows","sections":[],"depth":3},{"title":"Sincronizarea unui repository fork cu upstream main (repository-ul Hugging Face)","local":"sincronizarea-unui-repository-fork-cu-upstream-main-repository-ul-hugging-face","sections":[],"depth":3}],"depth":2}],"depth":1}"/><!----> | |
| <link href="/docs/transformers/main/ro/_app/immutable/assets/0.tn0RQdqM.css" rel="modulepreload"> <!--[--><!--[0--><!--[--><!--[0--><!--[--><!--[--><p></p> <div class="items-center shrink-0 min-w-[100px] max-sm:min-w-[50px] justify-end ml-auto flex" style="float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"><div class="inline-flex rounded-md max-sm:rounded-sm"><button class="inline-flex items-center gap-1 h-7 max-sm:h-7 px-2 max-sm:px-1.5 text-sm font-medium text-gray-800 border border-r-0 rounded-l-md max-sm:rounded-l-sm border-gray-200 bg-white hover:shadow-inner dark:border-gray-850 dark:bg-gray-950 dark:text-gray-200 dark:hover:bg-gray-800" aria-live="polite"><span class="inline-flex items-center justify-center rounded-md p-0.5 max-sm:p-0 hover:text-gray-800 dark:hover:text-gray-200"><svg class="sm:size-3.5 size-3" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----></span> <span>Copy page</span></button> <button class="inline-flex items-center justify-center w-6 max-sm:w-5 h-7 max-sm:h-7 disabled:pointer-events-none text-sm text-gray-500 hover:text-gray-700 dark:hover:text-white rounded-r-md max-sm:rounded-r-sm border border-l transition border-gray-200 bg-white hover:shadow-inner dark:border-gray-850 dark:bg-gray-950 dark:text-gray-200 dark:hover:bg-gray-800" aria-haspopup="menu" aria-expanded="false" aria-label="Open copy menu"><svg class="transition-transform text-gray-400 overflow-visible sm:size-3.5 size-3 rotate-0" width="1em" height="1em" viewBox="0 0 12 7" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L6 6L11 1" stroke="currentColor"></path></svg><!----></button></div> <!--[-1--><!--]--></div><!----> <!--[0--><h1 class="relative group"><a id="contribuie-la--transformers" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#contribuie-la--transformers"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span>Contribuie la 🤗 Transformers</span></h1><!--]--><!----> <!--[1--><h2 class="relative group"><a id="politica-privind-code-agents" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#politica-privind-code-agents"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span>Politica privind code agents</span></h2><!--]--><!----> <blockquote class="warning"><p>Repository-ul Transformers este copleșit de un număr mare de PR-uri și comentarii la issues scrise de | |
| code agents. Suntem în prezent blocați de capacitatea noastră de a le revizui și a răspunde la ele. Prin urmare, <strong>îi rugăm pe utilizatorii noi să nu trimită PR-uri realizate exclusiv de code agents</strong> în acest moment. | |
| Poți folosi code agents pentru a schița sau pentru a te ajuta să diagnostichezi probleme. De asemenea, îi rugăm pe agenții autonomi | |
| să nu deschidă niciun PR sau issue pentru moment.</p> <p>PR-urile care par să fi fost scrise în întregime de agenți vor fi probabil închise fără să fie revizuite, iar utilizatorii care fac aceasta | |
| în mod repetat sau malițios pot fi blocați.</p></blockquote> <details><summary>Filozofia noastră privind code agents în detaliu</summary> <p>Înțelegem că code agents sunt instrumente extrem de puternice, iar mulți oameni de la Hugging Face le utilizează în munca lor. | |
| Cu toate acestea, este important să realizezi că <strong>dacă pur și simplu rulezi un code agent | |
| și generezi un PR la un proiect open-source, ești doar un intermediar între revizori și agent</strong>. | |
| Deși aceasta creează ceva care arată foarte mult ca o contribuție utilă, în realitate nu era niciun motiv | |
| pentru care să fii implicat; revizorii ar fi putut pur și simplu să ruleze ei înșiși code agent-ul.</p> <p>Dacă vrei să contribui util la open-source în era agenților, <strong>trebuie să faci lucruri pe care agenții nu le pot face singuri</strong>. | |
| În special, am constatat că următoarele sunt foarte utile:</p> <ul><li>Diagnosticarea clară a bug-urilor. Code agents tind să rezolve rapid problemele cu o soluție de avarie care adesea cauzează | |
| bloat de cod sau incompatibilități cu alte modele. A petrece timp pentru a urmări cauza exactă a unei probleme, și în special | |
| localizarea primului commit în care a apărut (de exemplu cu <a href="https://git-scm.com/docs/git-bisect" rel="nofollow">git bisect</a>) este valoros.</li> <li>Minimizează diff-ul. Verifică-ți PR-ul pentru a elimina orice modificări inutile. Asigură-te că nu ai făcut commit la niciun | |
| script de testare sau fișiere fără legătură. Adaugă comentarii doar dacă sunt cu adevărat necesare; code agents adoră să adauge | |
| trei noi funcții și comentarii pe mai multe linii pentru a atrage atenția asupra muncii grele pe care au depus-o. Dacă PR-ul tău | |
| poate fi o corecție pe 1 linie, fă-l o corecție pe 1 linie. Aceasta face PR-ul mult mai ușor de revizuit și îmbunătățește șansele ca acesta să fie acceptat.</li> <li>Ia-ți timp să reproduci problema. Foarte des când un utilizator raportează o problemă, aceasta este de fapt cauzată de probleme | |
| de mediu pe mașina sa, sau diagnostichează greșit problema și sugerează o soluție invalidă. Mulți code agents au prea multă | |
| încredere în comentariile utilizatorilor, ceea ce rezultă în soluții proaste, uneori pentru probleme care | |
| nu există! Scrierea unui script simplu de reproducere și rularea lui pentru a te asigura că vezi problema este valoroasă.</li> <li>Compară cu alte modele. Repository-ul Transformers este foarte mare, iar multe modele fac lucruri similare. Când | |
| corectezi un bug, este valoros să verifici dacă bug-ul există și în alte modele. Dacă PR-ul tău spune | |
| “rezolvat folosind aceeași abordare ca (alt model)”, cu un link la codul relevant, aceasta este foarte utilă pentru maintaineri, | |
| deoarece ne spune că corectura este probabil corectă și compatibilă cu restul codebase-ului. Code agents privesc adesea | |
| codul “în mod restrâns” și fac o corecție care determină modelele să divergă de la restul codebase-ului.</li> <li>Evită PR-urile mici sau de tip “busywork”. În trecut le acceptam, dar dat fiind actualul aflux, pur și simplu nu | |
| avem timp pentru mici modificări de stil sau corectarea typo-urilor din comentarii. Poți oferi valoare dincolo de un code | |
| agent pur și simplu prin a avea bun gust în privința a ceea ce este cu adevărat important.</li> <li>Verifică testele local și în CI. Înainte de a deschide un PR, rulează <code>make fix-repo</code> și folosește <code>utils/tests_fetcher.py</code> pentru | |
| a vedea o listă de teste care acoperă fișierele pe care le-ai modificat în branch-ul PR-ului tău. Rulează acele teste local și asigură-te | |
| că trec înainte de a deschide un PR. După ce deschizi PR-ul, verifică că CI-ul este verde și rezolvă orice probleme înainte | |
| de a contacta pe cineva pentru revizuire! Aceasta reduce mult spam-ul de notificări, ceea ce menține maintainerii sănătoși.</li></ul> <p>Te rugăm să ții cont că aceasta este o eră interesantă, în schimbare rapidă, dar provocatoare pentru dezvoltarea open-source, și într-adevăr | |
| pentru industria software în ansamblu. Vom actualiza probabil rapid aceste ghiduri pe măsură ce învățăm mai multe despre | |
| gestionarea eficientă a code agents. Ai răbdare cu noi dacă revizuirile sunt mai lente decât de obicei, sau dacă unele | |
| PR-uri sunt închise fără revizuire!</p></details> <!--[1--><h2 class="relative group"><a id="bine-ai-venit-în-comunitatea--transformers" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#bine-ai-venit-în-comunitatea--transformers"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span>Bine ai venit în comunitatea 🤗 Transformers!</span></h2><!--]--><!----> <p>Toată lumea este binevenită să contribuie, iar noi apreciem contribuția fiecăruia. Contribuțiile de cod | |
| nu sunt singura modalitate de a ajuta comunitatea. Răspunsurile la întrebări, ajutorarea altora | |
| și îmbunătățirea documentației sunt de asemenea valori imense.</p> <p>Ne ajutați și dacă răspândiți vestea! Menționați biblioteca în postările de blog | |
| despre proiectele extraordinare pe care le-a făcut posibile, postați pe Twitter de fiecare dată când v-a | |
| ajutat, sau pur și simplu acordați o ⭐️ repository-ului pentru a spune mulțumesc.</p> <p>Indiferent cum alegi să contribui, te rugăm să fii atent și să respecți <a href="https://github.com/huggingface/transformers/blob/main/CODE_OF_CONDUCT.md" rel="nofollow">codul nostru de conduită</a>.</p> <p><strong>Acest ghid a fost puternic inspirat de minunatul <a href="https://github.com/scikit-learn/scikit-learn/blob/main/CONTRIBUTING.md" rel="nofollow">ghid scikit-learn pentru contribuții</a>.</strong></p> <!--[1--><h2 class="relative group"><a id="modalități-de-a-contribui" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#modalități-de-a-contribui"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span>Modalități de a contribui</span></h2><!--]--><!----> <p>Există mai multe moduri în care poți contribui la 🤗 Transformers:</p> <ul><li>Remediază problemele existente în codul curent.</li> <li>Trimite issues legate de bug-uri sau funcții noi dorite.</li> <li>Implementează modele noi.</li> <li>Contribuie la exemple sau la documentație.</li></ul> <p>Dacă nu știi de unde să începi, există o listă specială <a href="https://github.com/huggingface/transformers/contribute" rel="nofollow">Good First | |
| Issue</a>. Aceasta îți va oferi o listă de | |
| issues deschise prietenoase pentru începători și te va ajuta să începi să contribui la open-source. Cel mai bun mod de a face aceasta este să deschizi un Pull Request și să îl legi de issue-ul la care vrei să lucrezi. Încercăm să acordăm prioritate PR-urilor deschise deoarece putem urmări cu ușurință progresul corecturii, iar dacă contribuitorul nu mai are timp, altcineva poate prelua PR-ul.</p> <p>Pentru ceva puțin mai provocator, poți arunca și o privire la lista <a href="https://github.com/huggingface/transformers/labels/Good%20Second%20Issue" rel="nofollow">Good Second Issue</a>. În general, dacă simți că știi ce faci, mergi înainte și te vom ajuta să ajungi acolo! 🚀</p> <blockquote><p>Toate contribuțiile sunt la fel de valoroase pentru comunitate. 🥰</p></blockquote> <!--[1--><h2 class="relative group"><a id="remedierea-problemelor-existente" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#remedierea-problemelor-existente"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span>Remedierea problemelor existente</span></h2><!--]--><!----> <p>Dacă observi o problemă în codul existent și ai o soluție în minte, nu ezita să <a href="#crearea-unui-pull-request">începi să contribui</a> și deschide un Pull Request!</p> <!--[1--><h2 class="relative group"><a id="trimiterea-unui-issue-legat-de-bug-sau-a-unei-cereri-de-funcție" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#trimiterea-unui-issue-legat-de-bug-sau-a-unei-cereri-de-funcție"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span>Trimiterea unui issue legat de bug sau a unei cereri de funcție</span></h2><!--]--><!----> <p>Fă tot posibilul să urmezi aceste ghiduri când trimiți un issue legat de bug sau o cerere de funcție. Aceasta ne va face mai ușor să revenim la tine rapid și cu feedback bun.</p> <!--[2--><h3 class="relative group"><a id="ai-găsit-un-bug" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#ai-găsit-un-bug"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span>Ai găsit un bug?</span></h3><!--]--><!----> <p>Biblioteca 🤗 Transformers este robustă și fiabilă datorită utilizatorilor care raportează problemele pe care le întâmpină.</p> <p>Înainte de a raporta un issue, am aprecia cu adevărat dacă ai putea <strong>să te asiguri că bug-ul nu a fost deja raportat</strong> (folosește bara de căutare pe GitHub la Issues). Issue-ul tău ar trebui să fie legat și de bug-uri din bibliotecă în sine, nu din codul tău. Dacă nu ești sigur dacă bug-ul este în codul tău sau în bibliotecă, te rugăm să întrebi mai întâi în <a href="https://discuss.huggingface.co/" rel="nofollow">forum</a> sau pe <a href="https://discord.com/invite/hugging-face-879548962464493619" rel="nofollow">Discord-ul</a> nostru. Aceasta ne ajută să răspundem mai rapid la problemele legate de bibliotecă față de întrebările generale.</p> <blockquote class="tip"><p>Avem un <a href="https://huggingface.co/spaces/huggingchat/hf-docs-chat" rel="nofollow">bot de documentație</a> și te încurajăm să adresezi toate întrebările acolo. Există întotdeauna posibilitatea ca bug-ul tău să poată fi rezolvat cu un simplu flag 👾🔫</p></blockquote> <p>Odată ce ai confirmat că bug-ul nu a fost deja raportat, te rugăm să incluzi următoarele informații în issue-ul tău pentru ca să îl putem rezolva rapid:</p> <ul><li><strong>Tipul și versiunea OS</strong>-ului tău, și versiunile <strong>Python</strong> și <strong>PyTorch</strong> când este cazul.</li> <li>Un snippet de cod scurt, independent, care ne permite să reproducem bug-ul în | |
| mai puțin de 30s.</li> <li>Traceback-ul <em>complet</em> dacă este aruncată o excepție.</li> <li>Atașează orice alte informații suplimentare, precum screenshots, pe care crezi că ar putea ajuta.</li></ul> <p>Pentru a obține automat versiunile OS și software, rulează următoarea comandă:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->transformers <span class="hljs-built_in">env</span><!----></pre></div><!----> <p>Poți rula, de asemenea, aceeași comandă din rădăcina repository-ului:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->python src/transformers/commands/transformers_cli.py <span class="hljs-built_in">env</span><!----></pre></div><!----> <!--[2--><h3 class="relative group"><a id="vrei-o-funcție-nouă" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#vrei-o-funcție-nouă"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span>Vrei o funcție nouă?</span></h3><!--]--><!----> <p>Dacă există o funcție nouă pe care ai dori să o vezi în 🤗 Transformers, te rugăm să deschizi un issue și să descrii:</p> <ol><li><p>Care este <em>motivația</em> din spatele acestei funcții? Este legată de o problemă sau frustrare cu biblioteca? Este o funcție legată de ceva de care ai nevoie pentru un proiect? Este ceva la care ai lucrat și crezi că ar putea beneficia comunitatea?</p> <p>Indiferent ce este, am dori să aflăm despre aceasta!</p></li> <li><p>Descrie funcția solicitată cu cât mai multe detalii posibil. Cu cât poți să ne spui mai multe despre aceasta, cu atât mai bine te putem ajuta.</p></li> <li><p>Furnizează un <em>snippet de cod</em> care demonstrează utilizarea funcției.</p></li> <li><p>Dacă funcția este legată de un articol, te rugăm să incluzi un link.</p></li></ol> <p>Dacă issue-ul tău este bine scris, suntem deja la 80% din drum până la momentul în care îl creezi.</p> <p>Am adăugat <a href="https://github.com/huggingface/transformers/tree/main/templates" rel="nofollow">template-uri</a> pentru a te ajuta să începi cu issue-ul tău.</p> <!--[1--><h2 class="relative group"><a id="vrei-să-implementezi-un-model-nou" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#vrei-să-implementezi-un-model-nou"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span>Vrei să implementezi un model nou?</span></h2><!--]--><!----> <p>Modele noi sunt lansate constant și dacă vrei să implementezi un model nou, te rugăm să furnizezi următoarele informații:</p> <ul><li>O scurtă descriere a modelului și un link la articol.</li> <li>Link la implementare dacă este open-source.</li> <li>Link la model weights dacă sunt disponibile.</li></ul> <p>Dacă ești dispus să contribui modelul tu însuți, anunță-ne pentru ca să te putem ajuta să îl adaugi la 🤗 Transformers!</p> <p>Avem un ghid tehnic pentru <a href="https://huggingface.co/docs/transformers/modular_transformers" rel="nofollow">cum să adaugi un model la 🤗 Transformers</a>.</p> <!--[2--><h3 class="relative group"><a id="lista-de-verificare-pentru-contribuții-de-modele-viziune-limbaj" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#lista-de-verificare-pentru-contribuții-de-modele-viziune-limbaj"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span>Lista de verificare pentru contribuții de modele viziune-limbaj</span></h3><!--]--><!----> <p>Dacă vrei să contribui cu un <strong>model viziune-limbaj</strong> (sau orice model multimodal care procesează imagini/videoclipuri), te rugăm să urmezi această listă de verificare. Maintainerii o vor folosi pentru a revizui PR-ul tău, iar completarea acestor pași va crește semnificativ probabilitatea ca PR-ul tău să fie merged rapid.</p> <p><strong>Listă de verificare obligatorie pentru toate contribuțiile de modele viziune-limbaj:</strong></p> <p>☐ <strong>1. Implementează un fișier modular</strong></p> <p>Toate modelele noi ar trebui să folosească pattern-ul de arhitectură modulară. Creează un fișier <code>modular_<model_name>.py</code> folosind convertorul de modele modular:</p> <ul><li>Folosește CLI-ul, <a href="https://github.com/huggingface/transformers/blob/main/src/transformers/cli/add_new_model_like.py" rel="nofollow"><code>transformers add-new-model-like</code></a> pentru a genera un schelet modular și a începe</li> <li>Tot codul ar trebui să fie în fișierul modular dacă este posibil. Modelarea trebuie să fie în acesta, este preferat ca și configurația să fie în acesta. <a href="https://huggingface.co/docs/transformers/modular_transformers#implementing-a-modular-file" rel="nofollow">Ghidul modular</a> arată o modalitate rapidă de a configura un fișier modular.</li> <li>Reutilizează pattern-urile existente din modele similare pe cât posibil</li> <li>Poți face modelul compatibil cu motoare de inferență precum vLLM sau SGLang și activa integrarea fără efort. Consultă cerințele specifice pentru implementarea modelului în <a href="https://huggingface.co/docs/transformers/transformers_as_backend#multimodal-models" rel="nofollow">“Transformers modeling backend”</a></li></ul> <p>Pentru a verifica că fișierul tău modular este corect, rulează:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->python utils/modular_model_converter.py <model_name><!----></pre></div><!----> <p>Aceasta va genera fișierele separate (<code>modeling_*.py</code>, <code>configuration_*.py</code>, etc.) din fișierul tău modular. CI-ul va impune că aceste fișiere generate corespund fișierului tău modular.</p> <p>☐ <strong>2. Adaugă procesoare de imagini (pentru modele de imagini)</strong></p> <p>Dacă modelul tău procesează imagini, implementează atât un procesor suportat de torchvision (implicit, accelerat GPU) cât și un procesor suportat de PIL (alternativa):</p> <ul><li>Procesorul backend torchvision (<code><Model>ImageProcessor</code>) moștenește din <code>TorchvisionBackend</code> și se află în <code>image_processing_<model>.py</code></li> <li>Procesorul backend PIL (<code><Model>ImageProcessorPil</code>) moștenește din <code>PilBackend</code> și se află în <code>image_processing_pil_<model>.py</code></li> <li>Ambele sunt importate din <code>image_processing_backends</code>; clasa PIL kwargs este definită în fișierul torchvision și importată de fișierul PIL</li> <li>Consultă ghidul detaliat în <a href="https://github.com/huggingface/transformers/blob/main/IMAGE_PROCESSOR_REFACTORING_GUIDE.md" rel="nofollow">IMAGE_PROCESSOR_REFACTORING_GUIDE.md</a></li> <li>Exemple: <code>CLIPImageProcessor</code> / <code>CLIPImageProcessorPil</code>, <code>DonutImageProcessor</code> / <code>DonutImageProcessorPil</code></li></ul> <p>☐ <strong>3. Creează un script de conversie a weights</strong></p> <p>Adaugă un script <code>convert_<model_name>_to_hf.py</code> care convertește weights originale ale modelului în formatul HuggingFace:</p> <ul><li>Scriptul ar trebui să gestioneze încărcarea checkpoint-ului, maparea cheilor și salvarea în format HF</li> <li>Include exemple de utilizare și documentație în script</li> <li>Exemple: <a href="https://github.com/huggingface/transformers/blob/main/src/transformers/models/llava_onevision/convert_llava_onevision_weights_to_hf.py" rel="nofollow"><code>convert_llava_onevision_weights_to_hf.py</code></a>, <a href="https://github.com/huggingface/transformers/blob/main/src/transformers/models/idefics2/convert_idefics2_weights_to_hf.py" rel="nofollow"><code>convert_idefics2_weights_to_hf.py</code></a></li></ul> <p>☐ <strong>4. Adaugă teste de integrare cu potrivire exactă a output-urilor</strong></p> <p>Cel puțin, adaugă o clasă <code>IntegrationTest</code> care testează generarea end-to-end (procesare și modelare) cu potrivire <strong>exactă</strong> a output-urilor:</p> <ul><li>Pentru modele generative: testează că textul generat corespunde exact output-ului așteptat</li> <li>Pentru modele non-generative: testează că logit-urile de output corespund valorilor așteptate</li> <li>Testele ar trebui să folosească checkpoint-uri reale (încarcă în 4-bit sau jumătate de precizie dacă checkpoint-ul este prea mare pentru CI runnerii noștri) și input-uri reale</li> <li>Pattern exemplu:</li></ul> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-python "><!----><span class="hljs-keyword">class</span> <span class="hljs-title class_">MyModelIntegrationTest</span>(unittest.TestCase): | |
| <span class="hljs-meta"> @slow</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">test_model_integration</span>(<span class="hljs-params">self</span>): | |
| model = MyModelForConditionalGeneration.from_pretrained(<span class="hljs-string">"org/model-name"</span>) | |
| processor = AutoProcessor.from_pretrained(<span class="hljs-string">"org/model-name"</span>) | |
| inputs = processor(images=image, text=prompt, return_tensors=<span class="hljs-string">"pt"</span>) | |
| output = model.generate(**inputs, max_new_tokens=<span class="hljs-number">20</span>) | |
| EXPECTED_TEXT = <span class="hljs-string">"exact expected output"</span> | |
| <span class="hljs-variable language_">self</span>.assertEqual(processor.decode(output[<span class="hljs-number">0</span>]), EXPECTED_TEXT)<!----></pre></div><!----> <p>Consultă <code>tests/models/llava_onevision/test_modeling_llava_onevision.py</code> pentru exemple complete.</p> <p>☐ <strong>5. Actualizează documentația</strong></p> <p>Adaugă sau actualizează documentația modelului:</p> <ul><li>Creează dacă CLI-ul nu a creat <code>docs/source/en/model_doc/<model_name>.md</code> cu exemple de utilizare</li> <li>Include descrierea modelului, link la articol și utilizarea de bază cu <code>Pipeline</code> și <code>AutoModel</code></li> <li>Adaugă modelul la fișierele TOC corespunzătoare</li></ul> <p>☐ <strong>6. Caută pattern-uri reutilizabile</strong></p> <p>Biblioteca are 400+ modele cu multe pattern-uri stabilite:</p> <ul><li>Caută modele similare (e.g., alte modele viziune-limbaj)</li> <li>Reutilizează mecanisme de attention, implementări de layers și pattern-uri de procesare</li> <li>Verifică modele precum LLaVA, Idefics2, Fuyu pentru pattern-uri viziune-limbaj</li> <li>Folosește decoratorii furnizați precum (<code>auto_docstring</code>, <code>can_return_tuple</code>, <code>capture_outputs</code>, <code>merge_with_config_defaults</code> și <code>_can_record_outputs</code>) unde este relevant.</li> <li>Nu reinventa roata</li></ul> <p>☐ <strong>7. Rulează verificările de calitate și citește output-ul</strong></p> <p>Înainte de a trimite PR-ul tău, instalează dependencies pentru calitate și rulează suita completă de verificări:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->pip install -e <span class="hljs-string">".[quality]"</span> | |
| make style<!----></pre></div><!----> <p><strong>Important</strong>: Ia-ți timp să citești output-ul <code>make style</code>. Acesta va:</p> <ul><li>Linta și formata automat codul tău</li> <li>Rula verificări de consistență (importuri, docstrings, etc.)</li> <li>Afișa orice probleme rămase care necesită corecturi manuale</li></ul> <p>Toate verificările trebuie să treacă înainte ca PR-ul tău să poată fi merged.</p> <p><strong>Dacă această listă de verificare este completă, PR-ul tău are o probabilitate foarte mare de a fi merged!</strong> Urmarea acestor pași face munca maintainerilor mult mai ușoară și va reduce numărul de iterații de revizuire, ducând munca ta importantă acolo mai repede.</p> <!--[3--><h4 class="relative group"><a id="listă-de-verificare-copiabilă-pentru-maintaineri" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#listă-de-verificare-copiabilă-pentru-maintaineri"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span>Listă de verificare copiabilă pentru maintaineri</span></h4><!--]--><!----> <p>Iată o versiune condensată pe care maintainerii o pot copia în PR-uri:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-markdown "><!----><span class="hljs-section">## Multimodal Model Addition Checklist</span> | |
| Please ensure your PR completes all following items. See the [<span class="hljs-string">full checklist</span>](<span class="hljs-link">https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#vision-language-model-contribution-checklist</span>) for details. | |
| <span class="hljs-bullet">-</span> [ ] <span class="hljs-strong">**Modular file**</span>: <span class="hljs-code">`modular_<model_name>.py`</span> implemented and verified with <span class="hljs-code">`python utils/modular_model_converter.py <model_name>`</span> | |
| <span class="hljs-bullet">-</span> [<span class="hljs-string"> </span>] <span class="hljs-strong">**Image processors**</span>: Torchvision backend (<span class="hljs-code">`<Model>ImageProcessor`</span> from <span class="hljs-code">`TorchvisionBackend`</span>) and PIL backend (<span class="hljs-code">`<Model>ImageProcessorPil`</span> from <span class="hljs-code">`PilBackend`</span>) both implemented (see [<span class="hljs-string">IMAGE_PROCESSOR_REFACTORING_GUIDE.md</span>](<span class="hljs-link">https://github.com/huggingface/transformers/blob/main/IMAGE_PROCESSOR_REFACTORING_GUIDE.md</span>)) | |
| <span class="hljs-bullet">-</span> [ ] <span class="hljs-strong">**Conversion script**</span>: <span class="hljs-code">`convert_<model_name>_to_hf.py`</span> added with usage examples | |
| <span class="hljs-bullet">-</span> [ ] <span class="hljs-strong">**Integration tests**</span>: End-to-end tests with exact output matching (text or logits) | |
| <span class="hljs-bullet">-</span> [ ] <span class="hljs-strong">**Documentation**</span>: Model docs added/updated in <span class="hljs-code">`docs/source/en/model_doc/`</span> | |
| <span class="hljs-bullet">-</span> [ ] <span class="hljs-strong">**Pattern reuse**</span>: Verified against similar models (LLaVA, Idefics2, etc.) | |
| <span class="hljs-bullet">-</span> [ ] <span class="hljs-strong">**Quality checks**</span>: <span class="hljs-code">`make style`</span> passes with no errors | |
| <!----></pre></div><!----> <!--[1--><h2 class="relative group"><a id="vrei-să-adaugi-documentație" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#vrei-să-adaugi-documentație"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span>Vrei să adaugi documentație?</span></h2><!--]--><!----> <p>Căutăm mereu îmbunătățiri ale documentației care să o facă mai clară și mai exactă. Te rugăm să ne anunți cum poate fi îmbunătățită documentația, precum typo-uri și orice conținut care lipsește, este neclar sau inexact. Vom fi bucuroși să facem modificările sau să te ajutăm să faci o contribuție dacă ești interesat!</p> <p>Pentru mai multe detalii despre cum să generezi, construiești și scrii documentația, aruncă o privire la <a href="https://github.com/huggingface/transformers/tree/main/docs" rel="nofollow">README-ul</a> documentației.</p> <!--[1--><h2 class="relative group"><a id="programare-cu-ai-agents" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#programare-cu-ai-agents"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span>Programare cu AI agents</span></h2><!--]--><!----> <p>Acest repository păstrează configurația AI agent în <code>.ai/</code> și expune fișierele locale de agent prin symlinks.</p> <p>Skills-urile pot fi expuse agenților rulând <code>make codex</code> sau <code>make claude</code></p> <p>Cursor citește <code>AGENTS.md</code> și citește skills-urile din căile Claude sau Codex, deci configurarea repository-ului | |
| pentru Claude sau Codex va funcționa pentru Claude.</p> <!--[1--><h2 class="relative group"><a id="crearea-unui-pull-request" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#crearea-unui-pull-request"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span>Crearea unui Pull Request</span></h2><!--]--><!----> <p>Înainte de a scrie orice cod, îți recomandăm cu tărie să cauți prin PR-urile sau issues existente pentru a te asigura că nimeni nu lucrează deja la același lucru. Dacă nu ești sigur, este întotdeauna o idee bună să deschizi un issue pentru a obține feedback.</p> <p>Vei avea nevoie de competențe de bază în <code>git</code> pentru a contribui la | |
| 🤗 Transformers. Deși <code>git</code> nu este cel mai ușor instrument de utilizat, are cel mai detaliat | |
| manual. Tastează <code>git --help</code> într-un shell și bucură-te! Dacă preferi cărțile, <a href="https://git-scm.com/book/en/v2" rel="nofollow">Pro | |
| Git</a> este o referință foarte bună.</p> <p>Vei avea nevoie de <strong><a href="https://github.com/huggingface/transformers/blob/main/setup.py#L449" rel="nofollow">Python 3.9</a></strong> sau o versiune mai nouă pentru a contribui la 🤗 Transformers. Urmează pașii de mai jos pentru a începe să contribui:</p> <ol><li><p>Fă fork la <a href="https://github.com/huggingface/transformers" rel="nofollow">repository</a> dând click pe butonul <strong><a href="https://github.com/huggingface/transformers/fork" rel="nofollow">Fork</a></strong> pe pagina repository-ului. Aceasta creează o copie a codului | |
| sub contul tău de utilizator GitHub.</p></li> <li><p>Clonează fork-ul pe discul tău local și adaugă repository-ul de bază ca remote:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->git <span class="hljs-built_in">clone</span> git@github.com:<your Github handle>/transformers.git | |
| <span class="hljs-built_in">cd</span> transformers | |
| git remote add upstream https://github.com/huggingface/transformers.git<!----></pre></div><!----></li> <li><p>Creează un nou branch pentru a-ți păstra modificările de dezvoltare:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->git checkout -b a-descriptive-name-for-my-changes<!----></pre></div><!----> <p>🚨 <strong>Nu</strong> lucra pe branch-ul <code>main</code>!</p></li> <li><p>Configurează un mediu de dezvoltare rulând următoarea comandă într-un virtual environment:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->pip install -e <span class="hljs-string">".[dev]"</span><!----></pre></div><!----> <p>Dacă 🤗 Transformers era deja instalat în virtual environment, elimină-l | |
| cu <code>pip uninstall transformers</code> înainte de a-l reinstala în modul editabil | |
| cu flag-ul <code>-e</code>.</p> <p>În funcție de OS-ul tău, și deoarece numărul de dependencies opționale ale Transformers crește, ai putea întâmpina o eroare cu această comandă. În acest caz, instalează PyTorch și execută:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->pip install -e <span class="hljs-string">".[quality]"</span><!----></pre></div><!----> <p>ceea ce ar trebui să fie suficient pentru majoritatea cazurilor de utilizare.</p></li> <li><p>Dezvoltă funcțiile în branch-ul tău.</p> <p>Pe măsură ce lucrezi la codul tău, ar trebui să te asiguri că suita de teste | |
| trece. Rulează testele afectate de modificările tale astfel:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->pytest tests/<TEST_TO_RUN>.py<!----></pre></div><!----> <p>Pentru mai multe informații despre teste, consultă | |
| ghidul <a href="https://huggingface.co/docs/transformers/testing" rel="nofollow">Testing</a>.</p> <p>🤗 Transformers se bazează pe <code>black</code> și <code>ruff</code> pentru a formata codul sursă | |
| în mod consistent. După ce faci modificări, aplică corecturi automate de stil și verificări de cod | |
| care nu pot fi automatizate dintr-o singură mișcare cu:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->make style<!----></pre></div><!----> <p>🤗 Transformers folosește și <code>ruff</code> și câteva scripturi personalizate pentru a verifica greșelile de codare. Controalele de | |
| calitate sunt rulate de CI, dar poți rula aceleași verificări cu:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->make check-repo<!----></pre></div><!----> <p>Pentru a afla mai multe despre aceste verificări și cum să rezolvi orice probleme cu ele, consultă | |
| ghidul <a href="https://huggingface.co/docs/transformers/pr_checks" rel="nofollow">Checks on a Pull Request</a>.</p> <p>Dacă modifici documente din directorul <code>docs/source</code>, asigură-te că documentația poate fi în continuare construită. Această verificare va rula și în CI când deschizi un pull request. Pentru a rula o verificare locală | |
| instalează <a href="https://github.com/huggingface/doc-builder" rel="nofollow">doc-builder-ul</a>.</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->pip install <span class="hljs-string">".[docs]"</span><!----></pre></div><!----> <p>Rulează următoarea comandă din root-ul repository-ului:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->doc-builder build transformers docs/source/en --build_dir ~/tmp/test-build<!----></pre></div><!----> <p>Aceasta va construi documentația în folderul <code>~/tmp/test-build</code> unde poți inspecta fișierele | |
| Markdown generate cu editorul tău preferat. Poți, de asemenea, previzualiza documentele pe GitHub când deschizi un pull request.</p> <p>Dacă adaugi sau editezi exemple rulabile în documentele Markdown, marchează gardurile Python cu <code>runnable</code> sau <code>runnable:<label></code> și rulează-le local cu <code>pytest</code>:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->pytest -q docs/source/en/my_page.md | |
| pytest -q docs/source/en/<!----></pre></div><!----> <p>Pentru sintaxa completă rulabilă, inclusiv blocuri de continuare, <code># pytest-decorator:</code> și <code># doc-builder: hide</code>, consultă <a href="https://github.com/huggingface/doc-builder/blob/main/docs/runnable-code-blocks.md" rel="nofollow">ghidul doc-builder pentru blocuri de cod rulabile</a>.</p> <p>Odată ce ești mulțumit de modificările tale, adaugă fișierele modificate cu <code>git add</code> și | |
| înregistrează modificările tale local cu <code>git commit</code>:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->git add modified_file.py | |
| git commit<!----></pre></div><!----> <p>Te rugăm să îți amintești să scrii <a href="https://chris.beams.io/posts/git-commit/" rel="nofollow">mesaje de commit bune</a> pentru a comunica clar modificările pe care le-ai făcut!</p> <p>Pentru a menține copia ta a codului actualizată cu repository-ul original, dă rebase branch-ului tău pe <code>upstream/branch</code> <em>înainte</em> de a deschide un pull request sau dacă un maintainer cere asta:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->git fetch upstream | |
| git rebase upstream/main<!----></pre></div><!----> <p>Trimite modificările tale pe branch-ul tău:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->git push -u origin a-descriptive-name-for-my-changes<!----></pre></div><!----> <p>Dacă ai deschis deja un pull request, va trebui să forțezi push-ul cu flag-ul <code>--force</code>. Altfel, dacă pull request-ul nu a fost încă deschis, poți pur și simplu să trimiți modificările în mod normal.</p></li> <li><p>Acum poți merge la fork-ul tău al repository-ului pe GitHub și da click pe <strong>Pull Request</strong> pentru a deschide un pull request. Asigură-te că bifezi toate căsuțele din <a href="#lista-de-verificare-pentru-pull-request">lista noastră de verificare</a> de mai jos. Când ești gata, poți trimite modificările tale maintainerilor proiectului pentru revizuire.</p></li> <li><p>Este în regulă dacă maintainerii solicită modificări, se întâmplă și contribuitorilor noștri de bază! | |
| Pentru ca toți să poată vedea modificările în pull request, lucrează în branch-ul tău local | |
| și trimite modificările în fork-ul tău. Ele vor apărea automat în | |
| pull request.</p></li></ol> <!--[2--><h3 class="relative group"><a id="contribuții-asistate-de-ai-și-agentice" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#contribuții-asistate-de-ai-și-agentice"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span>Contribuții asistate de AI și agentice</span></h3><!--]--><!----> <p>Contribuțiile asistate de AI sunt binevenite, dar trebuie să fie coordonate, delimitate și verificate pentru a menține sarcina de revizuire gestionabilă.</p> <ul><li>Nu trimite PR-uri “pure agent”. Persoana care trimite este responsabilă pentru revizuirea tuturor liniilor modificate, validarea comportamentului end-to-end și rularea testelor relevante.</li> <li>Dacă s-au folosit instrumente AI, dezvăluie aceasta în descrierea PR-ului și include: link de coordonare, diferențierea față de PR-urile existente (dacă este cazul) și comenzi/rezultate de teste.</li> <li>Evită PR-urile punctuale de “busywork” (un singur typo, curățare izolată de stil, o singură corecție de default mutabil, etc.). Grupează curățăturile mecanice într-un scop clar și sistematic.</li> <li>Coordonează pe issues înainte de a deschide PR-uri, revizuiește PR-uri similare și așteaptă aprobarea.</li></ul> <blockquote class="warning"><p>Aceste subiecte sunt prezentate pentru agenți în <code>AGENTS.MD</code> cu instrucțiuni despre cum să le implementeze autonom.</p></blockquote> <!--[2--><h3 class="relative group"><a id="lista-de-verificare-pentru-pull-request" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#lista-de-verificare-pentru-pull-request"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span>Lista de verificare pentru pull request</span></h3><!--]--><!----> <p>☐ Titlul pull request-ului ar trebui să rezume contribuția ta.<br/> ☐ Dacă pull request-ul tău abordează un issue, te rugăm să menționezi numărul issue-ului în descrierea pull | |
| request-ului pentru a te asigura că sunt legate (și persoanele care vizualizează issue-ul știu că | |
| lucrezi la el).<br/> ☐ Pentru a indica un work in progress, te rugăm să prefixezi titlul cu <code>[WIP]</code>. Acestea sunt | |
| utile pentru a evita munca duplicată și pentru a le diferenția de PR-urile gata să fie merged.<br/> ☐ Asigură-te că testele existente trec.<br/> ☐ Dacă adaugi o funcție nouă, adaugă și teste pentru aceasta.<br/></p> <ul><li>Dacă adaugi un model nou, asigură-te că folosești <code>ModelTester.all_model_classes = (MyModel, MyModelWithLMHead,...)</code> pentru a declanșa testele comune.</li> <li>Dacă adaugi teste noi <code>@slow</code>, asigură-te că trec folosind <code>RUN_SLOW=1 python -m pytest tests/models/my_new_model/test_my_new_model.py</code>.</li> <li>Dacă adaugi un tokenizer nou, scrie teste și asigură-te că <code>RUN_SLOW=1 python -m pytest tests/models/{your_model_name}/test_tokenization_{your_model_name}.py</code> trece.</li> <li>CircleCI nu rulează testele lente, dar GitHub Actions o face în fiecare noapte!<br/></li></ul> <p>☐ Toate metodele publice trebuie să aibă docstrings informative (consultă <a href="https://github.com/huggingface/transformers/blob/main/src/transformers/models/bert/modeling_bert.py" rel="nofollow"><code>modeling_bert.py</code></a> pentru un exemplu).<br/> ☐ Deoarece repository-ul crește rapid, nu adăuga imagini, videoclipuri și alte | |
| fișiere non-text care vor îngreuna semnificativ repository-ul. În schimb, folosește un repository Hub | |
| precum <a href="https://huggingface.co/hf-internal-testing" rel="nofollow"><code>hf-internal-testing</code></a> pentru a găzdui aceste fișiere și a le referencia prin URL. Îți recomandăm să plasezi imaginile legate de documentație în următorul repository: <a href="https://huggingface.co/datasets/huggingface/documentation-images" rel="nofollow">huggingface/documentation-images</a>. | |
| Poți deschide un PR pe acest repository de dataset și cere unui membru Hugging Face să îl îmbine.</p> <p>Pentru mai multe informații despre verificările rulate pe un pull request, aruncă o privire la ghidul nostru <a href="https://huggingface.co/docs/transformers/pr_checks" rel="nofollow">Checks on a Pull Request</a>.</p> <!--[2--><h3 class="relative group"><a id="teste" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#teste"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span>Teste</span></h3><!--]--><!----> <p>O suită extinsă de teste este inclusă pentru a testa comportamentul bibliotecii și mai multe exemple. Testele de bibliotecă se găsesc în | |
| folder-ul <a href="https://github.com/huggingface/transformers/tree/main/tests" rel="nofollow">tests</a> și testele de exemple în | |
| folder-ul <a href="https://github.com/huggingface/transformers/tree/main/examples" rel="nofollow">examples</a>.</p> <p>Preferăm <code>pytest</code> și <code>pytest-xdist</code> deoarece este mai rapid. Din root-ul | |
| repository-ului, specifică un <em>path către un subfolder sau un fișier de test</em> pentru a rula testul:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->python -m pytest -n auto --dist=loadfile -s -v ./tests/models/my_new_model<!----></pre></div><!----> <p>Similar, pentru directorul <code>examples</code>, specifică o <em>cale către un subfolder sau fișier de test</em> pentru a rula testul. De exemplu, următoarea comandă testează subfolderul de clasificare text din directorul PyTorch <code>examples</code>:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->pip install -r examples/xxx/requirements.txt <span class="hljs-comment"># necesar doar prima dată</span> | |
| python -m pytest -n auto --dist=loadfile -s -v ./examples/pytorch/text-classification<!----></pre></div><!----> <p>De fapt, acesta este modul în care comenzile noastre <code>make test</code> și <code>make test-examples</code> sunt implementate (fără a include <code>pip install</code>)!</p> <p>Poți, de asemenea, să specifici un set mai mic de teste pentru a testa doar funcția la care lucrezi.</p> <p>În mod implicit, testele lente sunt omise, dar poți seta variabila de mediu <code>RUN_SLOW</code> la <code>yes</code> pentru a le rula. Aceasta va descărca mulți gigabytes de modele, deci asigură-te că | |
| ai suficient spațiu pe disc, o conexiune bună la internet sau multă răbdare!</p> <blockquote class="warning"><!--[--><p>Ține minte să specifici un <em>path către un subfolder sau un fișier de test</em> pentru a rula testul. Altfel, vei rula toate testele din folderul <code>tests</code> sau <code>examples</code>, ceea ce va dura foarte mult timp!</p><!--]--></blockquote><!----> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->RUN_SLOW=<span class="hljs-built_in">yes</span> python -m pytest -n auto --dist=loadfile -s -v ./tests/models/my_new_model | |
| RUN_SLOW=<span class="hljs-built_in">yes</span> python -m pytest -n auto --dist=loadfile -s -v ./examples/pytorch/text-classification<!----></pre></div><!----> <p>Ca și testele lente, există și alte variabile de mediu disponibile care nu sunt activate implicit în timpul testării:</p> <ul><li><code>RUN_CUSTOM_TOKENIZERS</code>: Activează testele pentru tokenizere personalizate.</li></ul> <p>Mai multe variabile de mediu și informații suplimentare se găsesc în <a href="https://github.com/huggingface/transformers/blob/main/src/transformers/testing_utils.py" rel="nofollow">testing_utils.py</a>.</p> <p>🤗 Transformers folosește <code>pytest</code> doar ca runner de teste. Nu folosește nicio funcție specifică <code>pytest</code> în suita de teste în sine.</p> <p>Aceasta înseamnă că <code>unittest</code> este suportat în totalitate. Iată cum să rulezi teste cu <code>unittest</code>:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->python -m unittest discover -s tests -t . -v | |
| python -m unittest discover -s examples -t examples -v<!----></pre></div><!----> <!--[2--><h3 class="relative group"><a id="ghid-de-stil" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#ghid-de-stil"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span>Ghid de stil</span></h3><!--]--><!----> <p>Pentru documentstrings, 🤗 Transformers urmează <a href="https://google.github.io/styleguide/pyguide.html" rel="nofollow">Google Python Style Guide</a>. | |
| Consultă <a href="https://github.com/huggingface/transformers/tree/main/docs#writing-documentation---specification" rel="nofollow">ghidul nostru de scriere a documentației</a> pentru mai multe informații.</p> <!--[2--><h3 class="relative group"><a id="development-pe-windows" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#development-pe-windows"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span>Development pe Windows</span></h3><!--]--><!----> <p>Pe Windows (cu excepția cazului în care lucrezi în <a href="https://learn.microsoft.com/en-us/windows/wsl/" rel="nofollow">Windows Subsystem for Linux</a> sau WSL), trebuie să configurezi git pentru a transforma terminările de linie Windows <code>CRLF</code> în terminările de linie Linux <code>LF</code>:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->git config core.autocrlf input<!----></pre></div><!----> <p>O modalitate de a rula comanda <code>make</code> pe Windows este cu MSYS2:</p> <ol><li><a href="https://www.msys2.org/" rel="nofollow">Descarcă MSYS2</a>, și presupunem că este instalat în <code>C:\msys64</code>.</li> <li>Deschide linia de comandă <code>C:\msys64\msys2.exe</code> (ar trebui să fie disponibilă din meniul <strong>Start</strong>).</li> <li>Rulează în shell: <code>pacman -Syu</code> și instalează <code>make</code> cu <code>pacman -S make</code>.</li> <li>Adaugă <code>C:\msys64\usr\bin</code> la variabila de mediu PATH.</li></ol> <p>Poți acum folosi <code>make</code> din orice terminal (PowerShell, cmd.exe, etc.)! 🎉</p> <!--[2--><h3 class="relative group"><a id="sincronizarea-unui-repository-fork-cu-upstream-main-repository-ul-hugging-face" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#sincronizarea-unui-repository-fork-cu-upstream-main-repository-ul-hugging-face"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span>Sincronizarea unui repository fork cu upstream main (repository-ul Hugging Face)</span></h3><!--]--><!----> <p>Când actualizezi branch-ul main al unui repository fork, te rugăm să urmezi acești pași pentru a evita notificarea repository-ului upstream care adaugă note de referință la fiecare PR upstream și trimite notificări inutile developerilor implicați în aceste PR-uri.</p> <ol><li><p>Când este posibil, evită sincronizarea cu upstream-ul prin folosirea unui branch și PR pe repository-ul fork. În schimb, dă merge direct în branch-ul main al fork-ului.</p></li> <li><p>Dacă un PR este absolut necesar, folosește pașii următori după ce faci checkout pe branch-ul tău:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copied</div><!----></button><!----></div> <pre class="language-bash "><!---->git checkout -b your-branch-for-syncing | |
| git pull --squash --no-commit upstream main | |
| git commit -m <span class="hljs-string">'<mesajul tău fără referințe Github>'</span> | |
| git push --set-upstream origin your-branch-for-syncing<!----></pre></div><!----></li></ol> <a class="!text-gray-400 !no-underline text-sm flex items-center not-prose mt-4" href="https://github.com/huggingface/transformers/blob/main/docs/source/ro/contributing.md" target="_blank"><svg class="mr-1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M31,16l-7,7l-1.41-1.41L28.17,16l-5.58-5.59L24,9l7,7z"></path><path d="M1,16l7-7l1.41,1.41L3.83,16l5.58,5.59L8,23l-7-7z"></path><path d="M12.419,25.484L17.639,6.552l1.932,0.518L14.351,26.002z"></path></svg><!----> <span><span class="underline">Update</span> on GitHub</span></a><!----> <p></p><!--]--><!--]--><!--]--><!--]--><!--]--> <!--[-1--><!--]--><!--]--> | |
| <script> | |
| { | |
| __sveltekit_1piag1k = { | |
| base: "/docs/transformers/main/ro", | |
| assets: "/docs/transformers/main/ro" | |
| }; | |
| const element = document.currentScript.parentElement; | |
| Promise.all([ | |
| import("/docs/transformers/main/ro/_app/immutable/entry/start.Cj0_j3du.js"), | |
| import("/docs/transformers/main/ro/_app/immutable/entry/app.2x2TdrVN.js") | |
| ]).then(([kit, app]) => { | |
| kit.start(app, element, { | |
| node_ids: [0, 8], | |
| data: [null,null], | |
| form: null, | |
| error: null | |
| }); | |
| }); | |
| } | |
| </script> | |
Xet Storage Details
- Size:
- 105 kB
- Xet hash:
- 5a398e9baea4d7d11800e426cacbdcdbffb8b47fc4b870a08aec2116957b9d94
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.