Generali
Come è possibile integrare l'intelligenza artificiale nell'app client Windows?
L'integrazione dell'intelligenza artificiale nell'applicazione Windows può essere ottenuta tramite due metodi principali: un modello locale o un modello basato sul cloud. Per l'opzione del modello locale, è possibile usare un modello preesistente o eseguire il training usando piattaforme come TensorFlow o PyTorch e quindi incorporarlo nell'applicazione tramite OnnxRuntime. Windows Copilot Runtime offre API per varie funzioni, tra cui OCR o l'uso del modello Phi Silica. D'altra parte, l'hosting del modello nel cloud e l'accesso tramite un'API REST consente all'applicazione di rimanere semplificata delegando attività a elevato utilizzo di risorse al cloud. Per altre informazioni, vedere Usare i modelli di Machine Learning nell'app Di Windows.
Quali linguaggi di programmazione sono ideali per lo sviluppo di intelligenza artificiale nelle app client Windows?
È possibile usare qualsiasi linguaggio di programmazione preferito. Ad esempio, C# è ampiamente usato per la creazione di app client Windows. Se è necessario un maggiore controllo sui dettagli di basso livello, C++ è un'ottima opzione. In alternativa, è possibile prendere in considerazione l'uso di Python. È anche possibile usare il sottosistema Windows per Linux (WSL) per eseguire strumenti di intelligenza artificiale basati su Linux in Windows.
Quali sono i migliori framework di intelligenza artificiale per le app client Windows?
È consigliabile usare OnnxRuntime.
Come gestire la privacy e la sicurezza dei dati quando si usa l'intelligenza artificiale nelle app client Windows?
Rispettare la privacy e la sicurezza dei dati degli utenti è essenziale quando si sviluppano app basate sull'intelligenza artificiale. È consigliabile seguire le procedure consigliate per la gestione dei dati, ad esempio la crittografia dei dati sensibili, l'uso di connessioni sicure e il recupero del consenso dell'utente prima della raccolta dei dati. È anche consigliabile essere trasparenti sul modo in cui si usano i dati e concedere agli utenti il controllo sui dati. Assicurarsi di leggere anche Sviluppo di applicazioni e funzionalità di intelligenza artificiale generative responsabili in Windows .
Quali sono i requisiti di sistema per l'esecuzione dell'intelligenza artificiale nelle app client Windows?
I requisiti di sistema per le app di Windows che usano l'intelligenza artificiale dipendono dalla complessità del modello di intelligenza artificiale e dall'accelerazione hardware usata. Per i modelli semplici, una CPU moderna può essere sufficiente, ma per modelli più complessi potrebbe essere necessaria una GPU o una NPU. È anche consigliabile considerare i requisiti di memoria e archiviazione dell'app, nonché la larghezza di banda di rete necessaria per i servizi di intelligenza artificiale basati sul cloud.
Come ottimizzare le prestazioni di intelligenza artificiale nelle app client Windows?
Per ottimizzare le prestazioni di intelligenza artificiale nelle app di Windows, è consigliabile usare l'accelerazione hardware, ad esempio GPU o NPU, per velocizzare l'inferenza del modello. I portatili Windows Copilot+ sono ottimizzati per i carichi di lavoro di intelligenza artificiale e possono offrire un miglioramento significativo delle prestazioni per le attività di intelligenza artificiale. Vedere anche Panoramica di AI Toolkit per Visual Studio Code.
È possibile usare modelli di intelligenza artificiale con training preliminare nell'app client Windows?
Sì, è possibile usare modelli di intelligenza artificiale con training preliminare nell'app di Windows. È possibile scaricare modelli con training preliminare da Internet o usare un servizio di intelligenza artificiale basato sul cloud per accedere ai modelli con training preliminare. È quindi possibile integrare questi modelli nell'app usando un framework come OnnxRuntime.
Che cos'è DirectML?
DirectML è un'API di basso livello per l'apprendimento automatico che fornisce l'accelerazione GPU per attività comuni di Machine Learning in un'ampia gamma di driver e hardware supportati, incluse tutte le GPU con supporto per DirectX 12 provenienti da fornitori come AMD, Intel, NVIDIA e Qualcomm.
Cos'è ONNX?
Open Network Neural Exchange o ONNX è un formato standard aperto per rappresentare i modelli di Machine Learning. I framework di modelli di Machine Learning più diffusi, ad esempio PyTorch, TensorFlow, SciKit-Learn, Keras, Chainer, MATLAB e così via, possono essere esportati o convertiti nel formato ONNX standard. Una volta in formato ONNX, il modello può essere eseguito su un'ampia gamma di piattaforme e dispositivi. ONNX è utile per l'uso di un modello di Machine Learning in un formato diverso da quello su cui è stato eseguito il training.
Che cos'è ORT?
OnnxRuntime, o ORT, è uno strumento di runtime unificato per l'esecuzione di modelli in framework diversi (PyTorch, TensorFlow e così via) che supporta acceleratori hardware (CPU del dispositivo, GPU o NPU).
In che modo ONNX differisce da altri framework ml, ad esempio PyTorch o TensorFlow?
PyTorch e TensorFlow vengono usati per lo sviluppo, il training e l'esecuzione di modelli di Deep Learning usati nelle applicazioni di intelligenza artificiale. PyTorch viene spesso usato per la ricerca, TensorFlow viene spesso usato per la distribuzione del settore e ONNX è un formato di scambio di modelli standardizzato che consente di colmare il divario, consentendo di passare tra framework in base alle esigenze e compatibili tra piattaforme.
Che cos'è una NPU? Qual è la differenza tra CPU o GPU?
Un'unità di elaborazione neurale, o NPU, è un chip di intelligenza artificiale dedicato progettato appositamente per eseguire attività di intelligenza artificiale. Lo stato attivo di una NPU è diverso da quello di una CPU o di una GPU. Un'unità di elaborazione centrale, o CPU, è il processore principale in un computer, responsabile dell'esecuzione di istruzioni e calcoli per utilizzo generico. Un'unità di elaborazione grafica, o GPU, è un processore specializzato progettato per il rendering della grafica e ottimizzato per l'elaborazione parallela. È in grado di eseguire il rendering di immagini complesse per le attività di modifica e gioco di video.
I criteri di rete sono progettati per accelerare gli algoritmi di Deep Learning e possono rimuovere parte del lavoro dalla CPU o dalla GPU di un computer, in modo che il dispositivo possa funzionare in modo più efficiente. I criteri di rete sono creati appositamente per accelerare le attività di rete neurale. Eccelle nell'elaborazione di grandi quantità di dati in parallelo, rendendoli ideali per attività comuni di intelligenza artificiale come il riconoscimento delle immagini o l'elaborazione del linguaggio naturale. Ad esempio, durante un'attività di riconoscimento delle immagini, l'NPU può essere responsabile del rilevamento degli oggetti o dell'accelerazione dell'immagine, mentre la GPU assume la responsabilità del rendering delle immagini.
Come è possibile scoprire quale tipo di CPU, GPU o NPU ha il dispositivo?
Per controllare il tipo di CPU, GPU o NPU nel dispositivo Windows e le relative prestazioni, aprire Gestione attività (CTRL + ALT + Elimina), quindi selezionare la scheda Prestazioni e sarà possibile visualizzare cpu, memoria, Wi-Fi, GPU e/o NPU elencate, insieme a informazioni sulla velocità, sulla frequenza di utilizzo e su altri dati.
Che cos'è WinML?
WinML o Windows Machine Learning è un'API di alto livello per la distribuzione di modelli di Machine Learning (ML) con accelerazione hardware nei dispositivi Windows che consentono agli sviluppatori di usare le funzionalità del dispositivo per eseguire l'inferenza del modello. Lo stato attivo riguarda il caricamento, l'associazione e la valutazione del modello. WinML usa il formato del modello ONNX.
Concetti utili relativi all'intelligenza artificiale
Che cos'è un modello di linguaggio di grandi dimensioni (LLM)?
Un LLM è un tipo di modello di Machine Learning (ML) noto per la possibilità di ottenere la generazione e la comprensione del linguaggio per utilizzo generico. I llms sono reti neurali artificiali che acquisiscono funzionalità imparando relazioni statistiche da grandi quantità di documenti di testo durante un processo di training auto-supervisionato e semi-supervisionato a elevato utilizzo di calcolo. I llms vengono spesso usati per la generazione di testo, una forma di intelligenza artificiale generativa che, data parte del testo di input, genera parole (o "token") che probabilmente creano frasi coerenti e contestualmente pertinenti in cambio. Esistono anche modelli di linguaggio piccoli che hanno meno parametri e capacità più limitata, ma possono essere più efficienti (che richiedono meno risorse di calcolo), convenienti e ideali per domini specifici.
Che cos'è il training del modello di Machine Learning?
In Machine Learning il training dei modelli implica l'inserimento di un set di dati in un modello (LLM o SLM), consentendogli di apprendere dai dati in modo che il modello possa prendere stime o decisioni in base a tali dati, riconoscendo i modelli. Può anche comportare la modifica iterativa dei parametri del modello per ottimizzare le prestazioni.
Che cos'è l'inferenza?
Il processo di utilizzo di un modello di Machine Learning sottoposto a training per eseguire stime o classificazioni su nuovi dati non visualizzati è denominato "Inferenza". Dopo aver eseguito il training di un modello linguistico su un set di dati, apprendere i modelli e le relazioni sottostanti, è pronto per applicare queste conoscenze agli scenari reali. L'inferenza è il momento della verità di un modello di intelligenza artificiale, un test del grado di applicazione delle informazioni apprese durante il training per eseguire una stima o risolvere un'attività. Il processo di utilizzo di un modello esistente per l'inferenza è diverso dalla fase di training, che richiede l'uso dei dati di training e convalida per sviluppare il modello e ottimizzare i parametri.
Che cos'è l'ottimizzazione del modello di Machine Learning?
L'ottimizzazione è un passaggio fondamentale dell'apprendimento automatico in cui un modello con training preliminare viene adattato per eseguire un'attività specifica. Anziché eseguire il training di un modello da zero, l'ottimizzazione inizia con un modello esistente (in genere sottoposto a training su un set di dati di grandi dimensioni) e modifica i parametri usando un set di dati specifico dell'attività più piccolo. Grazie all'ottimizzazione, il modello apprende funzionalità specifiche delle attività mantenendo al tempo stesso le conoscenze generali acquisite durante il pre-training, con conseguente miglioramento delle prestazioni per applicazioni specifiche.
Che cos'è la progettazione delle richieste?
La progettazione dei prompt è un approccio strategico usato con l'intelligenza artificiale generativa per modellare il comportamento e le risposte di un modello linguistico. Implica la creazione ponderata di richieste o query di input per ottenere il risultato desiderato da un modello linguistico (ad esempio GPT-3 o GPT-4). Progettando un prompt efficace, è possibile guidare un modello di Machine Learning per produrre il tipo di risposta desiderato. Le tecniche includono la regolazione della parola, la specifica del contesto o l'uso di codici di controllo per influenzare l'output del modello.
Che cos'è l'accelerazione hardware (per quanto riguarda il training del modello di Machine Learning)?
L'accelerazione hardware si riferisce all'uso di hardware computer specializzato progettato per velocizzare le applicazioni di intelligenza artificiale oltre a ciò che è possibile ottenere con CPU per utilizzo generico. L'accelerazione hardware migliora la velocità, l'efficienza energetica e le prestazioni complessive delle attività di Machine Learning, ad esempio i modelli di training, l'esecuzione di stime o l'offload del calcolo in componenti hardware dedicati che eccelleno nell'elaborazione parallela per carichi di lavoro di Deep Learning. GPU e NPU sono entrambi esempi di acceleratori hardware.
Quali sono le differenze tra un Scienziato dei dati, ml engineer e uno sviluppatore di app che vogliono applicare le funzionalità di intelligenza artificiale nella propria app?
Il processo di creazione e uso di modelli di Machine Learning prevede tre ruoli principali: Scienziato dei dati: responsabile della definizione del problema, della raccolta e dell'analisi dei dati, della scelta e del training dell'algoritmo di Machine Learning e della valutazione e dell'interpretazione dei risultati. Usano strumenti come Python, R, Jupyter Notebook, TensorFlow, PyTorch e scikit-learn per eseguire queste attività. Machine Learning Engineers: responsabile della distribuzione, del monitoraggio e della gestione dei modelli di Machine Learning negli ambienti di produzione. Usano strumenti come Docker, Kubernetes, Azure ML, AWS SageMaker e Google Cloud AI Platform per garantire scalabilità, affidabilità e sicurezza dei modelli di Machine Learning. Sviluppatori di app: responsabile dell'integrazione dei modelli di Machine Learning nella logica dell'app, nell'interfaccia utente e nell'esperienza utente. Usano strumenti come Windows Copilot Runtime, OnnxRuntime o API REST ed elaborano l'input dell'utente e l'output del modello. Ogni ruolo comporta responsabilità e competenze diverse, ma è necessaria la collaborazione e la comunicazione tra questi ruoli per ottenere i migliori risultati. A seconda delle dimensioni e della complessità del progetto, questi ruoli possono essere eseguiti dalla stessa persona o da team diversi.