¿Problemas con la IA o el desarrollo full-stack? Nuestros expertos están aquí para guiarle: asesoramiento personalizado, integración técnica y mucho más. Contacte con nosotros en [email protected].

Implementación del modelo generativo Mistral 7b en una GPU A10 en AWS

Summary

Este curso de PNL en la nube muestra cómo implementar y utilizar el modelo de IA generativa Mistral 7b en una GPU NVIDIA A10 en AWS.

El modelo Mistral 7b supera al LLaMA 3 7b en todas las pruebas y al LLaMA 3 13b en muchas. De hecho, está incluso a la par con el modelo LLaMA 1 34b.

Desplegarlo y utilizarlo requiere al menos 15 GB de VRAM, por lo que necesitamos una GPU A10 con 24 GB de VRAM como mínimo.

Esta es la estructura del curso:

Transcript

Hola, soy Julien Sainas de NLP Cloud.

Hoy vamos a ver cómo implementar el modelo generativo Mistral 7b en una GPU A10 de AWSAllá vamos.

Mistral 7b es un modelo generativo de última generación lanzado por una empresa francesa llamada Mistral AI.

Este modelo salió a la venta en septiembre de 2023 y supera a Lama 2 7b en todas las pruebas oficiales.

Y lo que es más interesante, también supera a Lama 2 13b en muchos puntos de referencia, y está a la par con Lama 1 34b.

Mistral AI ha publicado este modelo con una licencia Apache, que te permite utilizarlo como quieras.

El equipo ha publicado un modelo básico y una versión perfeccionada para chat.

Hoy vamos a desplegar la versión de chat en este vídeo.

Mistral 7b requiere al menos 14 gigas de memoria virtual y más en caso de un contexto de gran tamaño.

Así que vamos a implementarlo en una GPU NVIDIA A10 en AWS, ya que esta GPU tiene 24 gigas de memoria virtual y es bastante rentable.

La forma más sencilla de desplegar Mistral 7b es utilizar el framework Hugging Face y seguir las directrices oficiales de Mistral AI.

Como primer paso, tendremos que seleccionar la máquina de AWS adecuada.

Hay montones de máquinas en AWS, así que el mejor consejo que puedo darte es que empieces por esta página de tipos de instancias y luego vayas a Accelerated Computing a la izquierda.

Aquí tienes una lista de todas las instancias de hardware aceleradas que proporciona AWS, y la que queremos hoy es la G5.

Como puedes ver aquí, el G5 incorpora una GPU A10, que es lo que queremos.

Hay varios tipos de instancias G5.

Algunos sólo tienen una GPU, otros cuatro u ocho.

Una GPU es suficiente para nosotros porque hay suficiente memoria virtual en una GPU, pero tenemos que tener mucho cuidado con la cantidad de memoria que tiene la instancia porque cuando iniciemos el modelo Mistral 7b, necesitaremos temporalmente algo de memoria para cargar el modelo.

Es por eso que hoy seleccionaremos una instancia grande G5 4X porque 64 gigas deberían ser suficientes.

Ahora, cambio a mi consola de AWS, y hago clic en Launch Instance.

Llamémoslo Prueba A10 Mistral.

Seleccionaremos el sistema operativo Ubuntu, pero hay un truco.

No queremos seleccionar el SO Ubuntu estándar porque tendremos que instalar manualmente los controladores NVIDIA en él, lo cual es muy doloroso.

Lo que vamos a hacer es seleccionar el servidor Deep Learning AMI GPU PyTorch aquí, que es mucho mejor porque este AMI viene con Ubuntu más controladores NVIDIA más kit de herramientas CUDA más PyTorch y otras cosas, que son todas las cosas que vamos a necesitar hoy para nuestras pruebas.

En este caso, seleccionamos la instancia grande G5 4X.

Si no tiene un par de claves, debe crear uno.

Si es la primera vez que haces esto y no estás muy seguro de cómo conectar VS Code a tu instancia de AWS, te recomiendo que veas nuestro vídeo dedicado sobre el entorno de desarrollo remoto con VS Code en AWS.

No hace falta abrir otros puertos, y te recomiendo que añadas unos 100 gigas de disco.

En teoría, el modelo sólo debería ocupar 20 gigas de disco duro, pero siempre es mejor tener más porque quizá necesitemos instalar librerías, así que aquí estaremos a salvo.

Hagamos clic en Lanzar Instancia.

Bien, está creado.

Si tienes un problema de cuota porque quizás es la primera vez que lanzas una GPU 8N, te recomiendo que te pongas en contacto con el soporte de AWS.

Ahora estoy tomando la IP pública aquí, y ahora estoy cambiando a VS Code.

En la parte inferior izquierda, es necesario conectar una ventana actual a host, y en primer lugar, es necesario configurar los hosts.

Aquí, esta es la dirección IP que acabo de recuperar de AWS, y esta es mi clave SSH.

Guardo el archivo y vuelvo a hacer lo mismo, y esta vez hago clic en Mistral 7B.

Quiero aceptar la nueva huella digital.

Perfecto.

Ahora estamos en nuestra máquina GPU 8N.

Comprobemos primero si la GPU dispone de los controladores adecuados.

Con NVIDIA SMI, perfecto.

Puedo ver que tengo una GPU 8N aquí y que está vacía, así que tengo casi 24 gigas de VRAM para mi modelo de hoy.

Estoy creando un directorio de prueba que abriré con VS Code, y ahora estoy creando un archivo de prueba.

Tal vez deberíamos llamarlo infer.py.

Entonces, ¿qué debemos poner en este archivo infer.py? Fácil.

Vamos a nuestro modelo Mistral AI en Cara de Abrazo.

Si es la primera vez que descargas un modelo en Hugging Face, básicamente puedes ir aquí a modelos, y tienes montones de modelos disponibles.

Puede hacer clic aquí y escribir Mistral 7B.

Como puede ver, Mistral ya encabezaba la lista porque está muy de moda últimamente.

Voy a seleccionar el modelo Instruct porque hoy en día es más divertido jugar con él, y aquí me limito a seguir las directrices del equipo de IA de Mistral.

Así que simplemente copio y pego el código en VS Code.

No funcionará tal cual porque antes necesitaremos instalar la librería Transformers.

Así que como este modelo Mistral 7B acaba de ser añadido a Transformers, todavía no está disponible en el paquete PyPy, pero no es un problema.

Instalaremos Transformers desde el repositorio de GitHub directamente.

Bien.

Ahora, Transformers está correctamente instalado.

Lo último que tendremos que hacer es utilizar la versión de punto flotante 16 del modelo porque si utilizamos la versión por defecto del modelo, que es de punto flotante 32, será demasiado grande para nuestra GPU A10, y la mayoría de las veces, la diferencia entre FP16 y FP32 para este tipo de modelo no es en absoluto perceptible.

Así que lo que tenemos que hacer hoy es importar Torch y añadir este parámetro, Torch dtype, al cargar el modelo.

Bien.

Ahora, intentemos ejecutar el script de inferencia.

Bien.

Así que tenemos una receta adecuada sobre la mayonesa.

Quizá podamos probar otra cosa.

Preguntemos al modelo cómo instalar Transformers en un servidor Linux.

Podemos eliminar esto.

Bien.

Así que CSS, no estoy seguro de por qué.

Eso suena correcto, excepto el marcado CSS aquí.

No sé muy bien a qué viene este detalle, pero creo que es suficiente para que veas que es un buen modelo 7B, y ahora ya sabes cómo utilizarlo, así que ahora te toca a ti.

Ahora ya sabe cómo implantar el modelo Mistral 7B en su propio servidor.

Como puedes ver, no es necesariamente complejo, sobre todo porque hoy sólo utilizamos una única GPU.

Si no tienes una GPU A10 con suficiente memoria virtual, puede que necesites varias GPU más pequeñas.

En ese caso, tendrás que dividir tu modelo en varias GPU más pequeñas.

Será un poco más complejo, y necesitaremos otro vídeo dedicado a ello.

Que tenga un buen día.