Descripción del Código:
Importación de Bibliotecas:
from huggingface_hub import InferenceClient
import gradio as gr
- InferenceClient: Se utiliza para realizar inferencias (generación de texto en este caso) con modelos alojados en Hugging Face Hub.
- gr (Gradio): Es una biblioteca que facilita la creación de interfaces de usuario para modelos de aprendizaje automático.
Inicialización del Cliente de Inferencia:
client = InferenceClient("mistralai/Mistral-7B-Instruct-v0.2")
- Se crea un cliente de inferencia para el modelo específico "Mistral-7B-Instruct-v0.2" alojado en Hugging Face Hub.
Función para Formatear el Prompt:
def format_prompt(message, history):
... (ver código para detalles)
- Esta función toma un mensaje, junto con la historia de conversación, y lo formatea adecuadamente para el modelo.
Función para Generar Texto:
def generate(prompt, history, system_prompt, temperature=0.9, max_new_tokens=256, top_p=0.95, repetition_penalty=1.0):
... (ver código para detalles)
- La función principal para generar texto. Toma varios parámetros, incluyendo el prompt del usuario, historial de conversación, temperatura, etc.
Definición de Inputs Adicionales:
additional_inputs = [
... (ver código para detalles)
]
- Se definen inputs adicionales para la interfaz Gradio. Estos permiten al usuario ajustar configuraciones como la temperatura, la longitud máxima del texto generado, etc.
Ejemplos para la Interfaz Gradio:
examples = [
... (ver código para detalles)
]
- Se proporcionan ejemplos que serán mostrados en la interfaz Gradio para ayudar a los usuarios a comenzar.
Creación de la Interfaz Gradio:
gr.ChatInterface(
fn=generate, chatbot=gr.Chatbot(show_label=False, show_share_button=False, show_copy_button=True, likeable=True, layout="panel"), additional_inputs=additional_inputs, title="Mixtral 46.7B Fines didácticos", description='Autor: ... (ver código para detalles)', examples=examples, concurrency_limit=20,
).launch(show_api=False)
- Se crea la interfaz Gradio para la función de generación de texto. Incluye la entrada del usuario, las inputs adicionales configuradas y otros elementos visuales.
Inputs Adicionales en la Interfaz Gradio:
System Prompt (Entrada de Texto): Permite al usuario ingresar un prompt del sistema para contextualizar la conversación.
Temperature (Control Deslizante): Ajusta la "temperatura" del modelo, afectando la diversidad de las respuestas.
Max New Tokens (Control Deslizante): Controla la longitud máxima del texto generado.
Top-p (Nucleus Sampling) (Control Deslizante): Regula el muestreo de tokens basado en la probabilidad acumulativa.
Repetition Penalty (Control Deslizante): Penaliza la repetición de tokens en el texto generado.
Estas inputs adicionales permiten a los usuarios personalizar la generación de texto según sus preferencias y necesidades.