Saltar al contenido principal

Phi-4 de Microsoft: Tutorial paso a paso con proyecto de demostración

Aprende a construir un corrector de tareas utilizando el modelo Phi-4 de Microsoft, que valida soluciones, proporciona correcciones detalladas y sugiere alternativas elegantes.
Actualizado 8 ene 2025  · 12 min de lectura

Microsoft presentó recientemente Phi-4, la última incorporación a la familia Phi de pequeños modelos lingüísticos. Como destaca en matemáticas, decidí utilizar Phi-4 para construir un corrector de deberes integrado con Gradio.

En este tutorial, te guiaré paso a paso en la construcción de una aplicación web funcional capaz de validar soluciones, corregir errores y proporcionar enfoques alternativos, ¡como si fuera un profesor virtual!

¿Qué es el modelo Phi-4 de Microsoft?

Phi-4 destaca en tareas de razonamiento complejo, sobre todo en matemáticas, al tiempo que mantiene su competencia en el procesamiento convencional del lenguaje. Sus características principales son:

  • Capacidades avanzadas de razonamiento: Phi-4 se entrena con conjuntos de datos conjuntos de datos sintéticos y utiliza técnicas innovadoras de post-entrenamiento para superar a modelos mayores en tareas de razonamiento matemático.
  • Eficacia y accesibilidad: Con 14.000 millones de parámetros, Phi-4 ofrece resultados de alta calidad sin grandes recursos computacionales, lo que lo hace accesible para una gama más amplia de aplicaciones.
  • Disponibilidad: Actualmente se puede acceder a Phi-4 a través de Azure AI Foundry en virtud de un Acuerdo de Licencia de Investigación de Microsoft (MSRLA) y Cara de Abrazo.

Phi-4 ha demostrado un gran rendimiento en tareas de razonamiento matemático, superando incluso a modelos mayores como Gemini Pro 1.5 en problemas de competición matemática. Esto lo convierte en una buena opción para aplicaciones que requieren capacidades avanzadas de resolución de problemas matemáticos.

Rendimiento Phi4 en problemas de competición matemática

Fuente: Microsoft

Comprobador de deberes Phi-4: Resumen de la implementación

La aplicación que vamos a crear con Phi-4 es un corrector de deberes con IA. Este es el flujo de trabajo por el que pasará el usuario:

  1. El usuario envía su tarea terminada (tanto las instrucciones del ejercicio como la solución del usuario).
  2. Si la solución es incorrectael modelo te explicará la solución correcta con pasos detallados, como un profesor.
  3. Si la solución es correctael modelo confirmará la solución o sugerirá una alternativa más limpia y eficaz si la respuesta es confusa.

flujo de trabajo de la aplicación demo phi-4

Para proporcionar una interfaz web en la que los usuarios puedan interactuar con el corrector de tareas, utilizaremos Gradio.

Paso 1: Requisitos previos

Antes de empezar, asegúrate de que tienes instalado lo siguiente:

  • Python 3.8+
  • PyTorch: Para ejecutar modelos de aprendizaje profundo.
  • Biblioteca Transformers HuggingFace: Para cargar el modelo Phi-4 de HuggingFace.
  • Gradio: Crear una interfaz web fácil de usar.

Instala estas dependencias ejecutando

!pip install torch transformers gradio -q

Ahora ya tenemos todas las dependencias instaladas. A continuación, configuramos el modelo Phi-4.

Paso 2: Configuración del modelo

Cargamos el modelo Phi-4 de la biblioteca Transformers de HuggingFace. A continuación, el tokenizador preprocesa la entrada (el ejercicio y la solución) y la prepara para la inferencia.

# 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

El fragmento de código anterior configura el modelo Phi-4 y el tokenizador y los integra con PyTorch para los cálculos. Vamos a desglosar el código anterior con más detalle:

  • Las clases AutoModelForCausalLM y AutoTokenizer se importan para trabajar con el modelo y la tokenización.
  • El modelo se carga desde el repositorio Cara Abrazada utilizando el método from_pretrained() y se configura para utilizar precisión FP16 para optimizar el uso de memoria y la velocidad de cálculo.
  • El parámetro device_map="auto" garantiza que el modelo se asigne automáticamente al hardware disponible.
  • También se carga el tokenizador, que procesa el texto de entrada en tokens adecuados para el modelo.
  • Una comprobación asegura que el tokenizador tiene un token de relleno definido; si no, asigna el eos_token_id (token de fin de secuencia) como token de relleno.

Paso 3: Diseñar funciones básicas 

Una vez establecido el modelo, definimos tres funciones clave para la aplicación:

  1. Validación de la solución: El modelo evalúa la solución del usuario y proporciona correcciones si es incorrecta.
  2. Sugerencias alternativas: Sugiere soluciones más limpias si la solución del usuario es desordenada.
  3. Respuesta clara: El modelo también estructura el resultado con secciones claras.

La siguiente función, check_homework(), construye un aviso que contiene el ejercicio, la solución del usuario e instrucciones específicas para que el modelo confirme la corrección, identifique problemas o proporcione una guía paso a paso si la solución es incorrecta.

# 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 función check_homework() tokeniza la consulta utilizando el tokenizador del modelo. Lo prepara para el procesamiento convirtiendo la entrada en tensores PyTorch, que se asignan al dispositivo donde se ejecuta el modelo.

A continuación, genera una respuesta del modelo con un límite de max_new_tokens=1024 para controlar la longitud de salida. Esta longitud de ficha puede variar según las necesidades.

Por último, se devuelve la respuesta procesada, que proporciona información o una solución corregida. 

Paso 4: Crear una interfaz fácil de usar con Gradio

Gradio simplifica el despliegue del corrector de deberes permitiendo a los usuarios introducir sus ejercicios y soluciones de forma interactiva. El siguiente fragmento de código crea una interfaz web de Gradio fácil de usar para la función check_homework(). La interfaz de Gradio toma las entradas del usuario (el ejercicio y la solución) y las pasa al modelo para su validación. 

# 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)

Creamos dos campos de entrada utilizando gr.Textbox: uno para el problema matemático (ejercicio) y otro para la solución del usuario. El resultado se muestra en un único gr.Textbox etiquetado "Feedback". El comando interface.launch() inicia la aplicación Gradio en un navegador, y la bandera debug=True habilita registros detallados para ayudar a solucionar errores. 

Paso 5: Probar y validar

Es hora de probar nuestra aplicación AI Homework Checker. Aquí tienes algunas pruebas que he realizado:

  1. Un simple problema matemático: Intenté resolver problemas básicos de probabilidad, y la aplicación me devolvió una solución bien estructurada y clara del problema.

Probando Phi4 en un sencillo problema matemático.

  1. Problema de la derivada compleja: Resolver las derivadas puede ser un reto para algunos modelos. Aquí, intenté hallar la primera derivada de una función logarítmica natural con el corrector de tareas y produjo un razonamiento paso a paso correcto para la solución.

Probando Phi4 en un problema matemático de derivada compleja.

Conclusión

En este tutorial, creamos un corrector de tareas potenciado por IA utilizando el modelo Phi-4. Esta app valida las soluciones, proporciona correcciones detalladas y sugiere alternativas elegantes, lo que la convierte en un profesor virtual ideal para los estudiantes.

¿Listo para ampliar la aplicación? Experimenta con problemas más complejos, ¡o intégralo en plataformas educativas para un uso más amplio!


Aashi Dutt's photo
Author
Aashi Dutt
LinkedIn
Twitter

Soy una Google Developers Expert en ML(Gen AI), una Kaggle 3x Expert y una Women Techmakers Ambassador con más de 3 años de experiencia en tecnología. Cofundé una startup de tecnología sanitaria en 2020 y estoy cursando un máster en informática en Georgia Tech, especializándome en aprendizaje automático.

Temas

Aprende IA con estos cursos

programa

Desarrollo de aplicaciones de IA

23 horas hr
Aprende a crear aplicaciones potenciadas por IA con las últimas herramientas para desarrolladores de IA, como la API OpenAI, Hugging Face y LangChain.
Ver detallesRight Arrow
Comienza El Curso
Certificación disponible

curso

Desarrollar sistemas de IA con la API OpenAI

3 hr
4.6K
Aprovecha la API OpenAI para preparar tus aplicaciones de IA para la producción.
Ver másRight Arrow
Relacionado
An AI juggles tasks

blog

Cinco proyectos que puedes crear con modelos de IA generativa (con ejemplos)

Aprende a utilizar modelos de IA generativa para crear un editor de imágenes, un chatbot similar a ChatGPT con pocos recursos y una aplicación clasificadora de aprobación de préstamos y a automatizar interacciones PDF y un asistente de voz con GPT.
Abid Ali Awan's photo

Abid Ali Awan

10 min

An avian AI exits its cage

blog

12 alternativas de código abierto a GPT-4

Alternativas de código abierto a GPT-4 que pueden ofrecer un rendimiento similar y requieren menos recursos informáticos para funcionar. Estos proyectos vienen con instrucciones, fuentes de código, pesos del modelo, conjuntos de datos e IU de chatbot.
Abid Ali Awan's photo

Abid Ali Awan

9 min

Machine Learning

blog

25 proyectos de aprendizaje automático para todos los niveles

Proyectos de aprendizaje automático para principiantes, estudiantes de último curso y profesionales. La lista consta de proyectos guiados, tutoriales y código fuente de ejemplo.
Abid Ali Awan's photo

Abid Ali Awan

15 min

tutorial

Visión GPT-4: Guía completa para principiantes

Este tutorial le presentará todo lo que necesita saber sobre GPT-4 Vision, desde cómo acceder a él hasta ejemplos prácticos del mundo real y sus limitaciones.
Arunn Thevapalan's photo

Arunn Thevapalan

12 min

tutorial

Tutorial FLAN-T5: Guía y puesta a punto

Una guía completa para afinar un modelo FLAN-T5 para una tarea de respuesta a preguntas utilizando la biblioteca de transformadores, y ejecutando la inferencia optmizada en un escenario del mundo real.
Zoumana Keita 's photo

Zoumana Keita

15 min

tutorial

Tutorial de DeepChecks: Automatizar las pruebas de aprendizaje automático

Aprende a realizar la validación de datos y modelos para garantizar un sólido rendimiento del aprendizaje automático utilizando nuestra guía paso a paso para automatizar las pruebas con DeepChecks.
Abid Ali Awan's photo

Abid Ali Awan

12 min

See MoreSee More