En los últimos meses, los modelos de lenguajes grandes han sido objeto de una extensa investigación y desarrollo, con modelos de última generación como GPT-4, Meta LLaMa y Alpaca que superan los límites del procesamiento del lenguaje natural y el hardware necesario para ejecutarlos. . Ejecutar la inferencia en estos modelos puede ser un desafío computacional y requiere un hardware potente para brindar resultados en tiempo real.
En los últimos meses, los modelos de lenguajes grandes han sido objeto de una extensa investigación y desarrollo, con modelos de última generación como GPT-4, Meta LLaMa y Alpaca que superan los límites del procesamiento del lenguaje natural y el hardware necesario para ejecutarlos. . Ejecutar la inferencia en estos modelos puede ser un desafío computacional y requiere un hardware potente para brindar resultados en tiempo real.
En el laboratorio de revisión de almacenamiento, pusimos dos GPU NVIDIA RTX 8000 en el trabajo de ejecutar el modelo LLaMa de Meta para ver cómo funcionaban al ejecutar la inferencia en modelos de lenguaje grandes. usamos el Lenovo P920 como anfitrión de las tarjetas, minimizando los cuellos de botella. La RTX 8000 es una tarjeta gráfica de gama alta capaz de usarse en aplicaciones de inteligencia artificial y aprendizaje profundo, y las elegimos específicamente de la pila gracias a los 48 GB de memoria GDDR6 y 4608 núcleos CUDA en cada tarjeta, y también Kevin está acaparando todos los A6000'S.
Meta LLaMA es un modelo de lenguaje a gran escala entrenado en un conjunto diverso de texto de Internet. Está disponible públicamente y proporciona resultados de última generación en varias tareas de procesamiento de lenguaje natural. En este artículo, proporcionaremos una guía paso a paso sobre cómo configuramos y ejecutamos la inferencia LLaMA en las GPU NVIDIA; no se garantiza que esto funcione para todos.
Requisitos Meta LLaMa
Antes de comenzar, debemos asegurarnos de tener instalados los siguientes requisitos:
- GPU NVIDIA con un mínimo de 16 GB de VRAM
- Controladores NVIDIA instalados (al menos la versión 440.33)
- CUDA Toolkit instalado (al menos la versión 10.1)
- anaconda instalada
- PyTorch instalado (al menos la versión 1.7.1)
- Espacio del disco; todo el conjunto de puntos de control de LLaMa supera los 200 TB.
Nota: Se recomienda tener un entorno Anaconda dedicado para LLaMA, tenemos algunos en el banco de pruebas para que podamos jugar con paquetes y parámetros y no limpiar la instalación base.
Pasos para ejecutar Meta LLaMA Inference en GPU NVIDIA
- Descarga el repositorio LLaMA: El primer paso es clonar el repositorio LLaMA desde GitHub.
git clone https://github.com/EleutherAI/LLaMA.git
- Obtenga el punto de control y el tokenizador LLaMA: Visite la página de GitHub y complete el formulario de Google vinculado para acceder a la descarga. Hay otros LLM disponibles, como Alpaca. A estos efectos, se supondrá que se dispone de acceso a los archivos LLaMa.
- Enumere e instale los programas necesarios para LLaMa ejecutando el siguiente comando desde el directorio del repositorio clonado:
pip install -r requirements.txt
pip install -e .
- Configure el script de inferencia: El
example.py
El script provisto en el repositorio de LLaMA se puede usar para ejecutar la inferencia de LLaMA. El script se puede ejecutar en un nodo de GPU único o múltiple contorchrun
y generará finalizaciones para dos indicaciones predefinidas.
Abierto example.py
y configure los siguientes parámetros según sus preferencias. Las descripciones de cada parámetro y lo que hacen se enumeran a continuación.
--max_seq_len
: longitud máxima de secuencia (el valor predeterminado es 2048)--max_batch_size
: tamaño máximo de lote (el valor predeterminado es 8)--gen_length
: longitud de generación (el valor predeterminado es 512)--temperature
: temperatura de generación (el valor predeterminado es 1.0)--top_p
: muestreo top-p (el valor predeterminado es 0.9)
Por ejemplo, para ejecutar la inferencia LLaMA en una sola GPU con archivos de puntos de control y tokenizadores en el directorio /path/to/files
, usa el siguiente comando:
torchrun --nproc_per_node 1 example.py --ckpt_dir /path/to/files --tokenizer_path /path/to/files/tokenizer.model
Nota la nproc_per_node
El argumento depende del tamaño del modelo y la cantidad de GPU requeridas para los puntos de control predeterminados de LLaMa. Consulte la siguiente tabla para establecer el valor apropiado para su sistema y el modelo que está ejecutando:
Modelo | GPU requeridas |
---|---|
7B | 1 |
13B | 2 |
33B | 4 |
65B | 8 |
En el siguiente ejemplo, usamos las indicaciones estándar en el archivo de ejemplo, pero jugamos con el temperature
y top_p
variables, arrojando algunos resultados interesantes. También aumentamos la duración de la respuesta.
Desglose del archivo example.py y las variables que necesita saber
La mayoría de estos están predeterminados dentro del modelo y no es necesario ajustarlos; sin embargo, si está comenzando a usar LLM e inferencias, aquí hay información útil que desglosa lo que hacen las banderas y los interruptores.
local_rank
: El rango de la GPU (proceso) actual en el grupo de GPU utilizadas para el paralelismo de modelos. Esto se configura automáticamente.world_size
: el número total de GPU que se utilizan para el paralelismo del modelo. Esto se configura automáticamente.ckpt_dir
: El directorio que contiene los puntos de control del modelo. Esto se establece en tiempo de ejecución.tokenizer_path
: La ruta al tokenizador utilizado para preprocesar el texto. Esto se establece en tiempo de ejecución.temperature
: un parámetro que controla la aleatoriedad del texto generado (los valores más altos hacen que la salida sea más aleatoria y los valores más bajos la hacen más enfocada).top_p
: un parámetro que controla la estrategia de muestreo del núcleo, que es un método para generar texto que selecciona solo los tokens más probables con una probabilidad acumulada de como máximotop_p
.max_seq_len
: La longitud máxima de secuencia para la entrada y salida del modelo. Puede ajustar esto para disminuir su necesidad de VRAM.max_batch_size
: El número máximo de secuencias de entrada que el modelo puede procesar en paralelo. Puede ajustar esto para disminuir su necesidad de VRAM.prompts
: una lista de indicaciones de entrada para que el modelo genere texto en base.results
: una lista de texto generado correspondiente a cada solicitud de entrada.
Reflexiones Finales:
Nuestras pruebas mostraron que las GPU RTX 8000 podían ofrecer un rendimiento impresionante, con tiempos de inferencia que iban desde unos pocos segundos hasta aproximadamente un minuto, según los parámetros del modelo y el tamaño de entrada. Las GPU podían manejar lotes de gran tamaño y ejecutar inferencias en múltiples modelos simultáneamente sin una desaceleración notable.
Uno de los beneficios de usar GPU para la inferencia es que se pueden escalar fácilmente agregando más GPU al sistema. Esto permite que se ejecuten modelos aún más grandes en tiempo real, lo que permite nuevas aplicaciones en áreas como chatbots, sistemas de preguntas y respuestas y análisis de sentimientos.
Alpaca es un modelo compacto de lenguaje de IA creado por un equipo de científicos informáticos de la Universidad de Stanford. Se basa en el modelo LLaMA 7B de Meta, que cuenta con 7 mil millones de parámetros y ha sido entrenado utilizando una gran cantidad de texto de la web. Para afinar Alpaca, se generaron 52,000 003 demostraciones de seguimiento de instrucciones con el modelo text-davinci-600 de OpenAI, un modelo versátil capaz de ejecutar varias tareas basadas en instrucciones en lenguaje natural. Alpaca es mejor para seguir instrucciones y producir textos para una variedad de propósitos, incluida la redacción de resúmenes, historias y chistes. Con un costo de capacitación de menos de $XNUMX, Alpaca está diseñado para ser rentable y fácilmente replicable. De manera muy impresionante, vale la pena mencionar que Alpaca se puede ejecutar incluso en una computadora portátil. Estamos entrenando un modelo similar a Alpaca usando los métodos que hizo Stanford, pero con nuestro propio toque.
Esta es solo una forma en la que estamos trabajando con los últimos avances tecnológicos en el laboratorio y, gracias a algunas potentes GPU de NVIDIA, podemos hacer incluso más que una simple inferencia; estamos entrenando Estad atentos al próximo artículo próximamente sobre puesta a punto de modelos como Meta LLaMa.
Interactuar con StorageReview
Boletín informativo | YouTube | Podcast iTunes/Spotify | Instagram | Twitter | TikTok | RSS Feed