Compare commits
65 Commits
fdac275eb2
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0383cffff0 | ||
|
|
2f1a96f56f | ||
|
|
37a5c93a19 | ||
|
|
324026ee79 | ||
|
|
dde5fe9fcb | ||
|
|
5e2b207bf2 | ||
|
|
9df2e9d860 | ||
|
|
9071e0abae | ||
|
|
09bc0b02a5 | ||
|
|
b4d50a116c | ||
|
|
ca79b563ec | ||
|
|
3acec4f73c | ||
|
|
441f0e6afa | ||
|
|
d080ebfeda | ||
|
|
c72819d8d4 | ||
|
|
4f4e6e2358 | ||
|
|
8e89951346 | ||
|
|
5bb985ec61 | ||
|
|
944f3dbc45 | ||
|
|
9446fb92f0 | ||
|
|
bcd009b0ef | ||
|
|
8acecf2c46 | ||
|
|
cdcb9f679b | ||
|
|
b443dd9896 | ||
|
|
0bc3ac9254 | ||
|
|
681ddf39c3 | ||
|
|
35c285fd83 | ||
|
|
4ea4804477 | ||
|
|
3f837ddf93 | ||
|
|
cd515e9e49 | ||
|
|
9cac2428cd | ||
|
|
f20dab34be | ||
|
|
431716973f | ||
|
|
1dd14d8b8b | ||
|
|
aed5a0a149 | ||
|
|
1c867459f8 | ||
|
|
d38e8bfc41 | ||
|
|
0d911237f9 | ||
|
|
b70774a061 | ||
|
|
9a4dfab309 | ||
|
|
098ccb22ca | ||
|
|
df18d77d52 | ||
|
|
9605233c69 | ||
|
|
fd47aea567 | ||
|
|
a31a0a55dc | ||
|
|
660ad0acff | ||
|
|
d04c663dd2 | ||
|
|
5287a77778 | ||
|
|
a9dfca356b | ||
|
|
348e0c1b8f | ||
|
|
c1b2ba1ef7 | ||
|
|
97442dff11 | ||
|
|
42f1947a3f | ||
|
|
8ccd2b6b96 | ||
|
|
b18f53a5f4 | ||
|
|
d2ae40a70d | ||
|
|
cfb4ad3b7d | ||
|
|
7fa4c995d0 | ||
|
|
769551f396 | ||
|
|
8a142da26f | ||
|
|
5f212f7871 | ||
|
|
5d87565bc8 | ||
|
|
18e144a768 | ||
|
|
8aee8e2889 | ||
|
|
522b538cef |
@@ -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
|
||||
|
||||
BIN
novemila/content/images/ai/ai-statistics.png
Normal file
|
After Width: | Height: | Size: 341 KiB |
BIN
novemila/content/images/ai/answer-with-ai.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
novemila/content/images/ai/backpropagation.png
Normal file
|
After Width: | Height: | Size: 154 KiB |
BIN
novemila/content/images/ai/machine-learning.png
Normal file
|
After Width: | Height: | Size: 519 KiB |
BIN
novemila/content/images/ai/neural-network.png
Normal file
|
After Width: | Height: | Size: 130 KiB |
BIN
novemila/content/images/ai/web-scraping.png
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
BIN
novemila/content/images/bosgame/amd-v.png
Normal file
|
After Width: | Height: | Size: 437 KiB |
BIN
novemila/content/images/bosgame/bosgame-back.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
novemila/content/images/bosgame/bosgame-fan.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
novemila/content/images/bosgame/bosgame-front.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
novemila/content/images/bosgame/bosgame-hwinfo.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
BIN
novemila/content/images/bosgame/bosgame-inside.png
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
novemila/content/images/bosgame/bosgame-ram.png
Normal file
|
After Width: | Height: | Size: 633 KiB |
BIN
novemila/content/images/bosgame/bosgame-ssd.png
Normal file
|
After Width: | Height: | Size: 432 KiB |
BIN
novemila/content/images/bosgame/cinebench.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
novemila/content/images/bosgame/crystaldiskinfo.png
Normal file
|
After Width: | Height: | Size: 126 KiB |
BIN
novemila/content/images/bosgame/geekbench-cpu.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
novemila/content/images/bosgame/geekbench-opencl.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
novemila/content/images/bosgame/geekbench-vulkan.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
novemila/content/images/bosgame/highrel-crystaldiskmark.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
novemila/content/images/bosgame/passmark.png
Normal file
|
After Width: | Height: | Size: 106 KiB |
BIN
novemila/content/images/bosgame/tdp.png
Normal file
|
After Width: | Height: | Size: 622 KiB |
BIN
novemila/content/images/bosgame/thermal-throttling.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
novemila/content/images/bosgame/verbatim-crystaldiskmark.png
Normal file
|
After Width: | Height: | Size: 81 KiB |
BIN
novemila/content/images/homelab/access-opnsense-from-vlan10.png
Normal file
|
After Width: | Height: | Size: 79 KiB |
BIN
novemila/content/images/homelab/aes-instructions.png
Normal file
|
After Width: | Height: | Size: 106 KiB |
BIN
novemila/content/images/homelab/ap-static-ip.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
novemila/content/images/homelab/ap-wlan.png
Normal file
|
After Width: | Height: | Size: 158 KiB |
BIN
novemila/content/images/homelab/as-native-vlan-ap.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
novemila/content/images/homelab/backup-job.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
novemila/content/images/homelab/ballooning.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
novemila/content/images/homelab/block-spamhaus-ip.png
Normal file
|
After Width: | Height: | Size: 133 KiB |
BIN
novemila/content/images/homelab/config-vlan5.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
novemila/content/images/homelab/config-wizard.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
novemila/content/images/homelab/create-opnsense-vm.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
novemila/content/images/homelab/create-vlan10.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
novemila/content/images/homelab/crowdsec-floating-rules.png
Normal file
|
After Width: | Height: | Size: 240 KiB |
BIN
novemila/content/images/homelab/crowdsec-opnsense.png
Normal file
|
After Width: | Height: | Size: 613 KiB |
BIN
novemila/content/images/homelab/crowdsec-rules.png
Normal file
|
After Width: | Height: | Size: 222 KiB |
BIN
novemila/content/images/homelab/disk-options.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
novemila/content/images/homelab/dns-diagnostic.png
Normal file
|
After Width: | Height: | Size: 306 KiB |
BIN
novemila/content/images/homelab/dns-log.png
Normal file
|
After Width: | Height: | Size: 356 KiB |
BIN
novemila/content/images/homelab/dns-rebind-protection.png
Normal file
|
After Width: | Height: | Size: 408 KiB |
BIN
novemila/content/images/homelab/dns-traffic-over-tls-https.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
novemila/content/images/homelab/dns-traffic-unsecured.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
novemila/content/images/homelab/enable-https.png
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
novemila/content/images/homelab/enable-vlan10.png
Normal file
|
After Width: | Height: | Size: 85 KiB |
BIN
novemila/content/images/homelab/enable-wlan.png
Normal file
|
After Width: | Height: | Size: 94 KiB |
BIN
novemila/content/images/homelab/firmware-upgrade.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
BIN
novemila/content/images/homelab/future-homelab.png
Normal file
|
After Width: | Height: | Size: 193 KiB |
BIN
novemila/content/images/homelab/gui-static-ip.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
novemila/content/images/homelab/homelab-rack.png
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
|
After Width: | Height: | Size: 407 KiB |
BIN
novemila/content/images/homelab/lan-default-ip.png
Normal file
|
After Width: | Height: | Size: 223 KiB |
BIN
novemila/content/images/homelab/lan-wlan-communication.png
Normal file
|
After Width: | Height: | Size: 784 KiB |
BIN
novemila/content/images/homelab/meme-bender.png
Normal file
|
After Width: | Height: | Size: 784 KiB |
BIN
novemila/content/images/homelab/mng-interface-ip-address.png
Normal file
|
After Width: | Height: | Size: 186 KiB |
BIN
novemila/content/images/homelab/network-diagram.png
Normal file
|
After Width: | Height: | Size: 211 KiB |
BIN
novemila/content/images/homelab/nic-assignment.png
Normal file
|
After Width: | Height: | Size: 230 KiB |
BIN
novemila/content/images/homelab/no-subscription-repo-pve.png
Normal file
|
After Width: | Height: | Size: 170 KiB |
BIN
novemila/content/images/homelab/opnsense-nic-config.png
Normal file
|
After Width: | Height: | Size: 318 KiB |
BIN
novemila/content/images/homelab/opnsense-nic-vlan5-tag.png
Normal file
|
After Width: | Height: | Size: 106 KiB |
BIN
novemila/content/images/homelab/opnsense-to-nc.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
novemila/content/images/homelab/os-type.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
novemila/content/images/homelab/overrides-dns.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
novemila/content/images/homelab/port-setting.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
novemila/content/images/homelab/pve-graphical-installer.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
novemila/content/images/homelab/pve-zfs-raid1.png
Normal file
|
After Width: | Height: | Size: 392 KiB |
BIN
novemila/content/images/homelab/qemu-agent-enabled.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
novemila/content/images/homelab/qemu-agent.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
novemila/content/images/homelab/quad9-dns.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
novemila/content/images/homelab/second-nic.png
Normal file
|
After Width: | Height: | Size: 120 KiB |
BIN
novemila/content/images/homelab/set-interface-ip-address.png
Normal file
|
After Width: | Height: | Size: 251 KiB |
BIN
novemila/content/images/homelab/show-otp-seed.png
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
novemila/content/images/homelab/spamhaus_drop.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
novemila/content/images/homelab/spamhaus_dropv6.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
novemila/content/images/homelab/ssid-profile.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
novemila/content/images/homelab/standalone-mode.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
novemila/content/images/homelab/static-dhcp-ip.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
novemila/content/images/homelab/sw-tplink-settings.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
novemila/content/images/homelab/system-dns.png
Normal file
|
After Width: | Height: | Size: 166 KiB |
BIN
novemila/content/images/homelab/totp-server.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
novemila/content/images/homelab/tplink-sw-port-setting.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
novemila/content/images/homelab/tplink-sw-pvid.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
novemila/content/images/homelab/tplink-sw-vlan.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
novemila/content/images/homelab/ufs-filesystem.png
Normal file
|
After Width: | Height: | Size: 137 KiB |
BIN
novemila/content/images/homelab/vlan-mng-creation-pve.png
Normal file
|
After Width: | Height: | Size: 108 KiB |
BIN
novemila/content/images/homelab/vlan5-as-lan.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
novemila/content/images/homelab/wan-config.png
Normal file
|
After Width: | Height: | Size: 87 KiB |
BIN
novemila/content/images/homelab/wlan-rules.png
Normal file
|
After Width: | Height: | Size: 107 KiB |
BIN
novemila/content/images/homelab/wlan-switch.png
Normal file
|
After Width: | Height: | Size: 165 KiB |
BIN
novemila/content/images/homelab/wlan.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
novemila/content/images/homelab/zyxel-sw-settings.png
Normal file
|
After Width: | Height: | Size: 108 KiB |
BIN
novemila/content/images/homelab/zyxel-sw-vlan.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
@@ -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
|
||||
|
||||
|
||||
@@ -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/)
|
||||
|
||||
@@ -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 Wi‑Fi prima di avviare il servizio Shizuku, e riavvia automaticamente il servizio in caso di arresti anomali.
|
||||
|
||||

|
||||
|
||||
## 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
|
||||
|
||||
@@ -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
|
||||
|
||||

|
||||
|
||||
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* (1923–2008), 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* (1923–2008), 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 dell’utente a cui associava risposte predefinite. Questo approccio si basava fondamentalmente su catene di istruzioni condizionali (`if-else`) e, sebbene innovativo per l’epoca, 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. L’atteggiamento dell’opinione 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 dell’opinione 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. L’atteggiamento dell’opinione 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 all’Intelligenza Artificiale
|
||||
|
||||
Nell’ambito dell’IA 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 un’efficienza 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 dell’AI, il cui scopo principale consiste nell’apprendere 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 l’introduzione del `Machine Learning` (*apprendimento automatico*), il cui scopo principale consiste nell’apprendere 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 dell’immobile
|
||||
- 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 dell’immobile.
|
||||
Tali caratteristiche interagiscono tra loro, determinando il valore finale dell’edificio.
|
||||
|
||||
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 l’influenza.
|
||||
|
||||
@@ -79,14 +92,16 @@ Ad esempio, un appartamento di ridotte dimensioni e datato può risultare più c
|
||||
|
||||
Nel contesto dell’esempio, l’obiettivo del Machine Learning consiste nel determinare i valori dei pesi (inizialmente sconosciuti) che consentono di stimare il valore dell’immobile sulla base delle sue caratteristiche. In termini pratici, il processo di apprendimento mira a identificare la combinazione ottimale di pesi che minimizza l’errore tra il valore stimato e quello reale.
|
||||
|
||||
Il `Deep Learning` (*apprendimento profondo*) rappresenta un sottoinsieme del Machine Learning. Si basa sull’impiego 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 sull’impiego di `reti neurali`, modelli matematici che simulano il funzionamento dei neuroni e delle loro connessioni nel cervello umano.
|
||||
|
||||

|
||||
|
||||
### 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 è l’individuazione di pattern o schemi nascosti all’interno dei dati, attraverso l’analisi 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 è l’individuazione di pattern o schemi nascosti all’interno dei dati, attraverso l’analisi 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). L’algoritmo 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. L’algoritmo 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 dell’errore calcolato, l’algoritmo procede all’aggiornamento dei pesi. L’obiettivo consiste nel modificare i valori in modo da ridurre l’errore nelle successive iterazioni
|
||||
3. Sulla base dell’errore calcolato, l’algoritmo procede all’aggiornamento dei pesi. L’obiettivo consiste nel modificare i valori in modo da ridurre l’errore nelle successive iterazioni (`backpropagation`)
|
||||
4. Il ciclo di calcolo, confronto e aggiornamento si ripete più volte, fino a quando l’errore non raggiunge una soglia di tolleranza prestabilita
|
||||
5. Non è auspicabile che l’errore 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, l’algoritmo viene sottoposto a validazione utilizzando il validation set. Tale fase consente di valutare l’efficacia del modello su dati non impiegati durante l’addestramento, 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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
La `backpropagation` rappresenta l’algoritmo 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 l’errore 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 l’accuratezza 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.
|
||||

|
||||
|
||||
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
|
||||
|
||||
L’addestramento 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 all’allineamento 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 un’evoluzione 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 all’esterno che non conosce nulla di lui. Suppone che la persona all’esterno sia madrelingua cinese, mentre lui non ha alcuna conoscenza del cinese. All’interno 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 l’inglese, 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 un’altra 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.
|
||||
|
||||
L’aspetto cruciale è che, in ogni caso, Searle non comprende ciò che fa durante l’esperimento. Da ciò si deduce che l’intelligenza 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
|
||||
|
||||

|
||||
|
||||
Ormai tutti i principali motori di ricerca, da Google a DuckDuckGo, da Bing a Brave ed Ecosia, stanno integrando funzionalità basate sull’intelligenza 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.
|
||||
|
||||
L’effetto 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.
|
||||
|
||||
Un’altra 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 l’utente verifichi sempre con altre fonti l’affidabilità dei risultati.
|
||||
|
||||
Attualmente AI Mode non integra pubblicità né contenuti sponsorizzati, in contrapposizione con la tradizionale pagina di ricerca. Tuttavia, con la diffusione e l’adozione 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 un’effettiva 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 dell’AI generativa si basano sull’aspettativa che queste tecnologie possano rivoluzionare settori come sanità, finanza, manifattura e servizi, generando nuovi flussi di reddito e migliorando l’efficienza 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/). L’addestramento e l’operatività dei modelli comportano un consumo energetico e idrico estremamente elevato. I data center dedicati all’AI sono tra i principali responsabili delle emissioni di CO₂ nel settore tecnologico, con un impatto ambientale paragonabile a quello di intere nazioni. Inoltre, l’estrazione 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 l’elettricità 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 d’autore sulle opere utilizzate. La giustificazione avanzata dalle aziende tecnologiche risiede nel concetto di *fair use* (*uso equo*), secondo cui l’utilizzo di opere protette per finalità di ricerca e trasformazione sarebbe lecito.
|
||||
|
||||
Un’ulteriore 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 l’output non sia un’opera 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 dell’intero insieme di dati utilizzati per l’addestramento 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.
|
||||
|
||||

|
||||
|
||||
### 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 l’obiettivo 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 l’esistenza di tecniche di debiasing e di moderazione tramite fine-tuning che tentano di attenuare tali problemi, la completa eliminazione dei bias rimane praticamente impossibile.
|
||||
|
||||
L’uso 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)
|
||||
|
||||

|
||||
@@ -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 l’obiettivo 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 l’apprendimento del modello student. Questo processo consiste nell’allineare l’output del modello student a quello del modello teacher, attraverso l’utilizzo di input condivisi e la minimizzazione delle differenze tra le risposte. 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 `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 l’adattamento 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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
### Open Weight
|
||||
|
||||
I modelli open sono quelli per i quali almeno i pesi sono resi pubblici e, generalmente, esiste un paper scientifico che descrive l’architettura, 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 l’addestramento 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 l’architettura, 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 l’utilizzo 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 l’esecuzione 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)
|
||||
|
||||
@@ -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/)
|
||||