Proudly debugging the system since 1981

Categoria: programmazione (Pagina 1 di 6)

Nuova versione di LLaMA ancora piu veloce

Sono molto affascinato da questo progetto. Spero che la IA esca presto da un utilizzo solo mediante API e in server remoti e misteriosi per arrivare ad essere disponibile sui dispositivi comuni. Il progetto LLaMA ci porta piu vicini a questo obbiettivo. La seguente chat e’ con Mistral 7B Q4 e LLaMA 0.7, eseguiti su un i7 13th gen con 16 GB di ram e nessuna accelerazione con GPU.

Annuncio : https://justine.lol/matmul/ – Repo: https://github.com/Mozilla-Ocho/llamafile

I metodi di sviluppo software

Spiegati come se l’ obbiettivo fosse andare su Marte.

Nota 1: si sono vecchio.

Nota 2: si è irrilevante perché tanto tra un po’ non svilupperà più nessuno. O forse proprio per questo il metodo sarà ancora più importante.

Plugin gradle per la migrazione da javax a jakarta

Il plugin si trova qua : https://plugins.gradle.org/plugin/com.netflix.nebula.jakartaee-migration

La spiegazione su cosa puo fare e come si usa qua : https://github.com/nebula-plugins/gradle-jakartaee-migration-plugin

Lo scenario in cui l’ho utilizzato e’ quando si devono usare due librerie o framework, una con dipendenze “vecchie” sotto javax e una con dipendenze “nuove” sotto jakarta su un application server “nuovo”.

Il plugin aggiorna automaticamente le dipendenze vecchie, al momento della compilazione, rendendo tutto funzionante e interoperabile.

Un sentito ringraziamento a chi ha reso necessario il cambio di nome.

Usare la intelligenza artificiale in locale per rinominare le foto

Questa la devo provare:

https://hackaday.com/2023/12/29/using-local-ai-on-the-command-line-to-rename-images-and-more/

UPDATE: E infatti poi l’ho provata. Ho dovuto fare un po di aggiustamenti per utilizzare il tutto con windows e ho provato a modificare i prompt in italiano.

Le modifiche si limitano ai controlli sulla presenza dei llama-file e sui prompt.

Controllo presenza file:

if ! LLAVA=$(command -v ./llava-v1.5-7b-q4.llamafile.exe); then
  printf '%s\n' "llava-v1.5-7b-q4-main.llamafile: fatal error: update this script with the path of your llava llamafile" >&2
  printf '%s\n' "please download https://huggingface.co/jartine/mistral-7b.llamafile/blob/main/mistral-7b-instruct-v0.1-Q4_K_M.llamafile, rename to llava-v1.5-7b-q4.llamafile.exe, and put it in the same directory of this script" >&2
  abort
fi

if ! MISTRAL=$(command -v ./mistral-7b-instruct-v0.2.Q3_K_L.llamafile.exe); then
  printf '%s\n' "mistral-7b-instruct-v0.1-Q4_K_M-main.llamafile: fatal error: update this script with the path of your mistral llamafile" >&2
  printf '%s\n' "please download https://huggingface.co/jartine/Mistral-7B-Instruct-v0.2-llamafile/blob/main/mistral-7b-instruct-v0.2.Q3_K_L.llamafile, rename to mistral-7b-instruct-v0.2.Q3_K_L.llamafile.exe, and put it in the same directory of this script" >&2
  abort
fi

Prompt italiani:

isgood() {
  "$MISTRAL" \
      --temp 0  \
      --grammar 'root ::= "si" | "no"' \
      -p "[INST]Questo nome file '${1##*/}' è una descrizione comprensibile e corretta in lingua italiana?[/INST]" \
      --silent-prompt 2>/dev/null
}

pickname() {
  "$LLAVA" \
      --image "$1" --temp 0.3  \
      --grammar 'root ::= [a-z]+ (" " [a-z]+)+' -n 15 \
      -p '### User: Questa immagine contiene ...
### Assistant:' \
      --silent-prompt 2>/dev/null
}

Inoltre per mistral ho dovuto scegliere una versione di dimensione non superiore ai 4giga, per limitazioni proprie di windows.

Il comportamento in inglese è buono, mentre l’output in italiano non e’ molto utile e spesso capita qualche parola di spagnolo qua e la.

llamafile v0.6

Mi segno e segnalo questa release che ho trovato impressionate : https://github.com/Mozilla-Ocho/llamafile/releases

Si tratta di un sistema per rendere facilmente accessibili modelli di linguaggio e praticamente funziona su tutti i sistemi operativi (window, linux, mac, etc) sfruttando CPU anche ARM, GPU anche multiple, anche AMD.

Si scarica il modello. Su linux gli si da il permesso di esecuzione, su windows lo si rinomina in .exe e lo si avvia.

Ho scaricato il modello llava e funziona con prestazioni accettabili anche usando solo una CPU non nuovissima (intel i7 11 generazione).

Stime

Impressione: un mix tra incredulità e invidia.

Incredulità perchè riuscire a farsi pagare senza fonire prima una stima affidabile del costo del lavoro mi sembra veramente difficile da credere. Invidia un pò per lo stesso motivo … tipo come sarebbe bello se non dovessi ottenere il consenso per sul costo di uno sviluppo prima di farlo.

Poi però, provando effettivamente ad immaginare questo mirabolante mondo, qualche anomalia emerge. Ovvero anche se tutti gli sviluppi fossero accettati a prescindere dal costo, ha davvero senso farli tutti? L’ efficacia si misura sempre col rapporto tra costi e risultati. E se l’efficacia è valutata solo a posteriori e non stimata anche a priori non c’è forma di protezione preventiva. Uno sviluppo è costato (tanto/poco) ma non serviva. Efficacia 0. Anche se il team è stato bravissimo a implementare una cosa complicata perfettamente e in poco tempo.

« Articoli meno recenti

© 2024 b0sh.net

Tema di Anders NorenSu ↑