3 dic 2024

Il senso della ricerca per Microsoft.

Prendiamo in esame una semplice ricerca. Un'operazione comune da cui ci si aspetta di ottenere risultati quantomeno pertinenti da lustri, figuriamoci nell'era dell'AI.

Decido di ricercare, nel corpo di una mail e in una determinata mailbox in Exchange Online, la presenza di due semplicissime parole chiave: costi ed energia.

Comincio da Outlook Web App. Outlook presenta molti risultati, con la solita amarezza (si solita perché non succede certo di rado), nessuno dei quali pertinente.

Perplesso deciso di utilizzare uno strumento più avanzato.

Il portale Purview. Imbastisco la eDiscovery con le keyword di cui sopra, diciamo in maniera standard ma anche facendo tuning con la KQL con query di questo genere: Body:" energia " OR Body:" costi "



Noto tra l'altro che eDiscovery si prende l'iniziativa di tradurre in inglese le keyword e di ricercare anche quelle tra le email.

Qualcuno mi dica come evitare questo fastidioso comportamento.. ma sarà sicuramente una feature. Verificando i risultati noto che ci sono più risultati (ma perché?) ma anche qui nulla è lontanamente pertinente

Dato che in casa Microsoft sembra che le ricerca sia ancora una funzionalità, come dire, da perfezionare, decido di provare a fare la ricerca con uno strumento di terze parti.

Veeam Backup for Microsoft 365 Fortunatamente abbiamo il tenant sottoposto a backup con Veeam Backup for Microsoft 365. Cerco nella mailbox utilizzando gli stessi criteri di ricerca ed ecco il risultato:



Neanche a dirlo questi sono i risultati attesi e le parole chiave erano contenute SOLO in queste due email.


Relinquo arbitrio vestro



21 ago 2024

Windows 11: Abilitare termina attività direttamente nella taskbar

Microsoft ha aggiunto la funzione "Termina attività" al menu contestuale della barra delle applicazioni in Windows 11. Con questa opzione attivata, puoi semplicemente fare clic con il tasto destro sull'app nella barra delle applicazioni e chiuderla direttamente, senza dover aprire il Task Manager, cercare l'applicazione e chiuderla manualmente.

Di seguito come abilitare la funzionalità via UI 



Una volt attivato avremo la possibilità di killare l'applicazione direttamente dalla taskbar utilizzando il tasto destro del mouse





18 ago 2024

Exchange Online: configurare SMTP DANE in entrata con DNSSEC

Chi ci segue avrà sicuramente letto il precedente articolo – Exchange Online: implementazione di SMTP DANE con DNSSEC – WindowServer.it – in cui abbiamo parlato dei concetti base di DNSSEC e DANE e dove Microsoft indicava i tempi di rilascio in luglio 2024. Il deploy dell’anteprima pubblica è appena iniziato ma è già possibile configurare il tenant perché utilizzi questi servizi anche in ricezione.

Cosa sono SMTP DANE e DNSSEC?

Per chi non avesse tempo di leggere l’articolo precedente di seguito un recap sulle componenti in gioco:

  • SMTP DANE (DNS-based Authentication of Named Entities) è un protocollo di sicurezza che usa il DNS per verificare l’autenticità dei certificati usati per proteggere la comunicazione email con TLS e prevenire gli attacchi di declassamento TLS.
  • DNSSEC (Domain Name System Security Extensions) è un insieme di estensioni al DNS che fornisce la verifica crittografica dei record DNS, impedendo lo spoofing DNS e gli attacchi di tipo man-in-the-middle.

Nota: Microsoft include l’SMTP DANE in entrata con DNSSEC gratuitamente come parte dei suoi sforzi per migliorare la sicurezza. Non bisogna configurare SMTP DANE in uscita con DNSSEC perché Microsoft lo ha aggiunto da marzo 2022.

Configurare l’SMTP DANE in entrata con DNSSEC in Exchange Online

Per impostare l’SMTP DANE in entrata con DNSSEC in Exchange Online (Microsoft 365), è necessario seguire i seguenti passaggi:

Verificare che il dominio sia firmato con DNSSEC

Per ricevere i pieni benefici di sicurezza della funzionalità, assicuratevi che il dominio sia firmato con DNSSEC. Per verificare il tuo dominio utilizza Verisign – Verisign DNSSEC Debugger tool – inserendo il nome del dominio e verificando che tutti i campi abbiano una spunta verde.


Se il dominio non è firmato con DNSSEC, assicurarsi di abilitarlo nel tuo registrar DNS prima di procedere.

Aggiornare il TTL del record MX esistente nel registrar DNS

  • Accedere al registrar DNS, modificare il record MX esistente abbassando il TTL il più possibile per il record MX esistente
  • Assicurarsi che la priorità del record MX sia impostata a 0 o 10
  • Aspettare che il TTL precedente scada prima di procedere. Per esempio, se il TTL del record MX esistente era 1 ora, sarà necessario aspettare 1 ora prima di procedere al passo successivo

Attivare DNSSEC da PowerShell di Exchange Online

Eseguire PowerShell come amministratore e collegarsi ad Exchange Online utilizzando il cmdlet Connect-ExchangeOnline – se avete una sottoscrizione Azure, potete usare anche la bash online per effettuare questa operazione.

Abilitare DNSSEC per il dominio autoritativo con il comando seguente: Enable-DnssecForVerifiedDomain -DomainName “tuodominio.com”

Aggiungere un nuovo record MX al registrar DNS

  • Creare un nuovo record MX
  • Copiare il DnssecMxValue dall’output del passo precedente e incollalo come valore
  • Impostare il TTL al minimo possibile
  • Impostare la priorità del nuovo record MX a 20

Verificare il nuovo record MX

L’output mostrerà se il test di convalida è riuscito per il record MX che termina con mx.microsoft.

Rimuovere il vecchio record MX nel registrar DNS

  • Rimuovere il vecchio record MX
  • Modificare il nuovo record MX nel registrar DNS, cambiando la priorità a 0

Verificare la convalida DNSSEC

  • Effettuare un test di convalida DNSSEC e DANE
  • Inserire il vostro dominio
  • Assicurarsi di selezionare il tipo di test Convalida DNSSEC

L’output mostrerà se il test di convalida, relativo a DNSSEC, è riuscito per il record MX che termina con mx.microsoft.

Abilitare SMTP DANE in entrata per il dominio

Abilitare SMTP DANE in entrata per il dominio con il comando seguente: Enable-SmtpDaneInbound -DomainName “iquad.it”

Nota: Attendere almeno un’ora prima di procedere ulteriormente perché il record TLSA ha bisogno di propagarsi.

Verificare la convalida DANE (incluso DNSSEC)

  • Effettuare un test di convalida DNSSEC e DANE
  • Inserire il vostro dominio
  • Assicurarsi di selezionare il tipo di test Convalida DANE (incluso DNSSEC)

L’output mostrerà se il test di convalida, relativo a DANE (incluso DNSSEC), è riuscito per il record MX che termina con mx.microsoft.

Nota: Exchange Online ospita più record TLSA per aumentare l’affidabilità della convalida SMTP DANE. È previsto che alcuni dei record TLSA possano fallire la convalida. Finché un record TLSA passa la convalida, SMTP DANE è configurato correttamente e l’email è protetta con SMTP DANE.

Conclusioni

Ogni organizzazione su Microsoft 365 dovrebbe configurarlo per i propri domini accettati in Exchange Online, al fine di proteggere il flusso di posta in entrata. DNSSEC non è completamente resistente agli attacchi Man-in-the-Middle e agli attacchi di downgrade (da TLS a testo non crittografato) per gli scenari di flusso di posta. L’aggiunta di MTA-STS e DANE insieme a DNSSEC offre un metodo di sicurezza completo per contrastare gli attacchi MITM e downgrade.

Per maggiori informazioni, potete fare riferimento al seguente link – Come l’autenticazione basata su DNS SMTP delle entità denominate (DANE) protegge le comunicazioni di posta elettronica | Microsoft Learn

Source: Exchange Online: configurare SMTP DANE in entrata con DNSSEC - WindowServer.it

18 feb 2024

How to retrieve failed Veeam Backup & Replication job backups using the Zabbix agent

If you don't have a version of Veeam Backup & Replication that supports the RESTful API, there is another simple way to retrieve failed jobs from Zabbix.

Add the item to host

We can add and configure a new item and its related trigger in the Zabbix template.

The item works by capturing the Veeam event in the windows logs (Event Viewer) for failed jobs



The Key value is:
eventlog[Veeam Backup,,Error,Veeam MP,190,,skip]


Add the trigger

The trigger has been set in this way



The trigger value is:
logeventid(/TEMPLATE/eventlog[Veeam Backup,,Error,Veeam MP,190,,skip],,"190")=1

Pay attention in the macro values in Name and Event name:
Veeam {ITEM.VALUE1}


This is the result in the Zabbix Server





17 feb 2024

Microsoft porta sudo su Windows

Questa funzione è oggi disponibile all’interno delle versioni Insider, ovvero le preview disponibili a tutti coloro che si vogliono cimentare con le prossime novità di Windows e Windows Server. La prima operazione da fare per poter testare il comando sudo è abilitare Enable sudo da Settings / System / For Developer.


Figura 1 – abilitate il comando sudo

Microsoft sta prendendo misure non solo per rendere Windows Server 2025 e Windows 11 24H2 (e Windows 12) più sicuri, ma anche più facili da amministrare, introducendo il comando sudo nei suoi sistemi operativi, comando che tutti sappiamo essere storicamente associato a Linux.

Cos’è il comando sudo?

Chiunque abbia mai utilizzato Linux conosce sudo. Per coloro che non lo conoscono, sudo sta per “superuser do” e consente agli utenti standard di eseguire comandi che altrimenti richiederebbero privilegi di amministratore.

Prima di sudo, per eseguire comandi o applicazioni che richiedono privilegi di amministratore, gli utenti dovevano o accedere come utente root o utilizzare il comando “su” per accedere all’account utente root
Superuser do, noto come sudo, è un programma della console Linux che permette agli utenti con bassi privilegi di eseguire comandi con privilegi elevati, tipicamente come root.

Il comando sudo rafforza la sicurezza in Linux permettendo ai server di operare normalmente con account a basso privilegio, mentre gli utenti mantengono la possibilità di accrescere i propri privilegi quando necessario per l’esecuzione di comandi specifici. Rimasto a lungo senza eguali rispetto a Windows, consente agli amministratori di determinare quali utenti possono accedere ai privilegi di amministratore e persino di controllare quali applicazioni sono soggette a tali privilegi.

Sudo in Windows Insider Build

Una volta attivato tramite il selettore corrispondente, ci viene offerta la possibilità di scegliere il comportamento del comando sudo tramite tre opzioni: in una nuova finestra, con input disabilitato o inline.

L’opzione di configurazione forceNewWindow è quella predefinita di sudo per Windows, che consente di eseguire il comando in una nuova finestra. Questo è simile al comportamento del comando runas /user:admin.

Attraverso l’opzione di configurazione disableInput si eseguirà il processo elevato nella finestra corrente, ma con la gestione dell’input chiusa. Ciò significa che il processo elevato non sarà in grado di ricevere input dalla finestra della console corrente. Questo è utile per scenari in cui si desidera eseguire un comando come amministratore, ma non si desidera consentire al comando di ricevere input dalla finestra della console corrente. Questa opzione di configurazione fornisce parte della comodità dell’opzione di configurazione inline ma consente di mitigare alcuni dei rischi di sicurezza intrinseci.

L’opzione di configurazione normal è più simile a come sudo si comporta sui sistemi Unix-like. Questa configurazione eseguirà il processo elevato nella finestra corrente e il processo sarà in grado di ricevere input dalla sessione della console corrente. Questo è utile per scenari in cui si desidera eseguire un comando come amministratore e si desidera consentire al comando di ricevere input dalla finestra della console corrente. Questa opzione di configurazione fornisce la massima comodità, ma si dovrebbe scegliere solo se si è consapevoli dei rischi di sicurezza associati.

Nelle configurazioni di cui sopra, sudo.exe avvierà un nuovo processo con privilegi elevati, un processo sudo.exe elevato, e il sudo.exe originale non elevato stabilirà una connessione RPC con il nuovo processo elevato. In altre parole, le informazioni vengono trasmesse dall’istanza di sudo non elevata a quella elevata. In particolare, le gestioni della console dal processo non elevato vengono passate al processo elevato, il che consente al processo elevato di leggere l’input dal processo non elevato e scrivere l’output nel processo non elevato. Tuttavia, quando sudo è configurato nella configurazione “Input cloded”, il processo elevato sostanzialmente non riceverà la gestione dell’input della console, quindi non sarà in grado di leggere l’input dall’utente.

È importante essere consapevoli delle implicazioni sulla sicurezza quando si esegue sudo nelle configurazioni “Inline” o “Input closed” dato che esiste la possibilità che un processo con integrità media possa controllare il processo elevato. Questo rischio viene mitigato nella configurazione “Input closed” perché il processo elevato non sarà in grado di leggere l’input dall’utente

Essendo già confidente con il comando in ambiente Linux, attiverò per prima l’opzione Inline. Da ora in poi possiamo eseguire il comando in una sessione PowerShell, che al momento della scrittura viene rilasciato nella versione 0.1.5.

Come usare sudo in Windows

Per utilizzare Sudo per Windows, basta semplicemente anteporre sudo al comando che si desidera eseguire come amministratore. Ad esempio, per eseguire netstat -ab come amministratore, si eseguirebbe sudo netstat -ab nella finestra della console.

Poiché sudo eleva il processo target per eseguirlo con i permessi di amministratore, verrà aperto un prompt (UAC) che chiederà di verificare se si desidera continuare.

Da cosa si differenzia sudo da runas esistente?

Il comando sudo offre un modo per elevare rapidamente un comando come amministratore dall’attuale contesto della riga di comando (non elevata) ed è familiare per gli utenti provenienti dalla piattaforma Linux. Il comando runas offre un modo per eseguire programmi come qualsiasi utente, inclusi gli amministratori se lo desideri. Attualmente, il comando sudo su Windows non supporta l’esecuzione di programmi come altri utenti. Di seguito vengono evidenziate altre differenze chiave tra sudo e runas:

  • runas consente di eseguire programmi come altri utenti, inclusi ma non limitati agli amministratori. Questa funzionalità è prevista per il comando sudo, ma non è ancora stata implementata

  • sudo consente di elevare rapidamente un processo (come amministratore):
    • E’ possibile scegliere di farlo in una nuova finestra, che assomiglia al flusso di amministratore di runas.
    • E’ possibile scegliere di collegare il processo elevato alla finestra della console corrente con le opzioni di configurazione disableInput e normal. Questo non è supportato con runas,

  • runas può richiedere agli utenti una password nella riga di comando

  • sudo può essere elevato solo tramite la funzione di sicurezza User Account Control (UAC) progettata per proteggere il sistema operativo da modifiche non autorizzate, utilizzando una richiesta di verifica

Sudo for Windows Open Source Repository

Grazie all’apertura verso il mondo Linux introdotta da Satya Nadella, e poi consolidata nel corso degli anni, il progetto Sudo per Windows è open source, quindi aperto ad eventuali contributi e feedback. Si può trovare il codice sorgente di Sudo per Windows su GitHub.

Conclusioni

Sudo per Windows rappresenta un’innovazione nel mondo Windows, tuttavia non può essere ancora paragonato alla sua controparte Linux a causa di alcune limitazioni. Nonostante ciò, le prospettive per il futuro sono promettenti, specialmente considerando che si tratta di una versione non ancora pienamente sviluppata e che quindi offre ampio spazio per miglioramenti.

Potete trovare questo ad altri articoli sulla community Windowserver.it

27 lug 2023

Microsoft 365 Backup preview

Microsoft ha recentemente annunciato la sua entrata nel mercato dei software per il backup e archiviazione dell’omonima piattaforma Microsoft 365.

Uno degli annunci degni di nota emersi dalla recente conferenza Microsoft Inspire ha segnato il debutto di Microsoft nel mercato dei backup per Microsoft 365. In una prima fase verrà rilasciato, nell’ultimo trimestre del 2023, l’anteprima pubblica di una versione dedicato a SharePoint Online, OneDrive for Business ed Exchange Online. Allo stesso tempo, Microsoft prevede di offrire un’anteprima pubblica di Microsoft 365 Archive per spostare i dati SharePoint Online “inattivi o obsoleti” dall’archiviazione “hot” (online) ad una archiviazione “cold”.

Entrambe le iniziative sembrano essere state accolte favorevolmente anche se a mio parere avrebbero dovuto già esistere da almeno un lustro; dunque, sembra giunto il momento che Microsoft si assuma la responsabilità di proteggere i dati dei propri clienti.

Dato che ogni medaglia ha il proprio rovescio, partiremo dagli attuali svantaggi tenendo presente che si tratta di una preview pubblica:

Locazione dei dati di Backup

La prima cosa da considerare è che tutti i dati rimarrebbero nei datacenter Microsoft. Mantenere tutte le uova in un paniere (datacenter) non è considerato una “best practice” perché esiste sempre la remota possibilità che il datacenter possa subire un guasto catastrofico con la conseguente perdita dei dati. Anche se non ci sono annunci ufficiali su questo tema, probabilmente nella versione definitiva si avrà la possibilità di utilizzare una regione cloud differente come destinazione per i backup.

Nessun backup e ripristino di Teams

Microsoft ha voluto vincere facile in questa prima fase considerando solo i carichi di lavoro più semplici: e-mail e documenti sono oggetti relativamente facili da salvare e ripristinare. Inoltre, ha accesso illimitato ai dati e può modificare le API per semplificare le operazioni di backup e ripristino in modo che la loro implementazione sia più rapida e intelligente.

Tuttavia, l’archiviazione di Microsoft 365 non affronta la più grande sfida, ovvero fornire funzionalità di backup e ripristino senza soluzione di continuità per Teams. Teams è stato progettato on-top a più servizi Microsoft 365 e Azure, integra dati tratti da più fonti e applicazioni.

Quanto sopra è la mancanza di API per eseguire backup e ripristino completi per Teams, cosa che rende questa implementazione complessa. Microsoft Teams ha oltre 300 milioni di utenti attivi mensili, speriamo e presumiamo che il backup e ripristino completo arriverà in una fase successiva.

Accesso ai Dati

Il vantaggio di Microsoft, rispetto ai partner ISV che sviluppano soluzioni di backup, è duplice:

  • ha accesso istantaneo ai dati dei clienti archiviati nei loro datacenter
  • controlla le API che consentono l’accesso ai dati

Le alternative ISV in genere copiano i dati da Exchange Online, SharePoint Online e OneDrive for Business, dai loro repository nativi ai loro datacenter, per cui dobbiamo tener presente quanto segue:

  • L’invio di grandi quantità di dati attraverso Internet dalla rete del datacenter di Microsoft al datacenter di destinazione dell’ISV richiede tempo e risorse, in particolare per le operazioni di ripristino.
  • Mancanza API adeguate allo streaming di grandi quantità di dati
  • Exchange Web Services (EWS) è la base per molte soluzioni di backup ISV per Exchange Online. EWS non è mai stato progettato per questo scopo, ma funziona. Alcuni ISV usano EWS per copiare i record di conformità (compliance records) di Teams e li chiamano backup di Teams. Microsoft vuole forzare gli ISV ad utilizzare Teams Export API, ma ciò non sarebbe esente da complicazioni.

Funzionamento

Il backup di Microsoft 365 non usa un repository esterno all’infrastruttura, quindi i ripristini (quando necessario) avvengono in modo estremamente rapido, anche su larga scala. L’idea è che, se un tenant di Microsoft 365 viene compromesso da ransomware, può tornare rapidamente allo stato precedente all’attacco.

Un altro indubbio vantaggio è l’integrazione nell’interfaccia di amministrazione di Microsoft 365, senza passare per altri portali o link esterni.


Microsoft non ha rilasciato dichiarazioni su eventuali licenze o costi da sostenere per il backup di Microsoft 365, possiamo dedurre che sarà totalizzato in base al consumo.

Come la mettiamo con gli ISV?

Possiamo affermare che Microsoft è stata cauta ed ha lanciato il prodotto tenendo presente il supporto per gli ISV; naturalmente non ha senso entrare in guerra con loro che servono da anni i clienti di Microsoft 365. Gli ISV potranno integrare le funzionalità di Microsoft Backup nelle loro app di protezione e gestione dei dati. In altre parole, gli ISV possono utilizzare le API (e pagare Microsoft per farlo) per sfruttare backup e ripristino più rapidi.

Conclusione

La soluzione, sulla carta, promette uno sviluppo adeguato alle esigenze attuali del mercato. Vedremo come si evolverà nei prossimi mesi in termini di costi, funzionalità e come gli ISV adotteranno le API per integrare le loro soluzioni.

6 feb 2023

Teams: Opzione open in "Desktop App" scomparsa

Se usate licenze diverse dalle E3 in su avete notato che l'opzione "Desktop App" è scomparsa dal menu Files, Files open preference. Questo perché agli allegri fornitori del servizio piace l'upselling e hanno deciso di togliere questa possibilità ai clienti che già ne usufruivano. 
A mio parere davvero una pratica odiosa e scorretta.

L'impostazione è gestita lato client quindi se volete far "ricomparire" open in "Desktop App" aggiornate la seguente reg key con in valore "O365ProPlusRetail"

"HKLM:\Software\Microsoft\Office\ClickToRun\Configuration\ProductReleaseIds" to "O365ProPlusRetail"

Penserei magari a migliorare il prodotto, c'è davvero ampio spazio.


23 gen 2023

2023: L’anno di svolta nell’Intelligenza Artificiale

 

In queste ore tutto il mondo sta parlando dell’ultima versione di GPT (ChatGPT Jan 9 Version, 2023).
In questo articolo cercheremo di capirne di più sull’intelligenza artificiale e quali strumenti sono già disponibili.

 

Cosa si intente per Intelligenza Artificiale?


L'intelligenza artificiale (IA) è una branca dell'informatica che si concentra sullo sviluppo di algoritmi e sistemi in grado di svolgere compiti che richiedono intelligenza umana, come il riconoscimento del linguaggio naturale, la comprensione del contenuto visivo e la risoluzione di problemi complessi.
L'IA può essere suddivisa in diverse categorie, tra cui l'IA debole (o IA di base) e l'IA forte (o IA generale).

 

IA di base

L'IA debole (o IA di base) si riferisce a una forma di intelligenza artificiale che è specializzata in una singola attività o compito specifico. Gli algoritmi e i sistemi di IA debole sono progettati per svolgere un compito specifico, come il riconoscimento delle immagini, il riconoscimento delle voci o la traduzione automatica. Non hanno la capacità di generalizzare o di adattarsi a nuove situazioni, come invece avviene nell'IA forte. In generale, l'IA debole o di base è più facile da implementare e meno costosa rispetto all'IA forte.

IA generale

L'IA forte (o IA generale) si riferisce ad una forma di intelligenza artificiale che ha la capacità di generalizzare e di adattarsi a nuove situazioni e compiti. Gli algoritmi e i sistemi di IA forte sono progettati per svolgere una vasta gamma di compiti, simili a quelli che richiedono l'intelligenza umana, come la comprensione del linguaggio naturale, la risoluzione di problemi e il ragionamento. L'IA forte è più difficile da implementare rispetto all'IA debole e richiede una quantità maggiore di risorse computazionali e dati.

L'IA forte ha la capacità di apprendere e migliorare continuamente, senza essere programmata specificamente per ogni singola attività. L'IA forte può essere utilizzata in una vasta gamma di applicazioni, come il riconoscimento vocale, la traduzione automatica, la guida autonoma e l'elaborazione del linguaggio naturale.

 

Reti neurali

Una rete neurale è un modello computazionale ispirato alla struttura e al funzionamento del sistema nervoso umano. È composta da una serie di nodi (noti anche come neuroni) che sono connessi tra loro da collegamenti, ognuno dei quali ha un peso associato.

Il funzionamento di una rete neurale è simile a quello del sistema nervoso umano, poiché i nodi ricevono informazioni dai nodi di input, elaborano queste informazioni e le trasmettono ai nodi di output. I pesi sui collegamenti tra i nodi sono utilizzati per controllare l'importanza relativa delle informazioni in entrata per la risposta di output.


Ci sono diverse librerie di intelligenza artificiale e di apprendimento automatico che possono essere utilizzate per creare una rete neurale, tra cui TensorFlow, Keras, PyTorch, Microsoft Cognitive Toolkit (CNTK), TensorFlow.NET e Accord.NET

Di seguito un esempio di codice per creare una semplice rete neurale feedforward utilizzando la libreria Accord.NET in C#:

using Accord.Neuro;
using Accord.Neuro.Learning;
using Accord.Math;

// Creazione del modello
var network = new ActivationNetwork(
    new SigmoidFunction(2),
    8, // 8 input nodes
    12, // 12 hidden nodes
    1); // 1 output node

// Creazione dell'oggetto di apprendimento
var teacher = new BackPropagationLearning(network);

// Addestramento del modello sui dati di input
double[][] inputs = ...;
double[][] outputs = ...;
for (int i = 0; i < 1000; i++)
{
    double error = teacher.RunEpoch(inputs, outputs);
    Console.WriteLine("Error: " + error);
}

// Utilizzo del modello per effettuare previsioni
double[] prediction = network.Compute(inputs[0]);
Console.WriteLine("Prediction: " + prediction[0]);

Naturalmente il codice di cui sopra è solo un esempio semplice e generico. Il codice potrebbe variare a seconda delle esigenze specifiche del progetto e della libreria utilizzata. Inoltre, sarebbe necessario utilizzare un dataset di addestramento e di test per addestrare e valutare la rete neurale.


Le reti neurali feedforward (FNN)

 Le reti neurali feedforward (FNN) sono un tipo di architettura di rete neurale che consiste in una serie di strati di nodi (noti anche come neuroni) connessi tra loro. Il flusso di informazioni attraversa la rete in una sola direzione, da input verso output, senza alcun ciclo o ritorno.

In una rete neurale feedforward, gli strati di input ricevono i dati, mentre gli strati nascosti elaborano i dati e gli strati di output forniscono la risposta o la previsione. Ogni nodo nella rete elabora i dati ricevuti dai nodi di input e li passa ai nodi successivi. I pesi sui collegamenti tra i nodi sono utilizzati per controllare l'importanza relativa dei dati in entrata per la risposta di output.

Le FNN sono utilizzate per una vasta gamma di applicazioni, come il riconoscimento delle immagini, il riconoscimento della voce, la traduzione automatica e l'elaborazione del linguaggio naturale. Sono semplici da implementare e da capire, ma hanno limitazioni nell'elaborazione di dati sequenziali o dati con relazioni temporali o di ordine.

 

Le reti neurali convolutional (CNN)

Le reti neurali convolutionali (CNN) sono una specifica architettura di reti neurali feedforward utilizzate principalmente per l'elaborazione delle immagini e del segnale. Sono chiamate "convolutionali" perché utilizzano un'operazione matematica chiamata "convoluzione" per elaborare i dati di input.

In una CNN, gli strati di input ricevono i dati (immagini o segnali), mentre gli strati nascosti elaborano i dati utilizzando una serie di filtri convolutionali. I filtri convolutionali sono matrici di pesi che vengono utilizzati per estrarre caratteristiche specifiche dai dati di input. Gli strati di pooling vengono utilizzati per ridurre la dimensione dei dati, mentre gli strati di output forniscono la risposta o la previsione.

Le CNN sono particolarmente utili per l'elaborazione delle immagini, poiché hanno la capacità di identificare caratteristiche specifiche, come linee, forme e texture, indipendentemente dalla loro posizione nell'immagine. Inoltre, le CNN sono utilizzate in una vasta gamma di applicazioni, tra cui il riconoscimento delle immagini, il riconoscimento della voce, la traduzione automatica e l'elaborazione del linguaggio naturale.

L’apprendimento automatico

In termini informatici, l'IA si basa principalmente su algoritmi di apprendimento automatico e sull'elaborazione dei dati. Gli algoritmi di apprendimento automatico sono un insieme di metodi statistici e di ottimizzazione che consentono ai sistemi di IA di apprendere dai dati e di migliorare continuamente le loro prestazioni.

Ci sono diverse tecniche di apprendimento automatico, tra cui l'apprendimento supervisionato, l'apprendimento non supervisionato e l'apprendimento rinforzato. L'apprendimento supervisionato utilizza dati etichettati per addestrare un modello a riconoscere determinate caratteristiche o pattern in dati non etichettati. L'apprendimento non supervisionato utilizza dati non etichettati per scoprire pattern e relazioni nascosti nei dati. L'apprendimento rinforzato utilizza un sistema di premi e punizioni per guidare l'apprendimento.

Una volta addestrato, il modello può essere utilizzato per effettuare previsioni o decisioni su nuovi dati. Inoltre, l'IA può essere implementata utilizzando diverse architetture di rete neurale, tra cui le reti neurali feedforward, le reti neurali ricorrenti e le reti neurali convolutional.

Il modello può essere addestrato utilizzando una grande quantità di dati, che vengono utilizzati per "allenare" il modello, rendendolo in grado di fare previsioni o decisioni accurate su nuovi dati.

 

ChatGTP!

ChatGPT è un modello di linguaggio basato sull'intelligenza artificiale sviluppato da OpenAI. È una forma di IA debole, nota anche come IA di base, che è stata addestrata su un gran numero di testi scritti in lingua inglese. In particolare, ChatGPT è un modello di generazione di testo basato su una rete neurale Transformer.

ChatGPT è un modello di linguaggio molto avanzato e molto preciso, è in grado di generare testo in modo autonomo e di completare frasi o testi a partire da un input iniziale.

ChatGPT si distingue dagli altri sistemi di IA in quanto è stato addestrato su un vasto set di dati di testo e quindi in grado di generare testo in modo molto realistico, inoltre è in grado di generare risposte a domande complesse e di generare testo in modo autonomo.

 

La rete neurale transformer

La rete neurale Transformer è un tipo di architettura di rete neurale utilizzata per l'elaborazione del linguaggio naturale. È stata introdotta nel 2017 in un articolo dal titolo "Attention Is All You Need" (L'attenzione è tutto ciò di cui hai bisogno).

La caratteristica principale delle reti neurali Transformer è l'utilizzo di un meccanismo di attenzione che consente al modello di concentrarsi su parti specifiche del testo di input mentre elabora le informazioni. Ciò consente al modello di capire il contesto e di generare testo più preciso e naturale.

Inoltre, le reti neurali Transformer utilizzano una struttura di auto-attenzione che consente al modello di considerare l'intero testo di input allo stesso tempo, anziché solo una porzione di esso alla volta. Ciò consente al modello di comprendere meglio il contesto e di generare testo più preciso e coerente.

Le reti neurali Transformer sono utilizzate in una vasta gamma di applicazioni, tra cui la generazione di testo, la traduzione automatica, la comprensione del linguaggio naturale e il riconoscimento vocale. GPT-2 e GPT-3 sono esempi di modelli Transformer utilizzati per la generazione di testo.


Evoluzione

GPT-4 sarà 100 volte più potente di GPT-3, con oltre 100 trilioni di parametri rispetto ai 175 miliardi di parametri di GPT-3 e con nuove funzionalità come il servizio clienti e l'istruzione.




Applicazioni pratiche

E’ già possibile utilizzare una vasta gamma di servizi basati su IA forniti dai principali playes del mondo cloud. Ad esempio, in Microsoft Azure questi servizi consentono agli sviluppatori di creare, implementare e distribuire facilmente soluzioni di IA.

Alcuni dei servizi di IA offerti da Azure sono:

·       Azure Cognitive Services: un insieme di API pre-addestrate che consentono di aggiungere funzionalità di IA come il riconoscimento delle immagini, il riconoscimento della voce e la comprensione del linguaggio naturale alle applicazioni.

·       Azure Machine Learning: un servizio di apprendimento automatico che consente di creare, implementare e distribuire modelli di IA in modo semplice e veloce.

·       Azure Databricks: un ambiente di elaborazione dei dati basato su Apache Spark che consente di creare, implementare e distribuire facilmente soluzioni di IA.

·       Azure IoT Edge: una piattaforma per l'elaborazione dei dati in dispositivi IoT che consente di eseguire modelli di IA su dispositivi IoT.

 

Espandendo un po’ il campo troviamo altre piattaforme altrettanto interessanti, non sono ovviamente le uniche disponibili ma solo le più popolari:

·       Google Cloud AI: un insieme di servizi di IA offerti da Google Cloud, tra cui Google Cloud Translation, Google Cloud Natural Language e Google Cloud Video Intelligence.

·       Amazon Web Services (AWS): un insieme di servizi di IA offerti da Amazon, tra cui Amazon Transcribe, Amazon Translate e Amazon Rekognition.

·       IBM Watson: un insieme di servizi di IA offerti da IBM, tra cui Watson Language Translator, Watson Speech to Text e Watson Visual Recognition.

·       SAP Leonardo: una piattaforma di intelligenza artificiale di SAP che offre servizi di machine learning, intelligenza artificiale, Internet of Things (IoT) e blockchain.

·       Facebook AI: un insieme di servizi di IA offerti da Facebook, tra cui Face Recognition, Object Detection and Automatic Alternative Text.

·       OpenAI: una organizzazione di ricerca sull'IA che offre una serie di servizi di IA, tra cui GPT-3, un modello di generazione di testo basato sull'IA.

Inoltre, esistono tantissimi siti web basati su AI che hanno compiti relativamente semplici e specifici come ad esempio:

·       Teachable Machine permette di sviluppare il proprio modello di machine learning senza bisogno di programmare. Si può addestrare l'intelligenza artificiale con immagini, suoni e altro.

·       Thing Translator usa la fotocamera del cellulare o la webcam del computer per inquadrare un oggetto o qualsiasi altra cosa e dirci che cos'è in tutte le lingue del mondo.

·       Autodraw, il sito Google che disegna da solo, un esperimento di intelligenza artificiale che indovina cosa stiamo disegnando per poterlo completare prima di finirlo.

·       Il sito thispersondoesnotexist.com usa l'algoritmo sviluppato dal progetto NVidia StyleGAN2 in modo da mostrare la fotografia falsa di una persona che non esiste, con un viso che sembra incredibilmente reale, ogni volta che viene aperto.

·       Infinite Drum Machine si occupa di organizzare automaticamente i suoni per creare una base ritmica. E’ possibile spostare i cerchi sullo schermo e scegliere il tipo di effetto sonoro da utilizzare per la base.

·       Talk To Books  Questo è uno strumento di intelligenza artificiale sperimentale di Google. Si digita una frase nella casella di ricerca, l’AI ti aiuterà a scoprire prospettive e libri entusiasmanti che potresti voler leggere.

·       AI. Image Enlarger Questo sito web ti aiuterà a migliorare tutte le foto di bassa qualità, anche in caso di immagini “pixellate”, sfocate e non dettagliate. Si potrebbe dire come nelle serie e films.

 

Conclusioni

L’IA negli ultimi anni si è sicuramente sviluppata ad un punto tale da essere tanto potente quanto incredibile (e preoccupante?). OpenAI in particolare è stata fondata, indovinate un po’? Dal buon Elon Mask e attualmente foraggiata da Microsoft. Quest’ultima versione di GTP cambia tutte le dinamiche di mercato creando una svolta nell’integrazione del linguaggio naturale. Nei prossimi mesi assisteremo ad una evoluzione ancora più incredibile dato che gli altri player della Silicon Valley non potranno certo stare a guardare.