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.
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
Para completar este tutorial, sigue estos pasos:
-
Cumplir los requisitos previos de .
-
Configura tu granja.
-
Envíe el trabajo de evaluación.
-
Descargue y revise los resultados.
-
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.
CondaPackagesCondaChannels -
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
Para configurar la CLI de su granja
-
Cuando llegue la CloudFormation pila
CREATE_COMPLETE, configure la CLI de Deadline Cloud para usar la nueva granja:deadline config set defaults.farm_idFarmId-from-stack-outputsdeadline config set defaults.queue_idCUDAQueueId-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.
CondaPackagesCondaChannels
Envíe el trabajo de evaluación
Para enviar el trabajo de evaluación
-
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 -
Envíe el trabajo con los modelos y puntos de referencia predeterminados:
deadline bundle submit . \ --parameter MaxModelLen=2048La 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.4bLos puntos de referencia predeterminados son un conjunto de razonamiento de sentido común:.hellaswag,arc_easy,arc_challenge,winogrande -
Supervise el estado del trabajo en la consola de Deadline Cloud o mediante el
deadline job getcomando.
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
Descargue y revise los resultados
Para descargar los resultados de la tabla de clasificación
-
Una vez finalizado el trabajo, descargue el resultado:
deadline job download-output --job-idjob-id -
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
-
Si implementó la CloudFormation plantilla de granja CUDA, elimine la CloudFormation pila de la CloudFormation consola.
-
Si utilizaste una granja existente, detiene o elimina la flota de GPU que usaste para este tutorial.
-
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
Recursos relacionados
Los siguientes recursos proporcionan información adicional: