O EAS permite implantar modelos como serviços de inferência online de forma rápida. Este tópico demonstra o fluxo completo — do deploy à invocação do service —, usando como exemplo a implantação do modelo Qwen3-0,6B com o framework vLLM.
Para implantação de LLMs em produção, utilize o LLM deployment baseado em cenários ou o deploy com um clique a partir de Model Gallery.
I. Pré-requisitos
Ative o PAI e crie um workspace com sua conta principal do Alibaba Cloud. No PAI console, selecione uma região e conclua a autorização e a ativação do product.
II. Faturamento
Este tópico usa recursos públicos com pagamento conforme o uso para criar o model service. Para mais informações sobre as regras de faturamento, consulte EAS billing.
III. Preparação
Para implantar um model service, prepare os arquivos de modelo e os arquivos de código, como uma interface web. Se as imagens do Alibaba Cloud disponíveis não atenderem aos seus requisitos, crie uma imagem personalizada.
3,1 Arquivos de modelo
Execute o código a seguir para baixar o Qwen3-0,6B do ModelScope para ~/.cache/modelscope/hub.
# Download the model
from modelscope import snapshot_download
model_dir = snapshot_download('Qwen/Qwen3-0.6B')
3,2 Arquivos de código
O framework vLLM constrói um service compatível com a API OpenAI, portanto nenhum arquivo de código separado é necessário.
Para lógica de negócio personalizada ou requisitos específicos de API, prepare seus próprios arquivos de código. Exemplo com Flask:
3,3 Upload de arquivos para o OSS
Use o ossutil para fazer upload dos arquivos de modelo e de código para o OSS. Monte o OSS no service para leitura do arquivo de modelo.
Outras opções de armazenamento: Storage configurations.
Não é recomendado empacotar os arquivos diretamente na imagem:
Atualizações do modelo exigem reconstruir e reenviar a imagem.
Arquivos de modelo grandes aumentam o tamanho da imagem, tornando o pull e a inicialização mais lentos.
3,4 Preparação da imagem
O Qwen3-0,6B requer vllm>=0.8.5. A imagem oficial do EAS vllm:0.11.2-mows0.5.1 atende a esse requisito.
Caso nenhuma imagem oficial seja adequada, consulte create a custom image. Para modelos treinados no DSW, acesse create a DSW instance image para garantir consistência entre desenvolvimento e implantação.
IV. Implantação do service
Faça login no PAI console. Selecione uma região no topo da página. Em seguida, selecione o workspace desejado e clique em Enter Elastic Algorithm Service (EAS).
Clique em Deploy Service. Na seção Inference Service, clique em Custom Deployment na seção Custom Model Deployment.
-
Configure os parâmetros principais a seguir. Mantenha os valores padrão para os demais parâmetros.
Deployment Method: selecione Image-based Deployment.
Image Configuration: na lista Alibaba Cloud Image, selecione
vllm:0.11.2-mows0.5.1.-
Mount storage: neste exemplo, o arquivo de modelo está armazenado no OSS no caminho
oss://examplebucket/models/Qwen/Qwen3-0___6B. Selecione OSS e configure conforme abaixo.Uri: caminho no OSS onde o modelo está localizado. Defina como
oss://examplebucket/models/.Mount Path: caminho de destino na instância do service onde o arquivo será montado, como
/mnt/data/.
Command: a imagem oficial já possui um comando de inicialização padrão. Modifique conforme necessário. Para este exemplo, altere para
vllm serve /mnt/data/Qwen/Qwen3-0___6B.Resource Type: selecione Public Resources. Em Resource Specification, selecione
ecs.gn7i-c16g1.4xlarge. Para usar outros tipos de recursos, consulte Resource configurations.
Clique em Deploy. A implantação do service leva cerca de 5 minutos. Quando Service Status mudar para Running, o service foi implantado com sucesso.
V. Depuração online
Use o online debugging para verificar o service. Configure o método de requisição, o caminho e o body de acordo com o seu modelo.
Para este exemplo:
Na aba Inference Service, clique no service de destino para acessar a página de visão geral. Mude para a aba Online Debugging.
-
Na seção Request Parameter Online Tuning da página de depuração, defina os parâmetros da requisição e clique em Send Request. Parâmetros da requisição:
Interface de chat: acrescente
/v1/chat/completionsà URL existente.-
Headers: adicione um header de requisição. Defina a chave como
Content-Typee o valor comoapplication/json.Adicione também o header de requisição Authorization, definindo o valor com a credencial de autenticação correspondente.
-
Body:
{ "model": "/mnt/data/Qwen/Qwen3-0___6B", "messages": [ { "role": "user", "content": "Hello!" } ], "max_tokens": 1024 }
-
Resposta:
Na página Online Debugging, envie uma requisição JSON pelo método POST. O body da requisição inclui
model(o caminho do modelo, como/mnt/data/Qwen/Qwen3-0___6B),messages(conteúdo da mensagem do usuário:Hello!) emax_tokens(definido como 1024). O service retorna o Status Code 200, e o body da resposta é um objeto JSON no formatochat.completioncontendo a resposta de inferência do modelo — o que confirma que o model service foi implantado com sucesso e consegue responder às requisições normalmente.
VI. Invocação do service
6,1 Endpoint e token
Por padrão, o EAS utiliza o gateway compartilhado. Obtenha o endpoint e o token na visão geral do service após a implantação.
Na aba Inference Service, clique no nome do seu service para acessar a página Overview.
Na seção Basic Information, clique em View Endpoint Information.
-
No painel Invocation Method, copie o endpoint e o token:
Selecione Internet Endpoint ou VPC Endpoint conforme necessário.
Nos exemplos a seguir, <EAS_ENDPOINT> representa o endpoint e <EAS_TOKEN> representa o token.
6,2 Exemplos de invocação
Exemplos:
curl http://16********.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/****/v1/chat/
completions \
-H "Content-Type: application/json" \
-H "Authorization: *********5ZTM1ZDczg5OT**********" \
-X POST \
-d '{
"model": "/mnt/data/Qwen/Qwen3-0___6B",
"messages": [
{
"role": "user",
"content": "Hello!"
}
],
"max_tokens": 1024
}' import requests
# Replace with the actual endpoint.
url = 'http://16********.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/***/v1/chat/completions'
# For the header, set Authorization value to the actual token.
headers = {
"Content-Type": "application/json",
"Authorization": "*********5ZTM1ZDczg5OT**********",
}
# Construct the service request based on the data format required by the model.
data = {
"model": "/mnt/data/Qwen/Qwen3-0___6B",
"messages": [
{
"role": "user",
"content": "Hello!"
}
],
"max_tokens": 1024
}
# Send the request.
resp = requests.post(url, json=data, headers=headers)
print(resp)
print(resp.content)VII. Parar ou excluir o service
Este service utiliza recursos públicos com pagamento conforme o uso. Pare ou exclua o service para evitar cobranças quando não for mais necessário.
Na lista de services, localize o service de destino e clique no botão correspondente na coluna Actions.
VIII. Documentação relacionada
Melhore a eficiência do LLM service: Deploy the LLM intelligent router.
Visão geral dos recursos do EAS: EAS overview.