Dolly, un modello AI simile a ChatGPT, ma libero ed open-source!
Da quando la bolla AI è esplosa, possiamo dire in concomitanza con il rilascio di ChatGPT da parte di OpenAI lo scorso novembre, sono state parecchie le soluzioni LLM di cui abbiamo parlato. LLM, ossia Large Language Model, un insieme cioè di informazioni interrogabile istruito usando come bacino quantità immense di dati.
Tutte le soluzioni LLM trattate fino ad oggi nascevano come modelli “privati”. Si pensi a ChatGPT: questo può essere interrogato ma la natura dei dati interrogati rimane proprietà esclusiva del “fornitore”, in questo caso OpenAI.
Nota: al momento in Italia è bloccato dal garante per la privacy ma utilizzando un browser con VPN integrata come Opera (non è il solo) si può agevolmente aggirare il blocco e continuare ad usare ChatGPT (e non solo) senza problemi di sorta.
Orbene, la pubblicazione di Dolly da parte di DataBricks, rappresenta per la questione AI una vera e propria rivoluzione poiché, a quanto riporta l’azienda, è il primo LLM completamente open-source addestrato spendendo meno di 30$ per mostrare capacità di iterazione simili a quelle di ChatGPT.
Le cose importanti riguardo questo modello? Anzitutto è libero, poiché è distribuito mediante licenza Creative Commons, e qualsiasi azienda lo può usare, modificare o estendere per costruire ed offrire servizi di chat bot senza pagare licenze.
Curiosi di vedere come funziona? Date un occhio a questo video, partendo dal presupposto che la voce narrante è un tantinello troppo entusiasta:
Come quindi avrete capito, il problema principale di questo prodotto è che necessità di parecchia potenza computazionale e quindi, su sistemi standard senza GPU ultra perfomanti potrebbe essere un filino lento. Per “filino” intendo metterci anche 24 ore per fornire una risposta. Almeno questo è quanto avvenuto su uno dei miei sistemi.
Per ora poco importa, se volete provarlo localmente è sufficiente abbiate Python3 ed almeno 30 gigabyte di spazio libero, dopodiché sarà sufficiente creare un Virtual Environment ed installare mediante pip i pacchetti:
accelerate>=0.12.0
e transformers[torch]==4.25.1
come segue:
rasca@globalwarming /storage/dolly # python3 -m venv .
rasca@globalwarming /storage/dolly # source bin/activate
(dolly) rasca@globalwarming /storage/dolly # pip3 install 'accelerate>=0.12.0' 'transformers[torch]==4.25.1'
Ed inizializzare l’ambiente (l’operazione comporterà il download dell’LLM):
(dolly) rasca@globalwarming /storage/dolly # python3
>>> import torch
>>> from transformers import pipeline
>>> generate_text = pipeline(model="databricks/dolly-v2-12b", torch_dtype=torch.bfloat16, trust_remote_code=True, device_map="auto")
Downloading (…)lve/main/config.json: 100%|███| 819/819 [00:00<00:00, 393kB/s]
Downloading (…)instruct_pipeline.py: 100%|███| 7.16k/7.16k [00:00<00:00, 3.28MB/s]
Downloading pytorch_model.bin: 100%|███| 23.8G/23.8G [03:46<00:00, 105MB/s]
Downloading (…)okenizer_config.json: 100%|███| 449/449 [00:00<00:00, 136kB/s]
Downloading (…)/main/tokenizer.json: 100%|███| 2.11M/2.11M [00:00<00:00, 13.9MB/s]
Downloading (…)cial_tokens_map.json: 100%|███| 228/228 [00:00<00:00, 102kB/s]
Fatto questo il sistema sarà “pronto” a ricevere domande:
>>> generate_text("Explain to me the difference between nuclear fission and fusion.")
Nel caso specifico del sistema usato per il test abbiamo una macchina con 64GB di RAM e 8 CPU, NON DEDICATE UNICAMENTE a questa operazione. Il risultato è stato questo:
"Nuclear fusion occurs when two nuclei merge to form a single, larger nucleus. For example, a water atom fused with another hydrogen atom to form a single molecule of water. Nuclear fusion is commonly found in the sun, where nuclear particles called protons fuse inside the sun's core to form neutrons. These neutrons in turn fuse other protons to form helium.
Nuclear fission, on the other hand, occurs when a nucleus breaks up into two or more fragments. In this process, two orethical atoms become one smaller atoms with more neutrons and less protons. For example, uranium-235 is fissionable - when hit by a neutron, it will break up into smaller pieces of barium and ps assess.
Overall, nuclear fusion is a more energy-efficient process than nuclear fission, but the latter produces more carbon dioxide - the release of so much carbon dioxide from nuclear power plants is one of the factors contributing to global warming."
Quindi una risposta legittima, arrivata dopo più di 24 ore (che però non hanno bloccato la macchina).
La domanda in sé era quella suggerita dagli sviluppatori stessi, ma il modello è addestrato per rispondere a qualsiasi cosa. Tanto che ho subito fatto una nuova domanda:
>>> generate_text("Explain to me the difference between Red Hat and SUSE.")
La risposta? Al momento ancora in elaborazione…
Raoul Scarazzini
Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.