top of page

Risultati Ricerca Intelligenza Artificiale Italia

331 risultati trovati per "ChatGPT business"

  • OpenAI o3-mini: Prestazioni, Come Accederci e Confronto con i Competitor

    Il modello è già disponibile su ChatGPT e tramite API , offrendo agli sviluppatori e agli utenti un accesso Attualmente, o3-mini è accessibile a tutti gli utenti di ChatGPT , sebbene con alcune limitazioni per Gli utenti ChatGPT Plus, Team e Pro  possono invece sfruttare il modello fino a 150 messaggi al giorno seconda del piano di abbonamento, si può utilizzare il modello sia all'interno dell'interfaccia di ChatGPT Accesso a OpenAI o3-mini tramite ChatGPT Per chi utilizza ChatGPT nella versione gratuita , OpenAI ha

  • Cos'è GPT4 e come provarlo

    Il modello ha continuato a essere migliorato con varie iterazioni note come serie GPT-3.5, incluso ChatGPT ChatGPT è diventata l' applicazione web in più rapida crescita di sempre , raggiungendo 100 milioni di ottenere l'accesso a GPT-4 OpenAI sta rilasciando la funzionalità di immissione di testo di GPT-4 tramite ChatGPT Attualmente è disponibile per gli utenti di ChatGPT Plus. C'è una lista d'attesa per l'API GPT-4. Applicazioni di GPT-4 GPT-4 può essere utilizzato in molte applicazioni, dalle conversazioni con chatbot

  • I 5 migliori algoritmi di machine learning ( ML ) che ogni principiante dovrebbe conoscere

    Iniziamo questo articolo con un bellissimo teorema, chiamato " No Free Lunch(NFL)". In poche parole, afferma che : " Dati due algoritmi di predizione qualsiasi, sono equivalenti, quando le loro prestazioni sono approssimativamente uguali su tutti i possibili problemi" ed è particolarmente rilevante per l'apprendimento supervisionato (cioè la modellazione predittiva) perchè questo teorema va applicato quando si tratta di scegliere l'algoritmo migliore per il nostro problema . Ad esempio, non si può dire che le reti neurali siano sempre migliori degli alberi decisionali o viceversa. Ci sono molti fattori in gioco, come la dimensione e la struttura del tuo set di dati. Di conseguenza, dovresti provare molti algoritmi diversi per il tuo problema, mentre utilizzi un "test set" di dati per valutare le prestazioni e selezionare il vincitore. Ovviamente, gli algoritmi che provi devono essere appropriati per il tuo problema, ed è qui che entra in gioco la scelta del compito del modello predittivo corretto. Come analogia, se hai bisogno di pulire la tua casa, potresti usare un aspirapolvere, una scopa o uno straccio , ma non tireresti fuori una pala e inizieresti a scavare. Allora iniziamo a parlare dei 5 migliori algoritmi da imparare per risolvere semplici problemi di machine learning. Indice Il principio fondamentale Regressione lineare Regressione logistica Analisi discriminante lineare Classificazione e alberi di regressione Naive Bayes Conclusioni 1- Il principio fondamentale Tuttavia, esiste un principio comune alla base di tutti gli algoritmi di apprendimento automatico supervisionato per la modellazione predittiva. Gli algoritmi di apprendimento automatico sono descritti come l'apprendimento di una funzione di destinazione (f) che mappa al meglio le variabili di input (X) su una variabile di output (Y): Y = f (X) Questo è un compito di apprendimento generale in cui vorremmo fare previsioni in futuro (Y) dati nuovi esempi di variabili di input (X). Non sappiamo come sia la funzione (f) o la sua forma. Se lo facessimo, lo useremmo direttamente e non avremmo bisogno di apprenderlo dai dati utilizzando algoritmi di apprendimento automatico. Il tipo più comune di apprendimento automatico è imparare la mappatura Y = f (X) per fare previsioni di Y per il nuovo X. Questo è chiamato modellazione predittiva o analisi predittiva e il nostro obiettivo è rendere le previsioni più accurate possibili. Per i neofiti dell'apprendimento automatico desiderosi di comprendere le basi dell'apprendimento automatico, ecco un breve tour sui 5 migliori algoritmi di apprendimento automatico utilizzati dai data scientist. 2- Regressione Lineare La regressione lineare è forse uno degli algoritmi più noti e ben compresi in statistica e apprendimento automatico. La modellazione predittiva si occupa principalmente di ridurre al minimo l'errore di un modello o di effettuare le previsioni più accurate possibili, a scapito della spiegabilità. Prenderemo in prestito, riutilizzeremo e ruberemo algoritmi da molti campi diversi, comprese le statistiche, e li useremo per questi scopi. La rappresentazione della regressione lineare è un'equazione che descrive una retta che meglio si adatta alla relazione tra le variabili di input (x) e le variabili di output (y), trovando ponderazioni specifiche per le variabili di input chiamate coefficienti (C). Ad esempio: y = Cx + C2 Prevederemo y dato l'input x e l'obiettivo dell'algoritmo di apprendimento della regressione lineare è trovare i valori per i coefficienti C e C2. È possibile utilizzare diverse tecniche per apprendere il modello di regressione lineare dai dati, come una soluzione di algebra lineare per i minimi quadrati ordinari e l'ottimizzazione della discesa del gradiente. La regressione lineare esiste da più di 200 anni ed è stata ampiamente studiata. Alcune buone regole pratiche quando si utilizza questa tecnica sono rimuovere le variabili che sono molto simili (correlate) e rimuovere il rumore dai dati, se possibile. È una tecnica veloce e semplice e un buon primo algoritmo da provare. 3 - REGRESSIONE LOGISTICA La regressione logistica è un'altra tecnica presa in prestito dall'apprendimento automatico dal campo della statistica. È il metodo di riferimento per i problemi di classificazione binaria (problemi con due valori di classe). La regressione logistica è come la regressione lineare in quanto l'obiettivo è trovare i valori per i coefficienti che pesano ogni variabile di input. A differenza della regressione lineare, la previsione per l'output viene trasformata utilizzando una funzione non lineare chiamata funzione logistica. La funzione logistica ha l'aspetto di una grande S e trasformerà qualsiasi valore nell'intervallo da 0 a 1. Ciò è utile perché possiamo applicare una regola all'output della funzione logistica per agganciare i valori a 0 e 1 (ad esempio SE minore di 0,5 allora output 1) e prevedere un valore di classe. A causa del modo in cui il modello viene appreso, le previsioni fatte dalla regressione logistica possono essere utilizzate anche come probabilità che una data istanza di dati appartenga alla classe 0 o alla classe 1. Ciò può essere utile per i problemi in cui è necessario fornire più motivazioni per una predizione. Come la regressione lineare, la regressione logistica funziona meglio quando si rimuovono attributi che non sono correlati alla variabile di output e attributi molto simili (correlati) tra loro. È un modello veloce da apprendere ed efficace sui problemi di classificazione binaria. 4- ANALISI DISCRIMINANTE LINEARE La regressione logistica è un algoritmo di classificazione tradizionalmente limitato a soli problemi di classificazione a due classi. Se si hanno più di due classi, l'algoritmo di analisi discriminante lineare è la tecnica di classificazione lineare preferita. La rappresentazione dell'ADL è piuttosto semplice. Consiste di proprietà statistiche dei dati, calcolate per ciascuna classe. Per una singola variabile di input questo include: Il valore medio per ogni classe. La varianza calcolata in tutte le classi. Le previsioni vengono effettuate calcolando un valore discriminante per ciascuna classe e facendo una previsione per la classe con il valore più grande. La tecnica presuppone che i dati abbiano una distribuzione gaussiana (curva a campana), quindi è una buona idea rimuovere prima i valori anomali dai dati. È un metodo semplice e potente per la classificazione dei problemi di modellazione predittiva. 5 - ALBERI DI CLASSIFICAZIONE E REGRESSIONE Gli alberi decisionali sono un tipo importante di algoritmo per l'apprendimento automatico della modellazione predittiva. La rappresentazione del modello dell'albero decisionale è un albero binario. Questo è il tuo albero binario da algoritmi e strutture dati, niente di troppo stravagante. Ogni nodo rappresenta una singola variabile di input (x) e un punto di divisione su quella variabile (assumendo che la variabile sia numerica). I nodi foglia dell'albero contengono una variabile di output (y) che viene utilizzata per fare una previsione. Le previsioni vengono effettuate percorrendo le divisioni dell'albero fino ad arrivare a un nodo foglia e restituire il valore della classe a quel nodo foglia. Gli alberi sono veloci da imparare e molto veloci per fare previsioni. Inoltre sono spesso accurati per un'ampia gamma di problemi e non richiedono alcuna preparazione speciale per i dati. 6 - NAIVE BAYES Naive Bayes è un algoritmo semplice ma sorprendentemente potente per la modellazione predittiva. Il modello è composto da due tipi di probabilità che possono essere calcolate direttamente dai dati di allenamento: La probabilità di ogni classe La probabilità condizionata per ogni classe dato ogni valore x. Una volta calcolato, il modello di probabilità può essere utilizzato per fare previsioni per nuovi dati utilizzando il teorema di Bayes. Quando i dati sono a valori reali, è comune assumere una distribuzione gaussiana (curva a campana) in modo da poter stimare facilmente queste probabilità. Naive Bayes è chiamato ingenuo perché presuppone che ogni variabile di input sia indipendente. Questo è un presupposto forte e irrealistico per i dati reali, tuttavia, la tecnica è molto efficace su una vasta gamma di problemi complessi. Conclusioni Una tipica domanda posta da un principiante, di fronte a un'ampia varietà di algoritmi di apprendimento automatico, è "quale algoritmo devo usare?" La risposta alla domanda varia a seconda di molti fattori, tra cui: la dimensione la qualità e la natura dei dati il tempo di calcolo disponibile l'urgenza del compito cosa si desidera fare con i dati. Anche un esperto di data scientist non può dire quale algoritmo funzionerà meglio prima di provare diversi algoritmi. Sebbene esistano molti altri algoritmi di Machine Learning, questi sono i più popolari. Se sei un principiante del Machine Learning, questi sarebbero un buon punto di partenza per imparare. Grazie mille la lettura, condividi l'articolo a chi pensi non conosca questi algoritmi.

  • Facebook AI Open Sources AugLy: una nuova libreria Python

    Facebook ha recentemente reso open-source AugLy, una nuova libreria Python che mira ad aiutare i ricercatori di intelligenza artificiale a utilizzare i potenziamenti dei dati per valutare e migliorare la precisione dei loro modelli di apprendimento automatico. AugLy fornisce sofisticati strumenti di aumento dei dati per creare campioni per addestrare e testare diversi sistemi. AugLy è una nuova libreria open source per l'aumento dei dati che combina audio, immagini, video e testo, diventando sempre più significativa in diversi campi di ricerca sull'intelligenza artificiale. Offre oltre 100 potenziamenti di dati basati su immagini e video della vita reale delle persone su piattaforme come Facebook e Instagram. Poiché i set di dati e i modelli stanno gradualmente diventando sempre più multimodali, è utile trasformare tutti i dati di un progetto in un'unica libreria e API unificate. Inoltre, combinare diverse modalità utilizzando potenziamenti del mondo reale può aiutare le macchine a comprendere meglio i contenuti complessi. I potenziamenti dei dati sono essenziali per migliorare la robustezza dei modelli di intelligenza artificiale. Ad esempio, supponiamo che i modelli possano essere insegnati come robusti alle perturbazioni di attributi di dati non importanti. In tal caso, i modelli impareranno gradualmente a concentrarsi sugli attributi critici dei dati per un caso particolare. Secondo Facebook, un'importante applicazione rileva copie esatte o duplicati di un contenuto specifico. Ad esempio, una quantità di disinformazione può apparire ripetutamente in forme leggermente diverse; dopo aver potenziato i modelli di intelligenza artificiale con i dati AugLy, possono imparare a identificare quando un utente sta caricando contenuti noti per essere in violazione, il che a sua volta aiuterà a impedire in modo proattivo agli utenti di caricare contenuti noti per essere in violazione. . Oltre ai modelli di addestramento che utilizzano AugLy, la libreria può essere utilizzata anche per determinare la durata dei modelli relativi a una serie di potenziamenti. AugLy è stato utilizzato anche per valutare la robustezza dei modelli di rilevamento di Deepfake nella Deepfake Detection Challenge. Molti miglioramenti in AugLy si basano sui modi in cui le persone trasformano i contenuti per cercare di eludere i sistemi automatici. Di conseguenza, AugLy può aiutare i ricercatori a lavorare su varie cose che vanno dai modelli di rilevamento degli oggetti all'identificazione dell'incitamento all'odio al riconoscimento vocale. Grazie per la Lettura, condividi l'articolo .

  • È Arte o non è Arte?

    Il flusso delle immagini generate attraverso AI (Artificial Intelligence) sta inondando il web e pare inarrestabile. Una stima quantitativa precisa del fenomeno non esiste ma si parla di diversi milioni di immagini generate e pubblicate solo negli ultimi sei mesi (da Agosto 2022 a Febbraio 2023). Gli strumenti per la generazione di immagini basati su AI si susseguono a ritmi incalzanti, senza precedenti neanche per il settore della tecnologia avanzata. DALLE-2, MidJourney, Stable Diffusion sono solo alcuni tra i nomi più celebri balzati agli onori della ribalta nel giro di pochi mesi. C’è chi parla oramai di un nuovo settore dell’Arte figurativa: l’AI Art, cioè l’arte di immagini generate attraverso AI. Si può, però, definire vera Arte l’AI Art? Il dibattito sulla questione è accesissimo e non sorprende. Il mondo dell’arte è stato letteralmente preso d’assalto e, per alcuni, rischia di essere travolto. Molte sono le accuse rivolte all’AI Art [1] ma la più importante riguarda il fatto che nella generazione di immagini manchi un vero sforzo artistico. Basta scrivere un testo (detto “prompt”) in cui si definisce che cosa si vuol ottenere e lo strumento genera automaticamente l’immagine. Ben altro sforzo rispetto a dipingere un quadro su una tela! A questa accusa si può, in prima battuta, rispondere ricordando che anche Charles Baudelaire aveva mosso una simile obiezione nei confronti della fotografia nel celebre “Salon de 1859” [2]. Anzi Baudelaire era stato ben più feroce dei detrattori della AI Art di oggi: “Se si consentirà alla fotografia di servire da supplemento all’arte in qualcuna delle sue funzioni, questa sarà soppiantata e corrotta, grazie anche alla stupidità delle moltitudini che sono il naturale alleato della fotografia ”. Per fortuna, niente di quanto vaticinato da Baudelaire è accaduto ma, anzi, l’Arte, liberata dalla necessità di rappresentare pedissequamente la Realtà, ha potuto esprimersi in movimenti come l’Impressionismo o il Surrealismo [3]. La questione del “basso sforzo” è, poi, un mito che ci proponiamo di sfatare attraverso una descrizione minuziosa (quasi scientifica) del processo di generazione di una immagine artistica. Come viene generata la AI Art Per comprendere quanta parte abbia l’essere umano nel processo di generazione di un’immagine artistica usando la “Artificial Intelligence (AI)” conviene far riferimento a uno schema semplice ma veritiero su come si svolge il processo di generazione (Fig. 1). Figura 1 – Il processo di generazione di una immagine artistica usando AI In pratica il processo di generazione è la ripetizione di una interazione tra umano e modello (la componente di AI): Dall’umano al modello attraverso un prompt e qualche altro parametro (prompt + params); Dal modello all’umano attraverso una immagine-risultato (image-response). Se l’immagine-risultato non corrisponde all’idea che l’umano trova soddisfacente (esteticamente, come fedeltà di rappresentazione) l’input verso il modello è cambiato e il processo si ripete finché non si giunge a un’immagine soddisfacente. Che cosa c’è dentro il modello? Dentro il modello c’è uno spazio latente (multimodal latent space) formato da parole e feature di immagini, cioè c’è uno spazio latente multimodale. Questo spazio latente multimodale è stato allestito attraverso il “training” del modello usando un dataset di parole e corrispondenti immagini. Si osserva che sia le parole che le immagini provengono da altri umani attraverso le opere degli artisti, del passato e del presente, e attraverso la descrizione delle opere. Dal punto di vista del modello quando l’umano inserisce un input (prompt+params) si determina una posizione dentro lo spazio latente e da quella posizione con un determinato algoritmo si sintetizza un’immagine, combinando le feature delle immagini nei pressi del punto determinato dal prompt. L’umano, dunque, è, in pratica, un esploratore dello spazio latente del modello. La pratica di generazione mostra come esistono zone produttive (miniere) e zone improduttive (deserto). Talvolta l’umano intercetta una miniera con prompt improbabili o non attinenti con l’argomento del prompt. C’è una certa dose di casualità nel processo di generazione che corrisponde alla casualità di alcune tecniche pittoriche moderne. Che cosa c’è dentro l’umano? Nell’umano c’è, essenzialmente un Idea dell’opera che si vuol realizzare. Da un punto di vista antropologico l’umano è un insieme complesso, dotato di una densità misteriosa, non conoscibile completamente. Anche l’Idea dell’umano può cambiare nel corso del processo di generazione di un’immagine. In base alla immagine-risultato l’umano può cambiare idea. Per esempio perché si è costatata l’impossibilità di produrre un’immagine che corrisponda in modo soddisfacente all’Idea o, semplicemente, perché il risultato-immagine ha fatto nascere un’idea migliore di quella originale. Il processo di generazione di un’immagine da parte dell’umano è quindi un processo creativo non deterministico. Sappiamo, poi, che anche la creatività umana non è infinita ma è delimitata da archetipi universali, come ha sottolineato Jung [4]. Tuttavia anche nella generazione con AI si possono riconoscere gli stili dei diversi umani che prediligono certi temi e certe aree dello spazio latente invece che altre. In fondo, anche in un’opera d’arte tradizionale è sempre un’idea che guida l’artista. Si pensi allo stile di Michelangelo Buonarroti: uomini, donne e bambini sono, essenzialmente, “eroi” nerboruti (V. Tondo Doni, Fig. 2). Figura 2 – il Tondo Doni di Michelangelo Post-produzione Una volta che l’umano abbia ottenuto una immagine-risultato soddisfacente sono possibili altre operazioni successive: inpainting – Si tolgono dall’immagine alcuni elementi attraverso l’AI; outpainting – Si aggiungono nuovi elementi all’immagine tramite AI; Photoshop – Si effettuano delle correzioni usando un editor di immagini; ri-mediazione attraverso la pittura – L’immagine è stampata, ad esempio su tela, e l’artista umano prende colori e pennelli per cambiare l’immagine stampata; altre elaborazioni – L’umano può decidere di generare un video dall’immagine, aggiungere una colonna sonora, creare dei rumori o, addirittura, degli odori. Questo mette in luce il fatto che un’opera d’arte può essere ottenuta con l’AI ma non solo. L’Arte è qualcosa di più complesso e libero della semplice AI. Insomma, È Vera Arte? Per noi la risposta è netta e chiara: è vera Arte! Per alcuni questa affermazione può essere uno shock ma, per onestà, questa nuova realtà non si può negare. È chiaro che con l’AI la manualità non conta. Non si prendono in mano pennello e colori ma il processo creativo che si compie è fortemente umano. Anche la componente casuale con cui viene generata un’immagine non toglie nulla al processo artistico, come mostra tanta parte di Arte del Novecento. Comunque, a parte i ragionamenti, le polemiche e, talvolta, anche le elucubrazioni alla fine ciò che conta è il giudizio finale, è la percezione di un utente finale che valuta, secondo il suo giudizio soggettivo, il valore estetico dell’opera. Si riporta una serie di opere generate dall’autore di questo articolo senza commento (Fig. 3-6). Ognuno giudichi da solo. Per saperne di più sull’Intelligenza Artificiale e le sue applicazioni nel mondo dell'arte, vi invito a visitare il sito web di Mathema, l’azienda di cui sono CEO, e di seguirci sulla nostra pagina Linkedin ufficiale. Riferimenti [1] Ennio Bianco, “E’ Arte o non è Arte, è Arte o non è Arte, …”, 2022 [2] Charles Baudelaire, Salon de 1859 [3] Cathy Reisenwitz, "Artist Ellen Maidman-Tanner on why AI is actually good for art" [4] M. Mazzeschi, "Why AI can generate art we can understand: a Jungian approach"

  • Intelligenza artificiale nel settore della ristorazione, come applicare l' IA al tuo ristorante

    Business Insider prevede che l'80% delle aziende utilizza già i chatbot o prevede di utilizzarli entro I chatbot possono aiutare i ristoranti a fornire assistenza ai clienti 24 ore su 24. Il chatbot è progettato per replicare l'interazione con un barista umano . L'utilizzo del potere dei chatbot non è riservato solo ai grandi ristoranti di cibo. Say2eat offre chatbot a marchio ristorante tramite Facebook Messenger, Amazon Echo e SMS.

  • 8 Modi per Potenziare il tuo E-Commerce con l'Intelligenza Artificiale Usando il Machine Learning

    Un ottimo esempio è l' uso dei chatbot . I chatbot possono identificare e risolvere i problemi conversando con il cliente in modo naturale.

  • MANUTENZIONE PREDITTIVA : L’ aiuto di cui avevamo bisogno nella produzione

    Una delle frasi a cui noi di Diskover siamo più affezionati è “la chiave per far crescere il tuo business e informatiche ma anche e soprattutto capacità distintive per poter inserire i dati nel modello di business

  • Come viene utilizzata l'intelligenza artificiale nel mercato delle cryptovalute?

    Le cryptovalute continuano ad essere un fenomeno estremamente interessante oggi . Avendo rapidamente raggiunto popolarità e diventando molto popolari, le monete digitali continuano a essere uno strumento di investimento incredibilmente redditizio, in grado di generare enormi profitti sugli scambi di cryptovalute o quando si investe in queste risorse a lungo termine. Attualmente c'è un preciso incremento del premio dei clienti negli scambi di denaro digitale, dove non è difficile "ottenere" un modello decente e acquisire rapidamente questo sviluppo di valore. I teorici esperti fanno così le loro capitali. Scambiare fasi con Bitcoin, altcoin, ben noto in questi giorni scambiare satoshi con usd e altre risorse crittografiche può trarre vantaggio dall'apertura di posizioni fisicamente dopo aver indagato sul mercato, contemplando diagrammi di valore, esaminando informazioni di puntatori specializzati e così via, sia come potrebbe, il 21° secolo ha permesso la possibilità di eseguire utili modalità programmate di scambio di cryptovalute tramite cripto-bot non comuni. In un frammento in rapido sviluppo come il mercato delle cryptovalute, la capacità di meccanizzare l'interazione di scambio è popolare. I broker con capacità di codifica e informazioni di programmazione possono creare i propri robot crittografici o migliorare abilmente gli Expert Advisor esistenti per lo scambio produttivo di monete avanzate. Il robot scambierà autonomamente risorse crittografiche, portando una paga vantaggiosa al suo proprietario. Tuttavia, c'è un enorme pericolo, che per ragioni sconosciute viene decisamente ignorato da principianti e cripto-mercanti inesperti. Manciate e molti calcoli che informatizzano lo scambio di strumenti commerciali sono attualmente costantemente accessibili su Internet e nulla si pensa alla loro genuina qualità. Non è difficile commettere un errore nelle loro impostazioni o eseguire un primo bot dispendioso. Ovviamente, ciò richiederà una rapida perdita del negozio. Questo è il motivo per cui i robot crittografici dovrebbero essere trattati con cautela, con vari test sugli account demo. È sempre necessario essere vigili e scegliere con molta attenzione un consulente di trading per il trading di cryptovalute. Altrimenti, è facile prendere un miner virale, perdere denaro dal tuo conto di trading o semplicemente trasferire inconsapevolmente le monete guadagnate al cryptomonete di un truffatore! Ci stiamo quasi facendo l'abitudine a sentire 3-4 volte l'anno del fortunato che aveva acquistato 100$ di monete virtuali e dopo 5-10 anni è milionario. Ma ricordiamoci sempre, proprio statisticamente parlando, le persone che vincono sono sempre meno di quelle che perdono. Quindi ogni volta che senti un caso di successo, ricorda che ce ne sono molti invece che si sono bruciati in pochi giorni risparmi di una vita o stpendi. L'apprendimento automatico e l'intelligenza artificiale sono utilizzati attivamente per analizzare i mercati finanziari tradizionali ( piattaforme DataTrading , EmmaAI , Aidyia , Qplum , Estimize ). Tuttavia, alcune società sono state costrette a chiudere a causa delle sfumature che riveleremo ulteriormente. Di conseguenza, strumenti simili sono applicabili anche nel campo del cripto-trading. Qual è la particolarità dell'utilizzo della ME(Aspettative matematiche) e dell'AI(Intelligenza artificiale) nel mercato delle criptovalute e come possono aiutarne lo sviluppo? L'elevata volatilità delle criptovalute non solo aumenta i rischi del trading di criptovalute, ma lo rende anche più redditizio di qualsiasi altra forma di investimento. I prezzi sono soggetti a frequenti fluttuazioni durante il giorno, il che, se calcolato correttamente, consente ai trader di guadagnare un reddito stabile. Per calcolare i modelli del mercato delle criptovalute in continua evoluzione, è necessario elaborare grandi quantità di informazioni, con le quali l'intelligenza artificiale e i sistemi di apprendimento automatico possono aiutare. I principali vantaggi : Capacità di analizzare grandi quantità di dati. Capacità di apprendimento. Alta velocità di lavoro. Precisione. Anche ora, miliardi di dollari di asset, azioni e obbligazioni convenzionali vengono gestiti con l'aiuto di tecnologie di intelligenza artificiale. L'uso dei sistemi ME e AI nel mercato delle criptovalute non è così diffuso, ma queste tecnologie vengono implementate attivamente nello spazio delle criptovalute, sviluppandosi in tre direzioni. Previsione del mercato delle cryptovalute La piattaforma decentralizzata di Augur per la creazione di mercati di previsione peer-to-peer si basa sull'esperienza dei partecipanti alla rete. Tuttavia, consente di fare previsioni abbastanza accurate sulle cryptovalute. Augur ha annunciato la creazione del suo 1.000° mercato il 16 agosto di quest'anno. Augur è stato sviluppato dalla Forecast Foundation, un'organizzazione senza scopo di lucro, per formare fonti accessibili di previsioni pubbliche. Al contrario, la piattaforma NeuroBot si basa non sull'esperienza dell'utente, ma sul lavoro delle reti neurali. Con il loro aiuto, fa previsioni sulle dinamiche del mercato delle cryptovalute. Il sistema stesso monitora le fluttuazioni dei tassi di cambio, le confronta e prevede i cambiamenti per il giorno successivo. Gli autori di NeuroBot affermano che la loro piattaforma analizza i cambiamenti con una precisione fino al 90%. I creatori intendono migliorare il sistema includendovi analisi tecniche e fondamentali. Tali piattaforme possono rendere la vita molto più semplice per i trader di cryptovalute alle prime armi che non hanno ancora avuto il tempo di apprendere l'intero ambito delle informazioni. Certo, è impossibile fare affidamento su piattaforme prognostiche per tutto, ma possono fare la parte del leone nell'analisi tecnica del mercato e condurla con elevata precisione. Analisi del sentiment di mercato Determinare il sentimento del mercato delle cryptovalute richiede l'elaborazione di molti dati diversi. Ciò include articoli, blog, forum e persino commenti sotto di essi. Senno, una piattaforma basata su tecnologie blockchain e di intelligenza artificiale, fa l'analisi in automatico ed è in grado di dare il risultato in breve tempo. Il sistema applica anche elementi di machine learning nel suo lavoro. Senno ha anche firmato un accordo di partnership con CryptoScanner, un'app che utilizza l'intelligenza artificiale per prevedere il sentimento del mercato e condivide i risultati con i trader per aiutarli a sviluppare le loro strategie. Trovare parti per fare affari Uno dei problemi del mercato delle cryptovalute è la mancanza di liquidità. Le forti fluttuazioni dei tassi di cambio rendono le valute digitali poco attraenti come pagamenti aziendali. La differenza tra domanda e offerta è spesso compensata da commissioni elevate di borse e banche. Per risolvere il problema, vengono utilizzate piattaforme come TradeConnect, che utilizza la tecnologia di apprendimento automatico. Utilizza un protocollo di abbinamento laterale e aiuta il cliente a trovare il broker e la banca giusti, a effettuare transazioni direttamente e a pagare commissioni minime. Le singole società sono specificamente impegnate nello sviluppo di piattaforme AI relative alla fornitura di servizi nel mercato delle cryptovalute. Ad esempio, il team di Money Token ha creato l'assistente AI Amanda, che presterà ai membri della comunità delle cryptovalute. L'assistente virtuale sarà in grado di fornire prestiti contro garanzie in cryptovaluta e gestire il pieno supporto, dal momento della richiesta fino al rimborso completo del prestito. Sicurezza durante l'utilizzo di cryptobot È necessario fare attenzione quando si affidano a qualcuno le chiavi API dei propri exchange. Solo i servizi affidabili con una buona reputazione lo meritano. Dopotutto, la chiave API è una sorta di permesso per utilizzare il tuo account, incluso il trading attraverso di esso e il prelievo di fondi. Qualsiasi bot richiede che l'API funzioni, il che di per sé non è un segno di frode. Esamina attentamente ogni piattaforma prima di iniziare a lavorarci. Scopri quali metodi di sicurezza vengono utilizzati lì. Attiva sempre l'autenticazione a due fattori per limitare l'accesso all'account. Vantaggi dei cryptobot: Trading 24 ore su 24. Un bot non ha bisogno di dormire o fare altre cose, a differenza di un umano. Assenza di fattore umano. Le persone commettono errori, sia nelle operazioni di trading che in quelle ausiliarie, come l'inserimento di dettagli. Esecuzione automatica istantanea delle operazioni secondo i parametri impostati. Mancanza di emozione e stretta aderenza al piano. Possibilità di testare idee di trading con Paper Trading o sulla base di dati storici. Comoda diversificazione e condivisione dei rischi. Svantaggi dei cryptobot: Ci sono strategie non riuscite o obsolete nei cryptobot. Un utente inesperto che sceglie una tale strategia subirà delle perdite. Molti progetti fraudolenti. Non lasciarti ingannare dalle promesse di iper profitti, questo dovrebbe avvisarti immediatamente. Il bot dovrebbe essere monitorato, regolato e mantenuto, contrariamente al comune malinteso di "imposta e dimentica". Ci sono bot con software di bassa qualità. Di solito, questi sono progetti nuovi e grezzi, quindi è meglio scegliere piattaforme comprovate e già debuggate al 100%. Un bot, anche opportunamente configurato, non garantisce profitti. Ci sono molti fattori che influenzano prezzi e guadagni. Vantaggi del trading automatizzato di cryptovalute Durante il periodo della sua prosperità, l'exchange di criptovalute MT-Gox , ormai in bancarotta , ha utilizzato molto attivamente uno speciale cryptorobot, chiamato Willy, che manipolava il valore delle monete BTC. Questo robot di trading è stato il primo bot bitcoin che ha effettivamente causato un aumento e poi una diminuzione dei prezzi dei bitcoin. Questa situazione si è verificata nel 2012-2014, quando il mercato delle cryptovalute, e tutto il denaro decentralizzato, era poco conosciuto e poco popolare. Naturalmente, l'attuale sviluppo del settore delle cryptovalute ha completamente bloccato la possibilità di utilizzare i bot per tali manipolazioni del prezzo delle monete decentralizzate. I robot sono principalmente utilizzati per automatizzare il trading in borsa. Tale implementazione di algoritmi è dovuta a una buona serie di vantaggi delle attività speculative svolte tramite cryptobot. I vantaggi più significativi sono i seguenti: Il trader non ha bisogno di monitorare incessantemente il mercato delle valute virtuali e calcolare costantemente i momenti per aprire posizioni; L'uso di cryptorobot per scambiare risorse digitali elimina il fattore paura e l'elemento dello stato emotivo nelle decisioni di trading. La maggior parte dei trader di crytovalute alle prime armi perde depositi esclusivamente a causa dell'instabilità psicologica ed emotiva e trascurando le regole della propria strategia di trading; Il bot di cryptovaluta è in grado di riconoscere chiaramente modelli grafici, modelli di candele, direzioni delle quotazioni e punti di inversione di tendenza, che sono spesso invisibili al trader; Un robot di trading ben sintonizzato analizza i grafici in modo più efficace, effettua operazioni più efficienti e cerca i migliori punti di ingresso. Le qualità menzionate sono solo un esempio dell'utilità del trading automatizzato di cryptovalute. Ci sono molti altri vantaggi di tali programmi, che possono aiutare qualsiasi trader. Conclusioni Esistono diverse limitazioni all'uso diffuso delle tecnologie dell'IA. In particolare, la mancanza di informazioni, perché il mercato delle cryptovalute è relativamente nuovo rispetto al mercato azionario tradizionale, e la conoscenza dell'IA è spesso limitata dalla quantità di informazioni che l'umanità ha. Un'altra difficoltà è che algoritmi di machine learning altamente accurati e complessi richiedono hardware di elaborazione potente e sofisticato che solo le aziende giganti possono permettersi. Va ricordato che la qualità di qualsiasi cryptobot è determinata dalla correlazione tra la sua efficienza e il valore reale. Qualsiasi bot per il trading di cryptovalute su uno scambio deve avere prestazioni stabili. Grazie mille per la lettura, condividi l'articolo con il tuo Crypto-Amico

  • Come creare video con l'intelligenza artificiale i 8 tool online gratis

    Oggi, creare video diventa sempre più semplice grazie alla tecnologia di intelligenza artificiale. I generatori di video AI permettono di creare video di alto livello in pochi minuti, a partire da semplice testo. In questo articolo, esploreremo i 7 migliori strumenti di generazione di video AI per aiutarti a creare video sorprendenti in modo facile e veloce. I 8 migliori tool per creare video con IA: Stable Diffusion Video Deforum Stable Diffusion FlexClip Make a video VEED.io Lumen5 Design.ai Synthesia.io InVideo.io Questi strumenti sono stati selezionati per la loro efficienza, facilità d'uso e qualità dei video prodotti. Con questi strumenti, potrai creare video sorprendenti in modo semplice e veloce, ottimizzando il tuo tempo e ottenendo risultati di alta qualità. Stable Diffusion Video Stable Diffusion Videos è un generatore di intelligenza artificiale text-to-video online gratuito per creare video dai prompt. Puoi vedere gli esempi video qui sotto: Deforum Stable Diffusion Un altro generatore di intelligenza artificiale da testo a video, Deforum , genera animazioni costruendo frame che prendono in considerazione i loro antenati. Utilizzando Deforum SD, ora è più semplice che mai produrre film e animazioni coerenti dagli output di Stable Diffusion. Guarda i video qui sotto per l'ispirazione: FlexClip FlexClip AI Text to Speech Video Maker è uno strumento potente e semplice da utilizzare che ti consente di convertire il tuo testo in voci AI realistiche e aggiungerle rapidamente al tuo video. Con oltre 400 voci disponibili in più di 140 lingue, FlexClip ti offre una vasta scelta per personalizzare il tuo video. Che tu stia creando video tutorial, annunci promozionali o presentazioni coinvolgenti, questo strumento ti permette di trasformare il tuo testo in voci che suonano naturali, capaci di esprimere una vasta gamma di emozioni e tonalità. Con le sue voci neurali predefinite, puoi convertire il testo in audio in modo rapido, risparmiando tempo e ottenendo risultati migliori. Scegli tra una vasta selezione di voci in più di 140 lingue, tra cui inglese, francese, tedesco, hindi, spagnolo e cinese, per trovare la voce perfetta per ogni scenario. Sfrutta al massimo le opzioni flessibili offerte da FlexClip per personalizzare la tua voce, regolando la velocità e l'intensità, e aggiungendo effetti di fade in/out. Creare un video con il testo in voce diventa facile grazie a FlexClip: Scrivi lo script che vuoi convertire in sintesi vocale. Scegli la lingua, il tono e il genere della voce. Anteprima l'audio della sintesi vocale e regolalo come desideri. Aggiungi eventualmente musica, logo o immagini. Esporta e scarica il tuo video. Con FlexClip AI Text to Speech Video Maker, puoi migliorare l'accessibilità e la qualità dei tuoi video in modo semplice e gratuito. Provalo oggi stesso e scopri come rendere i tuoi contenuti video ancora più coinvolgenti e professionali. Make A Video Make-A-Video un nuovo generatore AI text-t-video di Meta crea cortometraggi divertenti con poche frasi. La ricerca, che è stata creata per consentire la generazione di testo in video, si basa sui recenti sviluppi nella tecnologia di generazione di testo in immagine. Oltre al testo, anche fotografie e altri video possono essere utilizzati per realizzare filmati. Sebbene sia stato aggiunto un asse temporale, si tratta sempre della stessa diffusione. Usando immagini e descrizioni, il sistema apprende come appare il mondo e come viene tipicamente descritto. I film senza etichetta vengono utilizzati anche per aiutare gli studenti a comprendere come funziona il mondo. Con poche parole o righe di testo, puoi utilizzare queste informazioni per creare video divertenti e originali che ti aiuteranno a dare vita alla tua immaginazione. VEED.io Con l'aiuto della solida tecnologia AI e dell'interfaccia user-friendly di VEED.io , puoi produrre rapidamente fantastici video online. Può essere utilizzato come editor video per tagliare, ritagliare, aggiungere sottotitoli e altro o per convertire qualsiasi testo in video. Ecco come funziona: Scegli un video d'archivio o caricane uno tuo Puoi modificare il video aggiungendo testo, foto, ecc. Scarica ed esporta il filmato Lumen5 Un fantastico strumento online per la produzione di film AI è Lumen5 . Al fine di produrre materiale video di qualità, più di 800.000 utenti utilizzano Lumen5. La cosa migliore è quanto sia semplice da usare e quanto sia richiesta poca esperienza nell'editing video. L'intelligenza artificiale può consentirti di generare rapidamente video da zero o da zero in pochi minuti. Ecco come funziona: Digita uno script o un testo qui. Sulla base della sceneggiatura, Lumen5 selezionerà automaticamente l'audio e le immagini ideali. Puoi caricare il tuo testo, musica e loghi. Scarica e distribuisci il film Design.AI Puoi convertire i post e gli articoli del tuo blog in filmati interessanti con l'aiuto dello straordinario strumento di creazione di contenuti basato sull'intelligenza artificiale chiamato Design.AI . Può anche aiutarti a progettare rapidamente loghi, filmati e banner. Ecco come funziona: Inserisci prima il testo o lo script. Scegli un settore. Scegli una voce che preferisci e uno stile di video. L'intelligenza artificiale produrrà immediatamente un'anteprima video dopo questo. Successivamente, puoi modificare il tuo video e aggiungere testo e musica per renderlo visivamente più accattivante. Synthesia.io Uno dei fantastici generatori di video AI è Synthesia , che semplifica la realizzazione di video AI realistici in pochi minuti. Syhthesia è un'ottima opzione se vuoi realizzare video economici che appaiano professionali. Per creare il tuo video AI, segui questi tre semplici passaggi. Seleziona prima il tuo presentatore AI (Synthesia fornisce più di 40 avatar per i tuoi film AI; in alternativa, puoi creare il tuo avatar). Inserisci il tuo script video AI in secondo luogo. Terzo, crea il tuo video AI e poi scaricalo, riproducilo in streaming o traducilo. InVideo.io Puoi convertire il testo in video utilizzando l'efficace programma di editing video InVideo . Puoi utilizzare più di 5000 layout, contenuti multimediali iStock, una libreria musicale, filtri e altre funzionalità. Per una semplice conversione video di informazioni basate su testo, InVideo offre più di 50 temi basati sull'intelligenza artificiale. Dalla loro libreria di oltre 5000 modelli configurabili, puoi realizzare tutti i diversi tipi di video, inclusi video pubblicitari, promozioni, video di YouTube, introduzioni e altro ancora. Devi scegliere qualsiasi modello o tema e digitare qualsiasi testo durante la creazione di video. Questo è tutto; puoi creare rapidamente un incredibile video AI con quello script. Puoi aggiungere media, come audio, video, testo e altro. Come creare video con l'intelligenza artificiale ? La generazione di video AI è un processo in cui un algoritmo di intelligenza artificiale crea automaticamente un video a partire da un input testuale. Gli strumenti di generazione di video AI utilizzano tecniche di deep learning e natural language processing per analizzare il testo e creare un video coerente e interessante. Il video finale può includere elementi come animazioni, transizioni, effetti visivi e una voce roboticamente generata che legge il testo. Questa tecnologia sta diventando sempre più avanzata e accessibile, rendendola un'opzione sempre più attraente per la creazione di video. Perché scegliere gli strumenti di intelligenza artificiale per creare video ? Ci sono molti motivi per scegliere di utilizzare strumenti di intelligenza artificiale per creare video. In primo luogo, questi strumenti sono estremamente facili da usare e possono creare video di alta qualità in pochissimo tempo. Inoltre, poiché utilizzano tecniche di deep learning, sono in grado di analizzare il testo e creare video che sono coerenti e interessanti per il pubblico. Infine, questi strumenti sono molto convenienti e possono risparmiare tempo e denaro rispetto alla creazione di video manualmente. Conclusione su come creare video con l'Intelligenza artificiale In conclusione, l'uso di strumenti di intelligenza artificiale per creare video è una soluzione ideale per chi cerca di creare video di qualità in modo semplice e veloce. I 7 strumenti menzionati in questo articolo sono i migliori sul mercato e ti permetteranno di creare video di alta qualità in pochi minuti. Scegli il tool che più si adatta alle tue esigenze e inizia a creare video sorprendenti oggi stesso. Non dimenticare che la tecnologia di intelligenza artificiale è in continua evoluzione e che ci sono sempre nuovi strumenti che possono rendere ancora più facile e conveniente la creazione di video.

  • Esempio pratico deep learng (DL) : le previsioni del ristorante Collatz, con Python e Pytorch (LSTM)

    Collatz è… un ristoratore DOLO_MITICO, a detta sua… anche perché non è facile gestire un rifugio in alta montagna… dove il tempo varia anche più volte al giorno… e questo è un fattore importante per chi deve prevedere quanti clienti si fermeranno a mangiare … il mio amico Collatz, sin da piccolo ha dimostrato di avere una gran passione per la matematica e, da quando ha scoperto che gli elaboratori sono in grado di fare delle previsioni, perché si è imbattuto nel sito di intelligenzaartificialeitalia.net si è messo in mente di sfruttare il suo PC, anche per cercare di gestire anticipatamente ordini e personale. Già da qualche tempo aveva visto che nel web c’erano dei diagrammi che indicavano ad esempio l’andamento della pandemia, come questo: o similmente qualcosa che riguardava il numero dei passeggeri che, nel tempo avevano deciso di imbarcarsi con una determinata flotta, come quest’altro: oppure, qualche diagramma che riportava l’andamento dei titoli in borsa, come quest’ultimo: Fu così che si mise a riportare, giorno per giorno, il numero di clienti che dall’inizio della stagione, erano andati al suo “ristorante”, che in realtà rimaneva sempre un rifugio di montagna in balia del tempo… e annotando su di un file del tipo “Seq_work.csv” i dati, ottenne un grafico come questo: Così, si rese conto che era veramente difficile fare delle previsioni, ma decise comunque di proseguire nel suo intento, quello di addestrare una rete neurale, nella versione LSTM (Long-Short Term Memory), come aveva visto fare visitando il sito: intelligenzaartificialeitalia.net , utilizzando però python e pytorch. al posto di keras. Armato di buona volontà installò il software occorrente sul suo PC, mi sembra abbia utilizzato una GUI che si chiama VisualStudio Code, e che gli abbia fornito in seguito, l’estensione per il linguaggio python. Mi disse anche che aveva generato uno spazio di memoria particolare, appositamente per inserirci dentro tutto l’occorrente, utilizzando il modulo “venv”, di pyhton che, mi disse, è un modo efficace per ottenere ambienti python virtuali sui quali lavorare in santa pace!. Per fare questo, mi disse che nel suo PC, aveva installato una versione di Linux “Ubuntu” in quanto lo riteneva adeguato allo scopo. Mi informò anche che python aveva diverse librerie e moduli, che si rendevano necessari per lavorare sui modelli di intelligenza artificiale, e che si dovevano installare anche queste librerie., come indicato dal sito intelligenzaartificialeitalia.net Poi incominciò a descrivermi il software che aveva scritto per l’occasione, per prima cosa bisognava importare le librerie contenenti il necessario per portare a termine il progetto: #!/usr/bin/python3# import numpy as np import torch import torch.nn as nn from sklearn.preprocessing import MinMaxScaler import pandas as pd import matplotlib.pyplot as plt In particolare mi disse che il modulo “numpy”, è una libreria per il trattamento di vettori e matrici e che ovviamente contiene molte funzioni matematiche, molto utili per il trattamento dei dati numerici, mi disse che il modulo “pandas” non è una malattia autoimmune, ma una libreria per il trattamento dei dati scritti in modo tabellare e che in questo caso la avrebbe utilizzata per leggere i suo file “Seq_work.csv”, aggiunse che, per dare una forma grafica ai dati riportati avrebbe utilizzato le funzionlità di “matplotlib”. Aggiunse poi, che per questo esperimento pensava di effettuare una “normalizzazione” dei dati tra un valore minimo e un massimo, che però al riguardo, gli rimanevano forti perplessità, ma, strizzandomi l’occhio, mi disse sottovoce, tentar non nuoce e quindi, che per fare le dovute trasformazioni – riparametrazioni dei dati grezzi, avrebbe usato il modulo “sklearn.preprocessing”. Infine, disse che per questo esperimento avrebbe utilizzato una libreria famosa (scoperta in Facesbook) che si chiamava Torch, ma che non aveva nulla a che fare con i citomegalovirus, ma con array di numeri rettangolari multidimensionali omogenei, che denominava “tensori”, e che con questa libreria si potevano costruire delle reti neurali, proprio quelle che avrebbe utilizzato per l’elaborazione di previsione che a lui interessava. Per prima cosa, disse, bisogna caricare i dati, che aveva scritto in formato “.csv”(acronimo di comma-separated values), nel file “DataSeeq.csv” e per fare questo veniva appunto utilizzato il modulo “pandas”: #acquisizione dati pd.read_csv("DataSeq.csv") #salvare i dati dentro una variabile dataset = pd.read_csv("DataSeq.csv") mi disse che, per sua curiosità personale, voleva vedere a schermo almeno una idea del formato dei dati caricati con pandas nella variabile dataset. E per fare questo bastavano due linee di programma: print ("*****************") print(dataset.head()) print(dataset.shape) print('***********') Se tutto fosse andato a buon fine si dovrebbe ottenere un risultato simile a questo: come si vede l’output è un file ordinato che contiene 200 sequenze per 4 colonne: le sequenze sono le registrazioni dei dati relativi al numero dei clienti (n_cycle) e suddivisi ulteriormente in ( numero di clienti maschili: n_alpha e numero di clienti femminili: n_beta). Si noti la deformazione professionale di Collatz nella nomenclatura dei dati…. Per il momento tralasciamo i valori di n_alpha e n_beta, che magari potranno essere utilizzati in un secondo momento per giocare con una applicazione successiva di predizione…. In qualsiasi caso, potremmo identificare la tipologia dei dati riportati nelle colonne facendo stampare l’oggetto colonne con l’istruzione: print(dataset.columns) a cui corrisponderà un output del tipo: Index(['n_sequence', 'n_cycle', 'n_alpha', 'n_beta'], dtype='object') La libreria PyTorch “predilige” i dati di tipo “float”(in inglese floating point) o numerazione a virgola mobile, e quindi si dovrà eseguire una prima trasformazione con l’istruzione: all_data = dataset['n_cycle'].values.astype(float) assegnando alla variabile “all_data”, tutto il pacchetto contenuto in dataset, relativo a “n_cycle”, che per Collatz, sarebbe il numero di clienti che hanno usufruito delle prestazioni culinarie del “ristorante”, giorno per giorno, nei primi “200 giorni” dalla data di apertura stagionale, qualcosa di simile a questo: [ 3. 1. 7. 2. 5. 8. 16. 3. 19. 6. 14. 9. 9. 17. 17. 4. 12. 20. 20. 7. 7. 15. 15. 10. 23. 10. 111. 18. 18. 18. 106. 5. 26. 13. 13. 21. 21. 21. 34. 8. 109. 8. 29. 16. 16. 16. 104. 11. 24. 24. 24. 11. 11. 112. 112. 19. 32. 19. 32. 19. 19. 107. 107. 6. 27. 27. 27. 14. 14. 14. 102. 22. 115. 22. 14. 22. 22. 35. 35. 9. 22. 110. 110. 9. 9. 30. 30. 17. 30. 17. 92. 17. 17. 105. 105. 12. 118. 25. 25. 25. 25. 25. 87. 12. 38. 12. 100. 113. 113. 113. 69. 20. 12. 33. 33. 20. 20. 33. 33. 20. 95. 20. 46. 108. 108. 108. 46. 7. 121. 28. 28. 28. 28. 28. 41. 15. 90. 15. 41. 15. 15. 103. 103. 23. 116. 116. 116. 23. 23. 15. 15. 23. 36. 23. 85. 36. 36. 36. 54. 10. 98. 23. 23. 111. 111. 111. 67. 10. 49. 10. 124. 31. 31. 31. 80. 18. 31. 31. 31. 18. 18. 93. 93. 18. 44. 18. 44. 106. 106. 106. 44. 13. 119. 119. 119. 26. 26. 26. 119. 26.] se si utilizzasse una istruzione tipo questa: print(all_data) Ora, Collatz mi disse, per verificare l’affidabilità di predizione del modello che andremo a testare, una cosa da fare, molto importante, è fargli fare allenamento su un numero sufficiente di dati, che chiameremo “train_data” e poi testare il modello su un set di dati conosciuti, che chiameremo “test_data”. Dopo averci pensato sopra un po’, affermò che, visto che avevamo a disposizione 200 sequenze, avremmo potuto utilizzarne la gran parte per allenare il modello e fare il test su un numero piccolo di sequenze, e visto che si trattava di dati ottenuti con una metodologia temporale, considerando i tempi di approvvigionamento delle materie prime e del preavviso ai dipendenti, aveva deciso di utilizzare le prime 185 sequenze per allenare il modello e le ultime per fare il test. Per fare questo, disse bastavano poche istruzioni, le seguenti: #configurazione train data e test data test_data_size = 15 train_data = all_data[:-test_data_size] test_data = all_data[-test_data_size:] print ('--- len train and test data ---') print(len(train_data)) print(len(test_data)) print('-----test data ------') print(test_data) e da quanto sopra viene ottenuto un output come questo: --- len train and test data --- 185 15 -----test data ------ [ 18. 44. 106. 106. 106. 44. 13. 119. 119. 119. 26. 26. 26. 119. 26.] A questo punto, per fare in modo di ottenere dei dati normalizzati, sulla parte dei dati utilizzata per l’allenamento: il train_data, appunto, centrandoli in questo caso, sullo zero, ed ottenendo quindi dei valori compresi tra -1 e 1, si sarebbe usato il modulo “sklearn.preprocessing” , con la seguente modalità : #normalizzazione dati scaler = MinMaxScaler(feature_range=(-1, 1)) train_data_normalized = scaler.fit_transform(train_data .reshape(-1, 1)) print('--- stampa esempio dati normalizzati ---') print(train_data_normalized[:5]) print(train_data_normalized[-5:]) ottenendo un output per le prime cinque sequenze che dovrebbe risultare simile a questo: --- stampa esempio dati normalizzati --- [[-0.96747967] [-1. ] [-0.90243902] [-0.98373984] [-0.93495935]] mentre per le ultime sequenze, l’output sarà: [[-0.72357724] [ 0.49593496] [ 0.49593496] [-0.72357724] [-0.30081301]] ed è forse per questo motivo che il mio amico Collatz, mi espresse la sua perplessità! (si riferiva probabilmente al fatto che nella ultima sequenza comparivano dei numeri negativi...) In qualsiasi caso, decise di continuare con l’esperimento, e di passare i dati al tesnore di PyTotch per il train_data normalizzato, con le seguenti istruzioni, che ne riportavano anche il risultato, se non altro per vedere la differenza di gestione degli oggetti: # passaggio a tnsore per train data train_data_normalized = torch.FloatTensor(train_data_normalized).view(-1) print('-----torch.FloatTensor--------') print (train_data_normalized) print('---------------------') l’output in questo caso dovrebbe essere questo: -----torch.FloatTensor-------- tensor([-0.9675, -1.0000, -0.9024, -0.9837, -0.9350, -0.8862, -0.7561, -0.9675, -0.7073, -0.9187, -0.7886, -0.8699, -0.8699, -0.7398, -0.7398, -0.9512, -0.8211, -0.6911, -0.6911, -0.9024, -0.9024, -0.7724, -0.7724, -0.8537, -0.6423, -0.8537, 0.7886, -0.7236, -0.7236, -0.7236, 0.7073, -0.9350, -0.5935, -0.8049, -0.8049, -0.6748, -0.6748, -0.6748, -0.4634, -0.8862, 0.7561, -0.8862, -0.5447, -0.7561, -0.7561, -0.7561, 0.6748, -0.8374, -0.6260, -0.6260, -0.6260, -0.8374, -0.8374, 0.8049, 0.8049, -0.7073, -0.4959, -0.7073, -0.4959, -0.7073, -0.7073, 0.7236, 0.7236, -0.9187, -0.5772, -0.5772, -0.5772, -0.7886, -0.7886, -0.7886, 0.6423, -0.6585, 0.8537, -0.6585, -0.7886, -0.6585, -0.6585, -0.4472, -0.4472, -0.8699, -0.6585, 0.7724, 0.7724, -0.8699, -0.8699, -0.5285, -0.5285, -0.7398, -0.5285, -0.7398, 0.4797, -0.7398, -0.7398, 0.6911, 0.6911, -0.8211, 0.9024, -0.6098, -0.6098, -0.6098, -0.6098, -0.6098, 0.3984, -0.8211, -0.3984, -0.8211, 0.6098, 0.8211, 0.8211, 0.8211, 0.1057, -0.6911, -0.8211, -0.4797, -0.4797, -0.6911, -0.6911, -0.4797, -0.4797, -0.6911, 0.5285, -0.6911, -0.2683, 0.7398, 0.7398, 0.7398, -0.2683, -0.9024, 0.9512, -0.5610, -0.5610, -0.5610, -0.5610, -0.5610, -0.3496, -0.7724, 0.4472, -0.7724, -0.3496, -0.7724, -0.7724, 0.6585, 0.6585, -0.6423, 0.8699, 0.8699, 0.8699, -0.6423, -0.6423, -0.7724, -0.7724, -0.6423, -0.4309, -0.6423, 0.3659, -0.4309, -0.4309, -0.4309, -0.1382, -0.8537, 0.5772, -0.6423, -0.6423, 0.7886, 0.7886, 0.7886, 0.0732, -0.8537, -0.2195, -0.8537, 1.0000, -0.5122, -0.5122, -0.5122, 0.2846, -0.7236, -0.5122, -0.5122, -0.5122, -0.7236, -0.7236, 0.4959, 0.4959, -0.7236, -0.3008]) --------------------- che, come si denota, gli elementi della “lista”, contenuta nella “tupla”, vengono troncati alla quarta cifra dopo la virgola, rispetto a quelli normalizzati in precedenza che avevano otto decimali. Collatz, mi disse che c’era un altro passaggio delicato per far effettuare l’allenamento alla macchina sul train_data, ma siccome era solo un esperimento, aveva deciso di dividere il blocco dei dati di training in modo simile alla quantità delle sequenze di test, cioè in blocchi da 15 sequenze. Per fare questo mi disse, utilizzerò una particolarità di elaborazione dei dati di python la “def”, con la quale ingloberò delle istruzioni che saranno in grado di elaborare l’operazione di suddivisione dei dati desiderata: # divisione tuple di numeri train_window = 15 # gestore di sequenza def create_inout_sequences(input_data, tw): inout_seq = [] L = len(input_data) for i in range(L-tw): train_seq = input_data[i:i+tw] train_label = input_data[i+tw:i+tw+1] inout_seq.append((train_seq ,train_label)) return inout_seq train_inout_seq = create_inout_sequences(train_data_normalized, train_window) print('*** tuple di inout sequence esempio (2) *******') print(train_inout_seq[:2]) print('*****************') Per prima cosa, dimensionò la variabile train_window a 15 (il valore a cui far corrispondere la lunghezza delle tuple) e posi scrisse le istruzioni per la costruzione della funzione “create_inout_sequences”, che prende i dati dalla istruzione train_inout_seq = create_inout_sequences(train_data_normalized, train_window) dove passerà i dati alla funzione in questo modo: input_data = train_data_normalized e tw = train_window) producendo un output di esempio le prime due: *** tuple di inout sequence esempio (2) ******* [(tensor([-0.9675, -1.0000, -0.9024, -0.9837, -0.9350, -0.8862, -0.7561, -0.9675, -0.7073, -0.9187, -0.7886, -0.8699, -0.8699, -0.7398, -0.7398]), tensor([-0.9512])), (tensor([-1.0000, -0.9024, -0.9837, -0.9350, -0.8862, -0.7561, -0.9675, -0.7073, -0.9187, -0.7886, -0.8699, -0.8699, -0.7398, -0.7398, -0.9512]), tensor([-0.8211]))] ***************** dove, mi fece notare, che il sedicesimo elemento rappresentava l’etichetta della prima tupla, mentre la seconda tupla inizia dal secondo elemento, termina al sedicesimo e la sua etichetta è il diciasettesimo… e cosi via… Questa cosa mi ha fatto meditare! Poi, con un grande sorriso, Collatz mi disse “E adesso facciamo un lavoro di Classe!”. E mi fece leggere le seguenti istruzioni: class LSTM(nn.Module): def __init__(self, input_size=1, hidden_layer_size=100, output_size=1): super().__init__() self.hidden_layer_size = hidden_layer_size self.lstm = nn.LSTM(input_size, hidden_layer_size) self.linear = nn.Linear(hidden_layer_size, output_size) self.hidden_cell = (torch.zeros(1,1,self.hidden_layer_size), torch.zeros(1,1,self.hidden_layer_size)) def forward(self, input_seq): lstm_out, self.hidden_cell = self.lstm(input_seq.view(len(input_seq) ,1, -1), self.hidden_cell) predictions = self.linear(lstm_out.view(len(input_seq), -1)) return predictions[-1] al ché, li per li, dissi soltanto “WOW”… e pensai… la cosa si fa complicata! Specialmente dopo aver letto qualche riga dal sito della documentazione di pytorch: https://pytorch.org/docs/stable/generated/torch.nn.LSTM.html Ero rimasto particolarmente sbalordito da cosa potesse significare la seguente concettualizzazione: Comunque, intuitivamente, pensai: c’è in primo layer che riceve un dato alla volta, lo trasferisce ad un layer composto da 100 neuroni, il quale a sua volta elabora i dati e il risultato lo trasferisce ad un layer di output che ha un solo elemento che conterrà di volta in volta il risultato ottimizzato in relazione a delle sequenze di calcolo elaborate ricorsivamente in relazione ad uno scostamento di confronto tra il valore ottenuto e il valore di controllo. Ma il mio amico Collatz, rincarò la dose, dicendomi, adesso che abbiamo lo scheletro del cervello, mettiamoci dentro le idee e mi fece leggere le seguenti istruzioni: model = LSTM() loss_function = nn.MSELoss() optimizer = torch.optim.Adam(model.parameters(), lr=0.001) #------ print('----- modello ----') print(model) Mi disse, Python è un linguaggio che genera oggetti e LSTM è soltanto uno degli oggetti possibili che si possono generare con PyTorch, che in questo caso lo chiameremo semplicemente ”model”. Ora, mi chiese Collatz, che cosa dovrà fare il “model”? Io ci pensai un po’ e poi risposi, dovrà “imparare” in qualche modo a selezionare i dati più simili al “target”! Ovvero, visto che il risultato corretto di ogni operazione nel modello è già predeterminato, confrontiamo questo dato con le operazioni che la rete neurale mi fornisce come risultato “temporale”, ne identifichiamo in qualche modo l’errore e di volta in volta andiamo a correggere il “tiro”. In altri termini, mi disse Collatz, utilizzeremo una serie di formule che, da una parte andranno a calcolare lo scostamento statistico dal target, per esempio utilizzando una funzione che si potrebbe definire “perdita di entropia incrociata”, e dall’altra, riporteremo in ingresso un valore di correzione tramite ad esempio una riparametrazione sigmoidea! Io lo guardai e gli dissi… “Ecco… si!”. Lui sorrise e mi disse: proprio quello che è condensato in quelle di righe di programma di configurazione del “model”, che se vai a vedere l’output è semplicemente descritto così: ----- modello ---- LSTM( (lstm): LSTM(1, 100) (linear): Linear(in_features=100, out_features=1, bias=True) Apperò, dissi io, alla faccia della sintesi! E chiesi cosa significa il termine “bias”? Collaz mi rispose: quello è un modo che viene fornito alla rete neurale per “farsi un opinione”! Lo guardai, sorrisi e gli dissi: anche l’intelligenza artificiale allora si basa su dei “pregiudizi”! Si, si, rispose lui, ma facciamolo lavorare! E mi fece leggere le seguenti righe di programma: # fase di addestramento epochs = 150 for i in range(epochs): for seq, labels in train_inout_seq: optimizer.zero_grad() model.hidden_cell = (torch.zeros(1, 1, model.hidden_layer_size), torch.zeros(1, 1, model.hidden_layer_size)) y_pred = model(seq) single_loss = loss_function(y_pred, labels) single_loss.backward() optimizer.step() if i%25 == 1: print(f'epoch: {i:3} loss: {single_loss.item():10.8f}') print ('°°°°°°°°°°°°°°°°°') print(f'epoch: {i:3} loss: {single_loss.item():10.10f}') print('°°°°°°°°°°°°°°°°°°°') Spiegandomi a grandi linee che voleva cercare di far fare la procedura di allenamento per un numero limitato di sequenze, tanto per provare, limitandola a 150. Quindi per il numero di cicli prefissato, verrà preimpostato il gradiente a zero e verrà generato un tensore che conterrà dei valori scalari in relazione al calcolo dello scostamento per tutte le sequenze di “epochs” e per tutti i valori della tupla in esame, il risultato sarà riposto in una variabile e utilizzato ottimizzandolo, per la “back propagation”. Per farci un idea, mi disse Collatz, si dovrebbe ottenere un risultato simile a questo ogni 25 sequenze: epoch: 1 loss: 0.00829106 epoch: 26 loss: 0.00000873 epoch: 51 loss: 0.01431556 epoch: 76 loss: 0.02613759 epoch: 101 loss: 0.02043977 epoch: 126 loss: 0.00130326 (nota che la stampa dei dati di loss è limitata a 8 decimali) in pratica, per ogni ciclo, l’output dovrebbe essere una cosa analoga questa (l’ultimo risultato riportato con dieci cifre significative dopo la virgola): °°°°°°°°°°°°°°°°° epoch: 149 loss: 0.0008416197 °°°°°°°°°°°°°°°°°°° Ora, mi disse Collatz, la nostra rete dovrebbe avere una opinione sull’andamento dei dati e a questo punto possiamo passare al test di predizione: #-------------- fut_pred = 15 test_inputs = train_data_normalized[-train_window:].tolist() print(test_inputs) #----------------------- Per prima cosa forniamo la dimensione del test (le ultimi quindici variabili), prendiamone i dati normalizzati e vediamo a cosa corrispondono: [1.0, -0.5121951103210449, -0.5121951103210449, -0.5121951103210449, 0.28455284237861633, -0.7235772609710693, -0.5121951103210449, -0.5121951103210449, -0.5121951103210449, -0.7235772609710693, -0.7235772609710693, 0.49593496322631836, 0.49593496322631836, -0.7235772609710693, -0.3008130192756653] Questa lista contiene appunto i dati normalizzati da passare alla rete neurale addestrata per effettuare le previsioni, e il processo avverrà con la seguente modalità: model.eval() for i in range(fut_pred): seq = torch.FloatTensor(test_inputs[-train_window:]) with torch.no_grad(): model.hidden = (torch.zeros(1, 1, model.hidden_layer_size), torch.zeros(1, 1, model.hidden_layer_size)) test_inputs.append(model(seq).item()) #------------ print('--- test input ---') print(test_inputs[fut_pred:]) #-------------------- Verrà definito, nel “dominio dei nomi” il modello di valutazione e tramite un ciclo “for” operante nella lunghezza delle sequenze determinate dalla variabile “fut_pred”, All'interno del ciclo for questi 15 elementi verranno utilizzati per generare il valori di previsione sul primo elemento del set di test, ovvero l'elemento numero 185, Il valore di previsione verrà quindi aggiunto a test_imputs, mediante la funzione “append” . Durante la seconda iterazione, di nuovo gli ultimi 15 elementi verranno utilizzati come input e verrà effettuata una nuova previsione che verrà quindi nuovamente aggiunta a test_inputs e cosi via, il ciclo for verrà eseguito per 15 volte, alla fine del ciclo il “test_inputs”, conterrà 15 elementi normalizzati: --- test input --- [-0.5246923565864563, -0.5111703276634216, -0.6970333456993103, -0.46873635053634644, 0.34659910202026367, 0.36807361245155334, -0.5615038275718689, 0.14165163040161133, -0.3299140930175781, -0.17069603502750397, -0.24251092970371246, -0.20503830909729004, -0.02129334583878517, -0.48219528794288635, 0.041329968720674515] Questi valori, andranno dunque riportati alla configurazione originaria, mediante l’istruzione complementare a quella di normalizzazione: #-------------------- actual_predictions = scaler.inverse_transform(np.array(test_inputs[train_window:] ).reshape(-1, 1)) print ('***** ACTUAL PREDICTIONS') print(actual_predictions) #-------------------------- che darà un risultato simile a questo: ***** ACTUAL PREDICTIONS [[30.23142007] [31.06302485] [19.63244924] [33.67271444] [83.81584477] [85.13652717] [27.9675146 ] [71.21157527] [42.21028328] [52.00219385] [47.58557782] [49.89014399] [61.19045923] [32.84498979] [65.04179308]] Ovviamene il risultato non sarà riportato in numeri interi, ma poco importa (se si volessero riportare i valori in numeri interi c’è una apposita istruzione di python…) A questo punto a Collatz gli si illuminarono gli occhi e disse: finalmente adesso possiamo far disegnare i grafi con le elaborazioni fatte con il modulo di “matplotlib”, aggiunse una ultima istruzione di programma per configurare gli output, e mi fece leggere queste ultime righe in python: prima di stampare i grafici: x = np.arange(185, 200, 1) # grafi dati #-------vista particolare per previsione -------- plt.title('final sequences vs predictions') plt.ylabel('final cycles') plt.grid(True) plt.autoscale(axis='x', tight=True) plt.plot(dataset['n_cycle'][-train_window:]) plt.plot(x,actual_predictions) plt.legend() plt.savefig("Seq_predict.png") plt.show() Scegliemmo di visualizzare il confronto tra i dati del set di test e quelli delle previsioni ottenendo alcuni esempi: ottenuto con una configurazione impostata: fig_size = plt.rcParams["figure.figsize"] fig_size[0] = 15 fig_size[1] = 5 plt.rcParams["figure.figsize"] = fig_size ottenuto senza la configurazione impostata, con la configurazione delle ultime righe del programma. Fu allora che io e Collatz ci guardammo negli occhi e con una risata dicemmo: Se questi sono i risultati, allora è meglio prevedere sempre che i clienti abbiano tanta fame, onde programmare correttamente gli acquisti della materia prima e avvisare il personale che a volte ci sarà del super lavoro…. Oppure dovremmo ripensare meglio i criteri con cui abbiamo istruito la nostra rete neurale! p.s. Ringrazio il mio amico “matematico” Umberto Cibien che ha destato la mia curiosità per la : “Congettura di Collatz” https://umbertocibien.org/math/2021/01/28/la-congettura-di-collatz/ Vuoi Scaricare il progetto Gratis ? Accedi o registrati al portale Clicca qui e scarica il progetto Grazie mille per la lettura

  • Utilizzare il Machine Learning per Prevedere Le Vendite e Anticipare la Domanda dei tuoi Clienti IA

    al ​​15%, l'utilizzo di questo tipo di regole potrebbe portare a stime fuorvianti e opportunità di business

  • Migliori Applicazioni con Intelligenza Artificiale (IA) del 2024

    Migliori Applicazioni con Intelligenza Artificiale (IA) del 2024 : ChatGPT CharterAI MidJourney DallE Migliori Applicazioni con Intelligenza Artificiale (IA) del 2024 ChatGPT Nel panorama delle applicazioni di Intelligenza Artificiale del 2024, ChatGPT emerge come un faro di innovazione e versatilità. Statistiche recenti dimostrano che oltre il 75% degli utenti preferisce utilizzare ChatGPT per avere Generazione testo La potente funzionalità di generazione testo di ChatGPT è una delle stelle del suo

  • Come Usare Llama 3 sul Tuo Computer: L'alternativa Gratuita e OpenSource a GPT-4

    Siete pronti a esplorare le nuove frontiere dell'intelligenza artificiale? Oggi vi guiderò attraverso un'entusiasmante novità: Llama 3, l'ultima versione del potente modello di linguaggio di Meta. Questa versione è stata rilasciata come open source, offrendo a tutti la possibilità di sperimentare un'alternativa gratuita a GPT-4 di OpenAI direttamente sul proprio computer. Prima di immergerci nei dettagli tecnici, permettetemi di spiegare brevemente cos'è un Modello di Linguaggio di Grandi Dimensioni (LLM). Un LLM è un sistema di intelligenza artificiale addestrato su enormi quantità di dati testuali, consentendogli di generare, comprendere e analizzare il linguaggio naturale in modi estremamente sofisticati. I modelli come GPT-4 di OpenAI hanno rivoluzionato il settore, ma sono chiusi e a pagamento. Llama 3 di Meta, d'altra parte, è stato rilasciato open source, permettendo a chiunque di utilizzarlo gratuitamente e perfino di modificarlo secondo le proprie esigenze. Cos'è Llama e Perché È Importante La famiglia dei modelli Llama è stata introdotta da Meta AI (l'ex Facebook AI Research) a febbraio 2023. Llama, che sta per "Large Language Model Meta AI", rappresenta il culmine degli sforzi di Meta nel campo dell'intelligenza artificiale per il linguaggio naturale. L'innovazione più significativa di Llama 3 rispetto alle versioni precedenti è il massiccio aumento delle sue capacità. Secondo Meta, questo modello supera le prestazioni di altri LLM di dimensioni simili, come Gemma 7B, Claude 3 Sonnet e Mistral 7B, in varie applicazioni come il ragionamento logico, la generazione di codice e la comprensione del linguaggio naturale. Ma ciò che rende Llama 3 davvero speciale è la sua natura open source. A differenza dei modelli proprietari come GPT-4, chiunque può accedere al codice sorgente di Llama 3 e utilizzarlo liberamente per scopi di ricerca, sviluppo o semplice sperimentazione. Perché Utilizzare un Modello Open Source? L'open source offre numerosi vantaggi rispetto ai modelli chiusi e proprietari: Accessibilità: Chiunque può accedere e utilizzare Llama 3 gratuitamente, senza dover pagare costose sottoscrizioni o licenze. Trasparenza: Essendo open source, il codice di Llama 3 è aperto al pubblico scrutinio, promuovendo la trasparenza e la fiducia nell'IA. Personalizzazione: Gli sviluppatori possono modificare e adattare Llama 3 alle loro esigenze specifiche, creando applicazioni e servizi su misura. Collaborazione: La comunità open source può lavorare insieme per migliorare e far progredire Llama 3, accelerando l'innovazione nell'IA. Istruzione e Ricerca: Llama 3 rappresenta un'eccellente risorsa per studenti, ricercatori e appassionati che desiderano imparare ed esplorare il funzionamento dei modelli di linguaggio di grandi dimensioni. Con Llama 3 a portata di mano, ora hai la straordinaria opportunità di sperimentare una tecnologia all'avanguardia gratuitamente e senza restrizioni. Che tu sia uno sviluppatore, un ricercatore o semplicemente un curioso appassionato di IA, preparati a essere stupito dalle capacità di questo potente modello open source. Nei prossimi paragrafi, ti guiderò passo dopo passo attraverso il processo di esecuzione di Llama 3 sul tuo computer locale. Affronteremo le sfide tecniche, esploreremo le sue funzionalità e imparerai come sfruttare al massimo questo strumento rivoluzionario. Tieniti forte, perché stiamo per intraprendere un viaggio entusiasmante nell'innovativo mondo dell'Intelligenza Artificiale open source! Le Dimensioni e le Capacità Innovative di Llama 3 Meta ha rilasciato Llama 3 in due diverse dimensioni: un modello da 8 miliardi di parametri (8B) e uno da 70 miliardi di parametri (70B). Entrambi i modelli sono dotati di un tokenizer esteso che suddivide il testo in modo più efficiente, riducendo fino al 15% il numero di token necessari rispetto al precedente Llama 2. Questo si traduce in una generazione di testo più rapida e fluida. Un'altra novità entusiasmante è la licenza commerciale permissiva di Llama 3. A differenza di molti altri modelli open source, questo consente un'ampia gamma di usi commerciali, aprendo la strada a innumerevoli applicazioni e servizi basati su questa tecnologia rivoluzionaria. Inoltre, proprio come per Llama 2, Meta ha rilasciato versioni "chat" di entrambi i modelli Llama 3, ottimizzate per conversazioni più naturali e interattive con gli utenti. Ma le novità non finiscono qui! Meta ha annunciato che rilascerà ulteriori versioni di Llama nei prossimi mesi, introducendo: Nuove capacità avanzate Finestre di contesto più ampie per una migliore comprensione del contesto Dimensioni aggiuntive del modello Prestazioni migliorate Un documento di ricerca dettagliato che approfondirà il funzionamento di Llama 3 Per coloro interessati alle lingue diverse dall'inglese, Meta ha anche promesso di rendere Llama 3 multilingue e multimodale nel prossimo futuro, oltre ad aumentare la lunghezza del contesto gestibile e a migliorare le prestazioni nelle capacità fondamentali dei LLM come il ragionamento e la codifica. Benchmarks a Confronto Per valutare le prestazioni di Llama 3, diamo uno sguardo a come si posiziona rispetto ad altri modelli LLM di dimensioni simili in diversi benchmark di settore. Se non sei familiare con questi benchmark, ecco una breve spiegazione: MMLU: Valuta la conoscenza generale e la capacità di risoluzione dei problemi su un'ampia gamma di argomenti, tra cui scienze, storia, diritto, matematica, informatica e altro ancora. AGIEval: Un benchmark incentrato sulle capacità umane, che include test di ammissione universitari, esami di laurea in giurisprudenza, gare di matematica e test di qualificazione per avvocati. BIG-Bench Hard: Valuta le abilità di ragionamento multi-step dei modelli di linguaggio di grandi dimensioni attraverso un insieme di 204 attività diverse. ARC-Challenge: Un dataset di esami scientifici a risposta multipla, che testa le capacità di ragionamento di buon senso dei modelli. DROP: Un test di comprensione del testo particolarmente impegnativo. Ecco i punteggi di benchmark dei modelli pre-addestrati Llama3–8B e Llama3–70B: Come puoi vedere, entrambi i modelli Llama 3 superano costantemente altri LLM open source di punta come Mistral 7B, Gemma 7B e il modello da 70B di Anthropic in quasi tutti i benchmark. È un risultato davvero impressionante, soprattutto considerando che il modello Llama3–70B ha molti meno parametri rispetto ai suoi concorrenti. Ad esempio, nel benchmark MMLU che valuta la conoscenza generale, Llama3–8B ottiene un punteggio di 61,7, superando ampiamente Mistral 7B (54,0) e Gemma 7B (56,9). Mentre nel test di ragionamento multi-step BIG-Bench Hard, Llama3–70B raggiunge un eccellente punteggio di 48,8, distanziando nettamente il modello da 70B di Anthropic (41,7). Questi risultati dimostrano che i modelli Llama 3 non solo sono potenti e capaci, ma anche efficienti, in grado di raggiungere prestazioni paragonabili o superiori a concorrenti di dimensioni molto maggiori. In sintesi, Llama 3 si presenta come un'alternativa open source estremamente valida ai modelli di linguaggio proprietari di punta. Le sue dimensioni compatte, le licenze permissive e le prestazioni di livello superiore lo rendono un'opzione allettante per sviluppatori, ricercatori e appassionati di tutto il mondo. Con gli aggiornamenti promessi da Meta in arrivo, non vediamo l'ora di esplorare ulteriormente le capacità di questa eccezionale famiglia di modelli LLM. Architettura del Modello LLAMA3 : Un Transformer Tradizionale Ottimizzato Sebbene i modelli "Mixture-of-Experts" siano attualmente di tendenza, Llama 3 rimane un transformer decoder-only denso tradizionale, molto simile all'architettura di Llama 2. Tuttavia, Meta ha apportato alcune innovazioni chiave. Il vocabolario del tokenizer è stato quadruplicato da 32.000 a 128.000 token. Questo richiede al modello di prevedere quattro volte più logit per ogni possibile token successivo, ma la tokenizzazione del testo risulta in fino al 15% di token in meno rispetto al tokenizer di Llama 2. Cosa significa in pratica? Anche se Llama 2 e Llama 3 generano lo stesso numero di token al secondo, con Llama 3 l'utente vedrà più testo più velocemente, poiché sono necessari meno token per tokenizzare lo stesso testo. Inoltre, il team di Meta ha aggiunto l'attenzione di query di gruppo (GQA) al modello Llama3-8B, una tecnica precedentemente utilizzata solo per Llama2-70B. Grazie a queste ottimizzazioni, nonostante Llama3-8B abbia 1 miliardo di parametri in più rispetto a Llama 2 7B, mantiene la stessa efficienza di inferenza. Un approccio intelligente che dimostra come Meta stia spingendo le prestazioni dei modelli di linguaggio tradizionali ai massimi livelli, sfruttando ogni opportunità di ottimizzazione. Dati di Pre-Addestramento: Una Quantità Massiccia e Mirata Per addestrare Llama 3, Meta ha utilizzato oltre 15 trilioni di token di dati! A titolo di confronto, ci vorrebbero più di 70.000 anni per una persona media per leggerli tutti senza interruzioni. Questo rappresenta 7 volte i dati utilizzati per addestrare Llama 2. Inoltre, rispetto a Llama 2, è stata utilizzata una quantità di dati di codice 4 volte superiore. Secondo Mark Zuckerberg, questo non serve solo ad addestrare il modello a codificare, ma è anche benefico per acquisire altre capacità come il ragionamento. Per garantire un'elevata qualità dei dati, Meta ha utilizzato diversi filtri, come filtri euristici, filtri NSFW, approcci di deduplicazione semantica e classificatori di testo per prevedere la qualità dei dati. Curiosamente, i modelli Llama 2 sono stati utilizzati per classificare la qualità del testo stesso. L'enorme quantità di dati di alta qualità, accuratamente selezionati e mirati a obiettivi specifici, è stata fondamentale per le prestazioni di punta di Llama 3. Scalabilità dell'Addestramento: Verso Capacità Mirate di LLAMA3 Dalla lettura del post di Meta, non è emerso chiaramente come abbiano affrontato la scalabilità dell'addestramento, ma non vedo l'ora di approfondire questo aspetto nel documento di ricerca promesso. Secondo quanto riportato, Meta ha: "Sviluppato una serie di leggi di scalabilità dettagliate per le valutazioni dei benchmark a valle. Queste leggi di scalabilità ci permettono di selezionare la miscela di dati ottimale e di prendere decisioni informate su come utilizzare al meglio la nostra potenza di calcolo per l'addestramento." Sembra che mirino a migliorare capacità specifiche durante il pre-addestramento (ad es. matematica, codifica o ragionamento) regolando dinamicamente la miscela di dati. Tuttavia, questo è più un'ipotesi che una certezza, ma sono sicuro che troveremo maggiori dettagli nel documento di ricerca. Un'altra interessante scoperta è che il modello da 8B continua a migliorare in modo log-lineare quando addestrato con molti più token (15 trilioni) rispetto alla quantità ottimale per Chinchilla (circa 200 miliardi). A questo proposito, Meta afferma: "I modelli più grandi possono eguagliare le prestazioni di questi modelli più piccoli con meno potenza di calcolo per l'addestramento, ma i modelli più piccoli sono generalmente preferiti perché sono molto più efficienti durante l'inferenza." Un approccio bilanciato che sfrutta i vantaggi di entrambe le dimensioni dei modelli, a seconda delle esigenze specifiche. L'Ottimizzazione del Fine-Tuning delle Istruzioni di Llama3 Secondo il post di Meta, sembra che abbiano dedicato molto più tempo di calcolo e sforzi all'ottimizzazione del fine-tuning delle istruzioni di Llama 3 rispetto a Llama 2. Affermano: "Il nostro approccio al post-addestramento è una combinazione di fine-tuning supervisionato (SFT), campionamento di rifiuto, ottimizzazione della politica prossimale (PPO) e ottimizzazione della politica diretta (DPO). La qualità dei prompt utilizzati in SFT e delle classifiche di preferenza utilizzate in PPO e DPO ha un'influenza sproporzionata sulle prestazioni dei modelli allineati." Nel documento di Llama 2, menzionano che la qualità dei dati SFT è molto importante, e sembra che abbiano davvero tenuto conto di questo aspetto nella creazione del dataset SFT per Llama 3: "Alcuni dei nostri miglioramenti più significativi nella qualità del modello sono derivati dalla curatela attenta di questi dati e dall'esecuzione di molteplici cicli di garanzia di qualità sulle annotazioni fornite dagli annotatori umani." Riguardo all'uso di PPO e DPO, ho trovato molto interessante questa affermazione: "L'apprendimento dalle classifiche di preferenza tramite PPO e DPO ha notevolmente migliorato le prestazioni di Llama 3 nei compiti di ragionamento e codifica." Per questo, hanno fatto una scoperta davvero notevole che sottolinea l'importanza e l'utilità di tali tecniche: "Il modello sa come produrre la risposta giusta, ma non sa come selezionarla. L'addestramento sulle classifiche di preferenza permette al modello di imparare come selezionarla." Quindi, affinando il modello di linguaggio sulle classifiche di preferenza, impara a comprendere meglio quale dei possibili ragionamenti generati è effettivamente quello corretto. Un approccio sofisticato che dimostra l'impegno di Meta nel spingere le capacità di Llama 3 ai massimi livelli, sfruttando tecniche all'avanguardia per migliorare costantemente le prestazioni in compiti complessi come il ragionamento e la codifica. Eseguire Llama 3 sul Tuo Computer Eseguire modelli di linguaggio di grandi dimensioni come Llama 3 sul tuo computer richiede risorse hardware significative. Ci sono due dimensioni di Llama 3: un modello da 8 miliardi di parametri (8B) e uno da 70 miliardi (70B). Caricare questi modelli con precisione FP16 richiede almeno 16GB o 140GB di memoria VRAM (o RAM per l'esecuzione su CPU). So che può sembrare molta memoria, ma grazie alle moderne tecniche di quantizzazione, questa necessità può essere notevolmente ridotta mantenendo pressoché invariata la qualità del testo generato. In questo articolo, utilizzerò una versione quantizzata in AWQ del modello Llama3-70B, che mi permetterà di caricarlo ed eseguirlo sul mio computer locale. Per farlo, userò una GPU NVIDIA RTX 6000 Ada, gentilmente fornita da NVIDIA per queste serie di Articoli. La GPU RTX 6000 Ada dispone di 48GB di VRAM. La versione quantizzata in AWQ di Llama3-70B utilizza una precisione a 4 bit, riducendo il requisito di memoria a circa 35GB di VRAM. Un ottimo compromesso tra prestazioni e risorse necessarie. L'hardware è cruciale per sfruttare appieno il potenziale dei modelli di IA. Con un budget limitato per il fine-tuning e l'inferenza, ti consiglio generalmente di aumentare il numero di parametri e ridurne la precisione, anziché fare il contrario. Scegliendo questa opzione, otterrai quasi sempre risultati migliori nella generazione di testo. Prima di poter utilizzare Llama3-70B, ho dovuto installare alcune librerie necessarie. Per questo, ho deciso di utilizzare la libreria vLLM, ottimizzata per l'inferenza veloce sui modelli di linguaggio di grandi dimensioni. Con le giuste ottimizzazioni e l'hardware adeguato, eseguire modelli potenti come Llama 3 sul tuo computer diventa una realtà concreta. Continuate a leggere per scoprire come configurare e utilizzare questo straordinario modello di intelligenza artificiale open source direttamente sulla vostra macchina. Come Usare Llama 3 sul Tuo Computer: Il Codice Passo-Passo Dopo aver discusso le innovative architetture e tecniche di addestramento dietro Llama 3, è arrivato il momento di metterlo in pratica. Preparatevi a sperimentare il potente modello open source di Meta direttamente sul vostro computer! Prima di iniziare, ho dovuto installare le librerie necessarie. Per questo, ho scelto di utilizzare la libreria vLLM, ottimizzata per l'inferenza veloce sui grandi modelli di linguaggio: pip install vllm==0.4.0.post1 flash-attn==2.5.7 autoawq==0.2.3 gradio==4.27.0 Una volta installate tutte le librerie, possiamo caricare Llama 3. Per interagire con il modello in modo visivamente accattivante, ho scritto alcune righe di codice utilizzando la libreria Gradio, che semplifica notevolmente la creazione di un'interfaccia utente intuitiva. Poiché la classe LLM nella libreria vLLM non ha un'opzione per lo streaming dei token generati, ho rapidamente scritto una versione leggera della classe LLM chiamata StreamingLLM. Per i parametri di generazione del testo, ho utilizzato i valori predefiniti definiti dal team di Meta. from vllm.engine.llm_engine import LLMEngine from vllm.engine.arg_utils import EngineArgs from vllm.usage.usage_lib import UsageContext from vllm.utils import Counter from vllm.outputs import RequestOutput from vllm import SamplingParams from typing import List, Optional import gradio as gr class StreamingLLM: def __init__(self, model: str, dtype: str = "auto", quantization: Optional[str] = None, **kwargs): engine_args = EngineArgs(model=model, quantization=quantization, dtype=dtype, enforce_eager=True) self.llm_engine = LLMEngine.from_engine_args(engine_args, usage_context=UsageContext.LLM_CLASS) self.request_counter = Counter() def generate(self, prompt: Optional[str] = None, sampling_params: Optional[SamplingParams] = None) -> List[RequestOutput]: request_id = str(next(self.request_counter)) self.llm_engine.add_request(request_id, prompt, sampling_params) while self.llm_engine.has_unfinished_requests(): step_outputs = self.llm_engine.step() for output in step_outputs: yield output llm = StreamingLLM(model="casperhansen/llama-3-70b-instruct-awq", quantization="AWQ", dtype="float16") tokenizer = llm.llm_engine.tokenizer.tokenizer sampling_params = SamplingParams(temperature=0.6, top_p=0.9, max_tokens=4096, stop_token_ids=[tokenizer.eos_token_id, tokenizer.convert_tokens_to_ids("<|eot_id|>")]) In questo codice, sto caricando la versione quantizzata AWQ del modello Llama3-70B, che richiede solo circa 35GB di VRAM grazie alla precisione a 4 bit. Sto anche impostando i parametri di campionamento per la generazione del testo, come la temperature e il top_p. Ora siamo pronti per interagire con Llama 3 in un'interfaccia chat visivamente accattivante: def predict(message, history): history_chat_format = [] for human, assistant in history: history_chat_format.append({"role": "user", "content": human }) history_chat_format.append({"role": "assistant", "content": assistant}) history_chat_format.append({"role": "user", "content": message}) prompt = tokenizer.apply_chat_template(history_chat_format, tokenize=False) for chunk in llm.generate(prompt, sampling_params): yield chunk.outputs[0].text gr.ChatInterface(predict).launch() Con questa semplice funzione, possiamo avviare un'interfaccia chat che ci permetterà di inviare prompt e ricevere risposte generate da Llama 3 in tempo reale. Ed è tutto! Con questi pochi passaggi, avete ora la possibilità di esplorare le straordinarie capacità del nuovo modello Llama 3 di Meta direttamente sul vostro computer. Se avete trovato utile questo articolo, sarei grato se poteste mostrare il vostro apprezzamento con un applauso o seguendomi per dimostrare che sto andando nella giusta direzione con i miei contenuti. Inoltre, fatemi sapere nei commenti cosa ne pensate del nuovo Llama 3. Credo che Meta abbia fatto di nuovo un ottimo lavoro, e sono davvero grato che abbiano pubblicato un LLM così potente come risorsa open source. Divertitevi a sperimentare con questo modello rivoluzionario e a scoprire nuovi modi per sfruttare il potenziale dell'intelligenza artificiale open source nel vostro lavoro o nei vostri progetti personali. Il futuro dell'IA è più luminoso che mai grazie a risorse come Llama 3 a disposizione di tutti.

  • Previsione della manutenzione dei macchinari con Python e il Machine learning

    Previsione della manutenzione dei macchinare con il Machine Learning. Sappiamo che l'apprendimento automatico è molto complicato per i principianti. Non sappiamo quali tipi di modelli dovremmo usare per analizzare i dati. In questo articolo, utilizzeremo il set di dati "Manutenzione predittiva" e lo analizzeremo utilizzando facilmente l'apprendimento automatico. Useremo Pycaret per costruire il nostro modello predittivo. Questo è il set di dati che useremo: Prima di iniziare, installa Pycaret sui tuoi ambienti notebook. pip install pycaret Importazione di librerie di importazione Successivamente, dobbiamo importare le librerie. Dopo averlo fatto, leggiamo il file di dati che analizzeremo. Il file è in formato .csv. import pandas as pd import seaborn as sns %matplotlib inline import matplotlib.pyplot as plt data = pd.read_csv("Manutenzione_macchinari.csv") Creiamo un grafico a torta usando Matplotlib per il tipo di errore. Abbiamo notato che nessun errore è del 96,5%. labels = data['Failure Type'].astype('category').cat.categories.tolist() counts = data['Failure Type'].value_counts() sizes = [counts[machine_name] for machine_name in labels] plt.figure(figsize=(8,10)) plt.pie(sizes, labels=labels, autopct='%1.1f%%',shadow=True) plt.title("Failure Type", fontsize=20) plt.show() Successivamente, utilizziamo la libreria "Seaborn" per creare un grafico a barre per la temperatura dell'aria e di processo. # Air Temperature # sns.set_style('whitegrid') sns.distplot(data['Air temperature [K]'].values, kde=True, rug=True) plt.title("Air temperature",fontsize = 15) plt.show() #Process Temperature # sns.distplot(data['Process temperature [K]'].values, kde=True, rug = True ) plt.title("Process temperature",fontsize=15) plt.show() Dopo averlo fatto, utilizziamo jointplot per disegnare un grafico dell'aria e della temperatura di processo con grafici bivariati e univariati. La libreria fornisce una comoda interfaccia per la classe JointCrid, con diversi tipi di grafici preconfezionati. Sembrano così. with sns.axes_style('white') : g = sns.jointplot(data=data,x='Air temperature [K]',y= 'Process temperature [K]', kind = "hex",joint_kws = dict(gridsize=15), marginal_kws={'color': 'gold'},color="#c9af44", height = 6.50) plt.setp(g.ax_marg_y.patches, color = "limegreen") Usiamo Seaborn per disegnare un grafico a linee per la velocità della coppia perché vogliamo conoscere la sua velocità di rotazione. plt.figure (figsize = (8,6)) sns.lineplot(x="Rotational speed [rpm]", y="Torque [Nm]",data=data) plt.title ("Speed of Torque ", fontsize = 15) In questo momento, utilizzeremo la libreria unica "PyCaret". È una libreria di machine learning open source in Python che consente agli utenti di passare dalla preparazione dei dati alla distribuzione del modello in pochi minuti negli ambienti notebook scelti. PyCaret Prima di utilizzare PyCaret, è necessario eliminare l'UDI e l'ID prodotto del set di dati. data = data.drop(['UDI','Product ID'],axis=1) Usiamo 'pycaret.classification' per impostare con set di dati, target e session_id originali. Dopo averlo fatto, confrontiamo tutti i modelli. Abbiamo notato che il modello Random Forest ha la massima precisione. Allora usiamolo. from pycaret.classification import * #Setup# pyrg = setup (data,target='Failure Type',session_id = 1) #Compare any models" rf = compare_models() Creiamo un modello con rf (Random Forest Classifier). Inoltre, dobbiamo migliorarlo con tune_model. È una funzione che sintonizza automaticamente il modello con gli iperparametri. Dopo averlo realizzato, creiamo grafici per l'analisi del modello. plot_model(rf) plot_model(estimator = rf, plot = 'feature') plot_model(rf, plot = 'confusion_matrix') Abbiamo quasi finito! Finalizziamo il modello e lo prevediamo con il set di dati originale. Leggiamo il dataset finale. Come possiamo vedere, ha aggiunto etichette e punteggi. rf_final = finalize_model(rf) predict_rf = predict_model(rf_final,data) predict_rf.head() Conclusione In questo articolo, abbiamo imparato come analizzare facilmente un set di dati utilizzando l'apprendimento automatico. È meglio usare questo metodo se non conosci gli algoritmi di machine learning.

bottom of page