View a markdown version of this page

LLM de referencia con vLLM y lm-evaluation-harness - Nube de plazos

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

LLM de referencia con vLLM y lm-evaluation-harness

Este tutorial te muestra cómo evaluar varios modelos de lenguaje de gran tamaño (LLM) comparándolos con varios puntos de referencia en un solo trabajo de Deadline Cloud. Cada modelo se convierte en una tarea en un barrido de parámetros y las tareas se ejecutan en paralelo entre los trabajadores. Un último paso consiste en agregar los resultados de cada modelo en una tabla de clasificación clasificada en formato CSV y Markdown.

El código fuente de este tutorial está disponible en el repositorio deadline-cloud-samples en. GitHub

El siguiente vídeo muestra el flujo de trabajo de la tabla de clasificación de vLLM LLM en Deadline Cloud.

Tiempo estimado: de 20 a 40 minutos (según el número de modelos y puntos de referencia).

Descripción general de

Cada tarea de este EvalModels paso inicia un servidor VLLM local, ejecuta todos los puntos de referencia con el lm-evaluation-harness de EleutherAI en el punto final local y, a continuación, detiene la vLLM. Los modelos se cargan directamente desde Hugging Face Hub, por lo que no es necesario adjuntarlos al trabajo.

Para completar este tutorial, sigue estos pasos:

  1. Cumplir los requisitos previos de .

  2. Configura tu granja.

  3. Envíe el trabajo de evaluación.

  4. Descargue y revise los resultados.

  5. Eliminación de recursos.

Requisitos previos

Antes de empezar, se recomienda realizar la siguiente configuración:

  • Una granja de Deadline Cloud con una flota de GPU gestionada por el servicio de NVIDIA (A10G o L4, 32 GB de RAM como mínimo y 4 vCPU como mínimo).

  • Una cola con un entorno de cola conda adjunto que lee los parámetros del trabajo. CondaPackages CondaChannels

  • La CLI de Deadline Cloud instalada en su estación de trabajo.

  • Cuota suficiente de servicio de vCPU de Amazon Elastic Compute Cloud (Amazon EC2) para las instancias de GPU. El modelo predeterminado en el que se ejecuta g5.xlarge (4 vCPU cada uno) requiere al menos 12 vCPU en instancias G y VT en ejecución. On-Demand

nota

El token Hugging Face solo es necesario para los modelos cerrados (como Llama). La lista de modelos por defecto usa modelos sin computar.

Configure su granja

La forma más rápida de obtener una granja compatible es implementar la CloudFormation plantilla de granja CUDA. La plantilla proporciona una flota de GPU NVIDIA gestionada por el servicio (A10G o L4) y una cola con un entorno de cola conda que este paquete utiliza sin modificaciones.

Para configurar la CLI de su granja
  • Cuando llegue la CloudFormation pilaCREATE_COMPLETE, configure la CLI de Deadline Cloud para usar la nueva granja:

    deadline config set defaults.farm_id FarmId-from-stack-outputs deadline config set defaults.queue_id CUDAQueueId-from-stack-outputs

Si ya tiene una granja, se recomienda la siguiente configuración:

  • Una flota SMF con GPU NVIDIA, al menos 32 GB de RAM y al menos 4 vCPU.

  • Una cola con un entorno de colas conda que lee los parámetros y los trabajos. CondaPackages CondaChannels

Envíe el trabajo de evaluación

Para enviar el trabajo de evaluación
  1. Clone el repositorio de muestras y navegue hasta el directorio del paquete de trabajos:

    git clone https://github.com/aws-deadline/deadline-cloud-samples.git cd deadline-cloud-samples/job_bundles/vllm_lm_eval_leaderboard
  2. Envíe el trabajo con los modelos y puntos de referencia predeterminados:

    deadline bundle submit . \ --parameter MaxModelLen=2048

    La lista de modelos por defecto evalúa tres modelos pequeños y sin separación: Qwen/Qwen2.5-0.5BQwen/Qwen2.5-1.5B, y. EleutherAI/pythia-1.4b Los puntos de referencia predeterminados son un conjunto de razonamiento de sentido común:. hellaswag,arc_easy,arc_challenge,winogrande

  3. Supervise el estado del trabajo en la consola de Deadline Cloud o mediante el deadline job get comando.

Cambiar la lista de modelos

Los modelos se definen como un espacio de parámetros STRING en el EvalModels escalón detemplate.yaml:

parameterSpace: taskParameterDefinitions: - name: ModelName type: STRING range: - "Qwen/Qwen2.5-0.5B" - "Qwen/Qwen2.5-1.5B" - "EleutherAI/pythia-1.4b"

Para añadir o eliminar modelos, edite la range lista. Cada entrada se convierte en una tarea visible en el monitor de Deadline Cloud. Los identificadores de modelo deben ser compatibles con vLLM (consulte la lista de modelos compatibles con vLLM).

Elegir puntos de referencia

El parámetro Benchmarks job es una lista de nombres de tareas de lm-evaluation-harness separados por comas. Anule los puntos de referencia predeterminados en el momento del envío:

deadline bundle submit . \ --parameter Benchmarks="hellaswag,mmlu,gsm8k"

Todos los puntos de referencia de la lista se ejecutan secuencialmente en el servidor vLLM de cada modelo. Mantenga MaxModelLen un valor inferior o igual a la ventana de contexto del modelo más pequeño. Para obtener una lista completa de los puntos de referencia disponibles, consulte las tareas de lm-evaluation-harness en. GitHub

Descargue y revise los resultados

Para descargar los resultados de la tabla de clasificación
  1. Una vez finalizado el trabajo, descargue el resultado:

    deadline job download-output --job-id job-id
  2. Vea la tabla de clasificación:

    cat leaderboard_results/leaderboard.md

El siguiente ejemplo muestra el resultado típico de una tabla de clasificación:

# LLM Leaderboard Models: 3 | Benchmarks: arc_challenge, arc_easy, hellaswag, winogrande | Rank | Model | arc_challenge | arc_easy | hellaswag | winogrande | Mean | |------|------------------------|---------------|----------|-----------|------------|--------| | 1 | Qwen/Qwen2.5-1.5B | 0.4497 | 0.7176 | 0.6775 | 0.6322 | 0.6192 | | 2 | Qwen/Qwen2.5-0.5B | 0.3200 | 0.5816 | 0.5223 | 0.5691 | 0.4982 | | 3 | EleutherAI/pythia-1.4b | 0.2833 | 0.5387 | 0.5201 | 0.5730 | 0.4788 |

Limpieza

Para evitar cargos continuos, limpia los recursos que creaste para este tutorial:

Para limpiar los recursos del tutorial
  1. Si implementó la CloudFormation plantilla de granja CUDA, elimine la CloudFormation pila de la CloudFormation consola.

  2. Si utilizaste una granja existente, detiene o elimina la flota de GPU que usaste para este tutorial.

  3. Elimine los archivos de salida locales si ya no los necesita:

    rm -rf leaderboard_results/

Resolución de problemas

Fleet no amplía el número de trabajadores

La causa más común es una cuota de servicio de vCPU de Amazon EC2. Abra la consola Service Quotas en EC2 y confirme que dispone de espacio suficiente para ejecutar instancias On-Demand G y VT. Los aumentos de cuota pueden tardar de unos minutos a un par de días laborables.

Los siguientes recursos proporcionan información adicional: