Phi-2 Microsoft: un passo avanti verso gli Small Language Models

Gli Small Language Models, tra cui spicca sicuramente Phi2 di Microsoft presentato pochi giorni fa, stanno ridefinendo il campo dell’intelligenza artificiale grazie alla loro efficienza e compattezza, consentendo una maggiore facilità di integrazione in dispositivi vari e una riduzione dei costi di calcolo. Questi modelli, più agili e meno esigenti in termini di risorse, saranno ideali per un’ampia gamma di applicazioni, promuovendo un’IA più accessibile e sostenibile in diverse industrie. I vantaggi degli Small Language Models , soprattutto viste le criticità attualmente presenti per l’adozione in molte aziende, aprono nuove prospettive di implementazione, con un impatto significativo su efficienza, scalabilità e applicabilità pratica.

Introduzione al Phi2

Phi2 di Microsoft rappresenta un ulteriore passo avanti nell’evoluzione dei modelli di linguaggio. Questo modello di “piccole” dimensioni, con i suoi 2.7 miliardi di parametri, sfida l’idea che solo i modelli di grandi dimensioni possano offrire prestazioni avanzate.

Lanciato ufficialmente all’evento Microsoft Ignite 2023 di pochi giorni fa, Phi2 è un ulteriore accelerazione rispetto al percorso che sta facendo l’AI in questo periodo, e si focalizza su temi di efficienza, scalabilità e accessibilità.

Caratteristiche tecniche

Phi2 rappresenta un modello di linguaggio ridotto ma altamente efficiente. Rispetto ai giganti del settore come Llama2 e Mistral, Phi2 ha dimostrato come riportato nei documenti di Model Training e benchmark che la dimensione non è sempre sinonimo di superiorità: l’importanza della qualità dei dati oltre alla quantità. In particolare:

  1. Dimensione del Modello: Phi2 ha 2.7 miliardi di parametri, posizionandosi come un modello di media dimensione nel panorama degli LLM.
  2. Architettura Transformer: Utilizza l’architettura Transformer, ampiamente riconosciuta per la sua efficacia nel trattamento del linguaggio naturale.
  3. Lunghezza del Contesto: Capace di gestire un contesto di 248 token, permettendo un’analisi approfondita del testo.
  4. Training sui Dati: Addestrato su un mix di dataset sintetici e dati web, con enfasi sulla qualità e la varietà dei dati.
  5. Tempo di Training: Impiegati 14 giorni per l’addestramento su 96 GPU NVIDIA A100.
  6. Tecnologie Utilizzate: Usa PyTorch, DeepSpeed e Flash Attention per l’efficienza del training e dell’inferenza.
  7. Capacità di Ragionamento: Eccelle in compiti di ragionamento logico e comprensione del linguaggio.
  8. Apprendimento da Codice Python: Particolarmente addestrato su codice Python, mostrando competenze significative in questo linguaggio di programmazione.
  9. Sicurezza e Bias: Miglioramenti notevoli in termini di riduzione della tossicità e dei bias rispetto a modelli open-source simili.
  10. Interpretazione Meccanicistica: Progettato per facilitare la ricerca sull’interpretazione meccanicistica, migliorando la comprensione di come il modello elabora e risponde alle query.

Prestazioni e benchmark

Phi2 eccelle in diversi benchmark, posizionandosi al pari, se non superiore, a modelli molto più grandi. Le sue prestazioni sono particolarmente rilevanti in compiti di ragionamento, comprensione del linguaggio e codifica, dove ha dimostrato di superare modelli come il 13B Llama-2 e il 7B Mistral. Questi risultati evidenziano il potenziale dei modelli più piccoli e efficienti nell’era dell’IA. Qui il link con informazioni su Phi2 Performance. Mentre qui trovate Phi-1.5 e Phi-1

Dalla documentazione presente in rete, ho trovato questi punti rilevanti:

  1. Prestazioni in Common Sense Reasoning:Phi2 mostra eccellenti risultati in test come PIQA e ARC, superando modelli più grandi nel ragionamento di senso comune.
  2. Capacità di Comprensione del Linguaggio:Nei benchmark come HellaSwag e SQuADv2, Phi2 dimostra una comprensione del linguaggio paragonabile a modelli con un numero di parametri molto superiore.
  3. Efficienza in Task di Matematica:Nel benchmark GSM8k, Phi2 ha mostrato capacità avanzate nella risoluzione di problemi matematici, evidenziando la sua forza in compiti logici e numerici.
  4. Performance nel Coding:In test come HumanEval e MBPP, Phi2 eccelle nella generazione di codice Python corretto, riflettendo la sua specifica formazione in questo linguaggio.
  5. Benchmark Big Bench Hard (BBH):In questo benchmark, Phi2 ha ottenuto risultati buoni, superando modelli come Llama-2 e Mistral, specialmente in compiti di ragionamento multistep.
  6. Confronto con Gemini Nano 2:Rispetto a Google Gemini Nano 2, Phi2 ha mostrato prestazioni superiori in diversi test di benchmark riportati da Google, nonostante una dimensione più ridotta.
  7. Riduzione della Tossicità e Bias:In benchmark come ToxiGen, Phi2 ha dimostrato un elevato livello di sicurezza rispetto ai modelli comparabili, producendo meno output tossici e mostrando minori bias.

Applicazioni e casi d’uso

Phi2 trova applicazione in una vasta gamma di settori, dalla didattica all’assistenza sanitaria. Nell’educazione, può personalizzare l’apprendimento e supportare gli insegnanti con risposte immediate e pertinenti. Nel campo sanitario, offre consigli preliminari e supporto per il benessere mentale. E sono solo alcuni esempi, ma gli ambiti di applicazione sono enormi.

Vantaggi dei modelli più piccoli

Gli Small Language Models (SLM) rappresentano una svolta nell’IA, combinando efficienza e precisione in modelli compatti. Perfetti per l’uso su dispositivi e in ambienti con risorse limitate, gli SLM offrono prestazioni elevate e sicurezza migliorata, rendendoli strumenti fondamentali per un’ampia gamma di applicazioni. Sono ideali per dispositivi con capacità di calcolo limitate e applicazioni in tempo reale. Riducendo il tempo e i costi di addestramento, questi modelli diventano più accessibili e sostenibili, aprendo la strada a un’IA più democratica.

  • Efficienza di Risorse: Richiedono meno memoria e potenza di elaborazione rispetto ai LLM, ottimizzando l’uso delle risorse.
  • Maggiore Trasparenza: Sono più trasparenti e comprensibili, facilitando l’audit e l’identificazione di errori o vulnerabilità.
  • Precisione: Tendono a generare informazioni più accurate e sono meno inclini a bias, grazie alla loro scala ridotta e alla formazione mirata.
  • Sicurezza Migliorata: Con meno parametri e una base di codice ridotta, presentano un minor rischio di attacchi e vulnerabilità.
  • Adattabilità: Possono essere facilmente integrati in dispositivi con limitazioni di risorse, offrendo flessibilità nell’applicazione.
  • Personalizzazione: Permettono una personalizzazione più semplice per scopi specifici, adattandosi meglio ai requisiti individuali.

Inoltre, la loro maggiore interpretabilità è essenziale in campi critici come la medicina e il diritto.

Sfide e considerazioni etiche

Nonostante i numerosi vantaggi, l’uso di Phi2 – così come la maggior parte dei sistemi di LLM e SLM, presenta alcune sfide. La qualità e l’affidabilità delle informazioni generate rimangono una preoccupazione primaria. Questioni etiche come la privacy, la sicurezza dei dati e il rischio di abusi richiedono attenzione. È fondamentale assicurare che queste tecnologie siano accessibili a tutti, evitando di creare un divario digitale. Suggerisco la lettura di questo articolo dell’Unesco “Artificial Intelligence: examples of ethical dilemmas

+++

Se questo tema trattato in questo post ed in generale ti interessano temi come #AI, #GenAI, #Web3, #AR, #VR, #Gaming e #Blockchain e vuoi essere sempre aggiornato sulle ultime tendenze tecnologiche, assicurati di iscriverti alla mia newsletter, di seguirmi qui su Linkedin Fabio Lalli o su questi canali MTVRS anche su Telegram https://t.me/mtvrs_it

Differenze tra Microsoft Tag e QR Code

Ieri ho scritto un post relativamente alla tecnologia Tag di Microsoft e subito dopo mi sono ritrovato a parlare con amici più o meno smanettoni relativamente alle implementazioni possibili ma soprattutto riguardo alle differenze e ai vantaggi tra una tecnologia e l’altra. Partendo dal fatto che entrambe le tecnologie sono legate al concetto di object hyperlinking, la domanda che ci siamo posti però è stata “Ma quali sono queste differenze tra il TAG ed il QR?”

Bene, qui di seguito ecco un pò di riflessioni al riguardo.

Stampa. Tag consente una dimensione molto più piccola dei codici QR, per cui su materiale stampato riduce l’ingombro. Immaginiamo per esempio l’utilizzo di un Tag su una stampa di un annuncio: nel caso dei QR il codice dovrà esser ben visibile, mentre con i Tag si avrebbe un impatto visivo minore e meno invasività.

Personalizzazione. Il tradizionale codice 2D è un simbolo privo di senso: dopo tutto si tratta di un codice a barre bianco nero. Con Tag invece, attraverso l’opzione per effettuare Custom Tag, si possono integrare completamente codice e marchio, per esempio, creando dei simboli anche visivamente e graficamente interessanti.

Unico lettore. Attualmente sul mercato sono presenti molti lettori di Codici QR, gratuiti e non, e sopratutto con funzionalità e caratteristiche differenti a seconda del device. Microsoft fornisce invece una singola soluzione per il mobile tagging per tutte le principali piattaforme: Windows Mobile, J2ME, iPhone, Blackberry, telefoni Symbian S60 e Android.

Precisione. La sofisticata tecnologia utilizzata da Tag, chiamata High Capacity Color Bar Code, o HCCBs, permette una accurata scansione anche su telefoni cellulari che hanno delle fotocamere con caratteristiche limitate e in situazioni di immagine sfocata, di bassa qualità delle lente, o di mancanza di auto-focus per la messa a fuoco dell’immagine. I barcode QR spesso non si riescono a leggere proprio per i problemi appena descritti.

Api e sviluppo. Sia per Barcode QR che per TAG si possono trovare sul mercato delle API di sviluppo. Nel caso dei QR Code ci ha pensato Google, mentre per i Tag ci ha pensato ovviamente Microsoft.

Report. Passando da Microsoft ogni scansione, si ha sempre un report di lettura e delle statistiche. Nel caso dei QR bisogna sviluppare un applicazione di tracciamento per ogni progetto.

Leggendo queste riflessioni e tirando le somme sembra che il Tag d Microsoft siano migliori dei Barcode QR senza ombra di dubbio. Personalmente, come ho detto anche ieri sul post in risposta a Riccardo, ho un pò di dubbi relativamente al fatto che Microsoft mantenga gratuito il client e rimango un pò diffidente dall’utilizzo di questo sistema che passa sempre e comunque dai sistemi di microsoft (…ovviamente questo succede anche nel caso delle API di Google).

Barcode QR a colori con Microsoft Tag

In questi giorni ho avuto modo di approfondire un pò di problematiche relative ai Barcode QR e dopo aver messo on line un apps di prova per generare i QR per un amico di Torino, mi son trovato a leggere un articolo interessante relativo al caso dell’ente Turismo Torino e Provincia. In pratica l’ente ha dato il via alla prima implementazione dei tag basata sulla tecnologia di barcoding Microsoft Tag (High Capacity Color HCCBs)

La cosa mi ha incuriosito e subito mi sono letto un pò di articoli, specifiche tecniche e le linee guida per creare dei tag personalizzati. Praticamente questi barcode della Microsoft non hanno niente più dei semplici Barcode QR, con la differenza però che sono a colori e che il client per i cellulari è distribuito gratuitamente da Microsoft per :

  • Android
  • Blackberry
  • iPhone
  • J2ME
  • Java 2 Micro Edition
  • PalmOS
  • Symbian S60
  • Symbian S60 1st Edit
  • Symbian S60 2nd Edit
  • Symbian S60 3rd Edit
  • Symbian S60 5th Edit
  • Windows Mobile
  • Windows Phone

La Microsoft ha inoltre creato un apposita sezione dedicata a chi vuole generare il proprio barcode da utilizzare su volantini, manifesti, siti e biglietti da visita (molto geek). L’utilizzo di questa applicazione è gratuita, attivabile facilmente attraverso l’account Hotmail / MSN e permette anche di avere dei report di lettura.

Insomma, ma dico io, è possibile che Microsoft debba sempre realizzare qualcosa fuori standard, solo per differenziarsi un pò?

Devo dire però che questi barcode, aldilà del fatto che possono contenere più informazioni, sono effettivamente graficamente più belli e curiosi.

UPDATE 15/03/2010 ore 15.18: ho trovato anche questa pagina relativa alla sezione sviluppatori contenente le API da utilizzare per eventuali sviluppi

Configurare l’invio di email in WordPress su Windows IIS

Come tutti sapete WordPress nasce come sistema di Content Management System open source (PHP + MySQL) installabile su server Linux. Può capitare (anche se qualcuno storcerà il naso e la bocca) di avere l’esigenza di dover installare wordpress su un server Microsoft Windows e web server IIS. Una volta installato il PHP sotto IIS, l’istanza di MySQL, e aver configurato WordPress, si presenteranno due grossi problemi:

  1. la riscrittura degli URL (url rewrite)
  2. l’invio delle notifiche email (password dimenticata, registrazione, commenti e moderazione)

Per quanto riguarda la riscrittura dell’url rewrite scriverò un articolo a parte. In questo post riporterò tutto quello che si deve configurare per effettuare la configurazione delle email.

1. Configurazione SMTP in PHP.INI

Prima di tutto è necessario attivare l’invio delle e-mail attraverso la configurazione dell’SMTP nel file php.ini. Procedere nel seguente modo:

  • Arrestare IIS da Gestione IIS.
  • Aprite il file php.ini. Il file potrebbe trovarsi sotto C:\ PHP oppure nella cartella C:\ WINDOWS. Questa differenza dipende da come è stato configurato IIS e PHP sul vostro sistema.
  • Una volta aperto il file php.ini con il blocco note o altro editor di testo, cercare la voce denominata “[funzione mail]” e impostate come di seguito i valori SMTP=Localhost e smtp_port = 25
  • Salvare e chiudere il file php.ini.

2. Configurazione  impostazioni SMTP IIS

iis - configurazione smtp per email phpCompletata la configurazione del PHP.ini si passa alla configurazione dell’IIS Internet (Information Services Manager). Ipotizzando che il vostro IIS sia già in esecuzione, entrando nella consolle dovreste essere in grado di vedere una voce tipo “Default SMTP Virtual Server” o simile. Entrate nelle proprietà e poi in Accesso e configurate le impostazioni di connessione ed inoltro come nella figura. Inserire come server autorizzati “127.0.0.1”, “localhost” e se possibile l’IP pubblico del server stesso. Una volta completata questa operazione, riavviare IIS da IIS Manager.

Completata questa configurazione effettuate un test di invio email dal vostro server. Se le email partono, ma da wordpress ancora no, è possibile che il server non accetti l’invio di email senza autenticazione. In tal caso procedete anche con l’installazione del plug-in per wordpress riportato al punto 3.

3. Installazione plug-in “Configure SMTP WP”

Il problema dell’invio di email con autenticazione può quindi esser risolto con l’installazione di SMTP Configurare plugin WP. Questo plugin permette di configurare l’invio tramite SMTP autenticato (esempio Gmail). L’installazione è molto semplice, dopo aver farlo basta configurare il server SMTP dettagli e funziona solo. Il Plug-In è presente alla pagina dello sviluppatore oppure nella directory dei plugin di wordpress

Enjoy!

Il 6 ottobre arrivano Windows Phone e Windows Mobile 6.5

Oggi è stata ufficilizzata da Microsoft la data per la presentazione dei nuovi prodotti. Microsoft ha organizzato per il 6 Ottobre prossimo un lancio internazionale dei nuovi telefoni basati su Windows Mobile 6.5.

I prodotti che verranno distribuiti anche in Europa sono stati soprannominati “Windows Phone” e usciranno dalle case produttrici Acer, HTC, LG, Samsung, Sony Ericsson e Toshiba.

Nella nuova versione di Windows Mobile, da quanto si legge sul sito Microsoft, è stato ridisegnato il browser Internet Explorer Mobile che include un nuovo motore di Adobe Flash Lite (attualmente è la carenza forse più grande dell’iPhone).  Microsoft Office Outlook Mobile è stato migliorato dal punto di vista dell’usabilità e dell’integrabilita con Exchange e altri servizi. Microsoft Office Mobile non ha subito grandi variazioni. Verrà attivato il Windows Marketplace for Mobile per poter acquistare software on line, come l’app store di APPLE. Verrà attivato un servizio gratuito che consentirebbe ai clienti di eseguire automaticamente il backup e sincronizzare foto, musica, contatti e messaggi di testo dal proprio telefono cellulare al Web, rendendo più facile l’accesso e la gestione dal telefono cellulare o PC e così ripristinare le informazioni in caso di furto, danneggiamento e perdita del telefono.

I dispositivi touch-screen avranno la gestione per le tastiere QWERTY e Microsoft garantisce performance elevate.

Bing, il motore di ricerca di Microsoft non mi convince.

Come tutti oramai avranno capito (visto il numero di post e di articoli presenti in rete), Microsoft ha lanciato la beta di Bing, il nuovo motore di ricerca che dovrebbe fare concorrenza a Big G. Ho provato ad utilizzarlo e subito mi son venuti una serie di dubbi, forse banali, che ricononducono ad una unica domanda: perchè devo usare Bing?

Bing non è più facile da utilizzare di Google.
Entrando sulla home di Google è lampante fin da subito qual’è il suo mestiere: cercare. E’ semplice e senza troppi fronzoli. Questa è la caratteristica principale che, secondo me, fino ad oggi ha sbaragliato la concorrenza. Gli altri motori hanno sempre dato molta enfasi ai servizi, notizie, e quantità di industriali di pubblicità. Google no.  Entrando su Bing, questa caratteristica è stata “copiata”. Sulla home di ricerca hanno aggiunto uno sfondo randomico, che onestamente non so proprio a cosa serva. In fase di ricerca, nel risultato hanno invece utilizzato una serie di accortezze praticamenti uguali a Google: il link senza css, la url del sito in verde, la cache impostata con la stessa logica di Google. Se Bing non è più facile di Google, perchè dovrei utilizzarlo?

Bing è uguale a Live.
Non ho trovato differenze rispetto alla versione precedente del motore di ricerca di Microsoft. Live era praticamente identico e le funzionalità erano le stesse. Se non utilizzavo Live, perchè devo usare Bing?

Nessun vantaggio tangibile.
Non lo so, eppure, qualche ricerca e qualche prova l’ho fatta ma non ho trovato nessun vantaggio immediato. Da quello che si legge in rete e da alcuni blog tecnici che seguo, le tecniche di indicizzazione sono molto diverse rispetto a Google. Di questo ne ho avuto riscontro cercando me stesso, con un risultato di gran lunga diverso da Google. Mmm… quindi mi domando a chi interessi questa cosa se non ad utenti esperti e SEO che di queste cose ne fanno il proprio mestiere. E gli altri utenti non tecnici? E l’utente finale che utilizza il motore di ricerca solo per fare ricerche?

Io non cambio, per adesso.
L’utente di solito cambia le sue abitudini quando il nuovo è  superiore e quando genera vantaggi rispetto a quanto utilizza quotidianamente. Il vantaggio deve essere evidente, altrimenti sceglie quello che conosce, e si adagia sull’abitudine, e in questo momento l’abitudine prende il nome di Google. Io personalmente, anche per un fatto di integrazioni di servizi (email, calendario, chat, adsense,… e chi più ne ha più ne metta), non cambio, per adesso.