Desplegar LLAMA-3 local con NVIDIA NIM: Una guía completa
Desplegar LLAMA-3 local con NVIDIA NIM: Una guía completa - Aprende cómo desplegar un modelo LLAMA-3 utilizando NVIDIA NIM para una inferencia eficiente en tu nube o máquina local. Cubre la configuración, las pruebas de rendimiento y la integración con la API de OpenAI.
21 de febrero de 2025

Desbloquea el poder de los modelos de lenguaje a gran escala con nuestra guía sobre el autoalojamiento y la implementación del modelo LLAMA-3 utilizando NIM de NVIDIA. Descubre cómo aprovechar esta tecnología de vanguardia para acelerar tus proyectos de IA y obtener un rendimiento inigualable.
Cómo implementar NVIDIA NIM para la inferencia de modelos de lenguaje a gran escala
Acceso a NVIDIA Launchpad y al panel de métricas de GPU
Configuración del contenedor Docker de NVIDIA NIM
Interacción con la API de NVIDIA NIM
Prueba de estrés del punto final de la API de NVIDIA NIM
Uso de NVIDIA NIM con el cliente de API de OpenAI
Conclusión
Cómo implementar NVIDIA NIM para la inferencia de modelos de lenguaje a gran escala
Cómo implementar NVIDIA NIM para la inferencia de modelos de lenguaje a gran escala
Para implementar una familia de modelos Lama utilizando NVIDIA NIM en su propia nube o máquina local, siga estos pasos:
-
Configurar el entorno: Si se ejecuta en su máquina local, instale el motor Docker y el kit de herramientas de contenedores NVIDIA. Los enlaces a estos se proporcionan en la descripción del video.
-
Obtener la clave API: Regístrese en una cuenta de NVIDIA para generar su clave API y clave personal. Estos serán necesarios para interactuar con el servidor remoto.
-
Ejecutar el contenedor Docker: Use el comando Docker proporcionado para ejecutar el contenedor, especificando el nombre del contenedor, el uso de GPU, la clave API, la ubicación de la caché del modelo y el puerto. Esto descargará y configurará el modelo Lama 3 de 8 mil millones de instrucciones.
-
Interactuar con el modelo: Use el comando cURL proporcionado para interactuar con el modelo implementado. Este comando sigue el estándar de la API de OpenAI, lo que le permite usar el cliente de OpenAI para la interacción.
-
Probar la API bajo estrés: Use un script de Python con la biblioteca
requests
para enviar múltiples solicitudes concurrentes al punto final de la API y monitorear la utilización de GPU y el rendimiento. -
Usar el cliente de la API de OpenAI: Demuestre cómo usar el cliente de la API de OpenAI con NVIDIA NIM, actualizando la URL base y otros parámetros para que coincidan con el modelo implementado.
NVIDIA NIM proporciona una forma conveniente y optimizada de implementar modelos de lenguaje grandes para inferencia, con la capacidad de lograr un rendimiento hasta 3 veces mejor en comparación con otras opciones de implementación. El período de prueba gratuita de 90 días le permite explorar esta solución más a fondo.
Acceso a NVIDIA Launchpad y al panel de métricas de GPU
Acceso a NVIDIA Launchpad y al panel de métricas de GPU
Para acceder a NVIDIA Launchpad y al panel de métricas de GPU, siga estos pasos:
-
Como parte de NVIDIA Launchpad, tiene acceso a un IDE de código, que es Visual Studio Code. Puede usar este IDE para interactuar con la instancia de GPU e implementar el modelo Llama 3 de 8 mil millones de instrucciones.
-
El panel de métricas de GPU es un panel de Grafana que proporciona información detallada sobre el uso y el rendimiento de la GPU. Puede acceder a este panel para monitorear la utilización de la GPU, la versión de CUDA, los controladores de GPU y otras métricas relevantes.
-
El panel de Grafana le brinda una representación visual del uso de la GPU a lo largo del tiempo, lo que le permite rastrear el rendimiento y optimizar la implementación en consecuencia.
-
Puede usar el comando
watch
en la terminal para monitorear el uso de la GPU en tiempo real. El comandowatch -n 1 nvidia-smi
actualizará el uso de la GPU cada segundo, brindándole una vista en vivo de la utilización de la GPU. -
El panel de métricas de GPU y las herramientas de monitoreo en tiempo real le permiten comprender las características de rendimiento de la implementación del modelo Llama 3 de 8 mil millones de instrucciones, lo que le ayuda a optimizar la utilización de los recursos y garantizar una inferencia eficiente.
Configuración del contenedor Docker de NVIDIA NIM
Configuración del contenedor Docker de NVIDIA NIM
Para implementar el modelo Llama 3 de 8 mil millones de instrucciones utilizando NVIDIA NIM, siga estos pasos:
- Abra el IDE proporcionado y asegúrese de tener acceso a una GPU H100.
- Configure su clave API registrándose en una cuenta de NVIDIA y generando las claves necesarias.
- Ejecute el siguiente comando Docker para iniciar el contenedor NVIDIA NIM:
docker run -it --gpus all -e NVIDIA_API_KEY=$NVIDIA_API_KEY -p 8000:8000 --name llama-3-8b-instruct nvcr.io/nvidia/nim:latest --model-name llama-3-8b-instruct
Este comando hará lo siguiente:
- Crear un contenedor Docker llamado "llama-3-8b-instruct"
- Usar todas las GPU disponibles en el sistema
- Establecer la variable de entorno NVIDIA_API_KEY
- Exponer el puerto 8000 para el servidor NIM
- Usar el modelo "llama-3-8b-instruct" del catálogo de NVIDIA NIM
- Una vez que el contenedor esté en ejecución, puede usar el comando cURL proporcionado para interactuar con el modelo:
curl -X POST -H "Content-Type: application/json" -d '{"model": "llama-3-8b-instruct", "prompt": "Cuéntame un chiste.", "max_tokens": 1000, "temperature": 0.7, "top_p": 0.95, "stop": ["\n"]}' http://localhost:8000/v1/completions
Este comando cURL envía una solicitud al servidor NIM que se ejecuta en localhost:8000 para generar una respuesta para el mensaje "Cuéntame un chiste".
-
Para probar la API bajo estrés, puede ejecutar el script de Python
test_server.py
proporcionado. Este script enviará múltiples solicitudes concurrentes al servidor NIM y monitoreará la utilización de la GPU. -
Finalmente, también puede usar el cliente de la API de OpenAI para interactuar con el servidor NIM actualizando la URL base para que apunte a la dirección y el puerto del servidor NIM.
Siguiendo estos pasos, podrá implementar con éxito el modelo Llama 3 de 8 mil millones de instrucciones utilizando el contenedor Docker de NVIDIA NIM y probar su rendimiento.
Interacción con la API de NVIDIA NIM
Interacción con la API de NVIDIA NIM
Para interactuar con la API de NVIDIA NIM, podemos usar un simple comando cURL. El comando cURL proporciona lo siguiente:
- Realiza una solicitud POST al host local en el puerto 8000, que es donde se está ejecutando el servidor NVIDIA NIM.
- Usa la API compatible con OpenAI, por lo que podemos usar el cliente de OpenAI para interactuar con el servidor NIM.
- Especifica el modelo Llama 3 de 8 mil millones de instrucciones a utilizar.
- Establece la estructura del mensaje similar a lo que espera OpenAI.
- Permite establecer parámetros adicionales como
max_tokens
ytemperature
.
Aquí está el comando cURL:
curl -X POST -H "Content-Type: application/json" -d '{"model": "nlp/lama-3-8b-instruct", "messages": [{"role": "user", "content": "Cuéntame un chiste"}], "max_tokens": 1000, "temperature": 0.7}' http://localhost:8000/v1/chat/completions
Este comando cURL enviará una solicitud al servidor NVIDIA NIM, que luego generará una respuesta del modelo Llama 3 de 8 mil millones de instrucciones. La respuesta se transmitirá de vuelta, con cada token que se muestra a medida que se genera.
Para probar aún más el punto final de la API, podemos usar un script de Python que utilice la biblioteca requests
para hacer múltiples solicitudes concurrentes. Este script enviará 50 solicitudes de generación de chistes en paralelo y monitoreará la utilización de la GPU y el rendimiento.
Prueba de estrés del punto final de la API de NVIDIA NIM
Prueba de estrés del punto final de la API de NVIDIA NIM
Para probar la API de NVIDIA NIM bajo estrés, usaremos un simple script de Python que aprovecha la biblioteca requests
para hacer múltiples solicitudes concurrentes al punto final de la API. Así es como funciona:
-
Definimos la URL del punto final de la API, que en este caso es el host local ya que estamos ejecutando el servidor localmente. Si lo implementara en un servidor remoto, tendría que usar la dirección IP externa y habilitar el reenvío de puertos.
-
Establecemos los encabezados necesarios, incluido el encabezado
Content-Type
enapplication/json
. -
Creamos la carga útil, que incluye el nombre del modelo (
"model": "llama-3-8b-instruct"
), el mensaje ("prompt": "Cuéntame 50 chistes."
), y otros parámetros comomax_tokens
,temperature
ystop
. -
Definimos una función
send_requests()
que envía las solicitudes usando el métodorequests.post()
y la URL, los encabezados y la carga útil que definimos anteriormente. -
Usamos subprocesos múltiples para ejecutar varias instancias de la función
send_requests()
de forma concurrente, simulando un alto volumen de solicitudes al punto final de la API. -
Monitoreamos el uso de la GPU en tiempo real usando el comando
watch
y la herramientanvidia-smi
, que proporciona información sobre la utilización de la GPU.
La salida muestra que el punto final de la API puede manejar una cantidad significativa de solicitudes concurrentes, con un rendimiento promedio de aproximadamente 2,500 tokens por segundo. La utilización de la GPU también permanece relativamente alta, lo que indica que NVIDIA NIM está aprovechando eficazmente los recursos de hardware para ofrecer una inferencia de alto rendimiento.
Esta prueba de estrés demuestra la escalabilidad y el rendimiento de la solución NVIDIA NIM, convirtiéndola en una opción atractiva para implementar modelos de lenguaje de gran tamaño en un entorno de producción.
Uso de NVIDIA NIM con el cliente de API de OpenAI
Uso de NVIDIA NIM con el cliente de API de OpenAI
Para usar el cliente de la API de OpenAI con NVIDIA NIM, siga estos pasos:
- Cambie la URL base a la URL de su instancia de NVIDIA NIM. En este ejemplo, lo estamos ejecutando en
localhost:8000
:
openai.api_base = "http://localhost:8000"
-
No necesita proporcionar la clave API, ya que NVIDIA NIM maneja la autenticación.
-
Establezca el modelo en el modelo alojado por NVIDIA NIM, en este caso,
"meta-llama-38b-instruct"
:
model = "meta-llama-38b-instruct"
- Establezca otros parámetros, como el número máximo de tokens a generar, la temperatura y si se deben transmitir las respuestas:
response = openai.ChatCompletion.create(
model=model,
messages=[{"role": "user", "content": "Cuéntame 50 chistes diferentes"}],
max_tokens=1024,
temperature=0.7,
stream=True,
)
- Itere a través de la respuesta de transmisión y imprima el texto generado:
for chunk in response:
print(chunk.choices[0].text, end="")
Este enfoque le permite aprovechar el rendimiento y la facilidad de implementación proporcionados por NVIDIA NIM mientras usa el cliente de la API de OpenAI familiar. La respuesta de transmisión garantiza que obtenga el texto generado en tiempo real, brindando una experiencia de usuario receptiva.
Conclusión
Conclusión
En este video, hemos explorado cómo implementar un modelo Lama 3 de 8 mil millones de instrucciones utilizando NVIDIA NIM en su propia nube o máquina local. NVIDIA NIM es un conjunto de microservicios desarrollados por NVIDIA que acelera la implementación de modelos fundamentales, incluidos los modelos de lenguaje y otros modelos de IA.
Hemos recorrido los pasos para configurar el entorno de NVIDIA NIM, incluida la generación de la clave API y la ejecución del contenedor Docker para implementar el modelo Lama 3. También hemos probado el rendimiento del modelo implementado enviando múltiples solicitudes simultáneamente y monitoreando la utilización de la GPU y el rendimiento.
Además, hemos mostrado cómo usar el cliente de la API de OpenAI para interactuar con el modelo implementado por NVIDIA NIM, demostrando la compatibilidad con el estándar de la API de OpenAI.
En general, NVIDIA NIM proporciona una forma conveniente y eficiente de implementar modelos de lenguaje de gran tamaño en un entorno de producción. La capacidad de aprovechar el hardware y el software de NVIDIA puede generar mejoras de rendimiento significativas en comparación con otras opciones de implementación. Si está interesado en explorar más opciones de implementación para sus proyectos, asegúrese de suscribirse al canal para obtener contenido próximo sobre VLLM y otros temas relacionados.
Preguntas más frecuentes
Preguntas más frecuentes