Sapevi che è possibile scaricare dei modelli di IA pre-addestrati e pronti all'uso?
In questo articolo ti elencheremo le principali piattaforme dove potrai scaricare modelli già allenati, cosi' da risparmiare tempo e denaro per il tuo prossimo progetto.
La comunity dell'IA condivide generosamente codice, architetture di modelli e persino modelli addestrati su grandi set di dati. Siamo sulle spalle dei giganti, motivo per cui l'industria sta adottando così ampiamente l'IA. Quando iniziamo un progetto di intelligenza artificiale, tentiamo prima di cercare dei modelli che risolvono parzialmente il nostro problema.
Supponiamo che tu voglia creare un'applicazione di sicurezza che cerchi gli esseri umani in aree riservate. Innanzitutto, controlla se un modello di rilevamento dei pedoni disponibile pubblicamente funziona per te immediatamente. In tal caso, non è necessario addestrare un nuovo modello. In caso contrario, la sperimentazione di modelli disponibili pubblicamente ti darà un'idea di quale architettura scegliere per la messa a punto o il trasferimento dell'apprendimento.
Cosa è un modello pre-addestrato?
Un modello pre-addestrato si riferisce a un modello o a una rete neurale salvata creata da qualcun altro e addestrata su un set di dati di grandi dimensioni per risolvere un problema simile. I team di intelligenza artificiale possono utilizzare un modello pre-addestrato come punto di partenza, invece di creare un modello da zero. Esempi di modelli linguistici pre-addestrati su larga scala di successo sono le rappresentazioni di codificatori bidirezionali di Transformers (BERT) e la serie Generative Pre-trained Transformer (GPT-n).
Perchè usare un modello pre-addestrato?
Sembra che ogni anno i modelli di apprendimento automatico raggiungano una maggiore precisione in tutti i tipi di attività e domini, dalla visione artificiale all'elaborazione del linguaggio naturale (PNL). Per fare ciò, scienziati e ingegneri che lavorano in aziende e istituti di ricerca modificano i modelli architettura, che di solito li rende più complessi e li addestra anche con quantità impressionanti di dati. Ad esempio, l'ultimo modello NLP di OpenAI, GPT-3, ha 175 miliardi di parametri e richiederebbe circa 355 anni per addestrarlo su una singola macchina.
Quindi ammenochè non vuoi lasciare in eredità a un tuo pronipote un modello che ancora dovrà finire il suo addestramento dovrai optare per altre soluzioni :) .
Ma anche addestrare modelli più semplici può essere difficile: ottenere dati sufficienti per ottenere una buona prestazione è solitamente una grande sfida. Ciò rende molto difficile, se non impossibile, per gli individui e anche le piccole aziende utilizzare questi modelli ML se devono addestrarli da zero.
Fortunatamente, possiamo risolvere questo problema utilizzando modelli pre-addestrati.
Migliori siti per scaricare modelli pre-addestrati :
La missione di Papers With Code è creare una risorsa gratuita e aperta con documenti, codice, set di dati, metodi e tabelle di valutazione di Machine Learning.
La piattaforma viene aggiornata regolarmente con gli ultimi documenti e risorse sulla visione artificiale e altri sottocampi dell'IA.
1.1 Utilizzare i filtri per restringere i risultati di ricerca
Con un ampio catalogo di attività di Machine Learning con centinaia di documenti di ricerca e implementazioni di codice, avrai un mare di informazioni da vagliare, ma le ponderate funzionalità di filtro disponibili sulla piattaforma vengono in soccorso.
1.2 Parametri di riferimento
Per un'attività particolare, puoi visualizzare tutti i modelli all'avanguardia che funzionano meglio sui benchmark più diffusi per quell'attività. Inoltre, puoi scegliere di visualizzare gli invii in base al numero di voti positivi ricevuti dalla community sotto forma di stelle.
1.3 Set di dati
Oltre a questo, Papers with Code ha anche una raccolta di popolari dataset pubblici disponibili in un'unica posizione.
Utilizzando Papers With Code, puoi confrontare un gran numero di soluzioni per trovare quella che fa per te.
2. ModelZoo.co
Creato da Jing Yu Koh, un ingegnere ricercatore di Google, Model Zoo cura e fornisce una piattaforma per i ricercatori di deep learning per trovare rapidamente modelli pre-addestrati per varie piattaforme e attività.
Il sito viene aggiornato regolarmente e fornisce funzionalità di filtraggio per trovare i modelli adatti in base al framework di machine learning che prevedi di utilizzare o alla categoria dell'attività in questione.
Le due categorie più utili per noi sono
Visione computerizzata
Modelli generativi
Il toolkit Open Model Zoo for OpenVINO™ offre un'ampia varietà di modelli di deep learning pre-addestrati gratuiti e altamente ottimizzati che funzionano a una velocità incredibile su CPU, GPU e VPU Intel.
Questo repository contiene oltre 200 modelli di rete neurale per attività tra cui rilevamento di oggetti, classificazione, segmentazione delle immagini, riconoscimento della grafia, sintesi vocale, stima della posa e altro.
Ci sono due tipi di modelli.
Modelli pre-addestrati di Intel : il team di Intel ha addestrato questi modelli e li ha ottimizzati per l'esecuzione con OpenVINO.
Modelli pubblici pre-addestrati : questi sono modelli creati dalla comunità di intelligenza artificiale e possono essere facilmente convertiti in formato OpenVINO utilizzando OpenVINO Model Optimizer.
Controlla sempre la pagina di supporto del dispositivo per assicurarti che il modello sia compatibile con il dispositivo su cui desideri eseguirlo. Dai un'occhiata alla nostra serie su OpenVINO per conoscere i dettagli.
L'Open Model Zoo ospita anche un carico di applicazioni demo con istruzioni per eseguirle. Puoi utilizzare queste applicazioni come modello per creare le tue applicazioni. Puoi anche utilizzare Model Analyzer per ottenere maggiori informazioni su un modello come consumo di memoria, scarsità, Gflop e così via. Tieni presente che Model Analyzer funziona solo con modelli in formato IR (Intermediate Representation) .
E se sei nuovo con OpenVino Toolkit, potrebbe valere la pena dare un'occhiata al repository openvinotoolkit/openvino_notebooks . Contiene taccuini jupyter pronti per l'uso per aiutarti ad aggiornarti su come lavorare con il toolkit OpenVino e i modelli disponibili nello zoo.
Inoltre, fornisce anche strumenti per eseguire attività sul modello, come download, conversione e quantizzazione.
TensorFlow è una piattaforma open source end-to-end per Machine Learning e probabilmente il framework ML più popolare.
Il TensorFlow Model Garden è un repository contenente molti modelli SOTA (state-of-the-art). Ci sono tre tipi di modelli.
Ufficiale : i modelli di questa collezione vengono mantenuti, testati e aggiornati con l'ultima API TensorFlow.
Ricerca : i modelli in questa raccolta possono utilizzare Tensorflow 1 o 2 e sono mantenuti dai ricercatori.
Comunità : questa è una raccolta di collegamenti a modelli gestiti dalla comunità.
Lo scopo di questo repository è fornire gli elementi costitutivi per addestrare i propri modelli basandosi sulle configurazioni predefinite, sui set di dati e sulla messa a punto dei checkpoint dei modelli disponibili.
Per aiutarti a riprodurre i risultati dell'allenamento, sono stati forniti anche i registri dell'allenamento per i modelli disponibili.
Gli utenti di TensorFlow possono sfruttare i modelli forniti e trattarli come riferimenti per addestrare il proprio modello o perfezionare i modelli dai checkpoint disponibili.
5. TensorFlow Hub
Dalla classificazione delle immagini, agli incorporamenti di testo, al riconoscimento di azioni audio e video, TensorFlow Hub è uno spazio in cui è possibile sfogliare modelli e set di dati addestrati dall'intero ecosistema TensorFlow.
A differenza di TensorFlow Model Garden, i modelli disponibili su TensorFlow Hub sono pronti per l'uso e destinati ad essere utilizzati come scatole nere con ingressi e uscite impostati. Se riesci a trovare un modello adatto alle tue esigenze, puoi usarlo!
Puoi scoprire e scaricare centinaia di modelli di machine learning preparati per la distribuzione e addestrati pubblicati da risorse rinomate.
Tutti i dettagli sulla distribuzione vengono forniti per i modelli come i formati di input e output, il set di dati utilizzato e le metriche delle prestazioni previste per aiutarti a scegliere i modelli migliori per le tue attività. Per alcuni modelli sono disponibili anche quaderni di esempio ed esperienze Web interattive per semplificare il lavoro.
I formati comuni dei modelli disponibili sono i formati SavedModel, TFLite o TF.js che possono essere implementati direttamente nel codice dalla loro libreria tensorflow_hub disponibile . Ti consente di scaricare e utilizzare i modelli disponibili da TensorFlow Hub nel tuo programma TensorFlow con una quantità minima di codice.
TensorFlow Hub è aperto ai contributi della community, quindi possiamo essere certi che la raccolta di modelli è destinata a crescere e che saranno disponibili altri modelli a nostra disposizione.
MediaPipe è un framework di Machine Learning open source e multipiattaforma sviluppato dai ricercatori di Google. Fornisce soluzioni ML personalizzabili.
Sebbene il progetto Mediapipe sia ancora nella fase Alpha, le sue soluzioni sono già state implementate in molte applicazioni quotidiane che utilizziamo. Le "foto in movimento" di Google e la funzione "sfocatura della privacy" di Youtube sono esempi di questo tipo.
Oltre a prestazioni leggere e incredibilmente veloci, MediaPipe supporta la compatibilità multipiattaforma. L'idea è quella di costruire un modello ML una volta e distribuirlo su piattaforme e dispositivi diversi con risultati riproducibili. Supporta piattaforme Python, C, Javascript, Android e IOS.
La collezione Medipipe Models fornisce modelli di percezione pronti all'uso per diversi compiti, ad esempio :
Le soluzioni più popolari disponibili sono Face mesh (modello face landmark), Pose Detection , Hair Segmentation , KNIFT (feature matching), ecc.
Per ciascuno dei modelli disponibili vengono fornite schede modello, contenenti tutti i dettagli relativi a quel modello.
Mediapipe fornisce anche un visualizzatore di modelli disponibile online, che aiuta a comprendere il comportamento generale delle loro pipeline di inferenza di machine learning. Di seguito è riportata la struttura del grafico del modello Face Detection disponibile.
Con le prestazioni Fast e la compatibilità hardware che offre, Mediapipe può essere una buona soluzione per la maggior parte delle soluzioni di visione in tempo reale.
La libreria CoreML di Apple consente agli sviluppatori iOS, macOS, tvOS o watchOS di creare applicazioni divertenti ed entusiasmanti che sfruttano i poteri dell'IA. È in circolazione da iOS 11 ed è incorporato in molte delle applicazioni imminenti in una forma o nell'altra.
Il repository Awesome-CoreML-Models contiene una raccolta di modelli di machine learning supportati dalla libreria CoreML di Apple. I modelli sono disponibili nel formato CoreML e non richiedono post-elaborazione o conversione in un'applicazione basata su CoreML.
Oltre ai modelli disponibili, il numero di formati di modello può essere convertito nel formato coreML. I formati supportati includono Tensorflow, Caffe, Keras, XGBoost, Scikit-learn, MXNet, LibSVM, Torch7, ecc.
Jetson, la scheda informatica incorporata di Nvidia, è una scelta popolare nella comunità della piattaforma embedded per l'implementazione di applicazioni di intelligenza artificiale. Jetson può eseguire varie reti avanzate, comprese le versioni native complete di framework ML popolari come TensorFlow, PyTorch, Caffe/Caffe2, Keras, MXNet e altri.
Jetson Model Zoo contiene vari modelli DNN per l'inferenza su Nvidia Jetson con supporto per TensorRT . Include i collegamenti agli esempi di codice con il modello e l'origine originale del modello.
Lo zoo del modello offre anche una panoramica dei benchmark di inferenza di diversi modelli testati su Nvidia Jetson rispetto ad altre schede di sviluppo integrate popolari come Raspberry Pi, Intel Neural Compute Stick e Google Edge TPU Dev Board.
Considerando che Jetson è una delle piattaforme integrate più potenti, Jetson Model Zoo è una buona risorsa per la distribuzione di qualsiasi applicazione incorporata.
Il PINTO Model Zoo è stato creato da Katsuya Hyodo, un programmatore e membro del programma Intel Software Innovator. È un repository che condivide i risultati di ottimizzazione dei modelli addestrati generati da Tensorflow.
Lo zoo contiene un'enorme quantità di 252 modelli ottimizzati che coprono un'ampia gamma di domini di apprendimento automatico.
I modelli forniti sono stati ottimizzati utilizzando varie tecniche come la quantizzazione post-allenamento (quantizzazione del peso, quantizzazione intera, quantizzazione intera intera, quantizzazione Float16) e training consapevole della quantizzazione.
I modelli sono disponibili per molte piattaforme diverse come TensorFlow Lite, OpenVINO, CoreML, TensorFlow.js, TF-TRT, MediaPipe, ONNX. Pinto Model Zoo è la risorsa ideale se desideri versioni ottimizzate dei più diffusi modelli ML.
10. ONNX Model Zoo
L' ONNX Model Zoo è una raccolta di modelli pre-addestrati e all'avanguardia nel formato ONNX. Open Neural Network Exchange (ONNX) è un formato standard aperto per rappresentare i modelli di apprendimento automatico forniti dai membri della comunità.
Offre il vantaggio dell'interoperabilità e consente di utilizzare il framework preferito con il motore di inferenza scelto. Puoi pensarlo come un linguaggio comune di modelli per tutti i framework ML popolari per parlare tra loro.
Contiene modelli per una serie di attività diverse in diversi domini: Vision
Classificazione delle immagini
Rilevamento di oggetti e segmentazione dell'immagine
Analisi del corpo, del viso e dei gesti
Manipolazione dell'immagine
Lingua
Comprensione della macchina
Traduzione automatica
Modellazione del linguaggio
Altro
Risposte alle domande visive e dialogo
Elaborazione vocale e audio
Altri modelli interessanti
Ad accompagnare ogni modello ci sono i notebook Jupyter per l'addestramento del modello e l'esecuzione dell'inferenza con il modello addestrato. I taccuini sono scritti in Python e includono collegamenti al set di dati di addestramento e riferimenti al documento originale che descrive l'architettura del modello.
11. Modelplace.AI
Modelplace.AI è un mercato per modelli di apprendimento automatico e una piattaforma per la comunità per condividere i propri modelli personalizzati. Ha una collezione crescente di modelli per varie attività di visione artificiale, che si tratti di classificazione, rilevamento di oggetti, stima della posa, segmentazione o rilevamento del testo.
11.1 Interfaccia Web per provare i modelli senza scaricarli
Un fattore significativo che distingue Modelplace.AI dagli altri repository di modelli è che puoi utilizzare la loro interfaccia web per provare il modello di tuo gradimento con le tue immagini personalizzate. Puoi anche confrontare modelli che svolgono attività simili tra loro su benchmark standard .
11.2 API cloud
Modelplace.AI fornisce una comoda API Cloud che puoi utilizzare nella tua applicazione desktop, mobile o edge.
11.3 Importa il modello con Python
In alternativa, puoi scegliere di scaricare la versione ottimizzata di quel modello a seconda della piattaforma su cui desideri implementarlo. Per l'ambiente Python, impacchettano i modelli come un file ruota Python in modo da poter far funzionare il modello rapidamente con solo poche righe di codice.
Conclusione sui modelli di intelligenza artificiale pre-addestrati
Come avrai notato, la maggior parte di questi siti ti reindirizza ai repository github. E Github è, in effetti, il più grande repository di modelli pre-addestrati che puoi trovare. Ciò significa che puoi sempre cercare modelli pre-addestrati su Github e potresti trovare molte opzioni tra cui scegliere.
Ovviamente puoi trovare anche molti altri siti ma la qualità dei modelli non è garantita. Il valore aggiunto dei precedenti siti Web è che hanno già effettuato una selezione dei repository Github, quindi se decidi di cercare direttamente in Github, dovrai essere paziente per trovare quello che stai cercando. Come consiglio, controlla sempre la data dell'ultimo commit nel progetto per vedere quanto è ben mantenuto il progetto e controlla anche la licenza con cui è stato pubblicato il progetto.
Inizia a sfruttare queste risorse ogni volta che avvii un progetto di Intelligenza Artificiale e controlla se esiste un modello simile che puoi utilizzare o su cui puoi costruire, invece di addestrare i tuoi modelli da zero per accelerare il processo di sviluppo e distribuzione.
Comments