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.


9 gen 2023

Exchange Online: eseguire operazioni avanzate con Microsoft Graph

 In alcuni casi, come ad esempio per un’importazione errata con network upload, si rende necessario effettuare alcune attività massive (bulk) in Microsoft 365.

Eliminare una determinata cartella da tutte le mailbox presenti in un tenant è uno scenario più comune di quanto sembri e lo utilizzeremo come modello per capire come connetterci con Microsoft Graph tramite PowerShell ed il relativo SDK al fine produrre script di automazione che possano oltrepassare il limite del contesto utente.

Graph PowerShell SDK è solo un wrapper per l’API Graph, che a sua volta non è altro che un’API REST. Un’API REST, nota anche come API RESTful, è un’interfaccia di programmazione delle applicazioni (API o API web) conforme ai vincoli dello stile architetturale REST, che consente l’interazione con servizi web RESTful.

Il repository GitHub di riferimento e supporto per Graph PowerShell SDK è il seguente: microsoftgraph/msgraph-sdk-powershell · GitHub

Connettersi alle API di Microsoft Graph tramite PowerShell

Come primissima cosa è mandatorio installare l’SDK di Graph. L’SDK farà in modo che sia possibile attestarci alle Graph API semplicemente tramite Microsoft PowerShell.

Installiamo quindi il modulo Microsoft.Graph meglio conosciuto come Microsoft Graph Powershell SDK. Da notare che tutti i cmdlet di questo modulo iniziano con “Mg

Install-Module Microsoft.Graph -Scope AllUsers -Force

NB: lo scope AllUsers richiede diritti amministrativi, contrariamente non sono necessari per lo scope CurrentUser.

Un argomento molto importante, con cui è preferibile prendere confidenza quando ci si cimenta nell’utilizzo delle API di Microsoft Graph ,sono gli ambiti anche noti come scope. Se ad esempio un account dispone delle autorizzazioni per un determinato ruolo, non significa che gli venga automaticamente concesso tale ambito.

Verificare l’ambito di un cmdlet

Per questioni di sicurezza, e per evitare di disporre di privilegi eccessivi, è consigliabile utilizzare solo gli ambiti applicabili alla sessione corrente. Ma come si può sapere esattamente quali ambiti sono necessari per i cmdlet che intendiamo usare?

La risposta scontata è naturalmente la documentazione, ma esiste un altro modo probabilmente più efficace anche se dipende molto da come si è abituati: Graph Explorer! Da qui possiamo verificare tutte le autorizzazioni necessarie per ogni query.

continua su WindowServer.it