Zona di atterraggio leggera di AI generativa di Azure

Azure's lightweight generative AI landing zone

L’IA è attualmente molto in voga e alcuni prodotti ne fanno un uso eccessivo, tuttavia molte aziende e prodotti stanno automatizzando i loro processi utilizzando questa tecnologia. Nell’articolo, scopriremo i prodotti di intelligenza artificiale e creeremo una zona di atterraggio per l’IA. Vediamo le prime 3 aziende che traggono vantaggio dall’utilizzo dell’IA.

Github Copilot

L’obiettivo principale di Github Copilot è aiutare i programmatori fornendo suggerimenti di codice e completando automaticamente righe o blocchi di codice durante la scrittura. Analizzando intelligentemente il contesto e il codice esistente, accelera il processo di codifica e migliora la produttività degli sviluppatori. Diventa un prezioso compagno per gli sviluppatori durante il loro percorso di codifica, in grado di supportare vari linguaggi di programmazione e comprendere i modelli di codice.

Neuraltext

Neuraltext si impegna a coprire l’intero flusso di lavoro dei contenuti, comprendendo tutto, dalla generazione di idee all’esecuzione, tutto alimentato dall’IA. È uno strumento di copywriting basato sull’IA, contenuti SEO e ricerca delle parole chiave. Sfruttando le capacità di copywriting dell’IA, è possibile produrre facilmente testi persuasivi per le proprie campagne, generando numerose varianti. Con una vasta collezione di oltre 50 modelli predefiniti per vari scopi, come annunci su Facebook, idee per slogan, sezioni del blog e altro ancora, Neuraltext semplifica il processo di creazione dei contenuti.

Motum

Motum è il sistema operativo intelligente per la gestione operativa della flotta. Dispone di un riconoscimento dei danni che utilizza la visione artificiale e algoritmi di apprendimento automatico per rilevare e valutare automaticamente i danni ai veicoli. Analizzando le immagini dei veicoli, il sistema di intelligenza artificiale può identificare con precisione rigature, graffi, crepe e altri tipi di danni. Questa tecnologia semplifica il processo di ispezione per le richieste di assicurazione, le officine di carrozzeria e le perizie dei veicoli, risparmiando tempo e migliorando l’accuratezza nella valutazione dell’entità dei danni.

Cos’è una zona di atterraggio del cloud?

La zona di atterraggio dell’IA nel cloud è una struttura che include servizi cloud fondamentali, strumenti e infrastrutture che costituiscono la base per lo sviluppo e la distribuzione di soluzioni di intelligenza artificiale (IA).

Quali servizi di IA sono inclusi nella zona di atterraggio?

Azure AI Landing zone include i seguenti servizi di IA:

  • Azure Open AI – Fornisce modelli e API di IA predefiniti per compiti come il riconoscimento delle immagini, l’elaborazione del linguaggio naturale e l’analisi del sentimento, semplificando l’inclusione di funzionalità di IA per gli sviluppatori; i servizi di AI di Azure includono anche strumenti di apprendimento automatico e framework per la creazione di modelli personalizzati e l’analisi dei dati.
  • Azure AI Services – Un servizio che consente alle organizzazioni di creare esperienze più coinvolgenti, personalizzate e intelligenti per i propri utenti, guidando l’innovazione e l’efficienza in vari settori; gli sviluppatori possono sfruttare queste API predefinite per aggiungere funzionalità intelligenti alle proprie applicazioni, come il riconoscimento facciale, la comprensione del linguaggio e l’analisi del sentimento, senza una vasta esperienza in materia di IA.
  • Azure Bot Services – Questa è una piattaforma fornita da Microsoft Azure ed è parte dei servizi di IA. Consente agli sviluppatori di creare chatbot e agenti conversazionali per interagire con gli utenti attraverso vari canali, come chat web, Microsoft Teams, Skype, Telegram e altre piattaforme.

Architettura

Abbiamo iniziato ad integrare e distribuire la zona di atterraggio dell’IA di Azure nel nostro ambiente. Tre caselle logiche separano la zona di atterraggio dell’IA:

  • Pipeline di Azure DevOps
  • Moduli e ambienti di Terraform
  • Risorse che vengono distribuite nelle sottoscrizioni di Azure

Possiamo vederlo nel diagramma sottostante.

Figura 1: Architettura della zona di atterraggio dell’IA (autore: Boris Zaikin)

L’architettura contiene pipeline YAML di CI/CD e moduli Terraform per ogni sottoscrizione di Azure.

Contiene due file YAML:

  • tf-provision-ci.yaml è la pipeline principale basata su stage. Riutilizza la pipeline tf-provision-ci.jobs.yaml per ogni ambiente.
  • tf-provision-ci.jobs.yaml contiene il flusso di lavoro per distribuire i moduli Terraform.

tf-provision-ci.yaml – Contiene la configurazione principale, le variabili e gli stage: Dev, Test e Prod; La pipeline riutilizza il file tf-provision-ci.jobs.yaml in ogni stage fornendo parametri diversi.

Dopo aver aggiunto ed eseguito la pipeline in Azure DevOps, possiamo vedere la seguente struttura di staging.

Figura 2: Interfaccia delle fasi di Azure DevOps

Azure DevOps riconosce automaticamente le fasi nella pipeline YAML principale e fornisce un’interfaccia adeguata.

Andiamo a dare un’occhiata a tf-provision-ci.jobs.yaml.

tf-provision-ci.jobs.yaml – Contiene le attività di Terraform, incluse init, show, validate, plan e apply. Di seguito, possiamo vedere il processo di esecuzione.

Figura 3: Azure DevOps Landing Zone Deployment UI

Come possiamo vedere, l’esecuzione di tutte le pipeline viene completata con successo e ogni attività fornisce informazioni dettagliate sugli errori di stato, configurazione e validazione.

Inoltre, non dobbiamo dimenticare di compilare il modulo di richiesta di accesso. Ci vogliono un paio di giorni per ricevere una risposta. Altrimenti, la pipeline fallirà con un messaggio di errore sulla quota.

Script e Moduli Terraform

Utilizzando Terraform, possiamo incapsulare il codice all’interno di un modulo Terraform, consentendo il suo riutilizzo in diverse sezioni del nostro codice. Questo elimina la necessità di duplicare e replicare lo stesso codice in più ambienti, come staging e produzione. Invece, entrambi gli ambienti possono utilizzare il codice da un modulo condiviso, promuovendo il riutilizzo del codice e riducendo la ridondanza.

Un modulo Terraform può essere definito come una raccolta di file di configurazione Terraform organizzati all’interno di una cartella. Tecnicamente, tutte le configurazioni che hai scritto finora possono essere considerate moduli, anche se potrebbero non essere complessi o riutilizzabili. Quando si effettua il deploy diretto di un modulo eseguendo “apply” su di esso, viene chiamato modulo radice. Tuttavia, per esplorare veramente le capacità dei moduli, è necessario creare moduli riutilizzabili destinati all’utilizzo all’interno di altri moduli. Questi moduli riutilizzabili offrono maggiore flessibilità e possono migliorare significativamente i tuoi deployment di infrastrutture Terraform. Diamo un’occhiata alla struttura del progetto qui sotto.

Figura 4: Struttura del Progetto Terraform con Moduli

L’immagine sopra mostra che tutte le risorse sono collocate in una directory Modulo. Ogni Ambiente ha la sua directory, file terraform di indice e variabili in cui tutte le risorse vengono riutilizzate in un file index.tf con diversi parametri che si trovano nei file di variabili.

Posizioneremo tutte le risorse in un file separato nel modulo e tutti i valori verranno inseriti nelle variabili Terraform. Ciò consente di gestire il codice rapidamente e riduce i valori codificati rigidamente. Inoltre, la granularità delle risorse consente un lavoro di squadra organizzato con GIT o un altro controllo delle versioni (meno conflitti di merge).

Andiamo a dare un’occhiata al modulo open-ai tf.

I parametri essenziali di Open AI sono elencati di seguito:

  • prefix: Imposta un prefisso per tutte le risorse di Azure
  • domain: Specifica la parte del dominio del nome host utilizzata per esporre il chatbot tramite l’Ingress Controller
  • subdomain: Definisce la parte del sottodominio del nome host utilizzata per esporre il chatbot tramite l’Ingress Controller
  • namespace: Specifica il namespace dell’applicazione di carico di lavoro che accede al servizio Azure OpenAI
  • service_account_name: Specifica il nome del service account utilizzato dall’applicazione di carico di lavoro per accedere al servizio Azure OpenAI
  • vm_enabled: Un valore booleano che determina se distribuire una macchina virtuale nella stessa rete virtuale del cluster AKS
  • location: Specifica la regione (ad esempio, westeurope) per il deployment delle risorse di Azure
  • admin_group_object_ids: Il parametro array contiene l’elenco degli ID oggetto del gruppo di Azure AD con accesso al ruolo di amministratore al cluster.

Dobbiamo prestare attenzione ai parametri di sottodominio. I servizi cognitivi di Azure utilizzano nomi di sottodomini personalizzati per ogni risorsa creata tramite strumenti Azure come il portale Azure, Azure Cloud Shell, Azure CLI, Bicep, Azure Resource Manager (ARM) o Terraform. Questi nomi di sottodominio personalizzati sono unici per ogni risorsa e differiscono dai punti finali regionali precedentemente condivisi tra i clienti in una specifica regione di Azure. I nomi di sottodominio personalizzati sono necessari per abilitare funzionalità di autenticazione come Azure Active Directory (Azure AD). Specificare un sottodominio personalizzato per il nostro servizio Azure OpenAI è essenziale in alcuni casi. Altri parametri possono essere trovati in “Creare una risorsa e distribuire un modello utilizzando Azure OpenAI”.

Nell’articolo successivo

  • Aggiungere un endpoint privato Az alla configurazione: Un aspetto significativo di Azure Open AI è la sua utilizzazione di un endpoint privato, che consente un controllo preciso sull’accesso ai servizi Azure Open AI. Con l’endpoint privato, è possibile limitare l’accesso ai servizi solo alle risorse necessarie all’interno della propria rete virtuale. Ciò garantisce la sicurezza dei servizi e consente comunque alle risorse autorizzate di accedervi come richiesto.
  • Integrare OpenAI con i servizi Kubernetes di Azure: L’integrazione dei servizi OpenAI con un cluster Kubernetes consente una gestione efficiente, la scalabilità e l’alta disponibilità delle applicazioni di intelligenza artificiale, rendendolo una scelta ideale per l’esecuzione di carichi di lavoro di intelligenza artificiale in un ambiente di produzione.
  • Descrivere e confrontare la nostra lightweight landing zone e la landing zone OpenAI di Microsoft.

Repository del Progetto

  • GitHub – Boriszn/Azure-AI-LandingZone

Conclusioni

Questo articolo esplora i prodotti di intelligenza artificiale e la creazione di una zona di atterraggio per l’IA. Mettiamo in evidenza tre attori chiave che beneficiano dell’IA: Reply.io per l’interazione nelle vendite, Github Copilot per l’aiuto nella codifica e Neuraltext per il contenuto guidato dall’IA. Passando alle zone di atterraggio per l’IA, ci concentriamo sui servizi di intelligenza artificiale di Azure, come Open AI, con modelli predefiniti e API. Approfondiamo l’architettura utilizzando Terraform e i flussi di lavoro CI/CD. L’approccio modulare di Terraform è fondamentale, enfatizzando la riutilizzabilità. Approfondiamo i parametri dei moduli di Open AI, in particolare i sottodomini personalizzati per i servizi cognitivi di Azure. In quest’era guidata dall’IA, l’automazione e le decisioni intelligenti stanno rivoluzionando la tecnologia.