Preparando um Artefato de Modelo
Depois que um modelo for treinado, você deverá criar um artefato de modelo para ser salvo com o modelo em um catálogo de modelos.
Isso cria um armazenamento centralizado de artefatos de modelo para rastrear metadados de modelo.
Um artefato de modelo é um arquivo compactado zip dos arquivos necessários para implantar o modelo como uma implantação de modelo ou carregá-lo de volta em uma sessão de notebook.
Fornecemos vários exemplos de catálogo de modelos que incluem artefatos de modelo para várias estruturas de aprendizado de máquina e formatos de modelo. Temos exemplos de modelos ONNX, Scikit-learn, Keras, PyTorch, LightGBM e XGBoost. Comece obtendo nosso modelo de artefato de modelo, que inclui estes arquivos:
Arquivo | Descrição |
---|---|
score.py |
Contém a lógica personalizada para carregar na memória objetos de modelo serializados e define um ponto final de inferência (predict() ). |
runtime.yaml |
Fornece instruções sobre qual ambiente conda usar ao implantar o modelo usando uma implantação de modelo do serviço Data Science. |
README.md |
Fornece uma série de instruções passo a passo para preparar e salvar um artefato de modelo no catálogo de modelos. Recomendamos que você siga essas etapas. |
artifact-introspection-test/requirements.txt |
Lista as dependências de terceiros que você deve instalar em seu ambiente local antes de executar testes de introspecção. |
artifact-introspection-test/model_artifact_validate.py |
Fornece uma série opcional de definições de teste que você pode executar em seu artefato de modelo antes de salvá-lo no catálogo de modelos. Esses testes de introspecção de modelo capturam muitos dos erros mais comuns ao preparar um artefato de modelo. |
A estrutura do diretório de artefatos de modelo deve corresponder a este exemplo:
.
|-- runtime.yaml
|-- score.py
|--<your-serialized-model>
|--<your-custom-module.py>
Mais módulos Python que são importados em score.py
. Recomendamos que qualquer código usado para inferência seja zipado no mesmo nível que score.py
ou em qualquer nível do arquivo. Se algum arquivo necessário estiver presente nos níveis de pasta que precedem o arquivo score.py
, os arquivos serão ignorados e poderão resultar em falha na implantação.
O Arquivo score.py
Este arquivo contém as definições de função necessárias para carregar um modelo para a memória e fazer previsões.
As duas funções são chamadas load_model()
e predict()
. Os parâmetros de função não são personalizáveis. Por exemplo, você pode definir transformações de dados em predict()
antes de chamar o método de inferência do objeto estimador. Você pode carregar mais de um objeto estimador para a memória e executar uma avaliação de montagem. A função predict()
está atrás do ponto final /predict
de uma implantação de modelo. Verifique se o tipo de dados do parâmetro data
em predict()
corresponde ao formato de payload que você espera com a implantação de modelo.
A implantação de modelo só suporta payload e bytes JSON. Certifique-se de que o parâmetro de dados em predict()
seja um blob ou bytes JSON.
O ADS (oracle-ads
) fornece classes específicas da estrutura de registro de modelo. Por exemplo, se a classe SklearnModel
for usada com .prepare()
, por padrão, o ADS serializará o modelo para joblib. Quando XgboostModel
é usado, por padrão, .prepare()
salva o modelo em um arquivo JSON.
O modelo score.py
usa load_model()
para retornar o objeto estimador de modelo. A função predict()
usa dados e o objeto de modelo retornado pelo load_model()
. Ambas as funções são personalizáveis e exigem definições. O corpo de predict()
pode incluir transformações de dados e outras tarefas de manipulação de dados antes de uma previsão de modelo ser feita. Todos os módulos Python personalizados poderão ser importados no score.py
se estiverem disponíveis no arquivo de artefato ou como parte do ambiente conda usado para fins de inferência como o modelo.
Você pode definir outras funções auxiliares em score.py
chamados em predict()
. Por exemplo, você pode definir uma função data_transformation()
que defina transformações personalizadas.
Verifique as Melhores Práticas para Artefatos de Modelo para ajudar a criar esses arquivos de forma eficaz.
Fornecemos vários exemplos e modelos de catálogo, incluindo os arquivos score.py
. Temos exemplos de modelos ONNX, scikit-learn, Keras, PyTorch, LightGBM e XGBoost.