Ir al contenido principal

Tutorial de Vicuna-13B: guía para ejecutar Vicuna-13B

Una guía completa para ejecutar el modelo Vicuna-13B a través de un servidor FastAPI.
Actualizado 17 sept 2026  · 15 min leer

Explorar con IA

ChatGPTClaudePerplexity

La irrupción de los grandes modelos de lenguaje ha transformado sectores enteros, llevando el potencial de tecnologías como GPT-3.5 y GPT-4 de OpenAI a multitud de aplicaciones. Sin embargo, su alto coste y las preocupaciones sobre la confidencialidad de los datos suelen frenar a posibles adoptantes. Ahí es donde entran los modelos de código abierto como Vicuna-13B, que ofrecen un rendimiento comparable sin el gasto ni el riesgo para la información sensible.

Si quieres saber más sobre GPT-3.5 y GPT-4, nuestro tutorial Using GPT-3.5 and GPT-4 via the OpenAI API in Python es un buen punto de partida para entender cómo trabajar con el paquete de Python de OpenAI y conversar con ChatGPT de forma programática.

¿Qué es Vicuna-13B?

Vicuna-13B es un modelo conversacional de código abierto, ajustado a partir de LLaMa 13B utilizando conversaciones compartidas por usuarios obtenidas de ShareGPT.

Una evaluación preliminar con GPT-4 como juez mostró que Vicuna-13B alcanzaba más del 90% de la calidad de chatGPT y Google Bard, superando además a otros modelos como LLaMa y Alpaca en más del 90% de los casos. A continuación se ilustra el flujo completo de ajuste fino y evaluación:

Flujo de ajuste fino y evaluación de Vicuna-13B (fuente)

Flujo de ajuste fino y evaluación de Vicuna-13B (fuente)

Aunque esto pone de relieve la solidez de Vicuna-13B, también tiene limitaciones propias y no está especializado en tareas como matemáticas y razonamiento.

Imagen de LMSYSORG modificada por el autor

Imagen de LMSYSORG modificada por el autor

Aplicaciones de Vicuna-13B

Como chatbot inteligente, las aplicaciones de Vicuna-13B son innumerables. A continuación se muestran algunos ejemplos en distintos sectores como atención al cliente, salud, educación, finanzas y viajes/hospitalidad.

Cinco aplicaciones de Vicuna-13 en la vida real

Cinco aplicaciones de Vicuna-13 en la vida real

  • Atención al cliente: gracias a su capacidad para dar servicio 24/7, los chatbots pueden apoyar a clientes y automatizar consultas repetitivas y sencillas. Por ejemplo, Sephora utiliza chatbots para ayudar a sus clientes a encontrar productos, consultar el estado de sus pedidos y obtener consejos de maquillaje desde su web.
  • Salud: los pacientes pueden obtener rápidamente información sanitaria personalizada, lo que permite a los especialistas centrarse en otras investigaciones para descubrir nuevos tratamientos. Por ejemplo, Babylon Health utiliza chatbots con IA para realizar evaluaciones de salud y así monitorizar mejor a los pacientes.
  • Educación: muchas instituciones educativas de referencia, como Duolingo, han utilizado bots de IA de forma creativa para aumentar la implicación del alumnado y facilitar la comprensión de conceptos más avanzados.
  • Finanzas: mi primera interacción con el banco cuando necesito ayuda suele ser mediante un bot inteligente, y muchos bancos, como Wells Fargo, emplean tecnologías similares para asistir a sus clientes en tareas repetitivas como consultar saldos, transferir dinero o gestionar cuentas.
  • Viajes/hospitalidad: de forma similar a la banca, los chatbots pueden ayudar a encontrar los mejores destinos según el presupuesto y las preferencias de viaje del usuario, e incluso actuar como conserje virtual. El chatbot Omar del Equinox Hotel New York gestiona casi el 85% de las consultas de clientes. Les permitió tramitar 2600 consultas nuevas en menos de tres meses y generar 150 clientes potenciales cualificados en solo cuatro meses.

La lista anterior no es exhaustiva. En nuestro artículo How NLP is changing the future of Data Science analizamos cómo el PLN impulsa el futuro de la ciencia de datos y el aprendizaje automático, sus aplicaciones futuras, riesgos y cómo mitigarlos.

Importancia y relevancia de aprender a ejecutar Vicuna-13B

A la vista de estas aplicaciones reales, no hay duda de que la demanda de agentes conversacionales con IA como Vicuna-13B es enorme en las principales industrias.

Por ello, dominar cómo implementar e integrar esta tecnología en los flujos de trabajo del sector se está convirtiendo en una competencia cada vez más valiosa, a medida que más empresas la utilizan para potenciar la relación con sus clientes, generar más oportunidades y, en general, mejorar el retorno de la inversión.

La buena noticia es que este tutorial está pensado justo para ayudarte a desarrollar las habilidades necesarias para ejecutar el modelo Vicuna-13B y poder integrarlo en cualquier flujo de sistemas de información de negocio.

Requisitos previos

Antes de ponernos manos a la obra con la ejecución del modelo Vicuna-13B, es importante preparar bien los requisitos previos, que incluyen:

  • Entender el flujo de trabajo de Vicuna-13B
  • Configurar el hardware y software necesarios
  • Obtener los pesos de LLaMa para Vicuna-13B

Una vez cumplidos estos requisitos, comprenderemos mejor los formatos de entrada y salida y podremos ejecutar el modelo con éxito.

Entender el flujo de trabajo de Vicuna-13B

Comprender mejor el formato de entrada y salida de Vicuna-13B proporciona al desarrollador un conocimiento mínimo de los factores que pueden afectar a la toma de decisiones del modelo.

En esta sección se explican los principales parámetros de entrada necesarios, junto con el formato de salida esperado del modelo Vicuna-13B.

Flujo minimalista de extremo a extremo

Flujo minimalista de extremo a extremo

Veamos el flujo anterior. Primero, el usuario envía la entrada deseada, que incluye el prompt, es decir, la solicitud de texto principal para la que quiere una respuesta.

El prompt se acompaña de los siguientes parámetros adicionales:

  • Max-length: especifica el número máximo de caracteres que el modelo debe considerar en la respuesta final.
  • Temperature: este valor va de 0 a 1. Cuanto menor es, más determinista es el resultado. Por el contrario, un valor alto introduce más aleatoriedad y, por tanto, resultados más diversos y creativos.
  • Top-p: controla la diversidad de las predicciones, seleccionando los tokens más probables cuya probabilidad acumulada supera un umbral dado. Partiendo de cero, un valor más alto aumenta la probabilidad de obtener una mejor salida, pero requiere más cómputo.
  • Repetition_penalty: si una palabra se repite con frecuencia, este parámetro ayuda a evitar su sobreuso, haciendo el resultado más variado.
  • Seed: para garantizar un resultado consistente para una misma entrada en ejecuciones sucesivas.
  • Debug: activa el modo depuración, útil para diagnosticar el comportamiento y el rendimiento del modelo.

Tras enviar el prompt con los parámetros anteriores, el modelo Vicuna-13B realiza el procesamiento necesario para generar la salida requerida, que sigue el siguiente esquema:

  • Text: la salida textual generada por el modelo Vicuna
  • Metadata: información adicional generada por el modelo. Se ofrece una explicación detallada en las siguientes secciones.

Configurar el hardware y software necesarios

Ahora que entendemos mejor las entradas y salidas, podemos identificar las bibliotecas principales para ejecutar el modelo Vicuna con éxito.

  • Conda: garantiza un entorno limpio y aislado para las dependencias del modelo Vicuna.
  • FastAPI: proporciona un framework moderno para desarrollar la API del modelo Vicuna con análisis automático del prompt del usuario.
  • Uvicorn: sirve la aplicación FastAPI de Vicuna, asegurando un rendimiento eficiente y fiable.
  • LLaMa.cpp: gestiona la complejidad de procesamiento de los grandes modelos de lenguaje que conforman Vicuna.

Crear el entorno virtual

Todos los comandos de esta sección se ejecutan desde una terminal. Con la instrucción conda create, creamos un entorno virtual llamado vicuna-env.

conda create --name vicuna-env

Tras crear el entorno virtual, lo activamos con la instrucción conda activate de la siguiente forma:

conda activate vicuna-env

El comando anterior debería mostrar el nombre del entorno entre corchetes al inicio de la terminal, como sigue:

Nombre del entorno virtual tras la activación

Nombre del entorno virtual tras la activación

Instalación de las bibliotecas

Las bibliotecas anteriores pueden instalarse de dos formas. La primera es ejecutar pip install manualmente para cada una, lo que puede llevar mucho tiempo cuando hay muchas dependencias y no es óptimo a nivel industrial.

La segunda es la mejor opción: usar un archivo requirements.txt con todas las dependencias necesarias. A continuación tienes el contenido del archivo y la instalación con un único comando pip install.

# Contenido del archivo requirements.txt

llama-cpp-python==0.1.48
fastapi 
uvicorn[standard]

Las tres bibliotecas se pueden instalar así:

pip install -r requirements.txt

Obtener los pesos de LLaMa

Desde la plataforma Hugging Face podemos descargar los pesos del modelo Vicuna, como se muestra a continuación:

Dos pasos principales para descargar los pesos de Vicuna-13B desde Hugging Face

Dos pasos para descargar los pesos de Vicuna-13B desde Hugging Face

Para organizar mejor el código, podemos mover los pesos descargados del modelo a una carpeta nueva llamada model.

Empaquetado y creación de una API

Aunque ya cumplimos los requisitos para ejecutar el modelo por línea de comandos, desplegar una API que interactúe con él es una opción mucho más práctica. Así el modelo será accesible para mucha más gente.

Para conseguirlo, necesitamos los siguientes pasos:

  • Cargar el modelo desde la máquina local
  • Crear una API para exponer el modelo

La estructura general del código fuente se muestra a continuación, y el código completo está disponible en GitHub.

------ model
         |------- ggml-vicuna-13b-4bit.bin

------ requirements.txt
------ vicuna_app.py
  • ggml-vicuna-13b-4bit.bin son los pesos del modelo descargados en la carpeta model
  • requirements.txt contiene las dependencias para ejecutar el modelo
  • vicuna_app.py contiene el código Python para crear la API, que es el foco de esta sección.

Definición de las rutas principales de la API

En nuestro caso, necesitamos dos rutas principales. Antes, importamos las bibliotecas relevantes, cargamos el modelo y creamos una instancia de FastAPI.

# Importar las bibliotecas
from fastapi import FastAPI, HTTPException
from llama_cpp import Llama

# Cargar el modelo 
vicuna_model_path = "./model/ggml-vicuna-13b-4bit.bin"
vicuna_model = Llama(model_path=vicuna_model_path)

app = FastAPI()
  • Primera ruta: la ruta por defecto "/" devuelve el siguiente JSON "Message": "Welcome to the Vicuna Demo FastAPI" mediante la función home(), que no recibe parámetros.
# Definir la ruta por defecto
@app.get("/")
def home():
   return {"Message": "Welcome to the Vicuna Demo FastAPI"}
  • Segunda ruta: "/vicuna_says", que ejecuta la función answer_prompt(). Recibe como parámetro el prompt del usuario y devuelve una respuesta JSON con el resultado del modelo Vicuna y metadatos adicionales.
@app.post("/vicuna_says")
def answer_prompt(user_prompt):

   if (not (user_prompt)):
       raise HTTPException(status_code=400,
                           detail="Please Provide a valid text message")

   response = vicuna_model(user_prompt)

   return {"Answer": response}

Ejecución de las rutas

Por fin podemos ejecutar la API con la siguiente instrucción desde la línea de comandos, en la carpeta donde está el archivo vicuna_app.py.

uvicorn vicuna_app:app --reload
  • uvicorn: inicia el servidor Uvicorn.
  • vicuna_app: corresponde al archivo Python vicuna_app.py. Es lo que va a la izquierda de los dos puntos.
  • app: es el objeto creado dentro de vicuna_app.py con la instrucción app = FastAPI(). Si el archivo se llamara main.py, el comando sería uvicorn main:app --reload
  • --reload: opción para reiniciar el servidor tras cambios en el código. Úsala solo en desarrollo, no en producción.

Este es el resultado al ejecutar el comando anterior: el servidor está funcionando en localhost en el puerto 8000 (http://127.0.0.1:8000)

URL de la API ejecutándose en localhost

URL de la API ejecutándose en localhost

Acceder a la ruta por defecto es muy sencillo: solo tienes que escribir la siguiente URL en cualquier navegador.

Respuesta de la ruta por defecto

Respuesta de la ruta por defecto

Aquí viene lo interesante. La URL http://127.0.0.1:8000/docs proporciona un panel completo para interactuar con la API, y este es el resultado.

Visualización gráfica de las dos rutas

Visualización gráfica de las dos rutas

En la imagen anterior, al seleccionar /vicuna_says en el recuadro verde, obtenemos la guía completa para interactuar con nuestra API, como se muestra a continuación.

Los tres pasos principales para ejecutar el prompt del usuario

Los tres pasos principales para ejecutar el prompt del usuario

Solo tienes que seleccionar la pestaña Try it out y escribir el mensaje para el que quieres la predicción en el área text_message.

Por último, al pulsar el botón Execute obtenemos el siguiente resultado.

Respuesta del servidor desde el modelo Vicuna a la consulta del usuario

Respuesta del servidor del modelo Vicuna a la consulta del usuario

La respuesta del modelo Vicuna se proporciona en el campo "text", y el resultado es bastante impresionante.

También se incluyen metadatos adicionales, como el modelo utilizado, la fecha de creación de la respuesta, el número de tokens del prompt y el número de tokens de la respuesta, entre otros.

Cómo el despliegue facilita el uso de Vicuna-13B

Desplegar un modelo tan potente mejora la experiencia del usuario y la eficiencia operativa de varias formas, entre ellas:

  • Facilidad de acceso: el despliegue permite acceder al modelo mediante una API, sin necesidad de descargarlo ni configurarlo localmente.
  • Gestión de recursos: servidores con recursos adecuados pueden gestionar múltiples peticiones simultáneas y ofrecer un servicio fiable.
  • Escalabilidad: es posible escalar recursos para cubrir picos de demanda y mantener un rendimiento constante.
  • Actualizaciones y mantenimiento: las actualizaciones y el mantenimiento centralizados garantizan el acceso a la versión más reciente del modelo.
  • Integración: la integración con otros sistemas y aplicaciones es más sencilla, ampliando casos de uso y versatilidad.

En definitiva, el despliegue facilita un uso más accesible, fiable y versátil de Vicuna-13B, ampliando su aplicabilidad para distintos usuarios y aplicaciones.

Buenas prácticas y consejos para Vicuna-13B

Al trabajar con el modelo Vicuna-13B, algunas buenas prácticas y consejos pueden ayudarte a optimizar la experiencia, mejorar resultados y resolver problemas comunes.

Consejos para optimizar el rendimiento de Vicuna-13B

Siguiendo estas recomendaciones, asegurarás una experiencia más fluida y mejores resultados al trabajar con Vicuna-13B.

4 consejos para optimizar el rendimiento del modelo Vicuna-13B

4 consejos para optimizar el rendimiento del modelo Vicuna-13B

  • Optimización de hardware: asegúrate de que el servidor que aloja Vicuna-13B dispone de suficiente RAM y CPU para cubrir sus necesidades computacionales.
  • Procesamiento por lotes: aprovecha el procesamiento en paralelo del modelo y procesa datos en lotes siempre que sea posible.
  • Cacheo de resultados: implementa caché para resultados de consultas frecuentes y así reducir cómputos redundantes y mejorar tiempos de respuesta.
  • Preprocesamiento de entradas: preprocesa los datos de entrada para confirmar que están en el formato óptimo, lo que ayuda a mejorar precisión y rendimiento.

Resolución de problemas comunes

Además de optimizar el rendimiento, conviene saber resolver incidencias habituales durante el uso de Vicuna-13B. Aquí tienes cuatro ejemplos:

Algunos problemas comunes y cómo resolverlos

Algunos problemas comunes y cómo resolverlos

  • Errores de memoria: si aparecen errores de memoria, plantéate aumentar la RAM del servidor u optimizar el tamaño de la entrada para que el modelo lo gestione mejor.
  • Tiempos de respuesta lentos: mejora la CPU del servidor o usa procesamiento por lotes para reducir la latencia del modelo.
  • Salidas incorrectas: si obtienes resultados erróneos o inesperados, revisa minuciosamente los datos de entrada en busca de anomalías o errores que puedan afectarlos.
  • Problemas de integración: si hay dificultades al integrar Vicuna-13B con otros sistemas o aplicaciones, revisa a fondo la documentación de la API y verifica que todos los puntos de integración estén configurados correctamente.

Conclusión

En resumen, este artículo te ha ofrecido una visión completa sobre cómo preparar y utilizar el modelo Vicuna-13B. Hemos cubierto los requisitos previos necesarios, incluido hardware, software y la obtención de los pesos de LLaMa, imprescindibles para ejecutar el modelo con éxito.

Te hemos dado instrucciones detalladas para configurar el entorno de trabajo, instalar el software necesario y preparar los pesos de Vicuna-13B, destacando la importancia de los pesos en los modelos de lenguaje.

Además, hemos profundizado en el empaquetado y el despliegue de Vicuna-13B, y cómo el despliegue facilita su uso como interfaz web y API.

Por último, compartimos recomendaciones prácticas para interactuar con Vicuna-13B, ejemplos de sus capacidades y buenas prácticas para optimizar su rendimiento y solucionar problemas frecuentes.

¿Listo para profundizar en el mundo de la IA y el aprendizaje automático? Potencia tus habilidades con el framework de deep learning que usan los profesionales de IA. Únete hoy al curso Deep Learning with PyTorch.


Zoumana Keita 's photo
Author
Zoumana Keita
LinkedIn
Twitter

Zoumana desarrolla herramientas de IA LLM para ayudar a las empresas a llevar a cabo la diligencia debida en materia de sostenibilidad y evaluaciones de riesgos. Anteriormente trabajó como científico de datos e ingeniero de aprendizaje automático en Axionable e IBM. Zoumana es la fundadora de la plataforma tecnológica educativa de aprendizaje entre iguales ETP4Africa. Ha escrito más de 20 tutoriales para DataCamp.

Temas
Inteligencia Artificial

¡Empieza hoy tu camino en IA!

Curso

Comprender la inteligencia artificial

2 h
421.7K
Aprende los conceptos básicos de la inteligencia artificial, como machine learning, aprendizaje profundo, PLN, IA generativa y mucho más.
Ver detallesRight Arrow
Iniciar Curso
Ver másRight Arrow
Relacionado

Tutorial

Tutorial de FastAPI: Introducción al uso de FastAPI

Explore el marco FastAPI y descubra cómo puede utilizarlo para crear API en Python.
Moez Ali's photo

Moez Ali

13 min

Tutorial

Guía para principiantes sobre el uso de la API ChatGPT

Esta guía te acompanya a través de los fundamentos de la API ChatGPT, demostrando su potencial en el procesamiento del lenguaje natural y la comunicación impulsada por la IA.
Moez Ali's photo

Moez Ali

11 min

Tutorial

Tutorial Mistral 7B: Guía paso a paso para utilizar y ajustar Mistral 7B

El tutorial cubre el acceso, la cuantización, el ajuste fino, la fusión y el almacenamiento de este potente modelo lingüístico de código abierto con 7300 millones de parámetros.
Abid Ali Awan's photo

Abid Ali Awan

12 min

Tutorial

Llama.cpp Tutorial: Una Guía Completa para la Inferencia e Implementación Eficiente del LLM

Esta completa guía sobre Llama.cpp te guiará a través de los aspectos esenciales de la configuración de tu entorno de desarrollo, la comprensión de sus funcionalidades básicas y el aprovechamiento de sus capacidades para resolver casos de uso del mundo real.
Zoumana Keita 's photo

Zoumana Keita

11 min

Tutorial

Guía para principiantes de la API de OpenAI: Tutorial práctico y prácticas recomendadas

Este tutorial te presenta la API de OpenAI, sus casos de uso, un enfoque práctico para utilizar la API y todas las prácticas recomendadas que debes seguir.
Arunn Thevapalan's photo

Arunn Thevapalan

13 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

Ver MásVer Más