Sviluppare applicazioni di intelligenza artificiale generativa per migliorare le esperienze di insegnamento e apprendimento

Creare app di intelligenza artificiale generativa per ottimizzare l'insegnamento e l'apprendimento

Recentemente, insegnanti e istituzioni hanno cercato modi diversi per incorporare l’intelligenza artificiale (IA) nei loro curricoli, sia che si tratti di insegnare l’apprendimento automatico (ML) o di incorporarlo nella creazione di piani di lezione, valutazioni o altre applicazioni educative. I modelli di IA generativa, in particolare i modelli di linguaggio di grandi dimensioni (LLM), hanno accelerato notevolmente l’impatto dell’IA sull’istruzione. I modelli di IA generativa e di programmazione del linguaggio naturale (NLP) hanno un grande potenziale per migliorare l’insegnamento e l’apprendimento generando contenuti di apprendimento personalizzati e offrendo esperienze di apprendimento coinvolgenti per gli studenti.

In questo articolo, creeremo una soluzione di IA generativa per insegnanti per creare materiale didattico e per gli studenti per imparare parole e frasi in inglese. Quando gli studenti forniscono risposte, la soluzione offre valutazioni in tempo reale e offre feedback personalizzati ed orientamenti per migliorare le loro risposte.

In particolare, gli insegnanti possono utilizzare la soluzione per fare quanto segue:

  • Creare un compito per gli studenti generando domande e risposte da un prompt
  • Creare un’immagine a partire dal prompt per rappresentare il compito
  • Salvare il nuovo compito in un database
  • Sfogliare i compiti esistenti nel database

Gli studenti possono utilizzare la soluzione per fare quanto segue:

  • Selezionare e rivedere un compito dal database dei compiti
  • Rispondere alle domande del compito selezionato
  • Controllare le valutazioni delle risposte in tempo reale
  • Rivedere i suggerimenti di miglioramento grammaticale per le loro risposte
  • Rivedere i suggerimenti di miglioramento delle frasi per le loro risposte
  • Leggere le risposte consigliate

Ti guideremo attraverso i passaggi per creare la soluzione utilizzando Amazon Bedrock, Amazon Elastic Container Service (Amazon ECS), Amazon CloudFront, Elastic Load Balancing (ELB), Amazon DynamoDB, Amazon Simple Storage Service (Amazon S3) e AWS Cloud Development Kit (AWS CDK).

Panoramica della soluzione

Il diagramma seguente mostra le risorse e i servizi utilizzati nella soluzione.

La soluzione funziona come un servizio scalabile. Gli insegnanti e gli studenti utilizzano i loro browser per accedere all’applicazione. Il contenuto viene servito attraverso una distribuzione Amazon CloudFront con un Application Load Balancer come origine. Salva le immagini generate in un bucket S3 e salva i compiti degli insegnanti e le risposte e i punteggi degli studenti in tabelle separate di DynamoDB.

La soluzione utilizza Amazon Bedrock per generare domande, risposte, immagini di compiti e per valutare le risposte degli studenti. Amazon Bedrock è un servizio completamente gestito che mette a disposizione modelli di base di aziende leader nel settore dell’IA e di Amazon tramite interfacce API facili da usare. La soluzione utilizza anche l’API di correzione degli errori grammaticali e l’API di parafrasi di AI21 per consigliare correzioni di parole e frasi.

Puoi trovare i dettagli di implementazione nelle sezioni seguenti. Il codice sorgente è disponibile nel repository GitHub.

Prerequisiti

Dovresti avere una certa conoscenza di IA generativa, ML e dei servizi utilizzati in questa soluzione, inclusi Amazon Bedrock, Amazon ECS, Amazon CloudFront, Elastic Load Balancing, Amazon DynamoDB e Amazon S3.

Utilizziamo AWS CDK per costruire e distribuire la soluzione. Puoi trovare le istruzioni di configurazione nel file readme.

Creare assegnazioni

Gli insegnanti possono creare un’assegnazione da un testo di input utilizzando la seguente pagina GUI. Un’assegnazione comprende un testo di input, le domande e le risposte generate dal testo e un’immagine generata dal testo di input per rappresentare l’assegnazione.

Per il nostro esempio, un insegnante inserisce le linee guida sulla sicurezza dei bambini e delle biciclette del Dipartimento dei Trasporti degli Stati Uniti. Per il testo di input, utilizziamo il file bike.safe.riding.tips.txt.

Di seguito è riportata l’immagine generata.

Ecco le domande e le risposte generate:

"domanda": "Cosa dovresti indossare sempre durante la guida di una bicicletta?", "risposta": "Dovresti sempre indossare un casco da bicicletta adeguatamente regolato quando guidi una bicicletta. Un casco protegge il tuo cervello e può salvarti la vita in caso di incidente."

"domanda": "Come puoi assicurarti che gli automobilisti possano vederti quando sei in bicicletta?", "risposta": "Per assicurarti che gli automobilisti possano vederti, indossa colori neon o fluorescenti brillanti. Usa anche nastro riflettente, segnalazioni o luci lampeggianti per rendermi visibile."

"domanda": "Cosa devi fare prima di guidare la tua bicicletta?", "risposta": "Prima di girare, devi controllare la tua bicicletta per assicurarti che tutte le parti siano salde e funzionino correttamente. Controlla che le gomme siano gonfie, i freni funzionino correttamente e i riflettori siano al loro posto."

"domanda": "Perché è più pericoloso guidare una bicicletta di notte?", "risposta": "È più pericoloso guidare di notte perché è più difficile per gli altri automobilisti vederti al buio."

"domanda": "Come puoi evitare i pericoli durante la guida in bicicletta?", "risposta": "Guarda avanti per i pericoli come buche, vetri rotti e cani. Segnala e grida ai ciclisti che ti seguono. Evita di guidare di notte quando è più difficile vedere i pericoli."

L’insegnante si aspetta che gli studenti completino l’assegnazione leggendo il testo di input e rispondendo alle domande generate.

Il portale utilizza Amazon Bedrock per creare domande, risposte ed immagini. Amazon Bedrock accelera lo sviluppo di soluzioni di intelligenza artificiale generative esponendo i modelli fondamentali tramite interfacce API. Puoi trovare il codice sorgente nel file 1_Create_Assignments.py.

Il portale richiama due modelli fondamentali:

  • Stable Diffusion XL per generare le immagini utilizzando la funzione query_generate_image_endpoint
  • Anthropic Claude v2 per generare le domande e le risposte utilizzando la funzione query_generate_questions_answers_endpoint

Il portale salva le immagini generate in un bucket S3 utilizzando la funzione load_file_to_s3. Crea una assegnazione basata sul testo di input, l’ID dell’insegnante, le domande e le risposte generate e il collegamento al bucket S3 per l’immagine caricata. Salva l’assegnazione nella tabella DynamoDB assignments utilizzando la funzione insert_record_to_dynamodb.

Puoi trovare il codice AWS CDK che crea la tabella DynamoDB nel file cdk_stack.py.

Mostra gli assegnamenti

I docenti possono sfogliare gli assegnamenti e gli artefatti generati utilizzando la seguente pagina GUI.

Il portale utilizza la funzione get_records_from_dynamodb per recuperare gli assegnamenti dalla tabella DynamoDB “assignments”. Utilizza la funzione download_image per scaricare un’immagine dal bucket S3. Puoi trovare il codice sorgente nel file 2_Show_Assignments.py.

Rispondere alle domande

Uno studente seleziona e legge un compito di un insegnante e poi risponde alle domande del compito.

Il portale offre un’esperienza di apprendimento coinvolgente. Ad esempio, quando lo studente fornisce la risposta “Dovrei indossare un cappello che protegge il cervello in caso di incidente”, il portale valuta la risposta in tempo reale confrontandola con la risposta corretta. Il portale classifica anche tutte le risposte degli studenti alla stessa domanda e mostra i tre punteggi migliori. Puoi trovare il codice sorgente nel file 3_Complete_Assignments.py.

Il portale salva le risposte degli studenti in una tabella DynamoDB chiamata “answers”. Puoi trovare il codice AWS CDK che crea la tabella DynamoDB nel file cdk_stack.py.

Per valutare la risposta di uno studente, il portale invoca il modello Amazon Titan Embeddings per tradurre la risposta dello studente e la risposta corretta in rappresentazioni numeriche e quindi calcolare la loro similarità come punteggio. Puoi trovare la soluzione nel file 3_Complete_Assignments.py.

Il portale genera correzioni grammaticali suggerite e miglioramenti delle frasi per la risposta dello studente. Infine, il portale mostra la risposta corretta alla domanda.

Il portale utilizza l’API di correzione degli errori grammaticali e l’API di parafrasi di AI21 per generare i miglioramenti grammaticali e delle frasi consigliati. Il modello di parafrasi AI21 è disponibile come modello di base in SageMaker. Puoi distribuire il modello di parafrasi AI21 come un punto di inferenza in SageMaker e invocare il punto di inferenza per generare miglioramenti delle frasi.

Le funzioni generate_suggestions_sentence_improvements e generate_suggestions_word_improvements nel file 3_Complete_Assignments.py mostrano un modo alternativo di utilizzare i punti di accesso dell’API REST di AI21. È necessario creare un account AI21 e trovare la chiave dell’API associata al tuo account per invocare le API. Dovrai pagare le invocazioni dopo il periodo di prova.

Conclusione

Questo articolo ti ha mostrato come utilizzare una soluzione assistita da IA per migliorare l’esperienza di insegnamento e apprendimento utilizzando più modelli generativi di IA e NLP. Puoi utilizzare lo stesso approccio per sviluppare altri prototipi e applicazioni generative di IA.

Se sei interessato ai fondamenti della generazione di IA e a come lavorare con modelli di base, inclusa l’utilizzo di tecniche avanzate di spunto, dai un’occhiata al corso pratico Generative AI with LLMs. Si tratta di un corso on-demand della durata di 3 settimane rivolto a data scientist e ingegneri che desiderano imparare come creare applicazioni generative di IA con LLMs. È una buona base per iniziare a lavorare con Amazon Bedrock. Visita la pagina delle Funzionalità di Amazon Bedrock e iscriviti per saperne di più su Amazon Bedrock.