O EAS permite implantar modelos rapidamente como services de inferência online. Este tópico demonstra o fluxo de trabalho desde a implantação até a invocação do service, usando como exemplo a implantação de um modelo Qwen3-0.6B com o framework vLLM.
Para implantação de LLM em produção, utilize a implantação de LLM baseada em cenários ou a implantação com um clique a partir da 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 utiliza recursos públicos com pagamento conforme o uso para criar o service de modelo. Para obter mais informações sobre as regras de faturamento, consulte Faturamento do EAS.
III. Preparações
Para implantar um service de modelo, é necessário preparar arquivos de modelo e arquivos de código, como uma interface web. Caso as imagens disponíveis do Alibaba Cloud não atendam 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 cria um service compatível com a API da OpenAI, portanto, nenhum arquivo de código separado é necessário.
Para lógica de negócios personalizada ou requisitos específicos de API, prepare seus próprios arquivos de código. Exemplo usando Flask:
3,3 Upload de arquivos para o OSS
Utilize o ossutil para enviar arquivos de modelo e de código para o OSS. Monte o OSS no service para ler o arquivo de modelo.
Outras opções de armazenamento: Configurações de armazenamento.
Não recomendamos empacotar arquivos diretamente na imagem:
Atualizações de modelo exigem reconstruir e reenviar a imagem.
Arquivos de modelo grandes aumentam o tamanho da imagem, tornando os tempos de pull e 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.
Se nenhuma imagem oficial for adequada, crie uma imagem personalizada. Para modelos treinados no DSW, crie uma imagem de instância DSW para garantir consistência entre desenvolvimento e implantação.
IV. Implantação do service
Faça logon no PAI console. Selecione uma região na parte superior da página. Em seguida, selecione o workspace desejado e clique em Elastic Algorithm Service (EAS).
Clique em Deploy Service. Na seção Custom Model Deployment, clique em Custom Deployment.
-
Configure os seguintes parâmetros principais. Mantenha os padrões 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 do 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, por exemplo,
/mnt/data/.
Command: A imagem oficial 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. Para Resource Specification, selecione
ecs.gn7i-c16g1.4xlarge. Para usar outros tipos de recursos, consulte Configurações de recursos.
Clique em Deploy. A implantação do service leva cerca de 5 minutos. Quando o Service Status mudar para Running, o service estará implantado com sucesso.
V. Depuração online
Utilize a depuração online para verificar o service. Configure o método de solicitação, o caminho e o corpo da requisição adequados ao seu modelo.
Para este exemplo:
Na aba Inference Service, clique no service de destino para acessar a página de visão geral do service. Alterne para a aba Online Debugging.
-
Na seção Request Parameter Online Tuning da página de depuração, defina os parâmetros da solicitação e clique em Send Request. Parâmetros da solicitação:
Interface de chat: Adicione
/v1/chat/completionsà URL existente.-
Headers: Adicione um cabeçalho de solicitação. Defina a chave como
Content-Typee o valor comoapplication/json.Adicione também o cabeçalho de solicitação Authorization e defina o valor como 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 de Online Debugging, envie uma solicitação JSON usando o método POST. O corpo da solicitaçã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 corpo da resposta é um objeto JSON no formatochat.completioncontendo a resposta de inferência do modelo, indicando que o service de modelo foi implantado com sucesso e pode responder às solicitações normalmente.
VI. Invocação do service
6,1 Endpoint e token
O EAS usa o gateway compartilhado por padrão. 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 de Overview.
Na seção Basic Information, clique em View Endpoint Information.
-
No painel Invocation Method, copie o endpoint e o token:
Selecione o Public address ou VPC address 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 ele não for mais necessário.
Na lista de services, localize o service desejado e clique no botão correspondente na coluna Actions.
VIII. Documentação relacionada
Melhore a eficiência do service de LLM: Implante o roteador inteligente de LLM.
Visão geral dos recursos do EAS: Visão geral do EAS.