Uso dei modelli di Machine Learning nelle app di Windows
Questa guida aiuterà gli sviluppatori di app a usare modelli di intelligenza artificiale e Machine Learning (ML) rispondendo a domande comuni, condividendo concetti e risorse di base e offrendo consigli su come usare i modelli di intelligenza artificiale e Machine Learning in un'app di Windows.
Machine Learning (ML) è un ramo di intelligenza artificiale che consente ai computer di apprendere dai dati e prendere stime o decisioni.
I modelli ml sono algoritmi che possono essere sottoposti a training sui dati e quindi distribuiti per eseguire varie attività, ad esempio la generazione di contenuti, il ragionamento sul contenuto, il riconoscimento delle immagini, l'elaborazione del linguaggio naturale, l'analisi del sentiment e molto altro ancora.
Alcuni modi in cui le applicazioni Windows possono sfruttare i modelli di Machine Learning per migliorare le funzionalità e l'esperienza utente, tra cui:
- Le app possono usare modelli di intelligenza artificiale generativa per comprendere argomenti complessi per riepilogare, riscrivere, creare report o espandere.
- Le app possono usare modelli che trasformano contenuto in formato libero in un formato strutturato che l'app può comprendere.
- Le app possono usare modelli di ricerca semantica che consentono agli utenti di cercare contenuto in modo significativo e di trovare rapidamente contenuto correlato.
- Le app possono usare modelli di elaborazione del linguaggio naturale per ragionare sui requisiti complessi del linguaggio naturale e pianificare ed eseguire azioni per eseguire la richiesta dell'utente.
- Le app possono usare modelli di manipolazione delle immagini per modificare in modo intelligente immagini, cancellare o aggiungere soggetti, di alto livello o generare nuovi contenuti.
- Le app possono usare modelli di diagnostica predittiva per identificare e stimare i problemi e guidare l'utente o farlo per loro.
Collabora Windows Copilot Runtime in diversi modi per interagire con il sistema operativo che usano l'intelligenza artificiale. Sono incluse le funzionalità supportate dall'intelligenza artificiale pronte all'uso denominate Windows Copilot Runtime APIs. Per indicazioni su queste funzionalità e API pronte all'uso che supportano gli scenari elencati in precedenza, vedi Introduzione all'uso di API e API basate su intelligenza artificiale nell'app Di Windows.
L'esecuzione Windows Copilot Runtime APIs in locale, direttamente nel dispositivo Windows, anche se è anche possibile scegliere di usare un modello basato sul cloud tramite un'API pronta per l'uso. Indipendentemente dal fatto che eseguano un ambiente locale o nel cloud, queste API estraggono il modello di Machine Learning sottostante in modo che non sia necessario ottimizzare, formattare o ottimizzare.
È tuttavia possibile trovare il proprio modello di Machine Learning da usare in locale in Windows. Potrebbe essere necessario ottimizzare questo modello in modo che venga eseguito correttamente nei dispositivi Windows o ottimizzare un modello in modo che venga sottoposto a training con dati personalizzati specifici del caso d'uso o dell'azienda. Questo articolo illustra alcuni dei concetti, degli strumenti e delle librerie open source per facilitare l'esecuzione di questo processo.
Esecuzione di un modello linguistico di piccole dimensioni in locale rispetto a un modello linguistico di grandi dimensioni nel cloud
I modelli di linguaggio di piccole dimensioni sono progettati per essere compattati ed efficienti, spesso sottoposti a training per attività o domini specifici in set di dati più piccoli per consentire l'archiviazione e l'esecuzione del modello in locale con un tempo di prestazioni di inferenza più rapido. I contratti di servizio sono limitati nella quantità di dati usati per eseguirne il training, non fornendo conoscenze complete o ragionamenti complessi come un modello LLM (Large Language Model). Tuttavia, i contratti di servizio possono offrire un'alternativa più sicura e conveniente alle VM usate in locale perché richiedono meno potenza di calcolo per l'esecuzione e una migliore privacy dei dati, mantenendo le informazioni di chat in modo sicuro sul dispositivo.
I contratti di servizio sono più ideali per l'uso locale perché l'esecuzione di un modello di Machine Learning in un dispositivo significa che le dimensioni non devono superare la capacità di archiviazione ed elaborazione del dispositivo che lo esegue. La maggior parte delle macchine virtuali sarebbe troppo grande per l'esecuzione in locale.
I modelli Microsoft Phi-2 e Phi-3 sono esempi di SMS.
I modelli di linguaggio di grandi dimensioni sono stati sottoposti a training su grandi quantità di dati con un numero maggiore di parametri, rendendoli più complessi e più grandi per l'archiviazione. A causa delle dimensioni, i moduli APM possono essere più in grado di comprendere modelli più sfumati e complessi nei dati, coprendo uno spettro più ampio sulle conoscenze con la possibilità di lavorare con modelli più complessi. Richiedono anche risorse di calcolo più significative sia per il training che per l'inferenza. La maggior parte dei llms non sarebbe in grado di essere eseguita in un dispositivo locale.
I modelli di linguaggio OpenAI GPT-4o, GPT-4 Turbo, GPT-3.5 Turbo, DALL-E e Whisper sono tutti esempi di LLMs.
Per altre indicazioni sulla differenza tra l'uso di un SLM in locale rispetto a un LLM nel cloud, vedere Considerazioni sull'uso di API basate su intelligenza artificiale locali e basate sul cloud nell'app di Windows.
I modelli di Machine Learning open source pronti per l'uso e possono essere personalizzati con i propri dati o preferenze, sono disponibili in un'ampia gamma di posizioni, tra cui alcuni dei più diffusi includono:
- Hugging Face: hub di oltre 10.000 modelli di Machine Learning con training preliminare per l'elaborazione del linguaggio naturale, basato sulla libreria Transformers. È possibile trovare modelli per la classificazione del testo, la risposta alle domande, il riepilogo, la traduzione, la generazione e altro ancora.
- ONNX Model Zoo: raccolta di modelli ML con training preliminare in formato ONNX che coprono un'ampia gamma di domini e attività, ad esempio visione artificiale, elaborazione del linguaggio naturale, riconoscimento vocale e altro ancora.
- Qualcomm AI Hub: piattaforma che fornisce l'accesso a un'ampia gamma di modelli e strumenti di Machine Learning ottimizzati per i dispositivi Qualcomm Eseguion. È possibile trovare modelli per l'elaborazione di immagini, video, audio e sensori, nonché framework, librerie e SDK per la compilazione e la distribuzione di applicazioni ML nei dispositivi mobili. Qualcomm AI Hub offre anche esercitazioni, guide e supporto della community per sviluppatori e ricercatori.
- Hub Pytorch: un repository di modelli con training preliminare progettato per facilitare la riproducibilità della ricerca e consentire la nuova ricerca. Si tratta di un'API semplice e di un flusso di lavoro che fornisce i blocchi predefiniti di base per migliorare la riproducibilità della ricerca di Machine Learning. L'hub PyTorch è costituito da un repository di modelli con training preliminare progettato in modo specifico per facilitare la riproducibilità della ricerca.
- TensorFlow Hub: repository di modelli di Machine Learning con training preliminare e componenti riutilizzabili per TensorFlow, un framework diffuso per la creazione e il training di modelli di Machine Learning. È possibile trovare modelli per l'elaborazione di immagini, testo, video e audio, nonché l'apprendimento e l'ottimizzazione.
- Model Zoo: piattaforma che cura e classifica i migliori modelli di Machine Learning open source per vari framework e attività. È possibile esplorare i modelli per categoria, framework, licenza e valutazione e visualizzare demo, codice e documenti per ogni modello.
Alcune librerie di modelli non devono essere personalizzate e distribuite tramite un'app, ma sono strumenti utili per l'esplorazione pratica e l'individuazione come parte del ciclo di vita di sviluppo, ad esempio:
- Ollama: Ollama è un marketplace di modelli di Machine Learning pronti per l'uso per varie attività, ad esempio il rilevamento dei volti, l'analisi del sentiment o il riconoscimento vocale. È possibile esplorare, testare e integrare i modelli nell'app con pochi clic.
- LM Studio: Lmstudio è uno strumento che consente di creare modelli di Machine Learning personalizzati dai propri dati, usando un'interfaccia di trascinamento della selezione. È possibile scegliere tra diversi algoritmi di Machine Learning, pre-elaborare e visualizzare i dati ed eseguire il training e valutare i modelli.
Ogni volta che si trova un modello di Machine Learning con l'obiettivo di usarlo nell'app Di Windows, è consigliabile seguire le linee guida Sviluppo di applicazioni e funzionalità di intelligenza artificiale generative responsabili in Windows . Queste linee guida consentono di comprendere i criteri di governance, le procedure e i processi, identificare i rischi, consigliare metodi di test, usare misure di sicurezza come moderatori e filtri e chiamare considerazioni specifiche quando si seleziona un modello sicuro e responsabile del lavoro.
Esistono diversi modi per usare i modelli di Machine Learning nelle app di Windows, a seconda del tipo, dell'origine e del formato dei modelli e del tipo di app.
Alcuni dei formati disponibili per i modelli di Machine Learning includono:
ONNX: standard aperto per la rappresentazione e lo scambio di modelli di Machine Learning tra framework e piattaforme diversi. Se si trova un modello ml con training preliminare in formato ONNX, è possibile usare ONNX Runtime (ORT) per caricare ed eseguire il modello nell'app di Windows. ORT consente di accedere alle funzionalità di inferenza accelerata hardware del dispositivo e ottimizzare le prestazioni del modello di Machine Learning. Se si dispone di un modello di Machine Learning con training preliminare in un formato diverso, ad esempio PyTorch o TensorFlow, è possibile convertirlo in ONNX usando uno strumento di ottimizzazione del modello come Olive. Per informazioni sull'uso di Olive, vedere Ottimizzare SLM con Microsoft Olive (Journey Series for Generative AI Application Architecture). Per esercitazioni sulla creazione e l'uso di modelli ONNX, vedere Esercitazioni ONNX su GitHub. Per esempi che illustrano come usare i modelli ONNX in un'app di Windows, vedi la raccolta di esempi di intelligenza artificiale in Windows.
PyTorch: framework open source molto diffuso disponibile con un'interfaccia Python e C++. Questo sarà probabilmente il formato più comune che si troverà per i modelli di Machine Learning. Se si vogliono usare modelli PyTorch ML nell'app Windows (C# o C++) o in un'app Web, è possibile usare TorchSharp e LibTorch, ovvero associazioni .NET e C++ per la libreria PyTorch. TorchSharp e LibTorch consentono di creare, caricare e modificare i tensori, compilare ed eseguire reti neurali e salvare e caricare modelli usando il formato PyTorch. Per esempi, vedere Esempi di TorchSharp, TorchScript per la distribuzione, esempi di PyTorch C++. Per le app Web, vedere Creare un'applicazione Web con ONNX Runtime. Per esempi di come eseguire modelli PyTorch con DirectML, vedere la raccolta di esempi di intelligenza artificiale in Windows.
TensorFlow è un'altra popolare libreria software open source per l'apprendimento automatico e l'intelligenza artificiale usata per creare e distribuire modelli di Machine Learning per varie attività.
API WebNN per le app Web: standard Web per l'accesso all'accelerazione hardware della rete neurale nei browser, in base alle API WebIDL e JavaScript. Consente agli sviluppatori Web di creare ed eseguire modelli di Machine Learning in modo efficiente sul lato client, senza basarsi su servizi cloud o librerie native. Esempi di WebNN in GitHub. Esempi di WebNN che usano ONNX Runtime nella raccolta di esempi di Intelligenza artificiale in Windows.
Ricerca per categorie ottimizzare un modello di Machine Learning con i dati personalizzati da eseguire in Windows?
AI Toolkit per Visual Studio Code è un'estensione di VS Code che consente di scaricare ed eseguire modelli di intelligenza artificiale in locale. L'intelligenza artificiale Tookit può essere utile anche per:
- Test dei modelli in un playground intuitivo o nell'applicazione con un'API REST.
- Ottimizzare il modello di intelligenza artificiale, sia in locale che nel cloud (in una macchina virtuale) per creare nuove competenze, migliorare l'affidabilità delle risposte, impostare il tono e il formato della risposta.
- Ottimizzare i modelli di piccole lingue più diffusi, ad esempio Phi-3 e Mistral.
- Distribuire la funzionalità di intelligenza artificiale nel cloud o con un'applicazione in esecuzione in un dispositivo.
Come è possibile sfruttare l'accelerazione hardware per migliorare le prestazioni con le funzionalità di intelligenza artificiale
DirectML è un'API di basso livello che consente all'hardware del dispositivo Windows di accelerare le prestazioni dei modelli di Machine Learning usando la GPU del dispositivo o la NPU. L'associazione di DirectML a è ONNX Runtime in genere il modo più semplice per gli sviluppatori di implementare l'intelligenza artificiale accelerata dall'hardware agli utenti su larga scala. Altre informazioni: Panoramica di DirectML.