Errata definizione di settaggio/ambiente per istruzione MODEL

di il
11 risposte

Errata definizione di settaggio/ambiente per istruzione MODEL

Tentativo di clonazione il locale di Fauno da GitHub. 
ovvero seguo istruzioni di:: https://github.com/ultrazolfo/Fauno-Italian-LLM-g0/blob/main/README.md
.
chiedo gentilmente supporto per superare la fase di installazione che si impalla
in questioni di definizione/settaggio di ambiente Python.
con reverenza:: GRAZIE INFINITE.
.
parto con installazione di UBUNTU 22 desktop. TUTTO OK.
clono Fauno. TUTTO OK
eseguo README. TUTTO OK sino al passo INFERENCE, ovvero da bash impartisco i comandi della sezione INFERENCE::
====
model = LlamaForCausalLM.from_pretrained(
   "decapoda-research/llama-7b-hf",
   load_in_8bit=True,
   device_map="auto",
) tokenizer = LlamaTokenizer.from_pretrained(
   "decapoda-research/llama-7b-hf", add_eos_token=True
) model = PeftModel.from_pretrained(model, f"andreabac3/Fauno-Italian-LLM-7B")
====
segue sequenza errori
bash: errore di sintassi vicino al token non atteso "("
bash: decapoda-research/llama-7b-hf,: File o directory non esistente
bash: errore di sintassi vicino al token non atteso ")"
bash: errore di sintassi vicino al token non atteso "("
bash: decapoda-research/llama-7b-hf,: File o directory non esistente
bash: errore di sintassi vicino al token non atteso ")"
bash: errore di sintassi vicino al token non atteso "("

VICEVERSA 
dal prompt di pyton3 ottengo quanto segue::
root@u22lts:/home/u22lts/galileo/Fauno-Italian-LLM-g0# python3
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> model = LlamaForCausalLM.from_pretrained(
...     "decapoda-research/llama-7b-hf",
...     load_in_8bit=True,
...     device_map="auto",
... )
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
NameError: name 'LlamaForCausalLM' is not defined
>>> tokenizer = LlamaTokenizer.from_pretrained(
...     "decapoda-research/llama-7b-hf", add_eos_token=True
... )
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
NameError: name 'LlamaTokenizer' is not defined
>>> model = PeftModel.from_pretrained(model, f"andreabac3/Fauno-Italian-LLM-7B")
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
NameError: name 'PeftModel' is not defined
>>> 
>>> quit()

11 Risposte

  • Re: Errata definizione di settaggio/ambiente per istruzione MODEL

    Per favore, puoi evitare questi colori?

  • Re: Errata definizione di settaggio/ambiente per istruzione MODEL

    @ultrazolfo 
    in generale (perche' ci ho sbattuto la testa diverse volte NON su questo modello, ma con altri)
    risolvere questi problemi e' un bagno di sangue.

    Il pasticcio piu' grosso e' legato al fatto che spesso "questi bischeri” usano una versione “in development” delle librerie di HuggingFace.
    Quindi bisogna scaricarsi le librerie direttamente da GitHub SPERANDO che il branch “master” contenga tutto quello che serve.

    Poi bisogna aggiungere le dipendenze, che spesso “questi bischeri” si dimenticano di aggiungere perche'

    “sul mio computer funziona”

    Quindi, condoglianze ;-)

    Appena ho un po' di tempo ci provo MA la cosa andra' per le lunghe!

    Per esempio: ti sei scaricato il modello “decapoda-research/llama-7b-hf” ?

  • Re: Errata definizione di settaggio/ambiente per istruzione MODEL

    19/03/2024 - migliorabile ha scritto:


    @ultrazolfo 
    in generale (perche' ci ho sbattuto la testa diverse volte NON su questo modello, ma con altri)
    risolvere questi problemi e' un bagno di sangue.

    Il pasticcio piu' grosso e' legato al fatto che spesso "questi bischeri” usano una versione “in development” delle librerie di HuggingFace.
    Quindi bisogna scaricarsi le librerie direttamente da GitHub SPERANDO che il branch “master” contenga tutto quello che serve.

    Poi bisogna aggiungere le dipendenze, che spesso “questi bischeri” si dimenticano di aggiungere perche'

    “sul mio computer funziona”

    Quindi, condoglianze ;-)

    Appena ho un po' di tempo ci provo MA la cosa andra' per le lunghe!

    Per esempio: ti sei scaricato il modello “decapoda-research/llama-7b-hf” ?

    Grazie @migliorabile  per la gentilissima risposta.
    non abbiamo sangue a sufficienza per il bagno, ma possiamo surrogare con stupendo Cabernet. “sponsorizza”, e volentieri, il sottoscritto.
    Effettivamente, all'interno della directory clonata non esiste un file   “decapoda-research/llama-7b-hf”,  
    infatti il find . -name "*decapoda*" -print non produce risultati.
    in ogni caso, prima di arrivare alla sezione INFERENCE di https://github.com/ultrazolfo/Fauno-Italian-LLM-g0/blob/main/README.md
    ho eseguito, senza errori e/o warnings 
    pip3 install -r requirements.txt ===>>    https://github.com/ultrazolfo/Fauno-Italian-LLM-g0/blob/main/requirements.txt
    laddove requirements.txt  aggancia huggingface in due diverse chiamate
    ===
    datasets
    loralib
    sentencepiece
    git+https://github.com/huggingface/transformers.git
    accelerate
    bitsandbytes
    git+https://github.com/huggingface/peft.git
    gradio
    appdirs
    ====
    come dovrei “scaricare”   "decapoda-research/llama-7b-hf” ?
    Grazie infinite

  • Re: Errata definizione di settaggio/ambiente per istruzione MODEL

    Come volevasi dimostrare:

    se cerchi con Google, il ‘decapoda Ciccio Pastccio’ non e' piu' disponibile. 

    poiche' ci saranno ‘pasticci’ di tipo legale con llama (di faccialibro) la soluzione ‘ufficiale’ sarebbe quella di ottenere il modello originale facendone richiesta a FB e poi modificarlo di conseguenza, se necessario.

    QUI non bastano le condoglianze e forse nemmeno il Papa ;-) Serve un aiuto da PIU' in alto ;-)

    Diciamo che l'alternativa e' trovare un'altro llm 7b hf e cambiare i riferimenti. Forse funziona

    E' per tuo interesse personale O per un lavoro per l'università? Ed in questo caso, per quale università? 

  • Re: Errata definizione di settaggio/ambiente per istruzione MODEL

    20/03/2024 - migliorabile ha scritto:


    migliorabile

    grazie 1k migliorabile per l'elogiabile assistenza&conforto per un caso da “olii santi”…pre…estrema-unzione.
    e cmq stiamo solo parlando di un cesto di Bytes che nn sono certo di competenza papale e neppure trinitaria.PS:non  ha mai funzionato !
    Avendo tempo,qb, i problemi di Bytes sono tutti scalabili. 
    Investo un po' di tempo a drill-are internet per vedere se “raccatto” dall'aiuola della strada un “llama-7b-xxxxxx”.
    .
    Infine “è un mio interesse personale” ….che però coinvolge “todos”; nel senso che “coinvolge” i destini di tutti. 
    Al momento l'università è oltre “il perimetro”.
    sono solo un vecchio informatico contaminato dal virus dell' AI, con molto tempo da investire e qualche soldino per fare esperimenti.

  • Re: Errata definizione di settaggio/ambiente per istruzione MODEL

    Allora ti consiglio:

    1. evita i modelli troppo “strani”, ma usa SOLO quelli ufficiali di huggingface ed aziende be conosciute (Microsoft, Facebook, OpenAI, …), di cui esista una documentazione "ragionevole"
    2. come hardware, potrebbe essere utile usare una scheda grafica NVIDIA con 24 GB di ram.
      NON VALE LA PENA acquistare l'ultimo modello da 2000/3000 euro. Ma un modello di seconda mano di 1 o 2 anni fa che te lo porti a casa per 700/1000 euro. E' una bella cifretta MA se uno  vuole la bicicletta, deve anche “pedalare” ;-)
      Al momento direi una 3090.
      Naturalmente SOLO Founders Edition (NVIDIA PURA). Le “customizzazioni per i gamer” le lasciamo ai “picciotti” ;-)

    .

    Il problema principale e' la memoria, piu' che il numero di core (anche se quello, piu' alto e' e “piu' meglio e'”)

    Con abbastanza memoria nella scheda grafica, puoi utilizzare, senza diventare troppo matto, modelli di dimensioni “ragionevoli”.
    Se no ci sono dei sistemi abbastanza strani (MA supportati da Huggingface e le librerie che hai elencato precedentemente) che permettono di “quatizzare” i pesi del modello fino a 8 o addirittura 4 bit (bitsandbytes).

    Le follie che si sono inventati per far funzionare questi sistemi: floating point a 4 bit!

    Quali sono i modelli migliori?
    Facile, quelli per cui l'installazione va a buon fine al primo colpo ;-)

    .

    Sarebbe interessante (e potrebbe diventare anche un articoletto su questo sito O su qualche rivista) descrivere “dettagliatamente” come si addestrano questi modelli.
    Il problema e' descriverlo in modo che si capisca “esattamente” perche' si fa cosi' o cola', NON stile “studentello che va di copia/incolla”.

    .

    SE vuoi farti una “cultura”, un libro interessante e' questo:

    Foundation Models for Natural Language Processing - 2023
    .

    Poi, ovviamente, ci sono i tutorial di Huggingface.

    Un'altro buon posto dove cercare informazioni e' 

    https://towardsdatascience.com/

    Purtroppo e' a pagamento, ma 5$ al mese sono una cifra ragionevole e la qualita' degli articoli e' a volte decisamente elevata.
    Ci sono alcuni articoli di diversi “pezzi grossi” in ambito Compute Science.
    E' anche vero che uno puo' pagare per un po' di tempo, poi, quando si e' stufato, termina l'abbonamento ed amici come prima.

    Nota: avevo “intravisto” una NVIDIA A10 a 1000 euro. 
    in teoria sarebbe una scheda perfetta per questi esperimenti, MA ci sono un sacco di MA:

    1) e' una scheda per server in rack, non ho la minima idea se si puo' utilizzare su un normale PC
    2) supporta i bfloat16 MA non ho idea se il fatto di avere un PC normale, con un normale processore che FORSE supporta float16, possa dare problemi o no in fase di trasferimento dei dati da e per la scheda.

    Boh!
    Se sai qualcosa in merito, sarei interessato ;-)

  • Re: Errata definizione di settaggio/ambiente per istruzione MODEL

    20/03/2024 - migliorabile ha scritto:


    Allora ti consiglio:

    1. evita i modelli troppo “strani”, ma usa SOLO quelli ufficiali di huggingface ed aziende be conosciute (Microsoft, Facebook, OpenAI, …), di cui esista una documentazione "ragionevole"
    2. come hardware, potrebbe essere utile usare una scheda grafica NVIDIA con 24 GB di ram.
      NON VALE LA PENA acquistare l'ultimo modello da 2000/3000 euro. Ma un modello di seconda mano di 1 o 2 anni fa che te lo porti a casa per 700/1000 euro. E' una bella cifretta MA se uno  vuole la bicicletta, deve anche “pedalare” ;-)
      Al momento direi una 3090.
      Naturalmente SOLO Founders Edition (NVIDIA PURA). Le “customizzazioni per i gamer” le lasciamo ai “picciotti” ;-)

    .

    Il problema principale e' la memoria, piu' che il numero di core (anche se quello, piu' alto e' e “piu' meglio e'”)

    Con abbastanza memoria nella scheda grafica, puoi utilizzare, senza diventare troppo matto, modelli di dimensioni “ragionevoli”.
    Se no ci sono dei sistemi abbastanza strani (MA supportati da Huggingface e le librerie che hai elencato precedentemente) che permettono di “quatizzare” i pesi del modello fino a 8 o addirittura 4 bit (bitsandbytes).

    Le follie che si sono inventati per far funzionare questi sistemi: floating point a 4 bit!

    Quali sono i modelli migliori?
    Facile, quelli per cui l'installazione va a buon fine al primo colpo ;-)

    .

    Sarebbe interessante (e potrebbe diventare anche un articoletto su questo sito O su qualche rivista) descrivere “dettagliatamente” come si addestrano questi modelli.
    Il problema e' descriverlo in modo che si capisca “esattamente” perche' si fa cosi' o cola', NON stile “studentello che va di copia/incolla”.

    .

    SE vuoi farti una “cultura”, un libro interessante e' questo:

    Foundation Models for Natural Language Processing - 2023
    .

    Poi, ovviamente, ci sono i tutorial di Huggingface.

    Un'altro buon posto dove cercare informazioni e' 

    https://towardsdatascience.com/

    Purtroppo e' a pagamento, ma 5$ al mese sono una cifra ragionevole e la qualita' degli articoli e' a volte decisamente elevata.
    Ci sono alcuni articoli di diversi “pezzi grossi” in ambito Compute Science.
    E' anche vero che uno puo' pagare per un po' di tempo, poi, quando si e' stufato, termina l'abbonamento ed amici come prima.

    Nota: avevo “intravisto” una NVIDIA A10 a 1000 euro. 
    in teoria sarebbe una scheda perfetta per questi esperimenti, MA ci sono un sacco di MA:

    1) e' una scheda per server in rack, non ho la minima idea se si puo' utilizzare su un normale PC
    2) supporta i bfloat16 MA non ho idea se il fatto di avere un PC normale, con un normale processore che FORSE supporta float16, possa dare problemi o no in fase di trasferimento dei dati da e per la scheda.

    Boh!
    Se sai qualcosa in merito, sarei interessato ;-)

    migliorabile
    grazie infinite per il prezioso tempo e la miniera di risorse che dedichi a questo miserrimo(=AKA sfigatissimo) pensionato.
    “VASTE PROGRAMME” come diceva De Gaulle.
    Procedendo con ordine:
    A=tento di recuperare il llama-7b-xxx per verificare che l'installazione di FAUNO è completa e “sta in piedi”. end task=+3gg
    B=se riesco a completare l'installazione di FAUNO pensavo di allestire un muletto fatto come segue:::
    Muletto: AMD Ryzen 9 7950X-core=16x2 -4.5Ghz; 
    RAM=64Gb DDR5 5200Mhz Dual Channel (2x32Gb) - 64Gb max;
    SSD=2TB SSD M.2 Crucial T500:
    HD=4TB
    come vedi. in prima battuta avrei escluso la scheda NVIDIA; devo verificare se “entra” nel muletto ed è “compatibile” con questo
    e poi la GPU deve per forza essere NVIDIA(=CUDA) o può anche essere AMD, magari corredata della stessa RAM=24GB ????
    .
    e, cmq, il libro me lo prendo e leggo tutorial di huggingface.
    saluto con reverenza.

  • Re: Errata definizione di settaggio/ambiente per istruzione MODEL

    Alcune note:

    1. non serve riquotare l'intero post, altrimenti allunghi la risposta inutilmente. Eventualmente quoti singole frasi su cui vuoi fare delle osservazioni
    2. il muletto va piu' che bene.
    3. scheda grafica: al momento il mondo del ML e' al 90/99% NVIDIA. Non mi sposterei da questa scelta. 
      Il problema e' OVVIO: con NVIDIA sei CERTO che le varie librerie (pytorch, tensorflow, huggingface, e quant'altro) funzionano ANCHE con le ultime novita', visto che sono usate ANCHE nei sistemi “grossi” (quelli VERAMENTE grossi ;-) con hardware NVIDIA.
      QUINDI hai SIA software CHE hardware testato in “produzione”
      AMD, con il suo modulo ROC (l'equivalente di CUDA) sta' facendo un buon lavoro MA COMUNQUE non puoi essere certo che funzioni tutto, perche' devono correre dietro alle novita' di NVIDIA e dei software che le usano
    4. l'uso della scheda grafica e' fondamentale per questi marchingegni, che richiedono potenze di calcolo “stratosferiche”.
    5. e' altamente probabile che siamo “coetanei” ;-)
    6. se trovo uno “delfino" a cui far fare il lavoro di “bassa manovalanza” ( ;-) ) che io non riesco a fare, 
      “GRASSO CHE COLA”: 
      tu lavori e io scrivo gli articoli ;-)

    .
    Addirittura, per giocare “in sicurezza” con questi marchingegni, non mi sarei nemmeno spostato da Intel.
    Comunque i nuovi processori Core fanno un po' pena. Penso che la soluzione migliore sarebbe l'ultima versione di Xeon per PC desktop (NON gli Xeon per i server che costano un'appartamento).

    Da quanto capisco non hai mai usato un sistema “generativo” con una GPU ;-).
    Dal punto di vista della potenza di calcolo

    1. il tuo PC ha 32 thread. Ok, SEMBRA figo
    2. una 3090 ha 10496 (DIECIMILA e vattelapesca) core, cioe' 328 volte di piu' ;-)
      Una 4090 ha 16384 (SEDICIMILA) che e' meglio, ma COSTA parecchio di piu' (attorno ai 2000 euro, contro i 700 che ho visto per la 3090 su eBay)
      Una 5090 si prevede 24,576 (diciamo che avra' senso acquistarla dopo un paio d'anni  dalla sua uscita)
    3. i tempi di calcolo saranno dalle 100 alle 300 volte INFERIORI
    4. fondamentalmente, la velocita' della CPU e' poco influente perche' passare da 2.5GHz a 5GHz hai una riduzione dei tempi di calcolo di un fattore 0.5, se va bene (ma non e' cosi' perche' c'e' di mezzo un sacco di altre problematice, come il numero di  canali di accesso alla memoria). Invece passare da 32 a 10000 e' tutta un'altra storia ;-)
      Anzi, se puoi, risparmia pure sulla velocita' della CPU, MEGLIO piu' thread che frequenza piu' alta.

    .

    Poi non e' proprio cosi' perche' ci sono un'infinita' di altre cose da considrerare, come ad esempio: il fatto che devi trasferire i dati nella ram della scheda, il fatto che la scheda va a 1GHz o poco piu' mentre la CPU a 3GHz, la velocita' di trasferimento dei dati nella scheda, il nnumero di trasferimenti, ecc
    Diciamo dalle 10 alle 50 volte inferiori, ad essere “conservativi”. Ma mi aspetto MOOLTO di piu'.

    .
    Con un mio vecchio PC ed una scheda grafica di 6 anni fa, la generazione di un'immagine usando uno di quei sistemi di “style transfer” (ti trasformano una fotografia in stile Picasso, ad esempio):

    1. CPU, 60 minuti
    2. GPU, 6 minuti!

    .

    ;-)
    Quindi, per giocare con questi sistemi, la scheda grafica e' fondamentale: NON E' la velocita' del singolo core che fa la differenza, MA il parallelismo massiccio che puoi avere. Inoltre, poiche' bisogna avere TUTTO nella memoria della scheda grafica, per vitare continui trasferimenti da e per la memoria centrale, piu' memoria hai nella scheda e meglio e'.
    .
    E' per questo che le schede che vanno di piu' in ambito industriale sono quelle con 48/80GB di ram. Ma  costano come una BMW Z4 ;-)

  • Re: Errata definizione di settaggio/ambiente per istruzione MODEL

    Giusto come “chicca”:
    Questo e' la CPU che mi piacerebbe avere sul portatile (pero' bisogna inventare una batteria ATOMICA per farlo funzionare ;-) )

    https://www.cerebras.net/press-release/cerebras-announces-third-generation-wafer-scale-engine

    900_000 (novecento MILA) core su un unico “chip” (praticamente l'intero wafer ;-) ), 44GB di ram

    15kW di consumi

    che sarebbe come 5 appartamenti. Vabbe, si puo' fare ;-)

  • Re: Errata definizione di settaggio/ambiente per istruzione MODEL

    La lussuria è peccaminosa.
    che poi i 15kw di consumi di “esercizio” si innalzano esponenzialmente a 30-40kw per “raffreddare” la bestia.
    .5
    1955-Padova.
    .6
    che se poi, se “puzzo” di pesce, magari non sono un candidato delfino ma solo un “folpo”.
    .
    ke LA FORZA sia teco

  • Re: Errata definizione di settaggio/ambiente per istruzione MODEL

    ;-)
    Ci sono andato vicino: c'e' solo un 15% di errore ;-)

Devi accedere o registrarti per scrivere nel forum
11 risposte