Neste tutorial, você treinará um modelo simples para prever as espécies de flores usando o conjunto de dados Iris. Depois de treinar e salvar o modelo no local, implante-o no AI Platform Prediction e consulte-o para fazer previsões on-line.
É possível implantar e exibir pipelines do scikit-learn (em inglês) no AI Platform Prediction. Com o módulo de pipeline no scikit-learn, é possível aplicar várias transformações de dados antes do treinamento com um estimator. Isso inclui várias etapas do processamento de dados e garante o uso dos mesmos dados de treinamento em cada uma.
Visão geral
Neste tutorial introdutório, você concluirá as seguintes etapas:
- Usar um pipeline do scikit-learn para treinar um modelo com o conjunto de dados Iris.
- Salvar o modelo localmente.
- Fazer upload do modelo salvo no Cloud Storage.
- Criar um recurso e uma versão do modelo no AI Platform Prediction.
- Receber previsões on-line para duas instâncias de dados.
Antes de começar
Conclua as etapas a seguir para configurar uma conta do GCP, ativar a API AI Platform Prediction, instalar e ativar o SDK do Cloud.
Configurar o projeto do GCP
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Enable the AI Platform Training & Prediction and Compute Engine APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Enable the AI Platform Training & Prediction and Compute Engine APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Configurar o ambiente
Escolha uma das opções abaixo para configurar o ambiente localmente no macOS ou em um ambiente remoto no Cloud Shell.
Para usuários do macOS, recomendamos a configuração do ambiente usando a guia MACOS abaixo. O Cloud Shell, mostrado na guia CLOUD SHELL, está disponível para macOS, Linux e Windows. Com ele, você testa rapidamente o AI Platform Prediction. No entanto, ele não é adequado para trabalhos de desenvolvimento contínuo.
macOS
-
Verificar a instalação do Python
Verifique se o Python (em inglês) está instalado e, se necessário, instale-o.python -V
-
Verificar a
pip
instalação do
pip
é o gerenciador de pacote do Python, incluído nas versões atuais do Python. Executepip --version
para verificar se opip
já está instalado. Caso contrário, veja como instalar opip
(em inglês).É possível fazer upgrade do
pip
usando o comando a seguir:pip install -U pip
Consulte a documentação do pip para mais detalhes.
-
Instalar
virtualenv
virtualenv
é uma ferramenta para criar ambientes Python isolados. Executevirtualenv --version
para verificar se avirtualenv
já está instalada. Caso contrário, instalevirtualenv
(em inglês):pip install --user --upgrade virtualenv
Para criar um ambiente de desenvolvimento isolado para este guia, crie um novo ambiente virtual em
virtualenv
. Por exemplo, com o comando a seguir, você ativa um ambiente chamadoaip-env
:virtualenv aip-env source aip-env/bin/activate
-
Neste tutorial, execute o restante dos comandos no ambiente virtual.
Veja mais informações sobre o uso davirtualenv
(em inglês). Para sair davirtualenv
, executedeactivate
.
Cloud Shell
-
Abra o console do Google Cloud.
-
Clique no botão Ativar o Cloud Shell na parte superior da janela do console.
Uma sessão do Cloud Shell é aberta em um novo frame na parte inferior do console e um prompt de linha de comando é exibido. A inicialização da sessão do shell pode levar alguns segundos.
A sessão do Cloud Shell está pronta para ser usada.
-
Configure a ferramenta de linha de comando
gcloud
para usar o projeto selecionado.gcloud config set project [selected-project-id]
em que
[selected-project-id]
é o ID do projeto. Retire os colchetes incluídos.
Instalar frameworks
macOS
No seu ambiente virtual, execute o comando a seguir para instalar as versões do scikit-learn e do pandas usadas na versão de ambiente de execução 2.11 do AI Platform Prediction:
(aip-env)$ pip install scikit-learn==1.0.2 pandas==1.3.5
Ao fornecer os números de versão no comando anterior, você garante que as dependências em seu ambiente virtual correspondam às dependências na versão do ambiente de execução. Assim, você evita comportamentos inesperados quando o código for executado no AI Platform Prediction.
Para mais detalhes, opções de instalação e solução de problemas, consulte as instruções de instalação de cada framework:
Cloud Shell
Execute o seguinte comando para instalar o scikit-learn e o pandas:
pip install --user scikit-learn pandas
Para mais detalhes, opções de instalação e solução de problemas, consulte as instruções de instalação de cada framework:
Treinar e exportar o modelo
É possível exportar objetos Pipeline
.
usando a versão do joblib
incluída em
scikit-learn ou pickle
, assim como
você exporta estimadores do scikit-learn. O exemplo a seguir configura um pipeline
que usa
RandomForestClassifier
para
treinar um modelo com o conjunto de dados Iris (em inglês).
joblib
Configure o pipeline, treine o modelo e use joblib
para exportar o
objeto Pipeline
:
from sklearn import datasets
from sklearn import svm
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
from sklearn.ensemble import RandomForestClassifier
from sklearn.pipeline import Pipeline
from sklearn.externals import joblib
# Load the Iris dataset
iris = datasets.load_iris()
# Set up a pipeline with a feature selection preprocessor that
# selects the top 2 features to use.
# The pipeline then uses a RandomForestClassifier to train the model.
pipeline = Pipeline([
('feature_selection', SelectKBest(chi2, k=2)),
('classification', RandomForestClassifier())
])
pipeline.fit(iris.data, iris.target)
# Export the classifier to a file
joblib.dump(pipeline, 'model.joblib')
pickle
Configure o pipeline, treine o modelo e use pickle
para exportar o
objeto Pipeline
:
from sklearn import datasets
from sklearn import svm
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
from sklearn.ensemble import RandomForestClassifier
from sklearn.pipeline import Pipeline
import pickle
# Load the Iris dataset
iris = datasets.load_iris()
# Set up a pipeline with a feature selection preprocessor that
# selects the top 2 features to use.
# The pipeline then uses a RandomForestClassifier to train the model.
pipeline = Pipeline([
('feature_selection', SelectKBest(chi2, k=2)),
('classification', RandomForestClassifier())
])
pipeline.fit(iris.data, iris.target)
# Export the classifier to a file
with open('model.pkl', 'wb') as model_file:
pickle.dump(pipeline, model_file)
Requisitos de nomenclatura do arquivo de modelo
O arquivo de modelo salvo enviado ao Cloud Storage precisa ser nomeado
como model.pkl
ou model.joblib
, dependendo da biblioteca usada. Essa
restrição garante que o AI Platform Prediction use o mesmo padrão
de reconstrução do modelo na importação e na exportação.
Biblioteca usada para exportar o modelo | Nome correto do modelo |
---|---|
pickle |
model.pkl |
sklearn.externals.joblib |
model.joblib |
Para iterações futuras do seu modelo, organize seu bucket do Cloud Storage de modo que cada novo modelo tenha um diretório dedicado.
Armazenar o modelo no Cloud Storage
Para este tutorial, é mais fácil usar um intervalo dedicado do Cloud Storage no mesmo projeto que você está utilizando no AI Platform Prediction.
Se você estiver usando um bucket em outro projeto, garanta que sua conta de serviço do AI Platform Prediction tenha acesso ao modelo no Cloud Storage. Sem as permissões adequadas, a solicitação para criar uma versão de modelo do AI Platform Prediction falhará. Veja mais sobre a concessão de permissões para armazenamento.
Configurar o bucket do Cloud Storage
Nesta seção, você aprende a criar um novo bucket. É possível usar um bucket atual, mas ele precisa estar na mesma região em que você planeja executar os jobs do AI Platform. Além disso, se ele não fizer parte do projeto que você usa para executar o AI Platform Prediction, é necessário conceder acesso explícito às contas de serviço do AI Platform Prediction.
-
Especifique um nome para o novo bucket. Ele precisa ser único em todos os buckets no Cloud Storage.
BUCKET_NAME="YOUR_BUCKET_NAME"
Por exemplo, use o nome do seu projeto com
-aiplatform
anexado:PROJECT_ID=$(gcloud config list project --format "value(core.project)") BUCKET_NAME=${PROJECT_ID}-aiplatform
-
Verifique o nome do bucket que você criou.
echo $BUCKET_NAME
-
Selecione a região do bucket e defina a variável de ambiente
REGION
.Use a mesma região em que você planeja executar jobs do AI Platform Prediction. Consulte as regiões disponíveis para os serviços do AI Platform Prediction.
Por exemplo, o código a seguir cria
REGION
e a define comous-central1
:REGION=us-central1
-
Crie o novo bucket:
gcloud storage buckets create gs://$BUCKET_NAME --location=$REGION
Fazer upload do arquivo de modelo exportado para o Cloud Storage
Execute o comando a seguir para fazer upload do arquivo do pipeline salvo no bucket do Cloud Storage:
gcloud storage cp ./model.joblib gs://$BUCKET_NAME/model.joblib
Você pode usar o mesmo bucket do Cloud Storage para vários arquivos de modelo. Cada arquivo do modelo precisa estar em um diretório próprio dentro do bucket.
Formatar a entrada para predição
gcloud
Crie um arquivo input.json
com cada instância de entrada em uma linha separada:
[6.8, 2.8, 4.8, 1.4]
[6.0, 3.4, 4.5, 1.6]
O formato das instâncias de entrada precisa ser compatível com o modelo. Neste exemplo, como o modelo Iris requer quatro recursos, sua entrada precisa ser uma matriz de forma (num_instances, 4
).
API REST
Crie um arquivo input.json
formatado como uma lista simples de flutuantes, com cada instância de entrada em uma linha separada:
{
"instances": [
[6.8, 2.8, 4.8, 1.4],
[6.0, 3.4, 4.5, 1.6]
]
}
O formato das instâncias de entrada precisa ser compatível com o modelo. Neste exemplo, como o modelo Iris requer quatro recursos, sua entrada precisa ser uma matriz de forma (num_instances, 4
).
Veja mais informações sobre como formatar a entrada para predição on-line.
Testar o modelo com predições locais
É possível usar o comando gcloud ai-platform local predict
para testar como seu modelo exibe previsões antes de implantá-lo no AI Platform Prediction. O comando usa dependências em seu ambiente local para realizar a previsão e retorna resultados no mesmo formato que gcloud ai-platform predict
usa ao realizar previsões on-line. Testar previsões localmente pode ser útil para detectar erros antes de gerar custos para solicitações de previsões on-line.
Para o argumento --model-dir
, especifique um diretório que contenha
seu modelo exportado de machine learning, na sua máquina local ou no
Cloud Storage. Para o argumento --framework
, especifique tensorflow
, scikit-learn
ou xgboost
. Não é possível usar o comando gcloud ai-platform local predict
com uma rotina de previsão personalizada.
Veja no exemplo abaixo como realizar uma previsão local:
gcloud ai-platform local predict --model-dir LOCAL_OR_CLOUD_STORAGE_PATH_TO_MODEL_DIRECTORY/ \
--json-instances LOCAL_PATH_TO_PREDICTION_INPUT.JSON \
--framework NAME_OF_FRAMEWORK
Implantar modelos e versões
O AI Platform Prediction organiza seus modelos treinados usando recursos de modelo e versão. Um modelo do AI Platform Prediction é um contêiner para as versões do seu modelo de machine learning.
Para implantar um modelo, crie no AI Platform Prediction um recurso e uma versão desse modelo. Depois, vincule essa versão ao arquivo de modelo armazenado no Cloud Storage.
Criar um recurso de modelo
O AI Platform Prediction usa recursos de modelo para organizar versões diferentes do seu modelo.
Decida agora se quer que as versões de modelo pertencentes a esse modelo usem um endpoint regional ou o endpoint global. Na maioria dos casos, escolha um endpoint regional. Se você precisar de funcionalidades disponíveis apenas nos tipos de máquina legados (MLS1), use o endpoint global.
Decida agora também se você quer que as versões de modelo pertencentes a ele exportem os registros ao exibirem previsões. Os exemplos a seguir não ativam a geração de registros. Saiba como ativar a geração de registros.
Console
Abra a página Modelos do AI Platform Prediction no console do Google Cloud:
Clique no botão Novo modelo, na parte superior da página Modelos. Você será direcionado para a página Criar modelo.
Insira um nome exclusivo para o modelo no campo Nome do modelo.
Quando a caixa de seleção Usar endpoint regional está marcada, o AI Platform Prediction usa um endpoint regional. Para usar o endpoint global, desmarque a caixa de seleção Usar endpoint regional.
Na lista suspensa Região, selecione um local para os nós de previsão. As regiões disponíveis diferem dependendo do uso de um endpoint regional ou global.
Clique em Criar.
Verifique se você voltou à página Modelos e se o novo modelo é exibido na lista.
gcloud
Endpoint regional
Execute este comando:
gcloud ai-platform models create MODEL_NAME \
--region=REGION
Substitua:
- MODEL_NAME: um nome que você escolhe para o modelo.
- REGION: a região do endpoint regional em que você quer que os nós de previsão sejam executados. Precisa ser uma região compatível com os tipos de máquina N1 do Compute Engine.
Se você não especificar a sinalização --region
, a gcloud CLI
solicitará que você selecione um endpoint regional (ou
use us-central
no
endpoint global).
Como alternativa, defina a propriedade
ai_platform/region
como uma região específica para
garantir que a gcloud CLI sempre use o
endpoint regional correspondente para AI Platform Prediction, mesmo quando você
não especificar a sinalização --region
. Essa configuração não se aplica a
comandos no
grupo de comandos
gcloud ai-platform operations
.
Endpoint global
Execute este comando:
gcloud ai-platform models create MODEL_NAME \
--regions=REGION
Substitua:
- MODEL_NAME: um nome que você escolhe para o modelo.
- REGION: a região no endpoint global em que você quer que os nós de previsão sejam executados. Precisa ser uma região compatível com os tipos de máquina legada MLS1.
Se você não especificar a sinalização --regions
, a
gcloud CLI solicitará que você selecione um endpoint regional (ou
use us-central1
no endpoint global).
API REST
Endpoint regional
Coloque o objeto de modelo no corpo da solicitação para formatá-la. No mínimo, especifique um nome para o modelo substituindo MODEL_NAME no exemplo a seguir:
{ "name": "MODEL_NAME" }
Faça uma chamada da API REST para o URL a seguir, substituindo PROJECT_ID pelo ID do projeto do Google Cloud:
POST https://REGION-ml.googleapis.com/v1/projects/PROJECT_ID/models/
Substitua:
REGION: a região do endpoint regional em que será implantado o modelo. Precisa ser uma região compatível com os tipos de máquina N1 do Compute Engine.
PROJECT_ID pelo ID do projeto no Google Cloud.
Por exemplo, é possível fazer a solicitação a seguir usando o comando
curl
. Esse comando autoriza a solicitação usando as credenciais associadas à instalação da Google Cloud CLI.curl -X POST -H "Content-Type: application/json" \ -d '{"name": "MODEL_NAME"}' \ -H "Authorization: Bearer `gcloud auth print-access-token`" \ "https://REGION-ml.googleapis.com/v1/projects/PROJECT_ID/models"
A API retorna uma resposta semelhante a esta:
{ "name": "projects/PROJECT_ID/models/MODEL_NAME", "regions": [ "REGION" ] }
Endpoint global
Coloque o objeto de modelo no corpo da solicitação para formatá-la. No mínimo, especifique um nome para o modelo substituindo MODEL_NAME na amostra a seguir. Além disso, especifique uma região substituindo REGION por uma região compatível com os tipos de máquina legada MLS1.:
{ "name": "MODEL_NAME", "regions": ["REGION"] }
Faça uma chamada da API REST para o URL a seguir, substituindo PROJECT_ID pelo ID do projeto do Google Cloud:
POST https://ml.googleapis.com/v1/projects/PROJECT_ID/models/
Por exemplo, é possível fazer a solicitação a seguir usando o comando
curl
. Esse comando autoriza a solicitação usando as credenciais associadas à instalação da Google Cloud CLI.curl -X POST -H "Content-Type: application/json" \ -d '{"name": "MODEL_NAME", "regions": ["REGION"]}' \ -H "Authorization: Bearer `gcloud auth print-access-token`" \ "https://ml.googleapis.com/v1/projects/PROJECT_ID/models"
A API retorna uma resposta semelhante a esta:
{ "name": "projects/PROJECT_ID/models/MODEL_NAME", "regions": [ "REGION" ] }
Consulte a API de modelo do AI Platform Prediction para mais detalhes.
Criar uma versão de modelo
Agora está tudo pronto para criar uma versão com o modelo treinado enviado anteriormente para o Cloud Storage. Ao criar uma versão, você pode especificar vários parâmetros. A lista a seguir descreve parâmetros comuns, alguns dos quais são obrigatórios:
name
: precisa ser exclusivo no modelo do AI Platform Prediction.deploymentUri
: o caminho para o diretório do modelo no Cloud Storage.- Caso você esteja implantando um modelo do TensorFlow, será o diretório do SavedModel.
- Caso você esteja implantando um modelo scikit-learn ou XGBoost, este será o diretório que contém seu arquivo
model.joblib
,model.pkl
oumodel.bst
. - Caso você esteja implantando uma rotina de previsão personalizada, será o diretório que contém todos os artefatos de modelo. O tamanho total desse diretório não pode ultrapassar 500 MB.
framework
:TENSORFLOW
,SCIKIT_LEARN
ouXGBOOST
.runtimeVersion
: uma versão do ambiente de execução com base nas dependências que o modelo precisa. Precisa ser 1.4, no mínimo, se você estiver implantando um modelo scikit-learn ou XGBoost. Se você planeja usar a versão do modelo para previsão em lote, use a versão 2.1 ou anterior do ambiente de execução.pythonVersion
: precisa ser definida como “3.5” (para as versões de ambiente de execução 1.4 a 1.14) ou “3.7” (para as versões de ambiente de execução a partir de 1.15) para que seja compatível com os arquivos de modelo exportados usando o Python 3. Ele também pode ser definido como "2.7" quando usado com a versão de ambiente de execução até 1.15.machineType
(opcional): o tipo de máquina virtual que o AI Platform Prediction usa para os nós que exibem previsões. Saiba mais sobre os tipos de máquinas. Se não estiver definido, o padrão serán1-standard-2
em endpoints regionais emls1-c1-m2
no endpoint global.
Veja mais informações sobre cada um desses parâmetros, bem como outros parâmetros menos comuns, na referência da API para o recurso de versão.
Além disso, se você tiver criado o modelo em um endpoint regional, crie também a versão no mesmo endpoint regional.
Console
Abra a página Modelos do AI Platform Prediction no console do Google Cloud:
Na página Modelos, selecione o nome do recurso do modelo que quiser usar para criar a versão. Você será direcionado para a página Detalhes do modelo.
Clique no botão Nova versão, na parte superior da página Detalhes do modelo. Você será direcionado para a página Criar versão.
Digite o nome da versão no campo Nome. Se quiser, insira uma descrição para a versão no campo Descrição.
Digite as seguintes informações sobre o treinamento do modelo nas caixas suspensas correspondentes:
- Selecione a versão do Python usada para treinar o modelo.
- Selecione o framework e a versão dele.
- Selecione a Versão do ambiente de execução de ML. Saiba mais sobre as versões de ambiente de execução do AI Platform Prediction.
Se quiser, selecione um tipo de máquina para executar a previsão on-line.
No campo URI do modelo, insira o local do bucket do Cloud Storage em que você fez o upload do arquivo de modelo. Use o botão Procurar para encontrar o caminho correto.
Especifique o caminho para o diretório em que está o arquivo, não o caminho para o arquivo do modelo em si. Por exemplo, use
gs://your_bucket_name/model-dir/
em vez degs://your_bucket_name/model-dir/saved_model.pb
ougs://your_bucket_name/model-dir/model.pkl
.Selecione uma opção de escalonamento para implantação de previsão on-line:
Se você selecionar "Escalonamento automático", o campo opcional Número mínimo de nós será exibido. Insira o número mínimo de nós a serem mantidos sempre em execução quando o serviço for reduzido.
Se você selecionar "Escalonamento manual", digite o número de nós que quer manter em execução.
Saiba como as opções de escalonamento variam de acordo com o tipo de máquina.
Saiba mais sobre os custos de previsão.
Clique em Salvar para criar a versão do modelo.
gcloud
Defina variáveis de ambiente para armazenar o caminho do diretório do Cloud Storage em que o binário do modelo está localizado, o nome do modelo, o nome da versão e a opção de framework.
Ao criar uma versão com a gcloud CLI, é possível inserir o nome do framework em letras maiúsculas com sublinhados (por exemplo,
SCIKIT_LEARN
) ou em letras minúsculas com hífens (por exemplo,scikit-learn
). Ambas as opções produzem um comportamento idêntico.Substitua
[VALUES_IN_BRACKETS]
pelos valores apropriados:MODEL_DIR="gs://your_bucket_name/" VERSION_NAME="[YOUR-VERSION-NAME]" MODEL_NAME="[YOUR-MODEL-NAME]" FRAMEWORK="[YOUR-FRAMEWORK_NAME]"
Crie a versão:
gcloud ai-platform versions create $VERSION_NAME \ --model=$MODEL_NAME \ --origin=$MODEL_DIR \ --runtime-version=2.11 \ --framework=$FRAMEWORK \ --python-version=3.7 \ --region=REGION \ --machine-type=MACHINE_TYPE
Substitua:
REGION: a região do endpoint regional em que você criou o modelo. Se você criou o modelo no endpoint global, omita a sinalização
--region
.MACHINE_TYPE: um tipo de máquina que determina os recursos de computação disponíveis para os nós de previsão.
A criação da versão leva alguns minutos. Quando ela estiver pronta, você verá a resposta abaixo:
Creating version (this might take a few minutes)......done.
Veja informações sobre a nova versão:
gcloud ai-platform versions describe $VERSION_NAME \ --model=$MODEL_NAME
A resposta será parecida com esta:
createTime: '2018-02-28T16:30:45Z' deploymentUri: gs://your_bucket_name framework: [YOUR-FRAMEWORK-NAME] machineType: mls1-c1-m2 name: projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions/[YOUR-VERSION-NAME] pythonVersion: '3.7' runtimeVersion: '2.11' state: READY
API REST
Formate o corpo da solicitação para conter o objeto da versão. Neste exemplo, são especificadas as versões
name
,deploymentUri
,runtimeVersion
,framework
emachineType
. Substitua[VALUES_IN_BRACKETS]
pelos valores apropriados:{ "name": "[YOUR-VERSION-NAME]", "deploymentUri": "gs://your_bucket_name/", "runtimeVersion": "2.11", "framework": "[YOUR_FRAMEWORK_NAME]", "pythonVersion": "3.7", "machineType": "[YOUR_MACHINE_TYPE]" }
Envie a chamada da API REST para o caminho a seguir, substituindo os
[VALUES_IN_BRACKETS]
pelos valores apropriados:POST https://REGION-ml.googleapis.com/v1/projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions
Substitua REGION pela região do endpoint regional em que você criou seu modelo. Se você criou seu modelo no endpoint global, use
ml.googleapis.com
.Por exemplo, é possível fazer a solicitação a seguir usando o comando
curl
:curl -X POST -H "Content-Type: application/json" \ -d '{"name": "[YOUR-VERSION-NAME]", "deploymentUri": "gs://your_bucket_name/", "runtimeVersion": "2.11", "framework": "[YOUR_FRAMEWORK_NAME]", "pythonVersion": "3.7", "machineType": "[YOUR_MACHINE_TYPE]"}' \ -H "Authorization: Bearer `gcloud auth print-access-token`" \ "https://REGION-ml.googleapis.com/v1/projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions"
A criação da versão leva alguns minutos. Quando ela estiver pronta, você verá uma resposta parecida com esta:
{ "name": "projects/[YOUR-PROJECT-ID]/operations/create_[YOUR-MODEL-NAME]_[YOUR-VERSION-NAME]-[TIMESTAMP]", "metadata": { "@type": "type.googleapis.com/google.cloud.ml.v1.OperationMetadata", "createTime": "2018-07-07T02:51:50Z", "operationType": "CREATE_VERSION", "modelName": "projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]", "version": { "name": "projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions/[YOUR-VERSION-NAME]", "deploymentUri": "gs://your_bucket_name", "createTime": "2018-07-07T02:51:49Z", "runtimeVersion": "2.11", "framework": "[YOUR_FRAMEWORK_NAME]", "machineType": "[YOUR_MACHINE_TYPE]", "pythonVersion": "3.7" } } }
Enviar solicitação de previsão on-line
Depois de criar uma versão, o AI Platform Prediction iniciará um novo servidor pronto para exibir as solicitações de previsão.
gcloud
Configure variáveis de ambiente para os nomes do modelo, da versão e do arquivo de entrada:
MODEL_NAME="pipeline" VERSION_NAME="v1" INPUT_FILE="input.json"
Envie a solicitação de predição:
gcloud ai-platform predict --model $MODEL_NAME --version \ $VERSION_NAME --json-instances $INPUT_FILE
Python
Nesta amostra, presume-se que você esteja familiarizado com a biblioteca de cliente do Google Cloud para Python. Caso não esteja, consulte Como usar a biblioteca cliente do Python.
import googleapiclient.discovery
def predict_json(project, model, instances, version=None):
"""Send json data to a deployed model for prediction.
Args:
project (str): project where the AI Platform Prediction Model is deployed.
model (str): model name.
instances ([[float]]): List of input instances, where each input
instance is a list of floats.
version: str, version of the model to target.
Returns:
Mapping[str: any]: dictionary of prediction results defined by the
model.
"""
# Create the AI Platform Prediction service object.
# To authenticate set the environment variable
# GOOGLE_APPLICATION_CREDENTIALS=<path_to_service_account_file>
service = googleapiclient.discovery.build('ml', 'v1')
name = 'projects/{}/models/{}'.format(project, model)
if version is not None:
name += '/versions/{}'.format(version)
response = service.projects().predict(
name=name,
body={'instances': instances}
).execute()
if 'error' in response:
raise RuntimeError(response['error'])
return response['predictions']
Veja mais informações sobre os parâmetros de entrada de previsão na página sobre a API AI Platform Prediction.
A seguir
- Veja como fazer o pré-processamento com pipelines do scikit-learn no bloco de notas do scikit-learn no GitHub.
- Veja mais exemplos de aplicativos para scikit-learn no GitHub.