View a markdown version of this page

Compare los LLM con vLLM y lm-evaluation-harness - Deadline Cloud

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.

Compare los LLM con vLLM y lm-evaluation-harness

En este tutorial se explica cómo evaluar varios modelos lingüísticos 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. En un último paso, se agregan los resultados de cada modelo en una tabla clasificatoria en formato CSV y Markdown.

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

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

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

Descripción general de

Cada tarea del EvalModels paso inicia un servidor vLLM local, ejecuta todas las pruebas comparativas con el sistema de evaluación lm-evaluation de EleutherAI comparándolas con el punto final local y, a continuación, detiene vLLM. Para obtener más información, consulte vLLM y lm-evaluation-harness en el sitio web. https://github.com/vllm-project/vllm https://github.com/EleutherAI/lm-evaluation-harness GitHub Los modelos se cargan directamente desde Hugging Face Hub, por lo que no es necesario adjuntar el 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 la siguiente configuración:

  • Una granja de Deadline Cloud con una flota gestionada por servicios de GPU de NVIDIA (A10G o L4, al menos 32 GB de RAM y al menos 4 vCPU).

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

  • La CLI de Deadline Cloud instalada en su estación de trabajo. Para obtener instrucciones de instalación, consulte el repositorio Deadline-Cloud en el sitio web. GitHub

  • Cuota de servicio Deadline Cloud suficiente para instancias de GPU. La ejecución predeterminada de 3 modelos g5.xlarge (4 CPU virtuales y 1 GPU cada uno) requiere al menos 3 GPU con instancias OnDemand G por región y 12 CPU virtuales con CPU virtuales por región. OnDemand

nota

El token Hugging Face solo es necesario para los modelos cerrados (como Llama). La lista de modelos predeterminada usa modelos no cerrados.

Configure su granja

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

Para configurar la CLI para 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 de SMF con GPU NVIDIA, al menos 32 GB de RAM y al menos 4 vCPU.

  • Una cola con un entorno de cola conda que lee y ejecuta los parámetros. 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 de paquetes 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 predeterminada evalúa tres modelos pequeños y no clasificados: 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 ID de modelo deben ser compatibles con vLLM. Para obtener más información, consulte la lista de modelos compatibles en el sitio web de vLLM.

Cómo elegir puntos de referencia

El parámetro de Benchmarks trabajo es una lista separada por comas de los nombres de las tareas de lm-evaluation-harness. 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 de forma secuencial 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 el sitio web. GitHub

Descarga y revisa los resultados

Para descargar los resultados de la clasificación
  1. Una vez finalizado el trabajo, descarga 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 de CUDA, elimine la CloudFormation pila de la CloudFormation consola.

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

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

    rm -rf leaderboard_results/

Resolución de problemas

La flota no aumenta el número de trabajadores

La causa más común es la cuota de servicio de Deadline Cloud. Abre la consola de cuotas de servicio en AWS Deadline Cloud y confirma que tienes espacio para usar las GPU de instancia OnDemand G por región y las OnDemand CPU virtuales por región. Los aumentos de cuota pueden tardar de unos minutos a un par de días laborables.

Los siguientes recursos proporcionan información adicional sobre el GitHub sitio web y el sitio web del vLLM: