View a markdown version of this page

Compare LLMs com vLLM e lm-evaluation-harness - Nuvem de prazos

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 em. GitHub

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 local, executa cada benchmark com o lm-evaluation-harness da EleutherAI em relação ao endpoint local e interrompe o vLLM. Os modelos são carregados diretamente do Hugging Face Hub, portanto, acessórios de trabalho não são necessários.

Para concluir este tutorial, siga estas etapas:

  1. Concluir os pré-requisitos do .

  2. Configure sua fazenda.

  3. Envie o trabalho de avaliação.

  4. Baixe e analise os resultados.

  5. 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ê CondaPackages e CondaChannels executa 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. O modelo provisiona uma frota gerenciada por serviços de GPU NVIDIA (A10G ou L4) e uma fila com um ambiente de fila conda que esse pacote usa sem modificação.

Para configurar a CLI para sua fazenda
  • Depois que a CloudFormation pilha chegarCREATE_COMPLETE, configure a CLI do Deadline Cloud para usar a nova fazenda:

    deadline config set defaults.farm_id FarmId-from-stack-outputs deadline config set defaults.queue_id CUDAQueueId-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ê CondaPackages e CondaChannels executa parâmetros.

Envie o trabalho de avaliação

Para enviar o trabalho de avaliação
  1. 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
  2. Envie o trabalho com os modelos e benchmarks padrão:

    deadline bundle submit . \ --parameter MaxModelLen=2048

    A lista de modelos padrão avalia três modelos pequenos e sem limites:Qwen/Qwen2.5-0.5B, e. Qwen/Qwen2.5-1.5B EleutherAI/pythia-1.4b Os benchmarks padrão são um conjunto de raciocínio de bom senso:. hellaswag,arc_easy,arc_challenge,winogrande

  3. Monitore o status do trabalho no console do Deadline Cloud ou usando o deadline job get comando.

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 em. GitHub

Baixe e analise os resultados

Para baixar os resultados da tabela de classificação
  1. Depois que o trabalho for concluído, baixe a saída:

    deadline job download-output --job-id job-id
  2. 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
  1. Se você implantou o CloudFormation modelo de fazenda CUDA, exclua a CloudFormation pilha do console. CloudFormation

  2. Se você usou uma fazenda existente, interrompa ou exclua a frota de GPU usada neste tutorial.

  3. 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 no EC2 e confirme se você tem espaço para executar instâncias On-Demand G e VT. Os aumentos de cota podem levar de minutos a alguns dias úteis.

Os recursos a seguir fornecem informações adicionais: