Guia de Carregamento de Modelos#

Este documento tem como objetivo fornecer uma explicação funcional sobre o carregamento de modelos.

réplica#

O parâmetro “cópias” (ou “replicas”) é utilizado para especificar o número de instâncias do modelo a serem carregadas. Por exemplo, se você possui duas GPUs e cada placa pode conter uma réplica do modelo, pode definir o número de cópias como 2. Dessa forma, duas instâncias idênticas do modelo serão distribuídas entre essas duas GPUs. O Xinference realizará automaticamente o balanceamento de carga, garantindo que as requisições sejam distribuídas uniformemente entre as múltiplas placas. Para o usuário, o modelo ainda é visto como um único, o que aumenta significativamente a eficiência geral do uso dos recursos.

Implantação de múltiplas instâncias em versão antiga:

Quando você possui múltiplas placas GPU, cada placa pode hospedar uma instância de modelo. Nesse caso, o número de instâncias pode ser definido como igual ao número de GPUs. Por exemplo:

  • 2 GPUs, 2 instances: one model instance per GPU.

  • 4 GPUs, 4 instâncias: cada GPU executa uma instância do modelo

Adicionado na versão v1.15.0.

Introduzir uma nova variável de ambiente:

XINFERENCE_ALLOW_MULTI_REPLICA_PER_GPU

Controla se a funcionalidade de múltiplas cópias em uma única GPU está habilitada. Valor padrão: 1

Novo recurso: implantação inteligente de réplicas

  1. Réplicas múltiplas em uma única GPU

Novo suporte: é possível executar múltiplas réplicas de modelos mesmo com apenas uma GPU.

  • Cenário: você possui 1 GPU com memória de vídeo abundante.

  • Configuração: número de réplicas = 3, número de GPUs = 1

  • Resultado: 3 instâncias do modelo, rodando na mesma GPU, compartilhando os recursos da GPU.

  1. Alocação Mista de GPU

Distribuição inteligente: o número de réplicas não precisa ser igual ao número de GPUs, o sistema fará a distribuição de forma inteligente.

  • Contexto: você tem 2 GPUs e precisa de 3 réplicas.

  • Configuração: número de réplicas = 3, número de GPUs = 2

  • Resultado: GPU0 executando 2 instâncias, GPU1 executando 1 instância

Estratégia de alocação mista#

A estratégia atual é ociosidade primeiro: o agendador sempre tenta alocar réplicas para a GPU mais ociosa. Use o parâmetro XINFERENCE_ENV_LAUNCH_STRATEGY para selecionar a estratégia de inicialização.

Defina as variáveis de ambiente#

Adicionado na versão v1.8.1.

Às vezes, queremos especificar variáveis de ambiente para um modelo específico em tempo de execução. A partir da v1.8.1, o Xinference oferece a funcionalidade de configurar variáveis de ambiente separadamente, sem a necessidade de defini-las antes de iniciar o Xinference.

Para Web UI.

actor

Ao usar a linha de comando, especifique as variáveis de ambiente com --env.

Exemplo de uso:

xinference launch xxx --env A 0 --env B 1

Tomando vLLM como exemplo, ele possui duas versões, V1 e V0, e por padrão decide automaticamente qual versão usar. Se desejar forçar o uso da V0 ao carregar o modelo, você pode definir a variável de ambiente configurando VLLM_USE_V1=0.

Configurar espaço virtual do modelo#

Adicionado na versão v1.8.1.

Para esta parte, consulte switching virtual environments and custom dependencies.

Lote / Lote Contínuo#

Xinference suporta processamento em lote para aumentar a taxa de transferência. Para modelos de linguagem grandes baseados no mecanismo transformers, é possível ativar a funcionalidade de processamento em lote contínuo, que pode ser configurada durante a inicialização por meio de variáveis de ambiente.

Configuração Chave:

  • XINFERENCE_BATCH_SIZE e XINFERENCE_BATCH_INTERVAL são usados para controlar o comportamento comum de processamento em lote.

  • XINFERENCE_TEXT_TO_IMAGE_BATCHING_SIZE (modelo de texto para imagem, quando suportado).

Exemplo (Large Language Model, Transformers)

XINFERENCE_BATCH_SIZE=32 XINFERENCE_BATCH_INTERVAL=0.003 xinference-local --log-level debug
xinference launch -e <endpoint> --model-engine transformers -n qwen1.5-chat -s 4 -f pytorch -q none

Exemplo (Texto para imagem):

XINFERENCE_TEXT_TO_IMAGE_BATCHING_SIZE=1024*1024 xinference-local --log-level debug

Para informações detalhadas sobre comportamento, modelos suportados e solicitações de aborto, consulte processamento em lote contínuo.

Modo de Pensamento#

Certos modelos de raciocínio híbrido (como o Qwen3) suportam um modo de pensamento opcional. Você pode ativar esse recurso durante a inicialização usando o parâmetro --enable-thinking.

Exemplo de uso:

xinference launch -n qwen3-xxx --model-engine vllm --enable-thinking