Condividi tramite


Usare i modelli di Machine Learning nell'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.

In che modo le applicazioni Windows possono sfruttare i modelli di Machine Learning?

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.

Modelli di Machine Learning nelle API basate su intelligenza artificiale

Collabora Windows Copilot Runtime in diversi modi per interagire con il sistema operativo che usano l'intelligenza artificiale. Sono incluse le funzionalità e le API basate su intelligenza artificiale pronte per l'uso Windows Copilot Library, denominate . Vedi Introduzione all'uso delle API basate su intelligenza artificiale nell'app di Windows per indicazioni su queste funzionalità e API pronte all'uso che supportano alcuni degli scenari elencati in precedenza.

I Windows Copilot Library modelli vengono eseguiti localmente, 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.

Trovare modelli di Machine Learning open source sul Web

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.

Ricerca per categorie ottimizzare un modello di Machine Learning da eseguire in Windows?

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:

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.