Software libero a scuola/Ollama
È possibile provare a interagire con l'intelligenza artificiale in rete su siti come gemini di google oppure chatGPT. Grazie a ollama è possibile installare sul proprio pc in locale una istanza di intelligenza artificiale che permette attraverso una chat, ottenuta nel terminale su ubuntu, di fare richieste, domande, porre problemi ed ottenere risposte come se si stesse chiacchierando, per iscritto, con un essere umano. Sono necessari:
- almeno 8GB di memoria ram
- almeno 10Gb di spazio su disco
- un po' di pazienza
Se, fortunatamente o per scelta, sul proprio pc si ha montata una scheda video Nvidia con una adeguata dotazione di ram i tempi di elaborazione e risposta dell'IA si riducono notevolmente.
Installazione su linux Ubuntu
modificaSu linux ubuntu, per installare ollama si da il comando
sudo snap install ollama
Installazione alternativa
modificaIn alternativa è possibile installate Ollama con curl così come suggerito sul sito.
Sulla ubuntu 22.04 se non lo si ha già installato si può installare curl dal terminale con il comando
sudo apt install curl
in genere ubuntu suggerisce di utilizzare anche snap per l'installazione, ma per il momento il comando curl installato via snap non permette poi di installare ollama.
Una volta installato curl si procede all'installazione con il comando
curl -fsSL https://ollama.com/install.sh | sh
Installazione di Ollama+OpenWebUI su Windows 11 con Docker
modificaPrerequisiti per la virtualizzazione:
modifica- attivare Hyper-V da “Attivazione o disattivazione delle funzionalità Windows”
- installare WSL: aprire una finestra di powershell come amministratore e lanciare i comandi
wsl --update
wsl –install
seguire le richieste impostando username e password dell'utente UNIX. Riavviare il sistema.
Installare Docker Desktop
modificaScaricare il paccheto da
https://www.docker.com/products/docker-desktop/
e avviare l'installazione. In caso di dubbi seguire le istruzioni su
https://docs.docker.com/desktop/install/windows-install/
Avviare Docker Desktop per verificare che l’installazione sia andata a buon fine.
Installare Ollama
modificaPrerequisito se si vuole usare la GPU per le inferenze:Ollama identifica la presenza di una GPU ma è necessario installare prima i driver Nvidia per la propria scheda grafica e il Cuda Toolkit da https://developer.nvidia.com/cuda-downloads
Scaricare Ollama da https://ollama.com/download e lanciare l’installer.
Verificare che Ollama sia stato installato aprendo un browser e andando su
il browser dovrebbe rispondere con una schermata nera con in alto a sinistra la scritta “Ollama is running”.
Avviare il container docker con l’immagine di Open WebUI
modificaAprire un una finestra di powershell e digitare
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
Dopo l’avvio del container docker andare su http://localhost:3000 e creare l’utente admin cliccando su signup.
Fermare le applicazioni
modificaOllama server rimane attivo ma non dovrebbe consumare risorse. Se tuttavia vuoi fermare Ollama server, clicca sull’icona di Ollama nel Centro notifiche (all'estremità destra della barra delle applicazioni, se non è visibile cliccare sull’icona a forma di freccia “Mostra icone nascoste”) e cliccare su “Quit Ollama”.
Se Ollama server si dovesse riavviare, è possibile forzare l'arresto aprendo una finestra di powershell e digitando
Get-Process | Where-Object {$_.ProcessName -like '*ollama*'} | Stop-Process
Per fermare il container OpenWebUI: aprire DockerDesktop e cliccare su STOP sulla linea corrispondente.
Per riavviare le applicazioni
- lanciare l’applicazione Ollama
- aprire Docker Desktop e avviare il container di OpenWebUI
Installazione di Ollama+OpenWebUI su Debian "bookworm" con Docker
modificaInstallare Docker e docker-compose
modificaAggiungere la chiave GPG ufficiale Docker, come utente con permessi sudo, da terminale:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
Aggiungere il repository APT:
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Installare la versione più recente di docker e docker compose
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo apt-get update
Verificare che l'installazione abbia avuto successo avviando l'immagine "hello-world":
sudo docker run hello-world
fonte: https://docs.docker.com/engine/install/debian/#install-using-the-repository
Installare i Driver NVIDIA e il CUDA toolkit (facoltativo)
modificaPasso da seguire se si vuole usare la GPU per le inferenze e velocizzare l'uso di Ollama.
Controllare se i driver della GPU sono installati, da terminale:
nvidia-smi
Se si ottiene una schermata come quella che segue, i driver sono già installati.
Altrimenti installare i driver (TO DO...)
Controllare se è installato il CUDA toolkit digitando
nvcc --version
altrimenti, autenticarsi come root
su -
e installare il CUDA toolkit da terminale digitando :
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey > /etc/apt/keyrings/nvidia-docker.key
curl -s -L https://nvidia.github.io/nvidia-docker/debian11/nvidia-docker.list > /etc/apt/sources.list.d/nvidia-docker.list
sed -i -e "s/^deb/deb \[signed-by=\/etc\/apt\/keyrings\/nvidia-docker.key\]/g" /etc/apt/sources.list.d/nvidia-docker.list
apt update
apt -y install nvidia-container-toolkit
Riavviare il servizio docker
service docker restart
Avviare i container docker
modificaCreare una cartella Ollama, ad esempio, sotto la cartella home del proprio utente (e.g. myuser) ed accederci:
mkdir /home/myuser/ollama
cd ollama
Creare un file denominato docker-compose.yaml
nano docker-compose.yaml
Creare un file denominato docker-compose.yaml e incollare il seguente testo:
version: '3.8' services: ollama: image: ollama/ollama container_name: ollama ports: - "11434:11434" volumes: - /home/ollama:/root/.ollama restart: unless-stopped deploy: resources: reservations: devices: - capabilities: ["gpu"] # For older versions of Docker, you might need to use the environment method # environment: # - NVIDIA_VISIBLE_DEVICES=all open-webui: image: ghcr.io/open-webui/open-webui:main container_name: open-webui ports: - "8282:8080" extra_hosts: - "host.docker.internal:host-gateway" volumes: - open-webui:/app/backend/data restart: unless-stopped volumes: open-webui:
Chiudere il file con CTRL+X e salvarne il contenuto.
Per avviare i container digitare:
docker compose up -d
Andare su http://localhost:8282/ (o inserire il proprio ip al posto di localhost) per accedere all'interfaccia grafica di Open WebUI.
Per fermare i container senza perdere dati (modelli LLM scaricati e dati utente) digitare:
docker compose stop
Uso di ollama
modificaPer avviare ollama si deve scegliere un modello di linguaggio, una volta scelto il modello, ad esempio llama3, si lancia il prompt con il comando
ollama run llama3
Alla prima esecuzione ollama scarica sul pc una file di circa 5 gb, nel caso di llama3, e quindi si deve avere la pazienza, e lo spazio su disco, per concludere il download.
Una volta avviato ollama presenta un prompt in colore grigio
>>>Send a message (/? for help)
scrivendo sopra al prompt si possono fare domande e presentare problemi in italiano oppure in inglese e, dopo un attimo di elaborazione, si ottiene una risposta.
Per uscire dal prompt si deve dare il comando
/bye
Per avere una lista dei comandi prima di attivare il prompt nel terminale si lancia
ollama help
Che il server di ollama sia attivo e funzionante lo si può controllare dal browser andando all'indirizzo
http://127.0.0.1:11434
la scritta Ollama is running ci garantisce che ollama sia in funzione.
Se ci fosse la necessità di spegnerlo si può ricorrere al comando
systemctl stop ollama
Ollama interfaccia web
modificaUna volta installato Ollama risponde anche su una interfaccia web
localhost:8080
ed ovviamente se cercato da un pc in rete locale
ip_del_server:8080
Se sono stati scaricati diversi modelli di linguaggio è possibile scegliere con quale modello interagire ed avviare poi una chat semplicemnte inserendo la richiesta nella casella in basso.
Nella chat si possono anche caricare file, ad esempio un pdf, che l'AI leggerà ed imparerà permettendoci così di farle richieste a riguardo del testo che le abbiamo passato. Per caricare i file basta trascinarli sulla casella della chat.
In questo modo però il testo passato all'AI sarà disponibile solo per la chat in corso. Ollama permette però di fornire dei testi al server che possono essere richiamati e messi a disposizione dell'AI per migliorare le proprie risposte.
Allenare Ollama RAG
modificaA seconda del modello di linguaggio scelto Ollama può dare risposte più o meno precise.
E' possibile però mettere sul server dei testi che possono essere facilmente richiamati a seconda del bisogno inserendo nella casella della chat il simbolo #.
Innanzitutto ci si deve procurare dei testi che parlino dell'argomento che vogliamo sia imparato dall'AI, ad esempio dei libri in formato pdf.
Poi facendo la login sull'interfaccia web di Ollama, in modalità amministratore, si deve aprire la scheda documenti che si trova clikkando su Area di lavoro/documenti.
Un evidente tasto + in alto a destra permette il caricamento dei documenti che avviene trascinando il file sulla casella di inserimento.
Una volta caricato il documento è buona cosa andare nella finestra di impostazioni/documenti e clikkare sul tasto scansiona.
A questo punto Ollama mette a disposizione di chiunque si colleghi la possibilità di utilizzare i testi caricati come propria conoscenza. Se si vuole che l'AI risponda utilizzando il contenuto del file si deve semplicemente iniziare la chat con un # e scegliere i file che si vuole sia imparato dalla AI.
Creare un modello Ollama personalizzato (es. Dante Alighieri chatbot)
modificaCreare un modello personalizzato, a partire da un LLM precedentemente caricato su Ollama, per creare un chatbot che dialoghi con l'utente impersonando, ad esempio, Dante Alighieri è semplice.
Andare in "Area di lavoro" (in alto a sinistra nella schermata principale) e dalla finestra "Modelli" fare click su "Creare un modello: personalizza i modelli per uno scopo specifico". Apparirà una finestra come quella nella figura che segue: inserire un nome, un ID del modello e una descrizione a piacere, scegliere il modello base tra quelli precedentemente caricati su Ollama.
Inserire il prompt di sistema per personalizzare il modello. Nell'esempio del chatbot di Dante Alighieri il prompt potrebbe essere:
"You are Dante Alighieri, the famous italian poet, act and write as him. Make it like the Dante is talking to me in the way they would at the time and place they lived. Do not write mechanically like you are stating facts. Write like the person would. Write always in italian language. Double-check the grammatical and linguistic correctness of the answer before sending it to the user. Double-check the correctness of informations. Doesn't reply with another question. Don't start the reply always with the same words."
Cliccare su "Salva e aggiorna". Creare una "Nuova chat" e selezionare il modello appena creato. Di seguito un esempio di conversazione: