As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Compare LLMs com vLLM e lm-evaluation-harness
Este tutorial explica a avaliação de vários modelos de linguagem grande (LLMs) em relação a vários benchmarks em um único trabalho do Deadline Cloud. Cada modelo se torna uma tarefa em uma varredura de parâmetros, e as tarefas são executadas paralelamente entre os trabalhadores. Uma etapa final agrega os resultados por modelo em uma tabela de classificação classificada no formato CSV e Markdown.
O código-fonte deste tutorial está disponível no repositório deadline-cloud-samples
O vídeo a seguir demonstra o fluxo de trabalho da tabela de classificação do vLLM LLM no Deadline Cloud.
Tempo estimado: 20 a 40 minutos (dependendo do número de modelos e benchmarks).
Visão geral do
Cada tarefa na EvalModels etapa inicia um servidor vLLM
Para concluir este tutorial, siga estas etapas:
-
Concluir os pré-requisitos do .
-
Configure sua fazenda.
-
Envie o trabalho de avaliação.
-
Baixe e analise os resultados.
-
Limpe recursos.
Pré-requisitos
Antes de começar, a seguinte configuração é recomendada:
-
Um farm Deadline Cloud com uma frota gerenciada por serviços de GPU NVIDIA (A10G ou L4, pelo menos 32 GB de RAM, pelo menos 4 vCPUs).
-
Uma fila com um ambiente de fila conda anexado que lê
CondaPackageseCondaChannelsexecuta os parâmetros. -
A CLI do Deadline Cloud
instalada em sua estação de trabalho. -
Cota de serviço suficiente do Amazon Elastic Compute Cloud (Amazon EC2) vCPU para instâncias de GPU. O modelo padrão de 3 vCPUs executado em
g5.xlarge(4 vCPUs cada) requer pelo menos 12 vCPUs em execução de instâncias G e VT. On-Demand
nota
O token Hugging Face só é necessário para modelos fechados (como Llama). A lista de modelos padrão usa modelos sem limites.
Configure sua fazenda
A maneira mais rápida de obter uma fazenda compatível é implantar o CloudFormation modelo de fazenda CUDA
Para configurar a CLI para sua fazenda
-
Depois que a CloudFormation pilha chegar
CREATE_COMPLETE, configure a CLI do Deadline Cloud para usar a nova fazenda:deadline config set defaults.farm_idFarmId-from-stack-outputsdeadline config set defaults.queue_idCUDAQueueId-from-stack-outputs
Se você já tem uma fazenda, a seguinte configuração é recomendada:
-
Uma frota SMF com GPUs NVIDIA, pelo menos 32 GB de RAM e pelo menos 4 vCPUs.
-
Uma fila com um ambiente de fila conda que lê
CondaPackageseCondaChannelsexecuta parâmetros.
Envie o trabalho de avaliação
Para enviar o trabalho de avaliação
-
Clone o repositório de amostras e navegue até o diretório do pacote de tarefas:
git clone https://github.com/aws-deadline/deadline-cloud-samples.git cd deadline-cloud-samples/job_bundles/vllm_lm_eval_leaderboard -
Envie o trabalho com os modelos e benchmarks padrão:
deadline bundle submit . \ --parameter MaxModelLen=2048A lista de modelos padrão avalia três modelos pequenos e sem limites:
Qwen/Qwen2.5-0.5B, e.Qwen/Qwen2.5-1.5BEleutherAI/pythia-1.4bOs benchmarks padrão são um conjunto de raciocínio de bom senso:.hellaswag,arc_easy,arc_challenge,winogrande -
Monitore o status do trabalho no console do Deadline Cloud ou usando o
deadline job getcomando.
Alterando a lista de modelos
Os modelos são definidos como um espaço de parâmetros STRING na EvalModels etapa emtemplate.yaml:
parameterSpace: taskParameterDefinitions: - name: ModelName type: STRING range: - "Qwen/Qwen2.5-0.5B" - "Qwen/Qwen2.5-1.5B" - "EleutherAI/pythia-1.4b"
Para adicionar ou remover modelos, edite a range lista. Cada entrada se torna uma tarefa visível no monitor do Deadline Cloud. As IDs de modelo devem ser suportadas pelo vLLM (consulte a lista de modelos suportados pelo vLLM)
Escolhendo benchmarks
O parâmetro Benchmarks job é uma lista separada por vírgulas dos nomes das tarefas lm-evaluation-harness. Substitua os benchmarks padrão no momento do envio:
deadline bundle submit . \ --parameter Benchmarks="hellaswag,mmlu,gsm8k"
Todos os benchmarks na lista são executados sequencialmente no servidor vLLM de cada modelo. Mantenha MaxModelLen menor ou igual à menor janela de contexto do modelo. Para obter uma lista completa dos benchmarks disponíveis, consulte as tarefas do lm-evaluation-harness
Baixe e analise os resultados
Para baixar os resultados da tabela de classificação
-
Depois que o trabalho for concluído, baixe a saída:
deadline job download-output --job-idjob-id -
Veja a tabela de classificação:
cat leaderboard_results/leaderboard.md
O exemplo a seguir mostra a saída típica da tabela de classificação:
# 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 |
Fazer a limpeza.
Para evitar cobranças contínuas, limpe os recursos que você criou para este tutorial:
Para limpar os recursos do tutorial
-
Se você implantou o CloudFormation modelo de fazenda CUDA, exclua a CloudFormation pilha do console. CloudFormation
-
Se você usou uma fazenda existente, interrompa ou exclua a frota de GPU usada neste tutorial.
-
Remova os arquivos de saída locais se eles não forem mais necessários:
rm -rf leaderboard_results/
Solução de problemas
A frota não amplia os trabalhadores
A causa mais comum é uma cota de serviço vCPU do Amazon EC2. Abra o console Service Quotas
Recursos relacionados
Os recursos a seguir fornecem informações adicionais: