Vai al contenuto principale

Phi-4 di Microsoft: tutorial passo dopo passo con progetto demo

Scopri come creare un correttore dei compiti usando il modello Phi-4 di Microsoft, che valida le soluzioni, fornisce correzioni dettagliate e suggerisce alternative eleganti.
Aggiornato 29 set 2026  · 12 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Microsoft ha recentemente presentato Phi-4, l'ultimo arrivato nella famiglia Phi di small language model. Poiché eccelle in matematica, ho deciso di usare Phi-4 per creare un correttore di compiti integrato con Gradio.

In questo tutorial ti guiderò passo dopo passo nella creazione di una web app funzionante in grado di validare soluzioni, correggere errori e fornire approcci alternativi—proprio come un assistente docente virtuale!

Che cos'è il modello Phi-4 di Microsoft?

Phi-4 eccelle nei compiti di ragionamento complesso, in particolare in matematica, mantenendo al contempo una buona competenza nell'elaborazione del linguaggio naturale. Le sue caratteristiche principali sono:

  • Capacità di ragionamento avanzate: Phi-4 è addestrato su dataset sintetici di alta qualità e utilizza tecniche innovative di post-training per superare modelli più grandi nei compiti di ragionamento legati alla matematica.
  • Efficienza e accessibilità: con 14 miliardi di parametri, Phi-4 offre risultati di alta qualità senza risorse computazionali estese, rendendolo accessibile a un'ampia gamma di applicazioni.
  • Disponibilità: Phi-4 è attualmente accessibile tramite Azure AI Foundry con una Microsoft Research License Agreement (MSRLA) e su Hugging Face.

Phi-4 ha dimostrato ottime prestazioni nei compiti di ragionamento matematico, superando persino modelli più grandi come Gemini Pro 1.5 nei problemi delle competizioni di matematica. Questo lo rende una buona scelta per applicazioni che richiedono capacità avanzate di problem solving matematico.

Prestazioni di Phi-4 su problemi di gare di matematica

Fonte: Microsoft

Phi-4 Homework Checker: panoramica dell'implementazione

L'app che costruiremo con Phi-4 è un correttore di compiti basato su AI. Ecco il flusso che seguirà l'utente:

  1. L'utente invia il compito svolto (sia il testo dell'esercizio sia la soluzione dell'utente).
  2. Se la soluzione è errata, il modello spiega la soluzione corretta con passaggi dettagliati, come farebbe un insegnante.
  3. Se la soluzione è corretta, il modello conferma la risposta oppure suggerisce un'alternativa più pulita ed efficiente se l'elaborato è poco chiaro.

flusso di lavoro dell'app demo di phi-4

Per offrire un'interfaccia web con cui gli utenti possano interagire con il correttore, useremo Gradio.

Passo 1: Prerequisiti

Prima di iniziare, assicurati di avere installato quanto segue:

  • Python 3.8+
  • PyTorch: per eseguire modelli di deep learning.
  • Libreria Transformers di HuggingFace: per caricare il modello Phi-4 da HuggingFace.
  • Gradio: per creare un'interfaccia web user-friendly.

Installa queste dipendenze eseguendo:

!pip install torch transformers gradio -q

Ora abbiamo installato tutte le dipendenze. Il passo successivo è configurare il modello Phi-4.

Passo 2: Configurare il modello

Carichiamo il modello Phi-4 dalla libreria Transformers di HuggingFace. Quindi, il tokenizer pre-elabora l'input (l'esercizio e la soluzione) e lo prepara per l'inferenza.

# Imports
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
import gradio as gr

# Load the Phi-4 model and tokenizer
model_name = "NyxKrage/Microsoft_Phi-4"
model=AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_name)

# Set tokenizer padding token if not set
if tokenizer.pad_token_id is None:
    tokenizer.pad_token_id = tokenizer.eos_token_id

Il frammento di codice sopra configura il modello e il tokenizer di Phi-4 e li integra con PyTorch per i calcoli. Vediamo nel dettaglio cosa fa il codice:

  • Vengono importate le classi AutoModelForCausalLM e AutoTokenizer per lavorare con il modello e la tokenizzazione.
  • Il modello è caricato dal repository di Hugging Face usando il metodo from_pretrained() e configurato per usare la precisione FP16 per ottimizzare l'uso di memoria e la velocità di calcolo.
  • Il parametro device_map="auto" garantisce che il modello venga mappato automaticamente sull'hardware disponibile.
  • Viene caricato anche il tokenizer, che trasforma il testo di input in token adatti al modello.
  • Un controllo assicura che il tokenizer abbia un token di padding definito; in caso contrario, assegna come token di padding l'eos_token_id (token di fine sequenza).

Passo 3: Progettare le funzionalità principali 

Una volta configurato il modello, definiamo tre funzioni chiave per l'app:

  1. Validazione della soluzione: il modello valuta la soluzione dell'utente e fornisce correzioni se è sbagliata.
  2. Suggerimenti alternativi: suggerisce soluzioni più pulite se la soluzione dell'utente è confusa.
  3. Feedback chiaro: il modello struttura anche l'output con sezioni chiare.

La seguente funzione, check_homework(), costruisce un prompt che contiene l'esercizio, la soluzione dell'utente e istruzioni specifiche per il modello, così da confermare la correttezza, individuare problemi o fornire una guida passo passo se la soluzione è errata.

# Function to validate the solution and provide feedback
def check_homework(exercise, solution):
    prompt = f"""
    Exercise: {exercise}
    Solution: {solution}
Task: Validate the solution to the math problem, provided by the user. If the user's solution is correct, confirm else provide an alternative if the solution is messy. If it is incorrect, provide the correct solution with step-by-step reasoning.
    """
    # Tokenize and generate response
    inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
    print(f"Tokenized input length: {len(inputs['input_ids'][0])}")
    outputs = model.generate(**inputs, max_new_tokens=1024)
    print(f"Generated output length: {len(outputs[0])}")
    response = tokenizer.decode(outputs[0], skip_special_tokens=True)
    # response = response.replace(prompt, "").strip()
    prompt_len = len(prompt)
    response = response[prompt_len:].strip()
    print(f"Raw Response: {response}")
    return response

La funzione check_homework() tokenizza il prompt usando il tokenizer del modello. Lo prepara all'elaborazione convertendo l'input in tensori PyTorch, mappati sul dispositivo in cui è in esecuzione il modello.

Quindi genera una risposta dal modello con un limite di max_new_tokens=1024 per controllare la lunghezza dell'output. Questa lunghezza in token può essere variata in base alle necessità.

Infine, viene restituita la risposta elaborata, che fornisce feedback o una soluzione corretta. 

Passo 4: Creare un'interfaccia user-friendly con Gradio

Gradio semplifica il deployment del correttore dei compiti consentendo agli utenti di inserire interattivamente esercizi e soluzioni. Il seguente snippet crea un'interfaccia web Gradio user-friendly per la funzione check_homework(). L'interfaccia Gradio prende gli input dell'utente (l'esercizio e la soluzione) e li passa al modello per la validazione. 

# Define the function that integrates with the Gradio app
def homework_checker_ui(exercise, solution):
    return check_homework(exercise, solution)

# Create the Gradio interface using the new syntax
interface = gr.Interface(
    fn=homework_checker_ui,
    inputs=[
        gr.Textbox(lines=2, label="Exercise (e.g., Solve for x in 2x + 3 = 7)"),
        gr.Textbox(lines=1, label="Your Solution (e.g., x = 1)")
    ],
    outputs=gr.Textbox(label="Feedback"),
    title="AI Homework Checker",
    description="Validate your homework solutions, get corrections, and receive cleaner alternatives.",
)

# Launch the app
interface.launch(debug=True)

Abbiamo creato due campi di input usando gr.Textbox: uno per il problema matematico (esercizio) e un altro per la soluzione dell'utente. L'output è mostrato in un singolo gr.Textbox etichettato "Feedback". Il comando interface.launch() avvia l'app Gradio nel browser e il flag debug=True abilita log dettagliati per aiutare a risolvere gli errori. 

Passo 5: Test e validazione

È il momento di testare la nostra app AI Homework Checker. Ecco alcuni test che ho eseguito:

  1. Problema matematico semplice: ho provato a risolvere problemi basilari di probabilità e l'app ha restituito una soluzione ben strutturata e chiara.

Test di Phi-4 su un problema matematico semplice.

  1. Problema complesso di derivata: il calcolo delle derivate può essere impegnativo per alcuni modelli. Qui ho provato a trovare la prima derivata di una funzione logaritmo naturale con il correttore, e ha prodotto un ragionamento corretto passo dopo passo per la soluzione.

Test di Phi-4 su un problema complesso di derivata.

Conclusione

In questo tutorial, abbiamo creato un correttore di compiti basato su AI usando il modello Phi-4. Questa app valida le soluzioni, fornisce correzioni dettagliate e suggerisce alternative eleganti, rendendola un'insegnante virtuale ideale per gli studenti.

Pronto a estendere l'app? Sperimenta con problemi più complessi o integrala in piattaforme educative per un uso più ampio!


Aashi Dutt's photo
Author
Aashi Dutt
LinkedIn
Twitter

Sono una Google Developers Expert in ML (Gen AI), una Kaggle 3x Expert e una Women Techmakers Ambassador con oltre 3 anni di esperienza nel tech. Ho co-fondato una startup health-tech nel 2020 e sto conseguendo un master in informatica al Georgia Tech, con specializzazione in machine learning.

Argomenti
Intelligenza artificiale
AI generativa

Impara l'AI con questi corsi!

Programma

Sviluppare applicazioni AI

21 ore
Impara a creare applicazioni basate sull'intelligenza artificiale con i più recenti strumenti per sviluppatori di AI, tra cui OpenAI API, Hugging Face e LangChain.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

Mostra AltroMostra Altro