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.