DeepSeek su MAC

I LLMs (Large Language Models) hanno ricevuto un'attenzione fortissima in questi ultimi anni perche' consentono di utilizzare le funzioni generative dell'AI (Artificial Intelligence: intelligenza artificiale) ottenendo risultati in precedenza non immaginabili.
DeepSeek In questa paginetta vedremo come installare ed utilizzare su MacOS, in modo semplice e veloce, uno dei piu' recenti LLM: DeepSeek. Eseguiremo l'installazione con Homebrew ed ogni componente sara' installato in locale, quindi l'AI verra' eseguita sul Mac.

Per rendere piu' interessante la paginetta inizieremo subito con l'installazione e proveremo ad utilizzare l'LLM con un chatbot! Solo alla fine riporteremo qualche noioso dettaglio tecnico in piu'...

Ho fretta!

So gia' tutto ed ho fretta! Allora ecco i passi:

brew install chatbox brew install ollama ollama serve & ollama run deepseek-r1:8b

Ora basta lanciare l'applicazione Chatbox, configurare nei Settings Model Provider: OLLAMA API, API Host: http://127.0.0.1:11434, Model: deepseek-r1:8b, ed iniziare a chattare!

Installazione

I componenti che dobbiamo installare sono:

Per l'installazione utilizziamo Homebrew che e' un gestore di pacchetti Open Source per Mac. In alternativa e' possibile scaricare i programmi dai siti ufficiali ma... cosi' e' molto piu' comodo.
Iniziamo ad installare Ollama ed a caricare DeepSeek R1.

# Installazione di Ollama brew install ollama ==> Downloading https://formulae.brew.sh/api/formula.jws.json ==> Downloading https://formulae.brew.sh/api/cask.jws.json Warning: Treating ollama as a formula. For the cask, use homebrew/cask/ollama or specify the `--cask` flag. To silence this message, use the `--formula` flag. ==> Downloading https://ghcr.io/v2/homebrew/core/ollama/manifests/0.5.7 ############################################################################################################################# 100.0% ==> Fetching ollama ==> Downloading https://ghcr.io/v2/homebrew/core/ollama/blobs/sha256:dd37facc87ba11d7bcd58f814b8e22f47dddf852b74d95d804f539274d8770a ############################################################################################################################# 100.0% ==> Pouring ollama--0.5.7.arm64_sonoma.bottle.tar.gz ==> Caveats To start ollama now and restart at login: brew services start ollama Or, if you don't want/need a background service you can just run: /opt/homebrew/opt/ollama/bin/ollama serve ==> Summary 🍺 /opt/homebrew/Cellar/ollama/0.5.7: 8 files, 24.2MB # Avvio di Ollama come servizio brew services start ollama # Esecuzione del modello LLM DeepSeek in Ollama (richiede alcuni minuti) ollama run deepseek-r1:8b pulling manifest pulling 6340dc3229b0... 100% β–•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ– 4.9 GB pulling 369ca498f347... 100% β–•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ– 387 B pulling 6e4c38e1172f... 100% β–•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ– 1.1 KB pulling f4d24e9138dd... 100% β–•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ– 148 B pulling 0cb05c6e4e02... 100% β–•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ– 487 B verifying sha256 digest writing manifest success # Controllo su quanto caricato: ollama list NAME ID SIZE MODIFIED deepseek-r1:8b 28f8fd6cdc67 4.9 GB 13 minutes ago

Ora installiamo l'applicazione Chatbox per interfacciarci al modello AI:

# Installazione di Chatbox brew install catbox

Chatbox icon Dobbiamo configurare Chatbox per farlo accedere al modello locale; lanciata l'applicazione, l'impostazione si esegue nei Settings: Chatbox Setting

Utilizziamo la porta 11434, che e' la porta di default di Ollama per l'interfaccia API REST, e quindi scegliamo il modello che abbiamo appena caricato.

Gia' fatto!

Utilizzo

Tutti i componenti sono installati ed ora possiamo iniziare ad utilizzarli.

L'utilizzo di Chatbox e' molto semplice: Chatbox Home

In pratica si fa una domanda e DeepSeek risponde!

Il modello viene eseguito localmente con tutti i vantaggi sulla privacy dei dati e sull'assenza di filtri. Naturalmente non vi sono chiavi di accesso da richiedere o costi sul numero di domande effettuate. Per le elaborazioni vengono usate le CPU/GPU del Mac.
Con Ollama e' possibile controllare l'uso della CPU/GPU:

ollama ps NAME ID SIZE PROCESSOR UNTIL deepseek-r1:8b 28f8fd6cdc67 7.0 GB 100% GPU 4 minutes from now

Dopo un po' di prove con domande generali sono rimasto molto colpito dalla conoscenza a 360o, dall'utilizzo del contesto e dalle linee di ragionamento di DeepSeek.
L'italiano non e' perfetto ed entrando nei dettagli le competenze sono imprecise o fantasiose, ma abbiamo anche scelto un modello intermedio (8B).

Quindi sono passato ad un compito specifico: scrivere il programma di un gioco. DeepSeek e' stato bravo, con le poche indicazioni fornite DeepSeek ha scelto di utilizzare JavaScript ed ha prodotto in pochi secondi un gioco funzionante: DeepSeek generated game

Ho corretto un paio di inesattezze (eg. alcune scritte in inglese, un timeout troppo veloce), ma DeepSeek aveva commesso un errore grave:
  la carbonara non si fa con il pomodoro! 😂

Introduzione

L'introduzione alla fine? Certo!

DeepSeek DeepSeek offre diversi modelli LLMs. DeepSeek R1 e' il modello che abbiamo utilizzato in questa paginetta nella versione 8B, ma e' disponibile in dimensioni diverse da 1,5 a 70 miliardi di parametri; DeepSeek R1 e' adatto al ragionamento logico ed e' disponibile su GitHub. DeepSeek V3 e' il modello piu' potente e versatile: ha 671 miliardi di parametri (37 miliardi attivi per ogni elaborazione), comprende diverse lingue e ha performances confrontabili con i piu' sofisticati LLM attuali quali Qwen2.5, Llama3.1, Claude-3.5, GPT-4o. DeepSeek Coder e' orientato alla programmazione ed e' disponibile in versioni da 1,3 a 33 miliardi di parametri. DeepSeek Janus-Pro, che nella versione piu' ampia ha 7 miliardi di parametri, e' invece utilizzato per la produzione di immagini. DeepSeek e' anche utilizzabile con APP per Mobile e con un Chatbot sul web.
Le API DeepSeek utilizzano un formato compatibile con OpenAI e per DeepSeek v3 utilizzato in Cloud e' riportato il miglior rapporto qualita'/prezzo. In generale le performance di DeepSeek sono confrontabili con quelle dei piu' avanzati LLMs commerciali ma DeekSeek e' Open Source e puo' essere scaricato ed eseguito on-premises. L'evoluzione e la conconcorrenza sull'AI sono sempre piu' forti!

Cosa ne penso?
Gentlemen, you have my curiosity but now you have my Attention.

Varie ed eventuali

Volete eseguire le installazioni manualmente? Nessun problema, ecco i link: Ollama, Chatbox.

Prima dello sviluppo delle AI generative avevo scritto una paginetta sui Chatbot che erano nettamente piu' limitati degli attuali.


Titolo: DeepSeek su Mac
Livello: Avanzato (3/5)
Data: 27 Gennaio 2025
Versione: 1.0.0 - 27 Gennaio 2025
Autore: mail [AT] meo.bogliolo.name