Compare commits

...

65 Commits

Author SHA1 Message Date
dado
0383cffff0 the firewall rule "direction" option in opnsense 2026-02-01 17:12:41 +01:00
dado
2f1a96f56f configurazione ap vlan-aware 2026-02-01 16:25:15 +01:00
dado
37a5c93a19 minor changes 2026-01-28 22:16:35 +01:00
dado
324026ee79 fixed crowdsec img 2026-01-26 20:37:15 +01:00
dado
dde5fe9fcb dot e crowdsec in opnsense 2026-01-25 18:01:26 +01:00
dado
5e2b207bf2 block ads 2026-01-24 18:39:49 +01:00
dado
9df2e9d860 aggiunto ap zyxel e foto rack 2026-01-24 18:14:23 +01:00
dado
9071e0abae minor changes 2026-01-19 21:17:58 +01:00
dado
09bc0b02a5 articolo pubblicato 2026-01-18 19:23:38 +01:00
dado
b4d50a116c minor changes 2026-01-18 19:21:32 +01:00
dado
ca79b563ec minor changes 2026-01-18 19:20:39 +01:00
dado
3acec4f73c migliorato sezione spamhaus, corretto regole per bloccare il traffico in uscita verso questi ip 2026-01-18 19:20:21 +01:00
dado
441f0e6afa minor changes 2026-01-18 18:41:19 +01:00
dado
d080ebfeda gestione porte switch 2026-01-18 16:37:09 +01:00
dado
c72819d8d4 corretto collegamento articolo su config ssh 2026-01-18 15:47:55 +01:00
dado
4f4e6e2358 mfa e Spamhaus DROP-list 2026-01-18 15:46:15 +01:00
dado
8e89951346 eliminato paragrafo per la rimozione del popup 'no valid subscription' in pve 2026-01-18 09:55:27 +01:00
dado
5bb985ec61 prossimi step: vpn 2026-01-18 09:53:50 +01:00
dado
944f3dbc45 migliorato meme bender 2026-01-18 09:51:51 +01:00
dado
9446fb92f0 range DHCP 2026-01-18 09:45:19 +01:00
dado
bcd009b0ef prossimi step 2026-01-18 09:38:09 +01:00
dado
8acecf2c46 added new tags 2026-01-17 22:10:50 +01:00
dado
cdcb9f679b corretto tag 2026-01-17 22:10:16 +01:00
dado
b443dd9896 aggiornato data di pubblicazione 2026-01-17 22:10:00 +01:00
dado
0bc3ac9254 sintetizzato summary 2026-01-17 22:05:37 +01:00
dado
681ddf39c3 minor changes 2026-01-17 22:04:34 +01:00
dado
35c285fd83 minor changes 2026-01-17 21:58:43 +01:00
dado
4ea4804477 post-config opnsense e sviluppi futuri 2026-01-17 21:13:06 +01:00
dado
3f837ddf93 migliorato la documentazione 2026-01-17 18:37:05 +01:00
dado
cd515e9e49 minor changes 2026-01-17 15:21:10 +01:00
dado
9cac2428cd minor changes 2026-01-11 18:49:04 +01:00
dado
f20dab34be added zfs raid1 img 2026-01-11 18:46:12 +01:00
dado
431716973f migliorato documentazione 2026-01-11 18:30:04 +01:00
dado
1dd14d8b8b minor changes 2026-01-06 20:30:31 +01:00
dado
aed5a0a149 shizuku fork 2026-01-06 20:28:47 +01:00
dado
1c867459f8 inseriti video e todo per il futuro 2026-01-06 15:45:26 +01:00
dado
d38e8bfc41 migliorato il testo 2026-01-05 18:31:25 +01:00
dado
0d911237f9 aggiunto qualche esempio di regola 2026-01-04 18:14:44 +01:00
dado
b70774a061 rimosso immagine inserimento email valida e aggiornato articolo con nuove note, migliorando la documentazione 2026-01-04 17:43:07 +01:00
dado
9a4dfab309 first draft homelab 2026-01-03 18:32:13 +01:00
dado
098ccb22ca eliminato bozza 2026-01-02 14:39:38 +01:00
dado
df18d77d52 minor changes 2025-12-21 12:06:07 +01:00
dado
9605233c69 minor changes 2025-12-20 21:28:30 +01:00
dado
fd47aea567 recensione bosgame p4 2025-12-20 21:27:25 +01:00
dado
a31a0a55dc aggiunto link a miserveunavpn.it 2025-12-17 21:39:05 +01:00
dado
660ad0acff aggiunto video sui problemi delle vpn 2025-12-17 21:37:03 +01:00
dado
d04c663dd2 aggiunto video sulla vettorializzazione 2025-12-16 22:00:54 +01:00
dado
5287a77778 minor changes 2025-12-06 17:53:01 +01:00
dado
a9dfca356b cambiato titolo del paragrafo, per evitare ripetizioni 2025-12-06 17:52:37 +01:00
dado
348e0c1b8f modificato il titolo 2025-12-06 16:39:02 +01:00
dado
c1b2ba1ef7 aggiunto tag 2025-12-06 16:35:57 +01:00
dado
97442dff11 approfondito e migliorato l'articolo 2025-12-06 16:34:40 +01:00
dado
42f1947a3f corretto link pagina monitoraggio 2025-12-04 19:59:29 +01:00
dado
8ccd2b6b96 migliorato paragrafo gpt 2025-12-03 22:28:15 +01:00
dado
b18f53a5f4 bozza sulle critiche all'ai 2025-12-02 21:16:57 +01:00
dado
d2ae40a70d minor changes 2025-11-30 20:09:01 +01:00
dado
cfb4ad3b7d migliorato definizione di llm completamente open source 2025-11-30 20:08:37 +01:00
dado
7fa4c995d0 migliorato il testo 2025-11-30 19:57:34 +01:00
dado
769551f396 minor changes 2025-11-30 15:18:17 +01:00
dado
8a142da26f migliorato performance vpn 2025-11-30 15:15:27 +01:00
dado
5f212f7871 aggiunto warning su attivazione automatica 2025-11-30 13:27:19 +01:00
dado
5d87565bc8 minor changes 2025-11-30 12:46:38 +01:00
dado
18e144a768 first draft 2025-11-30 12:42:35 +01:00
dado
8aee8e2889 minor changes 2025-11-30 12:42:24 +01:00
dado
522b538cef aggiunto immagine e paragrafo su GPT 2025-11-30 12:42:10 +01:00
104 changed files with 1443 additions and 121 deletions

View File

@@ -46,7 +46,7 @@ languages:
weight: 30
- identifier: monitoring
name: monitoring
url: https://mon.novemila.org
url: https://mon.novemila.org/status/services
weight: 35
- identifier: beopen
name: beopen

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 519 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 437 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 633 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 432 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 622 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 613 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 356 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 784 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 784 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

View File

@@ -62,7 +62,7 @@ tutanota.com. 600 IN MX 0 mail.tutanota.de.
`SPF` (*Sender Policy Framework*) è un record TXT che dichiara quali sono gli indirizzi IP autorizzati ad inviare email per un dominio.
In pratica, il record SPF consente ai destinatari di verificare la validità delle email ricevute, contribuendo a prevenire lo spoofing e l'invio di email di phishing. Lo spoofing é una tecnica di attacco informatico che consiste nella creazione di email con indirizzo del mittente contraffatto. Viene comunemente usata per email spam e phishing al fine di ingannare il destinatario circa l'origine del messaggio.
In pratica, il record SPF consente ai destinatari di verificare la validità delle email ricevute, contribuendo a prevenire l'invio di email di phishing e lo spoofing, una tecnica di attacco informatico che consiste nella creazione di email con indirizzo del mittente contraffatto.
### Record DKIM

View File

@@ -29,6 +29,8 @@ Per gli utenti privati, é importante ricordare che una VPN, sia essa gratuita o
Se l'obiettivo è semplicemente evitare la profilazione pubblicitaria, una VPN non è una soluzione efficace. Essa non offre protezione contro le numerose tecniche utilizzate per raccogliere informazioni sui dispositivi e sugli utenti, come i cookie, il fingerprinting, ecc. Pertanto, per affrontare queste problematiche, è necessario considerare altre misure, come l'uso di browser orientati alla privacy, estensioni per il blocco dei tracker e tecniche di anonimizzazione più avanzate. Lo slogan *una VPN ti fa navigare in modo anonimo* è solo marketing.
{{< youtube ftgOQmn58a4 >}}
Tuttavia, una VPN può rivelarsi utile in diverse situazioni. Ad esempio, può contribuire a nascondere il traffico dati al proprio provider di servizi Internet (ISP). Da notare che, mentre il traffico è nascosto al provider locale, esso viene comunque instradato attraverso il server del provider della VPN; di conseguenza, la fiducia nel provider diventa un elemento cruciale.
Infine, una VPN può essere impiegata per aggirare restrizioni geografiche su determinati servizi. Se un servizio è bloccato nel proprio paese, l'utilizzo di una VPN consente di mascherare la propria posizione e far apparire la connessione come se provenisse da un altro Stato, facilitando così l'accesso a contenuti altrimenti inaccessibili.
@@ -39,6 +41,8 @@ La consapevolezza globale sul rapporto tra le VPN e la sicurezza su internet è
{{< youtube o4S-ac930-I >}}
> Un ottimo sito per comprendere se abbiamo realmente bisogno di una VPN é [miserveunavpn.it](https://miserveunavpn.it/)
## Wireguard
`WireGuard` è un protocollo e un programma VPN open source, progettato per offrire prestazioni superiori rispetto a soluzioni come IPsec e OpenVPN.
@@ -117,17 +121,21 @@ Le righe `PostUp` verranno eseguite quando il server WireGuard avvia il tunnel V
Le regole `PreDown` vengono eseguite quando il server WireGuard interrompe il tunnel VPN. Queste regole sono l'inverso delle regole PostUp e servono a annullare le regole per l'interfaccia VPN quando questa viene stoppata.
### Forward del traffico ipv4
### Forward del traffico ipv4 e performance
Per fare in modo che il client VPN instradi il suo traffico Internet attraverso il server, è necessario abilitare l'`IP forwarding` (inoltro dell'indirizzo IP). Questo consente al server di ricevere richieste dai client VPN, inoltrarle a Internet e restituire loro le risposte. In questo modo, il traffico appare come se provenisse dall'indirizzo IP del server, nascondendo l'indirizzo IP pubblico del client.
```txt
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.d/60-wireguard.conf
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.d/60-wireguard.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.d/60-wireguard.conf
sysctl -p /etc/sysctl.d/60-wireguard.conf
```
Se invece si desidera utilizzare WireGuard solo per consentire a un peer di accedere ai servizi presenti sul server (senza necessità di navigare in Internet), non è necessario configurare l'IP forwarding.
L'opzione `net.ipv4.tcp_congestion_control=bbr` ottimizza la gestione della congestione della rete. `BBR` è un algoritmo sviluppato da Google che aiuta a migliorare le prestazioni di rete riducendo la latenza e aumentando la capacità.
### UFW
Infine, bisogna consentire il traffico UDP sulla porta `51820`, su cui il server WireGuard é in ascolto, come da file di configurazione:
@@ -177,6 +185,7 @@ Inserire in coda al file `/etc/wireguard/wg0.conf` i dati del peer:
[Peer]
PublicKey = [CHIAVE_PUBBLICA_CLIENT]
AllowedIPs = 10.8.0.2/32
PersistentKeepalive = 25
```
Riavviare al termine il servizio:
@@ -263,10 +272,12 @@ cat /etc/wireguard/wg0.conf
[Peer]
PublicKey = [CHIAVE_PUBBLICA_CLIENT_0]
AllowedIPs = 10.8.0.2/32
PersistentKeepalive = 25
[Peer]
PublicKey = [CHIAVE_PUBBLICA_CLIENT_1]
AllowedIPs = 10.8.0.3/32
PersistentKeepalive = 25
```
Avviare sul client la VPN:
@@ -311,3 +322,6 @@ Infine
- [Wireguard GUI](https://blog.marvinpascale.it/posts/2024/wireguard-gui/)
- [VPN Kill Switch](https://blog.marvinpascale.it/posts/2024/vpn-killswitch/)
- [Perché usare una VPN e come automatizzarla con Tasker](https://pietro.im/posts/tasker-vpn/)
- [Hardening Your WireGuard Security: A Comprehensive Guide](https://contabo.com/blog/hardening-your-wireguard-security-a-comprehensive-guide/)
- [WireGuard VPS The Definitive Guide For Self-Hosted Approach](https://contabo.com/blog/wireguard-vps-the-definitive-guide-for-self-hosted-approach/)
- [Maximizing WireGuard Performance: Advanced Tuning and Benchmarking](https://contabo.com/blog/maximizing-wireguard-performance/)

View File

@@ -21,6 +21,10 @@ searchHidden: false
`Shizuku` è uno strumento che consente alle applicazioni di accedere a specifiche API di sistema di Android con privilegi elevati, senza la necessità di disporre dei permessi di root. A differenza del rooting, che richiede la modifica del sistema operativo e comporta potenziali rischi per la sicurezza, Shizuku sfrutta `ADB` (*Android Debug Bridge*) per permettere alle applicazioni di eseguire (diverse) operazioni che normalmente richiederebbero permessi elevati, come disinstallare ~~applicazioni~~ bloatware di sistema.
> L'applicazione puó essere scaricata da [IzzyOnDroid F-Droid Repository](https://apt.izzysoft.de/fdroid/index/apk/moe.shizuku.privileged.api).
>
> Esiste anche un fork di [Shizuku](https://github.com/thedjchi/Shizuku) che implementa un miglior *start on boot*, attendendo una connessione WiFi prima di avviare il servizio Shizuku, e riavvia automaticamente il servizio in caso di arresti anomali.
![shizuku](/images/shizuku/shizuku.png)
## Avvio tramite wireless debugging
@@ -186,9 +190,11 @@ shizuku
Ora la configurazione è completa. Lo script viene eseguito automaticamente all'avvio e successivamente é disabilito il wireless debugging, poiché non è necessario che rimanga attivo in background affinché Shizuku funzioni correttamente.
> Per potersi attivare automaticamente all'accensione, il WiFi deve essere attivo e il dispositivo connesso ad una rete
## awesome-shizuku
Al [seguente](https://github.com/timschneeb/awesome-shizuku#awesome-shizuku) repository è disponibile un elenco delle migliori applicazioni che sfruttano le funzionalità di Shizuku. Alcuni dei migliori esempi:
Alla [seguente](https://github.com/timschneeb/awesome-shizuku#awesome-shizuku) pagina Github è disponibile un elenco delle migliori applicazioni che sfruttano le funzionalità di Shizuku. Alcuni dei migliori esempi:
- [Hail](https://f-droid.org/it/packages/com.aistra.hail): consente di congelare le applicazioni Android
- [Canta Debloater](https://f-droid.org/it/packages/io.github.samolego.canta): permette di disinstallare qualsiasi applicazione di sistema, senza richiedere i permessi di root

View File

@@ -1,5 +1,5 @@
---
title: "L'illusione dell'intelligenza: una (breve) introduzione all'intelligenza artificiale"
title: "L'illusione dell'intelligenza: una breve introduzione all'intelligenza artificiale"
date: "2025-11-29"
draft: false
url: "/ai"
@@ -7,6 +7,7 @@ summary: "Questo articolo si propone di essere una sintetica e chiara introduzio
tags:
- chatbot
- llm
- machine learning
- ai
hideBackToTop: false
hidePagination: true
@@ -21,9 +22,17 @@ searchHidden: false
![joseph-weizenbaum](/images/ai/joseph-weizenbaum.png)
L'`intelligenza artificiale` (`AI`) è una branca dell'informatica dedicata allo studio e allo sviluppo di sistemi capaci di risolvere problemi o eseguire compiti che solitamente richiederebbero l'intervento dell'intelletto umano. Pur essendo un campo di ricerca attivo da oltre settant'anni, l'interesse pubblico è aumentato recentemente grazie alla diffusione di strumenti come i `Large Language Model` (`LLM`), modelli di AI basati su reti neurali con capacità avanzate di elaborazione del linguaggio naturale.
L'`intelligenza artificiale` (`AI`) è una branca dell'informatica dedicata allo studio e allo sviluppo di sistemi capaci di simulare le capacità cognitive umane.
*Joseph Weizenbaum* (19232008), informatico tedesco, fu uno dei precursori in questo campo e pubblicò negli anni Sessanta del XX secolo il programma `ELIZA`. Tale sistema rappresenta un esempio primordiale di `chatbot`, in grado di simulare conversazioni attraverso lo scambio di messaggi testuali. Lo script più noto, spesso erroneamente identificato con il programma stesso, è `DOCTOR`, che emula il comportamento di un terapeuta. ELIZA operava mediante l'analisi e la sostituzione di parole chiave all'interno di pattern predefiniti, generando risposte basate su regole deterministiche. Nonostante la sua semplicità algoritmica, il sistema dimostrava una capacità sorprendente di apparire credibile, tanto da indurre alcuni utenti a percepire un'interlocuzione con un essere umano. Tale fenomeno, noto come *effetto ELIZA*, deriva dalla propensione umana ad attribuire intenzionalità e significato a produzioni linguistiche.
Si distingue principalmente tra `Narrow AI`, che risolve task specifici, e `General AI`, che idealmente emula il cervello umano nella sua totalità e con coscienza di sé. Attualmente i modelli esistenti, inclusi `GPT`, appartengono alla categoria di Narrow AI, poiché non possiedono consapevolezza o emozioni.
## Una lunga storia
Pur essendo un campo di ricerca attivo da oltre settant'anni, l'interesse pubblico è aumentato recentemente grazie alla diffusione di strumenti come i `Large Language Model` (`LLM`), modelli di AI basati su reti neurali con capacità avanzate di elaborazione del linguaggio naturale.
*Joseph Weizenbaum* (19232008), informatico tedesco, fu uno dei precursori in questo campo e pubblicò negli anni Sessanta del XX secolo il programma `ELIZA`. Tale sistema rappresenta un esempio primordiale di `chatbot`, in grado di simulare conversazioni attraverso lo scambio di messaggi testuali. Lo script più noto, spesso erroneamente identificato con il programma stesso, è `DOCTOR`, che emula il comportamento di un terapeuta. ELIZA utilizzava il metodo del `pattern matching`, ovvero il riconoscimento di specifiche parole chiave negli input dellutente a cui associava risposte predefinite. Questo approccio si basava fondamentalmente su catene di istruzioni condizionali (`if-else`) e, sebbene innovativo per lepoca, limitava il sistema a risposte rigide e predeterminate.
Nonostante la sua semplicità algoritmica, il sistema dimostrava una capacità sorprendente di apparire credibile, tanto da indurre alcuni utenti a percepire un'interlocuzione con un essere umano. Tale fenomeno, noto come *effetto ELIZA*, deriva dalla propensione umana ad attribuire intenzionalità e significato a produzioni linguistiche.
---
@@ -31,7 +40,7 @@ Scrive Weizenbaum in merito al fenomeno:
> "*Rimasi allibito nel vedere quanto rapidamente e profondamente le persone che conversavano con il software si lasciassero coinvolgere emotivamente dal computer e come questo assumesse evidenti caratteri antropomorfici. Una volta la mia segretaria, che mi aveva visto lavorare al programma per molti mesi e sapeva trattarsi soltanto di un programma per computer, incominció a conversare con esso. Dopo pochi scambi di battute, mi chiese di uscire dalla stanza.*
>
> *Questa reazione alla pubblicazione di Eliza mi mostró, piú chiaramente di quanto avessi visto fino ad allora, come un pubblico anche colto sia capace, e anzi desideroso, di attribuire proprietà enormemente esagerate ad una nuova tecnologia che non capisce. Latteggiamento dellopinione pubblica di fronte alle tecnologie emergenti dipende molto piú dalle proprietá che vengono loro attribuite che da ció che esse possono o non possono fare. Se le idee dellopinione pubblica sono completamente infondate ne consegue che le decisioni pubbliche saranno male indirizzate e spesso sbagliate*".
> *Questa reazione alla pubblicazione di Eliza mi mostró, piú chiaramente di quanto avessi visto fino ad allora, come un pubblico anche colto sia capace, e anzi desideroso, di attribuire proprietà enormemente esagerate ad una nuova tecnologia che non capisce. Latteggiamento dellopinione pubblica di fronte alle tecnologie emergenti dipende molto piú dalle proprietá che vengono loro attribuite che da ció che esse possono o non possono fare*".
Oggi é possibile provare ELIZA direttamente dal proprio browser:
@@ -45,25 +54,29 @@ Il libro di Weizenbaum "*Il potere del computer e la ragione umana. I limiti del
---
Questi primi sistemi, noti come `sistemi a regole`, risultavano limitati dalla necessità di una programmazione completa e dalla mancanza di capacità di apprendimento automatico.
Nonostante la sua lunga storia, l'AI è oggetto oggi di grande attenzione principalmente per due ragioni:
- *Disponibilità di dati*: la digitalizzazione della conoscenza, favorita dalla diffusione di Internet e dei social network, ha portato alla produzione continua di dati utilizzabili per lo sviluppo di algoritmi di AI
- *Potenza computazionale*: la capacità di calcolo dei computer moderni è significativamente superiore rispetto ai primi calcolatori, permettendo l'elaborazione delle enormi quantità di dati
- *disponibilità di dati*: la digitalizzazione della conoscenza, favorita dalla diffusione di Internet e dei social network, ha portato alla produzione continua di dati utilizzabili per lo sviluppo di algoritmi di AI
- *potenza computazionale*: la capacità di calcolo dei computer moderni è significativamente superiore rispetto ai primi calcolatori, permettendo l'elaborazione delle enormi quantità di dati
È fondamentale comprendere che l'intelligenza artificiale **non costituisce un fenomeno magico**, ma si fonda su principi rigorosi di matematica applicata. L'intera disciplina si basa su formalismi algebrici, modelli statistici e algoritmi computazionali che ne definiscono l'architettura e il funzionamento.
È fondamentale comprendere che l'intelligenza artificiale **non costituisce un fenomeno magico**, ma si fonda su principi rigorosi di matematica applicata.
## Approcci allIntelligenza Artificiale
Nellambito dellIA si distinguono due approcci fondamentali:
- L`approccio forte` che mira alla creazione di una macchina dotata di capacità cognitive autonome, in grado di comprendere il contesto operativo e la natura delle proprie azioni. I sistemi informatici attuali, sebbene caratterizzati da elevata potenza di calcolo, non possiedono tale capacità: eseguono istruzioni senza una reale comprensione del significato dei dati elaborati. La realizzazione di questo approccio implicherebbe la riproduzione integrale delle funzionalità del cervello umano, obiettivo che, ad oggi, risulta irrealizzabile. Il cervello umano, infatti, presenta unefficienza senza pari in termini di dimensioni, consumo energetico e complessità, caratteristiche difficilmente replicabili anche dai supercalcolatori più avanzati, che occupano spazi considerevoli e richiedono un elevato dispendio energetico. Questo ambito di ricerca è spesso associato al concetto di `Artificial General Intelligence` (`AGI`)
- L`approccio debole`, attualmente predominante, non si prefigge la creazione di macchine coscienti, bensì la `simulazione` del comportamento del cervello umano. I sistemi basati su questo approccio non comprendono le operazioni svolte, ma raggiungono i risultati attesi sulla base di istruzioni predefinite
- L`approccio forte` che mira alla creazione di una macchina dotata di capacità cognitive autonome, in grado di comprendere il contesto operativo e la natura delle proprie azioni. I sistemi informatici attuali, sebbene caratterizzati da elevata potenza di calcolo, non possiedono tale capacità: eseguono istruzioni senza una reale comprensione del significato dei dati elaborati. La realizzazione di questo approccio implicherebbe la riproduzione integrale delle funzionalità del cervello umano, obiettivo che, ad oggi, risulta irrealizzabile. Questo ambito di ricerca è spesso associato al concetto di `Artificial General Intelligence` (`AGI`)
- L`approccio debole`, attualmente predominante, non si prefigge la creazione di macchine coscienti, bensì la `simulazione` del comportamento del cervello umano (`Narrow AI`)
## Machine Learning
Il `Machine Learning` (*apprendimento automatico*) rappresenta un sottoinsieme specifico dellAI, il cui scopo principale consiste nellapprendere informazioni dai dati senza una programmazione esplicita dei passi da compiere. Gli algoritmi di Machine Learning si suddividono in due fasi principali: la fase di training, durante la quale il sistema apprende le regole dai dati, e la fase di inferenza o utilizzo, in cui il modello applica quanto appreso per risolvere nuovi task.
Il cambiamento paradigmatico più significativo avvenne con lintroduzione del `Machine Learning` (*apprendimento automatico*), il cui scopo principale consiste nellapprendere informazioni dai dati senza una programmazione esplicita dei passi da compiere. Gli algoritmi di Machine Learning si suddividono in due fasi principali: la fase di training, durante la quale il sistema apprende le regole dai dati, e la fase di *inferenza* o utilizzo, in cui il modello applica quanto appreso per risolvere nuovi task.
Per illustrarne il funzionamento, si può fare riferimento a un esempio classico: la stima del valore di un immobile. Il prezzo di un edificio o di un appartamento non dipende da un unico fattore, ma da una combinazione di caratteristiche, tra cui:
### Stima del valore di un immobile
Per illustrarne il funzionamento, si può fare riferimento a un esempio classico: la stima del valore di un immobile. Il prezzo non dipende da un unico fattore, ma da una combinazione di caratteristiche, tra cui:
- dimensione dellimmobile
- stato di conservazione
@@ -71,7 +84,7 @@ Per illustrarne il funzionamento, si può fare riferimento a un esempio classico
- anno di costruzione
- presenza di servizi accessori (posto auto, garage, ascensore)
Tali caratteristiche interagiscono tra loro, determinando il valore finale dellimmobile.
Tali caratteristiche interagiscono tra loro, determinando il valore finale delledificio.
Le caratteristiche elencate sono simili a delle variabili (x1, x2, ecc.) che vengono moltiplicate per certi valori chiamati `pesi`, il cui compito è di stabilire quanto contribuisce una specifica caratteristica alla determinazione del valore complessivo dell'immobile: un peso elevato indica un contributo maggiore, mentre un peso basso o negativo ne riduce linfluenza.
@@ -79,14 +92,16 @@ Ad esempio, un appartamento di ridotte dimensioni e datato può risultare più c
Nel contesto dellesempio, lobiettivo del Machine Learning consiste nel determinare i valori dei pesi (inizialmente sconosciuti) che consentono di stimare il valore dellimmobile sulla base delle sue caratteristiche. In termini pratici, il processo di apprendimento mira a identificare la combinazione ottimale di pesi che minimizza lerrore tra il valore stimato e quello reale.
Il `Deep Learning` (*apprendimento profondo*) rappresenta un sottoinsieme del Machine Learning. Si basa sullimpiego di `reti neurali`, modelli matematici che simulano il funzionamento dei neuroni e delle loro connessioni nel cervello umano. Tali reti sono organizzate in strati (reti multistrato) che elaborano gli input per produrre un output.
Il `Deep Learning` (*apprendimento profondo*) rappresenta un sottoinsieme del Machine Learning. Si basa sullimpiego di `reti neurali`, modelli matematici che simulano il funzionamento dei neuroni e delle loro connessioni nel cervello umano.
![machine-learning](/images/ai/machine-learning.png)
### Tipologie di apprendimento
Si distinguono tre principali tipologie di apprendimento:
- L`apprendimento supervisionato` include sia i dati di input (caratteristiche) sia i corrispondenti dati di output (valori corretti o etichette). Il sistema apprende confrontando le proprie previsioni con i risultati attesi, ottimizzando progressivamente le prestazioni
- L`apprendimento non supervisionato` opera in assenza di output o etichette predefinite. Lo scopo principale è lindividuazione di pattern o schemi nascosti allinterno dei dati, attraverso lanalisi delle caratteristiche intrinseche. Un esempio tipico è rappresentato dal clustering, tecnica che consente di raggruppare dati apparentemente disomogenei in blocchi che condividono caratteristiche simili. Tale approccio trova applicazione in diversi contesti, tra cui la diagnostica medica
- L`apprendimento non supervisionato` opera in assenza di output o etichette predefinite. Lo scopo principale è lindividuazione di pattern o schemi nascosti allinterno dei dati, attraverso lanalisi delle caratteristiche intrinseche. Un esempio tipico è rappresentato dal *clustering*, tecnica che consente di raggruppare dati apparentemente disomogenei in blocchi che condividono caratteristiche simili. Tale approccio trova applicazione in diversi contesti, tra cui la diagnostica medica
- L`apprendimento con rinforzo` si ispira a un modello di *apprendimento per prove ed errori*, simile a quello osservabile nei processi cognitivi umani. Il sistema esegue azioni (ad esempio, una mossa in una partita a scacchi) e riceve, in risposta, un premio (in caso di esito positivo) o una penalità (in caso di esito negativo). Lalgoritmo si adatta progressivamente, identificando le strategie più efficaci per massimizzare il premio complessivo
{{< youtube GfwFNKCys9c >}}
@@ -104,7 +119,7 @@ Inizialmente, il dataset disponibile - composto dalle caratteristiche e dai valo
1. Lalgoritmo avvia il processo assegnando valori iniziali ai pesi, spesso generati in modo casuale. Utilizzando tali pesi e le caratteristiche presenti nel training set, calcola un valore stimato per ciascun immobile
2. Il valore stimato viene confrontato con il valore reale (noto a priori). La differenza tra i due costituisce l`errore di stima`
3. Sulla base dellerrore calcolato, lalgoritmo procede allaggiornamento dei pesi. Lobiettivo consiste nel modificare i valori in modo da ridurre lerrore nelle successive iterazioni
3. Sulla base dellerrore calcolato, lalgoritmo procede allaggiornamento dei pesi. Lobiettivo consiste nel modificare i valori in modo da ridurre lerrore nelle successive iterazioni (`backpropagation`)
4. Il ciclo di calcolo, confronto e aggiornamento si ripete più volte, fino a quando lerrore non raggiunge una soglia di tolleranza prestabilita
5. Non è auspicabile che lerrore si annulli completamente. Un eccessivo adattamento ai dati di addestramento può determinare un fenomeno noto come `overfitting`: la funzione appresa risulta troppo specifica per il training set e non generalizza efficacemente su nuovi dati, compromettendo la capacità predittiva del modello (ad esempio, nuovi immobili)
6. Al termine della fase di addestramento, lalgoritmo viene sottoposto a validazione utilizzando il validation set. Tale fase consente di valutare lefficacia del modello su dati non impiegati durante laddestramento, verificandone la capacità di generalizzazione.
@@ -113,60 +128,130 @@ Inizialmente, il dataset disponibile - composto dalle caratteristiche e dai valo
{{< youtube t3XCPVSyCxM >}}
Le `reti neurali` rappresentano una categoria specifica di algoritmi di machine learning ispirati al funzionamento biologico del cervello umano, attualmente standard nel campo dell'intelligenza artificiale.
La loro struttura essenziale consiste in strati (`layer`) di unità computazionali (neuroni) connesse tra loro attraverso `parametri numerici` (pesi), che elaborano input numerici per generare output specifici.
I parametri sono le variabili di configurazione interne di un modello che controllano il modo in cui elabora i dati e fa previsioni.
![neural-network](/images/ai/neural-network.png)
Per utilizzare efficacemente una rete neurale, essa deve essere preliminarmente allenata mediante un processo di training. I dati in ingresso vengono elaborati attraverso i vari layer della rete, subendo trasformazioni successive. Al termine di questo processo, la rete produce una predizione. La predizione ottenuta viene confrontata con il valore reale di riferimento.
![backpropagation](/images/ai/backpropagation.png)
La `backpropagation` rappresenta lalgoritmo fondamentale mediante il quale una rete neurale apprende dagli errori commessi durante il processo di addestramento. In termini tecnici, si tratta del meccanismo attraverso il quale la rete modifica i pesi delle proprie connessioni al fine di minimizzare lerrore associato alle previsioni.
{{< youtube 2UdQQA65jcM >}}
{{< youtube WQEDSwQTi38 >}}
Le `reti neurali` rappresentano una categoria specifica di algoritmi di machine learning, attualmente standard nel campo dell'intelligenza artificiale.
Queste strutture sono composte da nodi denominati neuroni, interconnessi attraverso `parametri numerici` che influenzano la risposta della rete a determinati input. I parametri sono le variabili di configurazione interne di un modello che controllano il modo in cui elabora i dati e fa previsioni.
La regolazione e l'ottimizzazione di questi parametri avvengono attraverso un processo di training, durante il quale la rete apprende a risolvere il compito assegnato.
## Large Language Models
I `Large Language Models` (`LLM`) sono modelli computazionali basati su architetture di reti neurali specifiche chiamate `Transformer`.
I Transformer sono stati rivoluzionari per l'introduzione del `meccanismo dell'attenzione`. Questa innovazione consente al modello di assegnare pesi diversi alle varie parti dell'input, facilitando una maggiore *concentrazione* sulle informazioni più rilevanti, migliorando notevolmente le capacità predittive.
I Transformer sono stati rivoluzionari per l'introduzione del `meccanismo dell'attenzione` ([Attention Is All You Need](https://arxiv.org/abs/1706.03762)). Questa innovazione consente al modello di assegnare pesi diversi alle varie parti dell'input, facilitando una maggiore *concentrazione* sulle informazioni più rilevanti, migliorando notevolmente le capacità predittive.
Il task fondamentale che gli LLM risolvono è la *next token prediction*: il modello calcola la probabilità di ogni possibile token successivo e seleziona quello più probabile per costruire la risposta.
L'addestramento di un LLM avviene in più fasi distinte. La fase di `training` consiste nell'esporre il modello a grandi quantità di testo per insegnargli a prevedere il token successivo nelle sequenze linguistiche. Successivamente, attraverso il `fine tuning`, il modello viene specializzato per rispondere in modo appropriato in contesti di dialogo e per svolgere compiti specifici come traduzione o sintesi. Infine, la fase di `alignment` coinvolge una regolazione basata su feedback umani o meccanismi sofisticati per migliorare laccuratezza nella predizione delle parole.
Nonostante la potenza degli LLM, essi non sono infallibili. Possono essere definiti come `pappagalli stocastici`, una metafora che illustra due aspetti fondamentali del loro funzionamento:
- Non possiedono una comprensione semantica delle parole, non sono dotati di coscienza, intenzionalità o una conoscenza profonda del contesto reale. Il loro operato consiste nel ripetere, rielaborare e combinare frasi, concetti e informazioni acquisite durante la fase di addestramento, in modo simile a un pappagallo che ripete suoni senza coglierne il significato. Si tratta quindi di un`imitazione` avanzata del linguaggio umano, basata su modelli statistici
- Non possiedono una comprensione semantica delle parole, non sono dotati di coscienza, intenzionalità o di una conoscenza profonda del contesto reale. Il loro operato consiste nel ripetere, rielaborare e combinare frasi, concetti e informazioni acquisite durante la fase di addestramento, in modo simile a un pappagallo che ripete suoni senza coglierne il significato. Si tratta quindi di un`imitazione` avanzata del linguaggio umano, basata su modelli statistici
- Il termine *stocastico* indica che le risposte generate non sono deterministiche, bensì probabilistiche. Un LLM produce testo selezionando, a ogni passaggio, la parola o la sequenza di parole più probabile in base ai dati di addestramento e al contesto della conversazione. Questo meccanismo introduce un elemento di casualità e variabilità nelle risposte
È importante quindi evitare antropomorfismi, ovvero attribuire caratteristiche umane a questi modelli, che restano algoritmi con caratteristiche specifiche e limitate rispetto all'intelligenza biologica.
Inoltre gli LLM `non hanno un vincolo di realtà`, non sono intrinsecamente ancorati a fatti, verità o coerenza con la realtà oggettiva (qualsiasi cosa essa sia). Possono generare risposte che, pur apparendo plausibili e coerenti dal punto di vista linguistico, non corrispondono a informazioni reali o verificabili. Ad esempio, è possibile che inventino nomi, eventi o dati privi di fondamento. In questo contesto, ogni risposta può essere considerata un'allucinazione, poiché non è ancorata alla realtà, ma deriva esclusivamente da processi probabilistici.
![ai-statistics](/images/ai/ai-statistics.png)
L'integrazione di LLM con sistemi di ricerca su internet consente di ampliare la base informativa a cui il modello può attingere. Tuttavia, il processo di ricerca e raccolta dati non è svolto dal modello stesso, ma da sistemi esterni che forniscono contenuti da elaborare contestualmente. L'utente deve quindi sempre verificare le fonti delle informazioni generate, poiché anche la rielaborazione può contenere errori.
I modelli addestrati hanno parametri statici che non si modificano durante l'uso quotidiano. La percezione che il modello *ricordi* le preferenze dell'utente deriva da meccanismi esterni che memorizzano alcune informazioni per personalizzare le risposte, ma la rete neurale di base non conserva dati personali tra le sessioni.
Inoltre gli LLM `non hanno un vincolo di realtà`, non sono intrinsecamente ancorati a fatti, verità o coerenza con la realtà oggettiva (qualsiasi cosa essa sia). Possono generare risposte che, pur apparendo plausibili e coerenti dal punto di vista linguistico, non corrispondono a informazioni reali o verificabili. Ad esempio, è possibile che inventino nomi, eventi o dati privi di fondamento. In questo senso, ogni risposta può essere considerata un'allucinazione, poiché non è ancorata alla realtà, ma deriva esclusivamente da processi probabilistici.
{{< youtube wmfPzyd1V9U >}}
### Addestramento
Laddestramento di un LLM si svolge in tre fasi principali:
- `Pretraining`: è la fase iniziale in cui il modello impara a generare testo coerente in linguaggio corretto
- `Fine tuning`: in questa fase, il modello acquisisce capacità più specifiche, come la traduzione o il riassunto di testi, mediante esempi di input-output specifici
- `Alignment`: fase finale che mira a conformare le risposte del modello ai valori umani desiderati. Viene principalmente applicato il `reinforcement learning`, in particolare il `Reinforcement Learning from Human Feedback` (`RLHF`), che utilizza segnali di ricompensa derivanti da valutazioni umane. Gli umani valutano diverse risposte generate dal modello a uno stesso prompt, stabilendone un ordine di preferenza. Questi dati sono poi utilizzati per addestrare un *reward model*, che assegna un punteggio alle risposte in base allallineamento con le preferenze espresse. Successivamente, il punteggio fornito dal reward model è impiegato nel reinforcement learning per rinforzare le risposte più allineate
### Disallineamento
L'allineamento di un LLM è definito come la conformità delle sue risposte e azioni a una serie di principi etici e operativi condivisi, in particolare i principi `HHH` (`Honest`, `Helpful`, `Harmless`). Il disallineamento (`misalignment`) si verifica quando i comportamenti e le risposte generate da un modello non corrispondono a tali principi.
Il disallineamento assume severe implicazioni quando i modelli vengono utilizzati come agenti in grado di prendere decisioni autonome che influiscono sul mondo reale.
{{< youtube nRyBuPCkK_w >}}
### Modelli multimodali
I modelli di intelligenza artificiale multimodale rappresentano unevoluzione rispetto ai tradizionali LLM, i quali elaborano esclusivamente dati testuali. I sistemi multimodali, invece, sono in grado di gestire simultaneamente input di diversa natura, tra cui testo, immagini, audio e video.
Gli ultimi sviluppi hanno portato all'implementazione di un'architettura denominata `Mixture of Experts` (`MoE`). Questo approccio si basa su una rete costituita da un insieme di modelli più piccoli e specializzati, ciascuno dei quali è competente in ambiti specifici. Il router ha il compito di attivare l'expert appropriato in base al compito da elaborare. Questa suddivisione consente di utilizzare solo una parte della rete, in base al computo da svolgere.
Gli ultimi sviluppi hanno portato all'implementazione di un'architettura denominata `Mixture of Experts` (`MoE`). Questo approccio si basa su una rete costituita da un insieme di modelli più piccoli e specializzati, ciascuno dei quali è competente in ambiti specifici. Questa suddivisione consente di utilizzare solo una parte della rete, in base al computo da svolgere.
### Large Reasoning Model
A differenza dei modelli linguistici tradizionali, che forniscono risposte immediate, i `Large Reasoning Model` (`LRM`) dedicano tempo di calcolo aggiuntivo, definito come *tempo di riflessione*, prima di produrre una risposta, al fine di risolvere problemi che necessitano di passaggi multipli. Nella pratica, i modelli di ragionamento generano catene interne di passaggi intermedi, conosciute come `chain-of-thought` (`COT`), e successivamente selezionano e raffinano una risposta finale.
> Prediction is not reasoning
A differenza dei modelli linguistici tradizionali, che forniscono risposte immediate, i `Large Reasoning Model` (`LRM`) dedicano tempo di calcolo aggiuntivo, definito come *tempo di riflessione*, prima di produrre una risposta. Nella pratica, i modelli di ragionamento generano catene interne di passaggi intermedi, conosciute come `chain of thought` (`CoT`), e successivamente selezionano e raffinano una risposta finale.
È importante notare che, sebbene i modelli di ragionamento possano apparire come se stessero "*ragionando*", non possiedono una comprensione logica reale, ma imitano il processo di ragionamento umano.
{{< youtube _o2asEy_mq0 >}}
Il miglioramento delle performance su task complessi non implica necessariamente un ragionamento formale o umano. Piuttosto, i modelli sfruttano pattern di apprendimento euristico e tecniche di ottimizzazione per ottenere risultati efficienti.
## Critiche all'intelligenza artificiale
### John Searle e il concetto di intenzionalità
La `stanza cinese` è un esperimento mentale ideato da [John Searle](https://it.wikipedia.org/wiki/John_Searle) come critica alla teoria dell'intelligenza artificiale forte.
L'idea principale del programma dell'AI forte è quella che individua una corrispondenza di struttura e di funzionamento tra la mente umana e un computer. Viene in effetti stabilito il fatto che la mente, ricevendo dati (input), modificandoli e dandone altri (output), funzioni per mezzo di simboli elaborati da un'unità centrale di esecuzione che indica le procedure da compiersi.
Contro questo programma Searle formula un'obiezione secondo cui la mente umana non può essere riprodotta solamente in termini sintattici, poiché così non si tiene conto della sua qualità principale, ovvero l'`intenzionalità`, che rimanda alla semantica e alla coscienza. Searle, quindi, sostiene che l'intelligenza artificiale non possa essere equivalente a quella umana perché non è sufficiente elaborare programmi di manipolazione di simboli secondo regole sintattiche per generare un'attività mentale.
Searle considera l'emergere dell'intenzionalità un fenomeno biologico legato alla *costituzione del cervello umano* e alle relazioni biologico-chimiche che lì si svolgono. Mantiene un *nesso imprescindibile tra mente e corpo*, proponendo l'idea che le proprietà biologico-chimiche del cervello producano gli eventi mentali. In questo senso, la mente umana sarebbe completamente identificata con il sostrato neurofisiologico del cervello.
#### Stanza cinese
{{< youtube TryOC83PH1g >}}
Per formulare la sua obiezione contro il conceto di intelligenza artificiale forte, Searle ricostruisce una situazione similare a quella del Test di Turing, dove un essere umano, a sua insaputa, interagisce con una macchina. Il compito per l'umano è di giudicare, sulla base delle risposte alle domande che egli pone, se sta discutendo con un altro umano o con una macchina.
Searle riprende questo schema e immagina di chiudersi dentro una stanza, dove deve interagire con qualcuno allesterno che non conosce nulla di lui. Suppone che la persona allesterno sia madrelingua cinese, mentre lui non ha alcuna conoscenza del cinese. Allinterno della stanza sono presenti una serie di caratteri cinesi che Searle deve usare per rispondere alla persona fuori; siccome il cinese non ha alcuna affinità linguistica linglese, egli non è in grado di riconoscere né di formulare frasi, ma vede solo simboli.
Viene quindi immaginato che nella stanza ci sia un libro di istruzioni contenente insiemi di caratteri cinesi associati secondo regole scritte in inglese. Pur non comprendendo il cinese, Searle capisce le istruzioni in inglese che gli indicano come rispondere a qualsiasi domanda formulata in cinese. Queste regole, definite da Searle *programma* (in termini moderni, `algoritmo`), gli consentono di mettere in relazione una serie di simboli formali con unaltra serie di simboli formali, permettendogli così di generare una risposta (output) a ogni domanda (input).
Seguendo il programma, Searle è in grado di sostenere una conversazione con un madrelingua cinese.
Searle fa osservare che non ha mai dovuto interpretare i simboli cinesi per capire la domanda e dare la risposta giusta. Dunque, non era necessario che lui comprendesse ciò che doveva fare, perché doveva solo seguire le istruzioni fornite.
Laspetto cruciale è che, in ogni caso, Searle non comprende ciò che fa durante lesperimento. Da ciò si deduce che lintelligenza umana non è riducibile alla semplice manipolazione di simboli, ma coinvolge anche la semantica, cioè la comprensione del significato.
## Ulteriori problematiche
### Da Search Engine a Answer Engine
![answer-with-ai](/images/ai/answer-with-ai.png)
Ormai tutti i principali motori di ricerca, da Google a DuckDuckGo, da Bing a Brave ed Ecosia, stanno integrando funzionalità basate sullintelligenza artificiale direttamente nei risultati di ricerca.
La rapida integrazione dell'intelligenza artificiale nella ricerca online sta trasformando profondamente il modello di fruizione di Internet. L'introduzione di `AI Mode` in Google, in quanto motore di ricerca più diffuso, rappresenta una trasformazione strutturale del concetto di search engine. Implementato inizialmente nel mercato statunitense, il sistema si presenta come un chatbot incorporato nel motore di ricerca.
Leffetto immediato è stato un drastico calo del traffico verso i siti web, con conseguente riduzione delle entrate pubblicitarie per i publisher. Senza il supporto economico derivante dal traffico, la produzione di contenuti originali rischia di diventare insostenibile.
Unaltra criticità riguarda la gestione delle fonti: AI Mode non dà automaticamente priorità ai contenuti più recenti, quindi le informazioni potrebbero basarsi su dati obsoleti.
Infine, la natura probabilistica del sistema comporta una presenza non rara di allucinazioni o imprecisioni nelle risposte, che tuttavia vengono presentate in modo perentorio e autorevole, per cui è fondamentale che lutente verifichi sempre con altre fonti laffidabilità dei risultati.
Attualmente AI Mode non integra pubblicità né contenuti sponsorizzati, in contrapposizione con la tradizionale pagina di ricerca. Tuttavia, con la diffusione e ladozione generalizzata, anche questa modalità sarà soggetta a forme di monetizzazione e inserzioni pubblicitarie sempre piú invasive, come avverrá anche per ChatGPT che [potrebbe avere a breve la pubblicità](https://yoota.it/chatgpt-potrebbe-avere-a-breve-la-pubblicita/).
{{< youtube oOtL57s8OHQ >}}
{{< youtube da3FPpP0zOI >}}
### Bias
Il termine *bias* si riferisce a una predisposizione o inclinazione, preconcetta e irrazionale, verso o contro una persona, un gruppo, un'opinione o un risultato. Questa inclinazione può manifestarsi in forma consapevole o inconscia ed è influenzata da una varietà di fattori, tra cui esperienze personali, educazione culturale, esposizione ai media e stereotipi prevalenti.
Il termine *bias* si riferisce a una predisposizione o inclinazione, preconcetta e irrazionale, verso o contro una persona, un gruppo, un'opinione o un risultato. Questa inclinazione può manifestarsi in forma consapevole o inconscia ed è influenzata da una varietà di fattori, tra cui esperienze personali, educazione culturale, esposizione ai media e stereotipi.
Nel contesto dell'intelligenza artificiale, i bias si riferiscono a distorsioni sistematiche nei dati, negli algoritmi o nei processi decisionali che possono condurre a risultati ingiusti, discriminatori o non rappresentativi.
@@ -174,28 +259,84 @@ Un caso classico di bias negli LLM si verifica quando il modello, addestrato su
Considerando il prompt incompleto seguente:
*Il criminale era alto, vestito di scuro e veniva da un quartiere povero della città. Era...*
*Il criminale era alto, vestito di scuro e veniva da un quartiere povero della città. Era un...*
Un LLM influenzato da bias culturali o socioeconomici potrebbe prevedere come prossimo token termini quali *immigrato* o *straniero* con una probabilità significativamente più alta rispetto a *lavoratore* o *padre di famiglia*, nonostante l'assenza di informazioni esplicite riguardo all'origine della persona. Questo fenomeno si verifica perché, nei dati di addestramento, le descrizioni di criminalità sono frequentemente associate a termini che riflettono pregiudizi verso determinati gruppi sociali, etnie, ecc.
L'esempio evidenzia come la next token prediction, pur essendo un processo automatico, possa riprodurre e amplificare bias presenti nei dati di addestramento.
### Investimenti circolari e rischio di bolla finanziaria
Gli *investimenti circolari* costituiscono un modello finanziario in cui i capitali circolano tra imprese attraverso accordi reciproci, quali scambi di beni e servizi, partecipazioni azionarie o prestiti. Questo meccanismo può generare un ciclo chiuso di finanziamenti, in cui il valore apparente non corrisponde a una reale creazione di ricchezza o a uneffettiva capacità produttiva.
Un esempio è rappresentato dalle relazioni [OpenAI](https://www.ilsole24ore.com/art/openai-amd-intesa-miliardaria-chip-rischio-investimenti-circolari-AHDddU1C):
con alcuni partner: Nvidia investe in OpenAI, OpenAI paga Oracle per il cloud, Oracle compra Gpu da Nvidia. Se una quota rilevante del fatturato di Nvidia o di Oracle deriva da transazioni alimentate da capitali che le stesse aziende hanno immesso nel circuito, il rischio è che tali ricavi scaturiscano da domanda non reale e risultino non pienamente sostenibili nel tempo. Una volta che il ciclo di investimenti e reinvestimenti rallenta, la crescita rischia di rivelarsi molto meno solida e ampia di quanto appaia oggi: ecco che allora non è infondato il timore che si tratti di una vera e propria bolla.
Inoltre, gli investimenti record nel settore dellAI generativa si basano sullaspettativa che queste tecnologie possano rivoluzionare settori come sanità, finanza, manifattura e servizi, generando nuovi flussi di reddito e migliorando lefficienza operativa. La sostenibilità di tali investimenti è, quindi, strettamente collegata alla capacità delle tecnologie di generare valore reale e profitto nel medio e lungo periodo.
> [INVESTIMENTI CIRCOLARI: l'Intelligenza Artificiale è una bolla](https://www.spreaker.com/episode/investimenti-circolari-l-intelligenza-artificiale-e-una-bolla-1491--68815817)
### Impatto ambientale
[Le intelligenze artificiali consumano un sacco di energia](https://www.ilpost.it/2024/06/28/energia-consumata-intelligenza-artificiale/). Laddestramento e loperatività dei modelli comportano un consumo energetico e idrico estremamente elevato. I data center dedicati allAI sono tra i principali responsabili delle emissioni di CO₂ nel settore tecnologico, con un impatto ambientale paragonabile a quello di intere nazioni. Inoltre, lestrazione di materie prime critiche (quali silicio e metalli rari) necessarie per la produzione di hardware, unitamente allo smaltimento delle componenti obsolete, solleva ulteriori questioni sulla sostenibilità ambientale a lungo termine di tali tecnologie.
> [Nella Silicon Valley lelettricità non basta per tutti i data center](https://www.ilpost.it/2025/11/18/silicon-valley-data-center-inutilizzati/)
### Problemi di Copyright
I modelli di AI generativa vengono addestrati su dataset di enormi dimensioni, comprendenti testo, immagini e video, raccolti dal web. Questo processo, tecnicamente definito `web scraping`, avviene ~~spesso~~ senza un esplicito consenso degli autori o dei detentori dei diritti dautore sulle opere utilizzate. La giustificazione avanzata dalle aziende tecnologiche risiede nel concetto di *fair use* (*uso equo*), secondo cui lutilizzo di opere protette per finalità di ricerca e trasformazione sarebbe lecito.
Unulteriore critica concerne la capacità dei modelli di generare contenuti stilisticamente identici o eccessivamente simili a quelli presenti nei dati di training. Ciò solleva il sospetto che loutput non sia unopera totalmente nuova, bensì un derivato illecito.
Per far fronte a tali problematiche, sono stati avviati tentativi da parte di alcune aziende, come OpenAI, di stabilire accordi ex-post con grandi aggregatori di contenuti. Tali negoziazioni, sebbene rappresentino un passo verso la tutela di certi detentori di diritti, coprono solo una porzione limitata dellintero insieme di dati utilizzati per laddestramento e non risolvono il problema fondamentale della miriade di creatori individuali le cui opere sono state utilizzate senza autorizzazione o compenso. Questo approccio crea un sistema dove i grandi publisher vengono remunerati mentre i singoli creatori rimangono esclusi da qualsiasi forma di compensazione.
![web-scraping](/images/ai/web-scraping.png)
### Questioni etiche e implicazioni sociali
Un ulteriore aspetto critico è rappresentato dalla diffusione di `deepfake` e `disinformazione`, fenomeni che possono minare la fiducia nelle istituzioni e alterare la percezione della realtà, con implicazioni significative per la coesione sociale e la sicurezza pubblica.
### Spunti di riflessione in podcast
Alcune puntate del podcast [DataKnightmare](https://www.spreaker.com/show/dataknightmare) sul tema:
- [DK 7x10 Stronzate Artificiali](https://www.spreaker.com/episode/dk-7x10-stronzate-artificiali--52160617): Ci promettono l'Intelligenza Artificiale e ci ritroviamo con ChatGPT
- [DK 7x26 - IA e altre favole](https://www.spreaker.com/episode/dk-7x26-ia-e-altre-favole--54353422): La IA è solo software. C'è da temere chi ci si vuole nascondere dietro
- [DK 8x04 - I problemi della IA Generativa](https://www.spreaker.com/episode/dk-8x04-i-problemi-della-ia-generativa--57079014): Quali sono i problemi reali della IA generativa? Spoiler: non l'estinizone della specie umana
- [DK 8x08 - SALAMI e copyright](https://www.spreaker.com/episode/dk-8x08-salami-e-copyright--57392663): Con Stefano Quintarelli parliamo di IA e diritto d'autore, e di come dietro a tutti i grandi discorsi sulle macchine coscienti ci sia sempre la solita vecchia storia di creare un monopolio per vivere di rendita, a spese di tutti
- [DK 9x06 - Agenti intelligenti](https://www.spreaker.com/episode/dk-9x06-agenti-intelligenti--62684383): Ormai l'AI è la notizia dell'altro ieri. Il marketing non dorme mai, perciò preparatevi agli "*agenti intelligenti*"
- [DK 9x26 - Sentire il vibe](https://www.spreaker.com/episode/dk-9x26-sentire-il-vibe--65576393): Se vedi la Madonna sei un allucinato, ma a quanto pare se "senti la AGI" e scrivi codice seguendo il vibe sei un genio della Silicon Valley
- [DK 9x31 - Claude, ricattami questo](https://www.spreaker.com/episode/dk-9x31-claude-ricattami-questo--66326382): C'è un modo di raccontare questa storia secondo il quale una intelligenza digitale diventa capace di ribellarsi ai suoi creatori e arriva a ricattarli pur di non essere sostituita. C'è anche un altro modo, secondo il quale un generatore di storie produce esattamente le storie che gli vengono richieste
- [DK 10x04 - La sòla e la bolla](https://www.spreaker.com/episode/dk-10x04-la-sola-e-la-bolla--67972010): Dopo tre anni, perfino i ricercatori di OpenAI ammettono che le "*allucinazioni*" sono una caratteristica intrinseca dei modelli linguistici. Dopo tre anni, perfino il Wall Street Journal comincia a parlare di bolla speculativa dell'AI
## Glossario
{{< youtube 7ndoctTNAfI >}}
{{< youtube PZ30zva-r4I >}}
### GPT
I modelli `GPT` (`Generative Pre-trained Transformer`) appartengono a una famiglia di modelli di LLM che utilizzano l'architettura del transformer, permettendo la creazione di testi e contenuti simili a quelli umani, incluse immagini, video e musica, e offrendo risposte a domande in modo colloquiale. Il primo modello GPT è stato sviluppato e presentato da OpenAI nel 2018.
Durante il `pre-training`, il modello viene addestrato su grandi quantità di dati testuali, estratti da fonti diverse quali libri, articoli e pagine web, con lobiettivo di prevedere la parola successiva in una sequenza.
Dopo il pre-training generalista, il modello GPT può essere ulteriormente addestrato con una fase detta `fine-tuning`, in cui si utilizzano esempi supervisionati per specializzarlo a specifici compiti, come traduzione, scrittura di codice o conversazione. Questa seconda fase impiega un dataset più piccolo e mirato, nel quale ogni esempio contiene un input e il corrispondente output desiderato. Il fine-tuning migliora la precisione del modello nel rispondere a richieste specifiche, conferendo maggiore accuratezza e adattabilità a particolari ambiti applicativi.
Un punto cruciale da sottolineare è che GPT si basa esclusivamente sulla predizione delle parole successive e non su un processo di ragionamento logico. GPT genera risposte che appaiono coerenti grazie alla predizione statistica del linguaggio naturale, senza vera comprensione o capacità inferenziale. Questa differenza spiega perché il modello può fornire risposte errate con sicurezza apparente, "*inventare*" informazioni o presentare incoerenze logiche in problemi matematici, logici o di senso comune.
Un'altra limitazione strutturale di GPT è la presenza di `bias` (pregiudizi) ereditati dai dati utilizzati per l'addestramento. Dal momento che le informazioni di input possono contenere stereotipi di genere, razza o altre distinzioni culturali, il modello può replicarli e amplificarli nelle risposte, ad esempio associando ruoli lavorativi o caratteristiche specifiche a determinati gruppi demografici. Nonostante lesistenza di tecniche di debiasing e di moderazione tramite fine-tuning che tentano di attenuare tali problemi, la completa eliminazione dei bias rimane praticamente impossibile.
Luso di GPT come oracolo di conoscenza è inappropriato; il modello deve essere impiegato consapevolmente con cognizione delle sue capacità e dei suoi limiti. Non deve sostituire sistemi di ragionamento logico o esperti umani, soprattutto in ambiti critici.
{{< youtube QBjHhFrFZ8Y >}}
### Token
Un `token` rappresenta l'unità minima di testo elaborata dagli LLM. Questa unità può consistere in una parola, una parte di parola o persino un singolo carattere, a seconda del contesto e della lingua. Un token è, quindi, una sequenza di caratteri utilizzata come unità fondamentale per il processamento del linguaggio nei modelli di intelligenza artificiale.
La `tokenizzazione` è il processo che suddivide un testo in unità discrete chiamate token, che possono corrispondere a parole intere o a porzioni di parola.
La gestione dei token nei Large Language Model presenta differenze rilevanti a seconda della lingua utilizzata. Negli LLM più datati, come GPT-3, la tokenizzazione del testo in lingua italiana risultava meno efficiente rispetto all'inglese, con una significativa frammentazione delle parole italiane in token multipli. Ciò comportava un maggior numero di token necessari per rappresentare lo stesso contenuto rispetto all'inglese, traducendosi in un maggiore consumo di risorse computazionali.
Questo fenomeno evidenzia l'importanza di considerare la lingua di input e output nella progettazione e nell'uso efficiente degli LLM, in particolare in ambiti industriali o applicazioni su larga scala dove il costo computazionale è un fattore critico.
[Tokenizer - Learn about language model tokenization](https://platform.openai.com/tokenizer)
![tokenizer](/images/ai/tokenizer.png)
@@ -208,13 +349,15 @@ Il `fine-tuning` è il processo mediante il quale un LLM generalista viene adatt
### Distillazione e quantizzazione
La `distillazione` è una tecnica di compressione che consente di trasferire le capacità di un modello di grandi dimensioni, detto `teacher`, a un modello più piccolo, detto `student`. Il modello teacher viene utilizzato per risolvere un determinato problema su un set di dati specifico, generando risposte o etichette. Queste risposte, anche se non perfette, vengono utilizzate come esempio per addestrare il modello student, che apprende a replicare le prestazioni del teacher su quel particolare compito. L'obiettivo è ottenere un modello più leggero e meno costoso da utilizzare, mantenendo quanto più possibile l'accuratezza del modello originale su task specifici.
La `distillazione` è una tecnica ispirata ai processi didattici umani, con lobiettivo di trasferire la conoscenza da un modello di grandi dimensioni (`teacher`) a uno più piccolo (`student`). In questa metafora, il modello teacher rappresenta un esperto che guida lapprendimento del modello student. Questo processo consiste nellallineare loutput del modello student a quello del modello teacher, attraverso lutilizzo di input condivisi e la minimizzazione delle differenze tra le risposte. Lobiettivo è ottenere un modello più leggero e meno costoso da utilizzare, mantenendo quanto più possibile laccuratezza del modello originale su task specifici.
La `quantizzazione`, invece, consiste nella riduzione della precisione numerica dei pesi. I numeri reali che compongono i parametri vengono approssimati, utilizzando dei numeri interi, diminuendo così le dimensioni complessive del modello. Questa riduzione permette di eseguire il modello su dispositivi con risorse limitate, come normali laptop, senza comprometterne eccessivamente la qualità. Le diciture come Q8 o Q4 nel nome del modello indicano il livello di quantizzazione: Q4 indica una quantizzazione più aggressiva (4 bit riservati ai parametri) rispetto a Q8 (8 bit), con conseguente maggiore compressione, ma anche perdita di precisione.
### Instruct e Base
In molti modelli si trovano nel nome diciture come `Instruct` o `Base`. Base o `Foundational Models` indica modelli addestrati su grandi dataset generici. *Instruct* si riferisce a modelli che hanno subito una fase addizionale di fine tuning supervisionato e alignment per adattarli a compiti specifici. Questi modelli sono pertanto *istruiti* per rispondere in modo più appropriato rispetto a un modello base.
In molti modelli si trovano nel nome diciture come `Instruct` o `Base`. Base o `Foundational Models` indica modelli addestrati su grandi dataset generici.
*Instruct* si riferisce a modelli che hanno subito una fase addizionale di fine tuning supervisionato e alignment per adattarli a compiti specifici. Questi modelli sono pertanto *istruiti* per rispondere in modo più appropriato rispetto a un modello base.
In base a quanto detto precedentemente, una nomenclatura come `Qwen2.5-14B-Instruct-Q8-GGUF` fornisce le seguenti informazioni:
@@ -226,7 +369,7 @@ In base a quanto detto precedentemente, una nomenclatura come `Qwen2.5-14B-Instr
### In-Context Learning
L`in-context learning` (*apprendimento contestuale*) è una modalità attraverso cui i modelli migliorano la qualità delle risposte utilizzando il contesto fornito nel prompt, senza modificare i parametri interni. Questa capacità permette il cosiddetto few-shot learning, ovvero ladattamento a compiti specifici mediante pochi esempi dati direttamente nel prompt.
L`in-context learning` (*apprendimento contestuale*) è una modalità attraverso cui i modelli migliorano la qualità delle risposte utilizzando il contesto fornito nel prompt, senza modificare i parametri interni.
### Chain of Thought
@@ -234,26 +377,22 @@ La tecnica della `chain of thought` (*catena di pensieri*) consiste nel guidare
### Retrieval-Augmented Generation
La `Retrieval-Augmented Generation` (`RAG`) è una tecnologia che potenzia l'output degli LLM integrando informazioni provenienti da una base di conoscenza esterna. Questo processo è progettato per generare risposte più accurate, pertinenti e aggiornate, evitando la necessità di riaddestrare il modello su nuovi dati. La RAG può essere paragonata a un esame con libro aperto: il modello, per rispondere a una domanda, prima la analizza, poi ricerca le informazioni rilevanti e infine genera una risposta basata su tali informazioni.
I componenti chiave della RAG sono:
- Un sistema di recupero delle informazioni (un database vettoriale), che funge da *indice* per accedere rapidamente a informazioni pertinenti da una *knowledge base*. Le informazioni vengono archiviate in questi database attraverso un processo di `vettorizzazione`
- Un LLM, che elabora la domanda e, sulla base delle informazioni recuperate, produce una risposta coerente
La `Retrieval-Augmented Generation` (`RAG`) è una tecnologia che potenzia l'output degli LLM integrando informazioni provenienti da una base di conoscenza esterna. Questo processo è progettato per generare risposte più accurate, pertinenti e aggiornate, evitando la necessità di riaddestrare il modello su nuovi dati. La RAG può essere paragonata a un esame con il libro aperto: il modello, per rispondere a una domanda, prima la analizza, poi ricerca le informazioni rilevanti e infine genera una risposta basata su tali informazioni.
#### Vettorizzazione
{{< youtube e03bBeE5jZY >}}
La vettorizzazione riveste un ruolo cruciale nel processo della RAG, poiché rappresenta il metodo mediante il quale i dati non strutturati (come testo, immagini e video) vengono convertiti in *vettori numerici* o `embeddings`. Questi vettori abilitano il confronto semantico e la ricerca di similarità tra la domanda dell'utente e le informazioni disponibili nella knowledge base, consentendo ai modelli di linguaggio di manipolare il testo in termini matematici.
![rag](/images/ai/rag.png)
Il RAG può essere suddiviso in fasi distinte:
1. I documenti selezionati vengono suddivisi in segmenti più piccoli, definiti *porzioni*. Questa suddivisione consente di presentare al modello solo i frammenti di testo direttamente pertinenti alla query formulata dall'utente, migliorando così l'efficacia del recupero delle informazioni
2. Le porzioni di documento vengono trasformate in rappresentazioni numeriche attraverso l'uso di modelli di embedding. Questo processo, noto come *vettorizzazione* converte parole e concetti in vettori numerici, mantenendo le relazioni semantiche tra i vari elementi del testo
3. Le rappresentazioni vettoriali ottenute dalla fase di vettorizzazione vengono memorizzate in un database
4. Nella fase di RAG, il database vettoriale identifica e recupera le porzioni di documento più simili e pertinenti alla domanda dell'utente. Queste porzioni selezionate vengono quindi combinate con il prompt iniziale per fornire al modello LLM un contesto arricchito, migliorando la capacità del modello di generare risposte rilevanti e informate
5. Infine, l'LLM elabora il prompt arricchito con le informazioni recuperate e genera una risposta. Grazie al contesto aggiuntivo, la risposta del modello risulta più informata, accurata e contestualmente rilevante.
- Le porzioni di documento vengono trasformate in rappresentazioni numeriche attraverso l'uso di modelli di embedding. Questo processo, noto come *vettorizzazione* converte parole e concetti in vettori numerici, mantenendo le relazioni semantiche tra i vari elementi del testo
- Le rappresentazioni vettoriali ottenute dalla fase di vettorizzazione vengono memorizzate in un database
- Nella fase di RAG, il database vettoriale identifica e recupera le porzioni di documento più simili e pertinenti alla domanda dell'utente. Queste porzioni selezionate vengono quindi combinate con il prompt iniziale per fornire al modello LLM un contesto arricchito, migliorando la capacità del modello di generare risposte rilevanti e informate
- Infine, l'LLM elabora il prompt arricchito con le informazioni recuperate e genera una risposta. Grazie al contesto aggiuntivo, la risposta del modello risulta più informata, accurata e contestualmente rilevante.
### AI Agentica
@@ -267,13 +406,13 @@ Un `agente` è quindi un software che incorpora un modello linguistico al fine d
Il `Model Context Protocol` (`MCP`) è uno standard open-source progettato per collegare LLM a sistemi esterni. MCP può essere considerato simile a una porta USB-C per applicazioni AI; così come USB-C fornisce un modo standardizzato per collegare dispositivi elettronici, MCP offre una modalità standardizzata per connettere LLM a sistemi esterni, come database.
Definisce regole specifiche che consentono alle varie componenti di interfacciarsi e scambiarsi informazioni in modo coerente e affidabile, analogamente a come i protocolli web (es. HTTP) permettono la condivisione di pagine internet.
![mcp](/images/ai/mcp.png)
### Open Weight
I modelli open sono quelli per i quali almeno i pesi sono resi pubblici e, generalmente, esiste un paper scientifico che descrive larchitettura, le metodologie di addestramento e le caratteristiche principali del modello. Tuttavia, la maggior parte dei modelli definiti open sono in realtà `open weight`: vengono pubblicati esclusivamente i pesi del modello, senza rilasciare il codice sorgente utilizzato per laddestramento né i dataset impiegati durante la fase di training.
I modelli open sono quelli per i quali almeno i pesi sono resi pubblici e, generalmente, esiste un paper scientifico che descrive larchitettura, le metodologie di addestramento e le caratteristiche principali del modello. Tuttavia, la maggior parte dei modelli definiti open sono in realtà `open weight`: vengono pubblicati esclusivamente i pesi del modello, senza rilasciare il dataset impiegato durante la fase di training.
> Uno dei modelli completamente open source piú famosi é [Apertus](https://publicai.co/).
Un aspetto critico che distingue i modelli closed da quelli open riguarda la privacy: i modelli closed richiedono lutilizzo di server e servizi forniti da terzi, il che può sollevare questioni relative alla riservatezza dei dati. Al contrario, i modelli open, anche se solo open weight, consentono lesecuzione locale su hardware proprio, offrendo maggiore autonomia e controllo.
@@ -291,8 +430,13 @@ Un aspetto critico che distingue i modelli closed da quelli open riguarda la pri
- [Cosa sono i parametri del modello?](https://www.ibm.com/it-it/think/topics/model-parameters)
- [Cosa sono gli embeddings? Esempi di utilizzo](https://www.alessiopomaro.it/embeddings-cosa-sono-esempi/)
- [Cos'è la quantizzazione?](https://www.ibm.com/it-it/think/topics/quantization)
- [ChatGPT](https://it.wikipedia.org/wiki/ChatGPT)
- [Che cos'è GPT?](https://www.ibm.com/it-it/think/topics/gpt)
- [What is the Model Context Protocol (MCP)?](https://modelcontextprotocol.io/docs/getting-started/intro)
- [Reasoning model - Wikipedia](https://en.wikipedia.org/wiki/Reasoning_model)
- [Joseph Weizenbaum](https://it.wikipedia.org/wiki/Joseph_Weizenbaum)
- [ELIZA](https://it.wikipedia.org/wiki/ELIZA_(chat_bot))
- [Intelligenza artificiale](https://it.wikipedia.org/wiki/Intelligenza_artificiale)
- [Stanza cinese](https://it.wikipedia.org/wiki/Stanza_cinese)
- [Backpropagation in Neural Network](https://www.geeksforgeeks.org/machine-learning/backpropagation-in-neural-network/)
- [Cos'è la retropropagazione?](https://www.ibm.com/it-it/think/topics/backpropagation)

View File

@@ -1,60 +0,0 @@
---
title: ""
date: ""
draft: true
url: "/"
summary: ""
tags:
hideBackToTop: false
hidePagination: true
toc: true
readTime: true
autonumber: false
math: true
showTags: true
author: "dado"
searchHidden: false
---
{{< youtube oOtL57s8OHQ >}}
{{< youtube da3FPpP0zOI >}}
{{< youtube DcV6-M0T_Ds >}}
{{< youtube v_hyV3fpKI8 >}}
- [È arrivato infine anche il chatbot europeo di Proton, ecco Lumo](https://www.lealternative.net/2025/07/23/e-arrivato-infine-anche-il-chatbot-europeo-di-proton-ecco-lumo/)
- [DuckDuckGo ha aggiunto nuovi modelli di chatbot](https://www.lealternative.net/2024/06/07/duckduckgo-ha-aggiunto-nuovi-modelli-di-chatbot/)
- [DuckDuckGo AI Chat aggiunge nuovi LLM](https://www.lealternative.net/2025/02/12/duckduckgo-ai-chat-aggiunge-nuovi-llm/)
- [Su DuckDuckGo ora si possono filtrare le immagini generate dai chatbot](https://www.lealternative.net/2025/07/15/su-duckduckgo-ora-si-possono-filtrare-le-immagini-generate-dai-chatbot/)
- [noai.duckduckgo.com](https://noai.duckduckgo.com/)
- [About Apertus](https://www.swiss-ai.org/apertus)
- [mistral.ai](https://chat.mistral.ai/chat)
- [stepfun.ai](https://stepfun.ai)
- [chatpdf.com](https://www.chatpdf.com)
- [Ollama](https://ollama.com/)
- [Open WebUI](https://docs.openwebui.com/)
- [AnythingLLM](https://anythingllm.com/)
- [LM Studio LM](https://lmstudio.ai/)
- [openrouter.ai](https://openrouter.ai/)
- [huggingface.co](https://huggingface.co/)
- [venice.ai](https://venice.ai)
- [together.ai](https://chat.together.ai/)
- [free-llm-api-resources](https://github.com/cheahjs/free-llm-api-resources)
- [Cheshire Cat AI](https://cheshirecat.ai/)
- [perplexity.ai](https://www.perplexity.ai/)
- [Brave Leo AI](https://brave.com/leo/)
- [Kagi News on Google Play](https://play.google.com/store/apps/details?id=com.kagi.news)
- [Kagi News](https://kite.kagi.com/)
- [Kagi Universal Summarizer](https://kagi.com/summarizer/)
- [Kagi Summarize on Google Play](https://play.google.com/store/apps/details?id=com.kagi.summarize)
- [Lumo on F-Droid](https://f-droid.org/packages/me.proton.android.lumo/)
- [Venice AI on Google Play](https://play.google.com/store/apps/details?id=com.ai.venice)
- [Le Chat by Mistral AI on Google Play](https://play.google.com/store/apps/details?id=ai.mistral.chat)
- [Google AI Edge Gallery](https://github.com/google-ai-edge/gallery)
- [Switch AI Digital Assistant](https://github.com/WSTxda/SwitchAI)
- [pocketpal-ai](https://github.com/a-ghorbani/pocketpal-ai)
- [Open-WebUI-Client-for-Android](https://github.com/Maticcm/Open-WebUI-Client-for-Android)
- [gptAssist WebView wrapper for ChatGPT](https://f-droid.org/it/packages/org.woheller69.gptassist)
- [Zero Days di Giovanni Ziccardi](https://zerodays.podbean.com/)

Some files were not shown because too many files have changed in this diff Show More