Este tópico descreve como usar modelos remotos do MaxCompute para gerar automaticamente descrições de produtos de e-commerce.
Visão geral do cenário
Com o rápido crescimento do e-commerce e das transmissões ao vivo, o ciclo "foto-para-listagem" na seleção de produtos sofre pressão crescente para reduzir prazos. A anotação manual tradicional depende da experiência e do julgamento subjetivo dos anotadores, e processar grandes volumes de dados gera custos elevados. A adoção em larga escala e a longo prazo enfrenta desafios duplos de custo e controle de qualidade. O uso de IA para processamento de dados multimodais tornou-se uma tendência principal. Este tópico demonstra como acessar dados não estruturados armazenados no OSS usando Object Table e processá-los com modelos remotos do MaxCompute e AI Functions, por meio de um estudo de caso que gera tags e resumos de imagens em um cenário de e-commerce.
Benefícios da solução
Acesse diretamente os dados armazenados no OSS com o Object Table do MaxCompute, sem migração complexa de dados.
Use seus próprios modelos implantados no Elastic Algorithm Service (EAS) para aproveitar os recursos do serviço de modelo com eficiência.
Evite encapsulamentos complexos de funções definidas pelo usuário. Utilize as AI Functions do MaxCompute com instruções SQL simples para extrair e processar dados de imagem.
Preparação do ambiente
Ative o MaxCompute e crie um projeto do MaxCompute. Ignore esta etapa se já a tiver concluído.
Implante um modelo de linguagem grande multimodal no console do Platform for AI (PAI), em Elastic Algorithm Service (EAS). Para mais detalhes, consulte Visão geral do EAS. Ignore esta etapa se já a tiver concluído.
Ative o OSS e armazene as imagens a serem processadas no OSS. Ignore esta etapa se já a tiver concluído.
-
Conectividade de rede:
Se usar o endpoint VPC do PAI EAS, ative a conectividade de linha dedicada e especifique o nome da conexão de rede configurada ao chamar a AI Function. Para etapas de configuração, consulte Acessar VPC (conexão direta por linha dedicada).
Caso utilize o Internet Endpoint do PAI EAS, configure-o como endereço de rede externa disponível para o MaxCompute antes de chamar a AI Function. Para etapas de configuração, consulte Acessar rede pública.
Preparação de dados
-
Faça upload das imagens de e-commerce a serem processadas para o OSS. Este exemplo usa 50 imagens de pôsteres de produtos do conjunto de dados público Alibaba Cloud Tianchi: Conjunto de Dados de Texto e Imagem para Design de Pôsteres.
-
Crie uma Object Table.
SET odps.namespace.schema=true; -- Enable tenant-level schema syntax. CREATE OBJECT TABLE IF NOT EXISTS image_demo WITH SERDEPROPERTIES ('odps.properties.rolearn'='acs:ram::1393************:role/aliyunodpsdefaultrole') LOCATION 'oss://oss-cn-shanghai-internal.aliyuncs.com/mllm-demo/jpg-test/'; -- Refresh metadata to cache image metadata in MaxCompute. ALTER TABLE image_demo REFRESH METADATA; SELECT COUNT(*) AS ROW_COUNT FROM image_demo; +------------+ | row_count | +------------+ | 50 | +------------+
Crie um modelo remoto
Implante o modelo multimodal Omni no console do PAI EAS e obtenha o nome do serviço de modelo, o Endpoint e o Token.
-
Registre o modelo remoto multimodal Omni no MaxCompute.
CREATE MODEL PAI_EAS_Qwen25_Omni_3B WITH VERSION v1 OPTIONS( MODEL_SOURCE_TYPE = 'REMOTE', MODEL_TYPE = 'MLLM', TASKS = 'text-generation', PAI_EAS_MODEL_NAME = 'Qwen2.5-Omni-3B', PAI_EAS_SERVICE_NAME = 'demo_remote_model', ENDPOINT = 'http://***********.cn-shanghai.pai-eas.aliyuncs.com', APIKEY = 'your-api-key', PAI_EAS_SYNC_MODE = 'true' ) COMMENT "PAI EAS remote model"; ALTER MODEL PAI_EAS_Qwen25_Omni_3B ADD VERSION v2 INPUT(data BINARY, promt STRING) WITH OPTIONS( MODEL_SOURCE_TYPE = 'REMOTE', MODEL_TYPE = 'MLLM', TASKS = 'text-generation', PAI_EAS_MODEL_NAME = 'Qwen2.5-Omni-3B', PAI_EAS_SERVICE_NAME = 'demo_remote_model', ENDPOINT = 'http://************.cn-shanghai.pai-eas.aliyuncs.com', APIKEY = 'your-api-key', PAI_EAS_SYNC_MODE = 'true' ) COMMENT "PAI EAS remote model binary input"; -
Visualize o modelo remoto.
desc model PAI_EAS_Qwen25_Omni_3B; ID = 20250909024319251glhmocwqddl +------------------------------------------------------------------------------------+ | Model Information | +------------------------------------------------------------------------------------+ | Owner: ALIYUN$*********************** | | Project: pd_test_model | | Schema: default | | Model Name: PAI_EAS_Qwen25_Omni_3B | | Model Type: MLLM | | Source Type: REMOTE | | Default Version: v1 | | CreateTime: 2025-09-04 10:29:28 | | LastModifiedTime: 2025-09-09 10:43:11 | | Model ID: 46311b6397494a84ad23c5a4******** | | Comment: PAI EAS remote model url input | +------------------------------------------------------------------------------------+ | Version Information | +------------------------------------------------------------------------------------+ | Owner: ALIYUN$*********************** | | Project: pd_test_model | | Schema: default | | Model Name: PAI_EAS_Qwen25_Omni_3B | | Model Type: MLLM | | Source Type: REMOTE | | Version Name: v1 | | Version ID: c389823cd0324b72b1c0d55*********** | | Path: | | CreateTime: 2025-09-04 10:29:28 | | LastModifiedTime: 2025-09-04 10:29:28 | | apikey: Yzc4*******mNzFkMGM********4YzEwZjY1NTA*********NzkyNw== | | endpoint: http://13933481********.cn-shanghai.pai-eas.aliyuncs.com | | pai_eas_model_name: Qwen2.5-Omni-3B | | pai_eas_service_name: demo_eas_model | | pai_eas_sync_mode: true | | remote_service_type: PAI-EAS | +------------------------------------------------------------------------------------+ | Input | Type | Comment | +------------------------------------------------------------------------------------+ +------------------------------------------------------------------------------------+ OK
Análise de dados
Use a função AI_GENERATE do MaxCompute para classificar imagens e gerar resumos descritivos:
SET odps.namespace.schema=true;
SELECT
key,
AI_GENERATE(
PAI_EAS_Qwen25_Omni_3B, v1, image_url,
"Identify and extract the product category from the e-commerce sales poster. Return only one of the following six options: Beauty, Apparel, Daily Use, Food, Other, Electronics. Do not include any other text or information.","IMAGE"
) as item_catagory,
AI_GENERATE(
PAI_EAS_Qwen25_Omni_3B, v1, image_url,
"You are a professional e-commerce copywriter. Generate a product description summary based on the provided e-commerce sales poster.
Requirements: 1. The summary must accurately reflect key information from the poster, such as product features and promotions. 2. Ensure fluent, readable language with no special characters or garbled text. Keep it under 50 characters. 3. Use Chinese only, except for English brand names. Do not mix in any English words.
Example: Pure cotton T-shirt on limited-time offer—buy one, get one free! Only 3 days left!"
) as item_description
from (
select GET_SIGNED_URL_FROM_OSS(
'pd_test_model.default.image_demo', key, 604800
) as image_url, key as key
from pd_test_model.default.image_demo
) Limit 10;
-- If reading BINARY data.
SELECT
key,
AI_GENERATE(
PAI_EAS_Qwen25_Omni_3B, v2, image_binary,
"Identify and extract the product category from the e-commerce sales poster. Return only one of the following six options: Beauty, Apparel, Daily Use, Food, Other, Electronics. Do not include any other text or information"
) AS item_catagory,
AI_GENERATE(
PAI_EAS_Qwen25_Omni_3B, v2, image_binary,
"You are a professional e-commerce copywriter. Generate a product description summary based on the provided e-commerce sales poster.
Requirements: 1. The summary must accurately reflect key information from the poster, such as product features and promotions. 2. Ensure fluent, readable language with no special characters or garbled text. Keep it under 50 characters. 3. Use Chinese only, except for English brand names. Do not mix in any English words.
Example: Pure cotton T-shirt on limited-time offer—buy one, get one free! Only 3 days left!"
) AS item_description
FROM (
SELECT GET_DATA_FROM_OSS(
'pd_test_model.default.image_demo', key
) AS image_binary, key AS key
FROM pd_test_model.default.image_demo
) Limit 10;