Hugging Face CLI — preuzimanje modela i organizacija na disku
Ollama ima svoju biblioteku modela, i dok ti je dovoljna, sve je jednostavno. Van nje počinje Hugging Face — mesto gde modeli zapravo žive, uključujući sve varijante kvantizacije koje u Ollaminoj biblioteci ne postoje.
Ovaj tekst pokazuje kako se odatle preuzima iz komandne linije, kako se ne preuzme šezdeset gigabajta kad ti treba pet, i gde sve to završi na disku.
Kako je repozitorijum organizovan
Svaki model je git repozitorijum sa oznakom u obliku organizacija/naziv:
Qwen/Qwen3-8B originalni model, safetensors bartowski/Qwen3-8B-GGUF kvantizovane GGUF varijante Qwen/Qwen3-8B-AWQ AWQ varijanta za vLLM
Originalni objavljivač retko izdaje GGUF fajlove — to rade pojedinci i grupe koje se time bave. Zato ćeš isti model naći pod više naziva, i zato je važno da razlikuješ šta ti treba.
| Šta pokrećeš | Šta preuzimaš | Koliko fajlova |
|---|---|---|
| llama.cpp, Ollama | GGUF | Jedan |
| vLLM, Transformers | safetensors, AWQ, GPTQ | Ceo direktorijum |
Podela je razrađena u tekstu o kvantizaciji. Preuzimanje pogrešnog formata je najčešća greška ovde i košta sate čekanja.
Instalacija alata
$ pip install -U "huggingface_hub[cli]"
Na novijim distribucijama sistemski Python odbija instalaciju paketa, i s pravom. Koristi virtuelno okruženje:
$ python3 -m venv ~/.venv/hf $ source ~/.venv/hf/bin/activate $ pip install -U "huggingface_hub[cli]"
Ili preko pipx, ako hoćeš da alat bude dostupan svuda bez aktiviranja okruženja:
$ sudo apt install -y pipx $ pipx install "huggingface_hub[cli]" $ pipx ensurepath
$ hf version huggingface_hub version: 0.35.0
Komanda se zove hf. Stariji naziv huggingface-cli i dalje radi, ali je u fazi napuštanja — u uputstvima po internetu ćeš ga još dugo viđati.
Brže preuzimanje, sa više paralelnih veza:
$ pip install -U hf_transfer $ export HF_HUB_ENABLE_HF_TRANSFER=1
Na dobroj vezi razlika je značajna. Mana je što nema prikaz napretka ni nastavak prekinutog preuzimanja.
Preuzimanje jednog fajla
Za GGUF ti treba tačno jedan fajl, ne ceo repozitorijum:
$ hf download bartowski/Qwen3-8B-GGUF Qwen3-8B-Q4_K_M.gguf
Kako da znaš kako se fajl zove:
$ hf download bartowski/Qwen3-8B-GGUF --repo-type model --quiet $ hf repo files bartowski/Qwen3-8B-GGUF
Jednostavnije je otvoriti stranicu modela u pregledaču i pogledati karticu sa fajlovima — tu su i veličine, što odmah kaže da li ti varijanta staje.
Preuzimanje na tačno određeno mesto, umesto u keš:
$ hf download bartowski/Qwen3-8B-GGUF Qwen3-8B-Q4_K_M.gguf \
--local-dir ~/models
$ ls -lh ~/models -rw-r--r-- 1 alen alen 4.9G Qwen3-8B-Q4_K_M.gguf
$ llama-server -m ~/models/Qwen3-8B-Q4_K_M.gguf -ngl 99
Podeljeni fajlovi
Veći modeli su isečeni na delove:
Qwen3-235B-Q4_K_M-00001-of-00005.gguf Qwen3-235B-Q4_K_M-00002-of-00005.gguf ...
Preuzimaju se svi odjednom po obrascu:
$ hf download bartowski/Qwen3-235B-GGUF \
--include "*Q4_K_M*" --local-dir ~/models
llama.cpp im sam prepoznaje nastavak — daš mu prvi deo, ostale nađe:
$ llama-server -m ~/models/Qwen3-235B-Q4_K_M-00001-of-00005.gguf -ngl 99
Preuzimanje celog modela
Za vLLM i slične alate treba ceo direktorijum:
$ hf download Qwen/Qwen3-8B-AWQ --local-dir ~/models/qwen3-8b-awq
$ ls ~/models/qwen3-8b-awq config.json generation_config.json model-00001-of-00002.safetensors model-00002-of-00002.safetensors model.safetensors.index.json tokenizer.json tokenizer_config.json LICENSE README.md
Bez izuzimanja preuzimaš i ono što ti ne treba — dokumentaciju, slike, ponekad i duplikate u zastarelim formatima:
$ hf download Qwen/Qwen3-8B \
--exclude "*.pth" "*.msgpack" "*.h5" \
--local-dir ~/models/qwen3-8b
Fajl LICENSE pročitaj pre nego što model pustiš u upotrebu, iz razloga navedenih u tekstu o otvorenim i zatvorenim modelima.
Keš
Bez oznake --local-dir sve ide u zajednički keš:
$ echo $HF_HOME $ ls ~/.cache/huggingface/hub models--Qwen--Qwen3-8B models--bartowski--Qwen3-8B-GGUF
Struktura koristi tvrde veze, pa isti fajl u više modela zauzima prostor jednom. Zato zbir prikazanih veličina ume da bude veći od stvarnog zauzeća.
Premeštanje keša na veći disk:
$ export HF_HOME=/data/huggingface
Trajno, za sve korisnike:
$ echo 'export HF_HOME=/data/huggingface' | sudo tee /etc/profile.d/hf.sh
Više o promenljivama okruženja i njihovom postavljanju ima u tekstu o .bashrc fajlu.
Keš ili sopstveni direktorijum
| Keš | --local-dir |
|---|---|
| Deljenje fajlova među modelima | Jasna putanja koju sam biraš |
| Alati ga sami nalaze | Lako za pravljenje rezervne kopije |
| Nečitljiva imena direktorijuma | Isti fajl se preuzima dvaput ako treba na dva mesta |
| Alat za čišćenje postoji | Brisanje ručno |
Praktično pravilo: GGUF fajlove u sopstveni direktorijum, safetensors u keš. GGUF je jedan fajl koji zadaješ po putanji, dok safetensors direktorijume alati ionako traže po oznaci modela.
Zatvoreni modeli i token
Pojedini modeli traže prihvatanje uslova pre preuzimanja:
Cannot access gated repo for url ... Access to model X is restricted. You must have access to it and be authenticated.
Postupak: otvori stranicu modela u pregledaču, prihvati uslove, pa napravi token pod Settings → Access Tokens sa pravom čitanja.
$ hf auth login
Token se čuva u ~/.cache/huggingface/token. Za servere i skripte bolje je kroz promenljivu:
$ export HF_TOKEN=hf_xxxxxxxxxxxxx
$ hf auth whoami
Token ne stavljaj u fajl koji ide u git i ne piši ga u komandu koja završi u istoriji ljuske. Za systemd servise koristi EnvironmentFile= sa fajlom kome samo taj korisnik ima pristup.
Provera pre preuzimanja
Ovo je korak koji štedi najviše vremena. Pre nego što pokreneš preuzimanje od pedeset gigabajta, proveri da li ti uopšte staje:
$ df -h /data
Za GGUF je pravilo palca da model klase NB u Q4_K_M zauzima oko 0.6 × N gigabajta — računica iz teksta o proceni VRAM-a. Na disku ti treba toliko, a u memoriji nešto više.
Kod safetensors direktorijuma dodaj i to da veličina repozitorijuma često premašuje veličinu modela, jer stoje i varijante u drugim formatima.
Čišćenje
Modeli se nagomilavaju neprimetno. Pregled zauzeća keša:
$ hf cache scan REPO ID SIZE ON DISK LAST ACCESSED Qwen/Qwen3-8B 16.2G 3 weeks ago bartowski/Qwen3-8B-GGUF 4.9G 2 hours ago Qwen/Qwen3-8B-AWQ 5.8G 2 months ago Done in 0.4s. Found 3 repo(s) for a total of 26.9G.
Interaktivno brisanje, sa izborom šta ide:
$ hf cache delete
Kolona LAST ACCESSED je ovde najkorisnija — ono što nisi dodirnuo dva meseca verovatno ti i ne treba.
Za sopstvene direktorijume nema alata, pa ide ručno:
$ du -sh ~/models/* | sort -h
Uvoz u Ollamu
GGUF preuzet ovim putem koristi se u Ollami preko Modelfile opisa, kako je pokazano u tekstu o instalaciji Ollame:
FROM /home/alen/models/Qwen3-8B-Q4_K_M.gguf PARAMETER temperature 0.2 PARAMETER num_ctx 8192
$ ollama create qwen3-moj -f Modelfile $ ollama run qwen3-moj
Ollama pravi sopstvenu kopiju u svom direktorijumu, pa isti model postoji dvaput na disku. Originalni fajl posle uspešnog uvoza možeš obrisati.
Novije verzije Ollame umeju i direktno:
$ ollama pull hf.co/bartowski/Qwen3-8B-GGUF:Q4_K_M
Kada radi, ovo je najkraći put. Za starije ili neuobičajene repozitorijume ume da zakaže, pa je uvoz kroz Modelfile pouzdanija varijanta.
Ostale komande
| Komanda | Šta radi |
|---|---|
hf download |
Preuzimanje fajla ili repozitorijuma |
hf upload |
Slanje sopstvenih fajlova |
hf cache scan |
Pregled zauzeća keša |
hf cache delete |
Interaktivno brisanje |
hf auth login |
Prijava tokenom |
hf auth whoami |
Provera prijave |
hf repo files |
Spisak fajlova u repozitorijumu |
Korisne promenljive okruženja:
HF_HOME— koren za keš i tokenHF_TOKEN— token za zatvorene modeleHF_HUB_ENABLE_HF_TRANSFER=1— brže preuzimanjeHF_HUB_OFFLINE=1— rad isključivo iz keša, bez mreže
Praktični scenariji
Scenario 1: preuzeto šezdeset gigabajta umesto pet
Izostavljeno je ime fajla, pa je preuzet ceo repozitorijum sa svim varijantama. Za GGUF uvek navedi tačan fajl ili obrazac kroz --include.
Scenario 2: preuzimanje se prekida na pola
Ponovi istu komandu — alat nastavlja odakle je stao. Ako je uključen hf_transfer, nastavljanja nema; isključi ga za nestabilne veze.
Scenario 3: llama.cpp ne prepoznaje preuzeti fajl
Verovatno je safetensors umesto GGUF. Proveri nastavak i potraži repozitorijum sa -GGUF u nazivu.
Scenario 4: nema mesta na disku
$ hf cache scan $ hf cache delete
Ako je keš na korenskoj particiji, premesti ga postavljanjem HF_HOME.
Scenario 5: pristup odbijen iako je token postavljen
Prihvatanje uslova je zaseban korak od pravljenja tokena, i radi se u pregledaču. Proveri i da token ima pravo čitanja — postoje i tokeni sa užim opsegom.
Scenario 6: model preuzet dvaput
Jednom u keš, jednom kroz --local-dir. Odluči gde ti model živi i drži se toga; obriši drugi primerak.
Kratka referenca
pipx install "huggingface_hub[cli]"— instalacija alatahf download repo fajl.gguf --local-dir ~/models— jedan GGUF fajlhf download repo --local-dir ~/models— ceo repozitorijum--include "*Q4_K_M*"— obrazac za podeljene fajlove--exclude "*.pth" "*.h5"— izuzimanje nepotrebnoghf cache scan— šta je preuzeto i koliko zauzimahf cache delete— interaktivno brisanjehf auth login— prijava za zatvorene modeleHF_HOME— putanja kešaHF_TOKEN— token kroz okruženje, ne kroz komanduHF_HUB_ENABLE_HF_TRANSFER=1— brže, bez nastavljanjaollama pull hf.co/repo:Q4_K_M— direktan uvoz kad radi- GGUF za llama.cpp i Ollamu, safetensors za vLLM
- Proveri disk pre preuzimanja, ne posle
Vežba
- Instaliraj alat i potvrdi verziju komandom
hf version. - Preuzmi jedan GGUF fajl u sopstveni direktorijum i pokreni ga kroz
llama-server. - Uporedi veličinu preuzetog fajla sa procenom po pravilu 0.6 × N.
- Pokreni
hf cache scani pronađi šta najduže nisi koristio. - Premesti keš na drugu putanju kroz
HF_HOMEi potvrdi da alat i dalje vidi preuzeto. - Uvezi preuzeti GGUF u Ollamu kroz Modelfile, pa uporedi zauzeće diska pre i posle.
Sledeći tekst u serijalu: vLLM — produkciona inferencija sa više paralelnih zahteva
Povezano:
- AI na Linux serveru — pregled celog serijala
- llama.cpp — kompajliranje i llama-server — prethodni tekst
- Kvantizacija u praksi — koji format i koja varijanta
- Otvoreni i zatvoreni modeli — licence i šta smeš da radiš sa modelom
- Pregled aktuelnih open-weight modela — šta uopšte tražiti
Comments
Post a Comment