Ce face hf upload
hf upload folosește funcțiile upload_file și upload_folder din biblioteca huggingface_hub. Forma generală este hf upload REPO_ID CALE_LOCALĂ CALE_ÎN_REPO. Fără cale locală se încarcă directorul curent. Pentru un fișier, calea din repository este opțională și ia implicit numele fișierului. Dacă repository-ul nu există, este creat automat.
Directoarele cu multe fișiere sunt împărțite în mai multe commit-uri; dacă încărcarea se întrerupe, rulezi aceeași comandă și ea continuă. În huggingface_hub 2.0, hf upload-large-folder a fost eliminat în favoarea acestui comportament al lui hf upload.
Implicit fișierele merg pe ramura main. Cu --revision alegi altă ramură (creată automat din main dacă lipsește și nu folosești --create-pr). --create-pr deschide un pull request când nu ai drept de scriere. --every creează commit-uri periodic, de exemplu pentru loguri în timpul unei antrenări. Ca la hf download, destinația poate fi un URI hf://.
Sintaxă și opțiuni
| Opțiune / Parametru | Descriere |
|---|---|
REPO_ID |
Repository-ul țintă (de exemplu username/repo-name). Pentru o organizație scrii Organizatie/repo. |
[CALE_LOCALĂ] |
Fișierul sau directorul de încărcat. Acceptă wildcard-uri. Implicit directorul curent. |
[CALE_ÎN_REPO] |
Calea din repository. Implicit calea relativă a fișierului sau a directorului. |
--type, --repo-type [model|dataset|space|kernel] |
Tipul repository-ului. Implicit model. |
--revision TEXT |
Ramura sau referința țintă (de exemplu refs/pr/104). |
--private / --no-private |
Creează repository-ul privat, dacă nu există deja. |
--include TEXT |
Modele glob ale fișierelor de încărcat. |
--exclude TEXT |
Modele glob ale fișierelor de exclus. |
--delete TEXT |
Modele glob ale fișierelor de șters din repository în același commit. |
--commit-message TEXT |
Titlul commit-ului. |
--commit-description TEXT |
Descrierea commit-ului. |
--create-pr / --no-create-pr |
Încarcă într-un pull request nou. |
--every FLOAT |
Creează un commit la fiecare N minute, în fundal. |
--token TEXT |
Token de acces (User Access Token) creat în huggingface.co/settings/tokens. Implicit se folosește tokenul salvat de hf auth login. |
--quiet |
Afișează doar ultima linie (URL-ul fișierelor încărcate). |
Exemple practice
Exemplul 1: Directorul curent la rădăcina repository-ului
hf upload my-cool-model . .
Rezultat
https://huggingface.co/Wauplin/my-cool-model/tree/main/
Exemplul 2: Un singur fișier
hf upload Wauplin/my-cool-model ./models/model.safetensors
Exemplul 3: Într-un dataset, în subdirectorul /train
hf upload Wauplin/my-cool-dataset ./data /train --repo-type=dataset
Exemplul 4: Sincronizarea unui Space (fără logs/, cu ștergerea fișierelor dispărute)
hf upload Wauplin/space-example --repo-type=space --exclude="/logs/*" --delete="*" --commit-message="Sync local Space with Hub"
Exemplul 5: Loguri încărcate la fiecare 10 minute
hf upload training-model logs/ --every=10
Exemplul 6: Pull request către un repository străin
hf upload bigcode/the-stack . . --repo-type dataset --create-pr
Greșeli frecvente și bune practici
- Uiți tipul repository-ului pentru datasets și Spaces. Fără
--repo-type, CLI-ul presupune un model. - Folosești
--delete="*"fără să verifici modelele--exclude. Fișierele din repository care nu se potrivesc cu cele locale sunt șterse în commit. - Cauți
hf upload-large-folder. A fost eliminat;hf uploadîmparte singur directoarele mari în commit-uri și se reia la a doua rulare.