A Data Scientist's Guide to OCI

O OCI (Oracle Cloud Infrastructure) oferece uma família de serviços de AI (inteligência artificial) e ML (aprendizado de máquina). Este guia oferece aos cientistas de dados um tour introdutório desses serviços usando o ciclo de vida de ML como sua estrutura.

O Ciclo de Vida do Aprendizado de Máquina

A criação de um modelo de ML (aprendizado de máquina) é um processo iterativo. Muitas das etapas necessárias são repetidas e modificadas até que os cientistas de dados estejam satisfeitos com o desempenho do modelo. Esse processo requer muita exploração, visualização e experimentação de dados.

O serviço OCI Data Science oferece suporte a um cientista de dados em todo o ciclo de vida de ML. Ele cria, treina, implanta e gerencia rapidamente modelos de ML. Os usuários do serviço Data Science trabalham em uma interface de notebook JupyterLab familiar na qual eles gravam o código Python e têm acesso às bibliotecas de código-fonte aberto.

Dica

Assista a um breve vídeo de visão geral sobre o serviço Data Science.
Preparar a Infraestrutura e o Espaço de Trabalho
Etapa 1: Configurar o OCI
Dica

A maneira mais rápida de configurar sua tenancy para ciência dos dados é usar o OCI Resource Manager, que trata seus pré-requisitos com apenas alguns cliques. Consulte Usando o Resource Manager para Configurar Sua Tenancy para o Serviço Data Science.

Para começar a usar dados e modelagem, é necessário garantir que sua tenancy da OCI esteja configurada corretamente, com os recursos a seguir. Para obter um tutorial sobre como configurar uma tenancy para o Data Science, consulte Configurando Manualmente uma Tenancy do Serviço Data Science.

  • Compartimentos - Um contêiner lógico para organizar recursos do OCI. Saiba mais em Melhores Práticas de Aprendizado para Configurar a sua Tenancy.
  • Grupos de usuários - Um grupo de usuários, incluindo cientistas de dados.
  • Grupos dinâmicos - Um tipo especial de grupo que contém recursos (como sessões de notebook de ciência de dados, execuções de job e implantações de modelo) que correspondem às regras definidas por você. Essas regras de correspondência permitem que a afiliação ao grupo seja alterada dinamicamente, pois os recursos que correspondem a essas regras são criados ou excluídos. Esses recursos podem fazer chamadas de API a serviços de acordo com as políticas criadas para o grupo dinâmico. Por exemplo, usando o controlador de recursos de uma sessão de notebook do serviço Data Science, você pode chamar a API do serviço Object Storage para ler os dados de um bucket.
  • Políticas - Defina quais controladores, como usuários e recursos, têm acesso no OCI. O acesso é concedido tanto no nível do grupo quanto no do compartimento. Você pode criar uma política que dá a um grupo um tipo específico de acesso em determinado compartimento.
Etapa 2: Configurar o ambiente do Data Science
  1. Crie um projeto do serviço Data Science no seu compartimento.

    Projetos são contêineres que permitem que as equipes de ciência de dados organizem seu trabalho. Eles representam espaços de trabalho colaborativos para organizar sessões e modelos de notebook.

    Você também pode usar o método create_project no SDK do Oracle ADS (Accelerated Data Science).

  2. Crie uma sessão de Notebook no projeto e especifique o compartimento.

    As sessões de notebook são interfaces JupyterLab nas quais você pode trabalhar em um ambiente de codificação interativa para criar e treinar modelos. Os ambientes vêm com bibliotecas de código-fonte aberto pré-instaladas e a capacidade de adicionar outras.

    As sessões de notebook são executadas em infraestrutura totalmente gerenciada. Ao criar uma sessão de notebook, você pode selecionar CPUs ou GPUs, a forma de computação e o volume de armazenamento sem qualquer provisionamento manual. Toda vez que você reativar uma sessão de notebook, terá a oportunidade de modificar essas opções. Você também pode permitir que o serviço gerencie a rede da sua sessão de notebook.

    Você também pode usar o método create_notebook_session no ADS SDK.

  3. Na sessão de notebook, instale ou crie um ambiente Conda. O Conda é um ambiente de código-fonte aberto e um sistema de gerenciamento de pacotes que você pode usar para instalar, executar e atualizar rapidamente pacotes e suas dependências. Você pode isolar diferentes configurações de software, alternar ambientes e publicar ambientes para tornar a sua pesquisa reproduzível.
    Dica

    A maneira mais rápida de se familiarizar com uma sessão de notebook é selecionar um ambiente Conda do Serviço Data Science existente. A equipe do OCI Data Science gerencia esses ambientes. Os ambientes estão focados em fornecer ferramentas específicas e uma estrutura para fazer o trabalho de ML ou fornecer um ambiente abrangente para resolver casos de uso de negócios. Cada ambiente do serviço Data Science vem com o seu próprio conjunto de exemplos de notebook, que ajudam você a começar a usar as bibliotecas instaladas no ambiente.
  4. Após instalar um ambiente Conda em sua sessão de notebook, acesse seus dados e inicie o ciclo de vida de ML.
Acessar e Coletar Dados

Todos os modelos de ML começam com os dados. Os cientistas de dados que usam o OCI Data Science podem acessar e usar origens de dados em qualquer ambiente na nuvem ou on-premises, o que permite mais recursos de dados e melhores modelos. Consulte a lista completa das origens de dados e formatos suportados pelo ADS SDK.

Quando você usa o serviço Data Science, recomendamos o armazenamento de dados na sessão de notebook para acesso rápido. Na sua sessão de notebook, você pode acessar dados das seguintes origens:

Segurança

Você pode usar o serviço OCI Vault para gerenciar de modo centralizado as chaves de criptografia que protegem os seus dados e as credenciais usadas para acessar recursos com segurança. Você pode usar o notebook de exemplo vault.ipynb para saber como utilizar vaults com o serviço Data Science.

Para obter mais informações, consulte a documentação do serviço Vault do ADS SDK.

Preparar e Explorar Dados

Os dados podem ser preparados, transformados e manipulados com as funções incorporadas do ADS SDK. Subjacente a um objeto ADSDataset está um quadro de dados Pandas. Qualquer operação que possa ser executada em um data frame pandas também pode ser aplicada a um conjunto de dados ADS.

Observação

Todos os conjuntos de dados do ADS são imutáveis e qualquer transformação aplicada resulta em um novo conjunto de dados.

Preparar

Os seus dados podem estar incompletos, inconsistentes ou conter erros. Você pode usar o ADS SDK para executar as seguintes tarefas:

Observação

Você pode usar tipos de recurso para separar como os dados são representados fisicamente do que os dados medem. Você pode criar e atribuir muitos tipos de recurso aos dados. Leia uma publicação no blog que explica como os tipos de recursos melhoram seu workflow.

Transformar

Você pode usar os seguintes métodos no ADS SDK para transformar automaticamente um conjunto de dados:

  • suggest_recommendations() exibe problemas e recomenda alterações e código para corrigir os problemas
  • auto_transform() retorna um conjunto de dados transformado com todas as recomendações e otimizações aplicadas automaticamente
  • visualize_transforms() visualiza a transformação que foi executada em um conjunto de dados

O serviço OCI Data Science também suporta ferramentas de manipulação de dados de código-fonte aberto, como pandas, Dask e NumPy.

Dica

Após a conclusão de todas as transformações de dados, você poderá dividir os dados em um conjunto de treinamento e teste ou treinamento, teste e validação.

Visualizar e Explorar

A visualização é uma das etapas iniciais usadas para derivar valor dos dados. Ela permite que os analistas ganhem insights dos dados com eficiência e orienta a análise de dados exploratória. O ADS SDK inclui uma ferramenta de visualização inteligente que detecta automaticamente o tipo de dados e renderiza plotagens que representam de forma ideal as características dos dados. A seguir estão alguns métodos de visualização automática:

Você também pode usar o método call() do ADS SDK para plotar dados usando suas bibliotecas e pacotes preferidos, como seaborn, Matplotlib, Plotly, Bokeh e GIS (Geographic Information System, sistema de informação geográfica). Consulte os exemplos do ADS SDK.

Treinar um Modelo

A modelagem cria a melhor representação matemática do relacionamento entre pontos de dados. Modelos são artefatos criados pelo processo de treinamento, que captura esse relacionamento ou padrão.

Após treinar o modelo, você o avalia e depois implanta.

Você pode treinar um modelo usando AutoML (Aprendizado de Máquina Automatizado) ou com base em uma biblioteca de código-fonte aberto. Você pode treinar usando os seguintes métodos:

  • Notebooks: Escreva e execute o código Python usando bibliotecas na interface JupyterLab
  • Ambientes Conda: Use o ADS SDK, AutoML ou a MLX (Explicabilidade do Aprendizado de Máquina) para treinar
  • Jobs: Execute tarefas de ML ou ciência de dados fora das suas sessões de notebook no JupyterLab

AutoML

A construção de um modelo de ML bem-sucedido requer muitas iterações e experimentação, e um modelo raramente é obtido usando um conjunto ideal de hiperparâmetros na primeira iteração. AutoML automatiza quatro etapas no processo de modelagem de ML:

  1. A seleção de algoritmos identifica os melhores algoritmos para os dados e o problema e é mais rápida do que uma pesquisa exaustiva.
  2. A amostragem adaptável identifica o tamanho de amostra correto e ajusta-se para dados não balanceados.
  3. A seleção de recursos identifica o subconjunto de recursos ideal e reduz o número de recursos.
  4. O ajuste de modelo ajusta automaticamente os hiperparâmetros para obter a melhor precisão do modelo.

Para obter mais informações, consulte a documentação do pipeline AutoML do ADS SDK.

Avaliar e Validar um Modelo

Após treinar um modelo, você poderá ver como ele é executado com relação a uma série de benchmarks. Use as funções de avaliação para converter a saída dos dados do teste em uma série de resultados e gráficos interpretáveis e padronizados.

Avaliação Automatizada Usando o ADS SDK

A avaliação automatizada gera um conjunto abrangente de métricas e visualizações para medir o desempenho do modelo com relação a novos dados e comparar candidatos ao modelo. O ADS oferece uma coleção de ferramentas, métricas e gráficos voltados para a contradistinção de vários modelos. Os avaliadores são os seguintes:

  • O classificador binário é usado para modelos em que a saída é binária, por exemplo, Sim ou Não, Para Cima ou Para Baixo, 1 ou 0. Esses modelos são um caso especial de classificação multiclasse; portanto, têm métricas atendidas de forma específica.
  • O classificador multiclasse é usado para modelos em que a saída é discreta. Esses modelos têm um conjunto especializado de gráficos e métricas para a sua avaliação.
  • A regressão é usada para modelos em que a saída é contínua, por exemplo, preço, altura, vendas ou comprimento. Esses modelos têm suas próprias métricas específicas que ajudam a fazer o benchmark do modelo.

Validação, Explicações e Interpretação

A explicabilidade do aprendizado de máquina (MLX) é o processo de explicar e interpretar ML e modelos de aprendizado profundo. Explicabilidade é a capacidade de explicar os motivos por trás da previsão de um modelo. Interpretabilidade é o nível no qual um ser humano pode entender essa explicação. A MLX pode ajudá-lo a executar as seguintes tarefas:

  • Compreender e interpretar melhor o comportamento do modelo
  • Depurar e melhorar a qualidade do modelo
  • Aumentar a confiança no modelo e na implantação do modelo

Leia mais sobre explicabilidade de modelo para se familiarizar com as técnicas de explicações globais, explicações locais e explicações por simulação (WhatIf).

Implantar um Modelo

Depois que os processos de treinamento e avaliação do modelo são concluídos, os melhores modelos candidatos são salvos para que possam ser implantados. Leia sobre implantações de modelos e seus componentes-chave.

Dica

O ADS SDK tem um conjunto de classes que levam um modelo à produção em algumas etapas. Para obter mais informações, consulte Serialização de Modelo.

Introdução ao Catálogo de Modelos

Para poder implantar um modelo, você precisa salvar o modelo no catálogo de modelos. O catálogo de modelos é um repositório centralizado e gerenciado de artefatos de modelo. Os modelos armazenados no catálogo podem ser compartilhados entre membros de uma equipe e podem ser carregados de volta para uma sessão de notebook. Um artefato de modelo é um arquivo compactado que contém os seguintes arquivos e dados:

  • score.py: Um script do Python que contém a sua lógica personalizada para carregar objetos de modelo serializados na memória e define um ponto final de inferência (predict())
  • runtime.yaml: O ambiente de runtime do modelo, que fornece a referência do ambiente Conda necessária para fins de implantação do modelo
  • Quaisquer arquivos adicionais necessários para executar seu modelo no artefato
    Importante

    Qualquer código usado para inferência deve ser arquivado no mesmo nível que score.py ou em um nível inferior. Se algum arquivo necessário estiver presente nos níveis de pasta acima do arquivo score.py, eles serão ignorados, o que pode resultar em falha na implantação.
  • Metadados sobre a procedência do modelo, incluindo qualquer informação relacionada com o Git
  • O script ou notebook usado para enviar por push o modelo ao catálogo
Dica

Fornecemos vários modelos e exemplos de catálogo de modelos, incluindo os arquivos score.py, no repositório do GitHub.

Preparar Metadados de Modelo e Documentação

Os metadados do modelo são opcionais, mas recomendados. Consulte Preparando Metadados do Modelo e Como Trabalhar com Metadados. Os metadados incluem as seguintes informações:

  • Esquemas de entrada e saída do modelo: Uma descrição dos recursos necessários para fazer uma previsão bem-sucedida do modelo
  • Procedência : Documentação que ajuda a melhorar a reprodutibilidade e a auditabilidade do modelo
  • Taxonomia: Uma descrição do modelo que você está salvando no catálogo de modelos
  • Testes de introspecção de modelo: Uma série de testes e verificações são executados em um artefato de modelo para testar todos os aspectos da integridade operacional do modelo
Dica

O ADS SDK preenche automaticamente a proveniência e a taxonomia quando você salva um modelo com o ADS.

Salvar o Modelo no Catálogo

Você pode salvar um modelo no catálogo usando o ADS SDK, o OCI Python SDK ou a Console. Para obter detalhes, consulte Salvando Modelos no Catálogo de Modelos.

Observação

Os artefatos de modelo armazenados no catálogo são imutáveis por design para evitar alterações indesejadas e garantir que qualquer modelo na produção possa ser rastreado para o artefato exato usado. Não é possível alterar um modelo salvo.

Implantar o Modelo

A forma mais comum de implantar modelos na produção é como pontos finais HTTP para atender às previsões em tempo real. O serviço Data Science gerencia as implantações do modelo como recursos e trata todas as operações da infraestrutura, incluindo provisionamento de computação e balanceamento de carga. Você pode implantar um modelo usando a ADS SDK ou a Console.

Dica

Você também pode implantar modelos como uma função. As funções são arquiteturas altamente escaláveis, sob demanda e sem servidor no OCI. Para obter detalhes, consulte esta publicação no blog.

Chamar o Modelo

Depois que um modelo é implantado e ativado, o seu ponto final pode receber com sucesso solicitações feitas pelos clientes. Chamar uma implantação de modelo significa que você pode passar vetores de recursos ou amostras de dados para o ponto final de previsão. Em seguida, o modelo retorna previsões para essas amostras de dados. Para obter mais informações, consulte Chamando uma Implantação de Modelo e leia sobre edição, desativação e gerenciamento de um modelo implantado.

Gerenciar o Ciclo de Vida de ML (MLOps)

MLOps é a padronização, a simplificação e a automação do gerenciamento do ciclo de vida de ML. Os ativos de ML são tratados como outros ativos de software dentro de um ambiente iterativo de integração contínua (CI), de implantação contínua (CD).

Em DevOps, CI refere-se à validação e integração do código atualizado em um repositório central, e CD refere-se à reimplantação dessas alterações na produção. Em MLOps, CI refere-se à validação e integração de novos dados e modelos de ML, e CD refere-se à liberação desse modelo para a produção.

O treinamento contínuo é exclusivo para o MLOps e se refere ao novo treinamento automático de modelos de aprendizado de máquina para reimplantação. Se o modelo não for atualizado, suas previsões se tornarão cada vez menos precisas, mas você poderá usar a automação para treinar o modelo novamente em novos dados o mais rápido possível.

Jobs

Os jobs do serviço Data Science permitem definir e executar uma tarefa ML repetível em uma infraestrutura totalmente gerenciada. Usando jobs, é possível executar as tarefas a seguir:

  • Executar tarefas de ML ou ciência de dados fora de uma sessão de notebook
  • Operacionalizar tarefas discretas de ciência de dados e ML, como operações executáveis reutilizáveis
  • Automatizar o MLOps ou o pipeline de CI/CD
  • Executar jobs ou cargas de trabalho batch acionados por eventos ou ações
  • Executar inferência de job em lote, mini lote ou lote distribuído
  • Em uma sessão de notebook JupyterLab, crie tarefas de longa execução ou tarefas com uso intenso de computação em um job do serviço Data Science para manter o notebook livre para você continuar seu trabalho
Observação

Confira um tutorial sobre programar processamentos de job.

Monitoramento

O monitoramento e o registro em log são as últimas etapas do ciclo de vida do job. Eles fornecem insights sobre o desempenho e as métricas de um job, além de um registro que você pode consultar posteriormente para cada execução de job. Para obter mais informações sobre monitoramento, alarmes e métricas, consulte Métricas.

  • O serviço Monitoring consiste em métricas e alarmes e permite que você verifique a integridade, a capacidade e o desempenho dos recursos de nuvem. Em seguida, você pode usar esses dados para determinar quando criar mais instâncias para gerenciar o aumento de carga, diagnosticar e solucionar problemas com uma instância ou compreender melhor o comportamento do sistema.
  • Os alarmes são acionados quando uma métrica viola os limites definidos.
  • As métricas rastreiam o uso de CPU ou GPU, a porcentagem de uso da memória disponível do contêiner de processamento de job, o tráfego de rede do contêiner e o uso de disco do contêiner. Quando esses números atingem um determinado limite, você pode expandir recursos, como armazenamento em blocos e forma de computação, para acomodar a carga de trabalho.
  • O serviço Events permite que você se inscreva em alterações nos recursos, como eventos de execução de job e de job, e responda a eles usando funções, notificações ou streams. Consulte Criando Automação com o Uso de Eventos.

Registro em Log

Você pode usar logs de serviço ou logs personalizados com processamentos de job. Um processamento de job emite logs de serviço para o serviço OCI Logging. Com logs personalizados, você pode especificar quais eventos de log são coletados em um contexto específico e o local onde os logs são armazenados. Você pode usar o serviço Logging para ativar, gerenciar e procurar logs de processamento de job para os seus jobs. Para obter informações completas, consulte Logging e Sobre os Logs.

Observação

A integração de recursos de jobs com o serviço Logging é opcional, mas recomendada, tanto para depurar possíveis problemas quanto para monitorar o andamento da execução de artefatos de job.

Lista Completa de Serviços de ML e AI

Embora este guia se concentre no serviço OCI Data Science, você pode usar outros serviços de ML e AI com o Data Science como uma maneira de consumir os serviços ou como parte de projetos de ML mais amplos.

Serviços de ML do OCI

Os serviços de aprendizado de máquina do OCI são usados principalmente por cientistas de dados para criar, treinar, implantar e gerenciar modelos de aprendizado de máquina. O serviço Data Science fornece ambientes selecionados para que os cientistas de dados possam acessar as ferramentas de código-fonte aberto necessárias para resolver problemas de negócios mais rapidamente.

  • O Data Science permite criar, treinar e gerenciar modelos ML usando Python de software livre, com recursos adicionais para ML automatizado (AutoML), avaliação do modelo e explicação do modelo.
  • O serviço Data Labeling fornece conjuntos de dados identificados com label para treinar com mais precisão modelos de AI e ML. Os usuários podem montar dados, criar e navegar por conjuntos de dados e aplicar labels a registros de dados por meio de interfaces de usuário e APIs públicas. Os conjuntos de dados identificados podem ser exportados e usados para o desenvolvimento de modelos. Ao criar modelos de ML que funcionam em imagens, texto ou fala, você precisa de dados rotulados que possam ser usados para treinar os modelos.
  • Data Flow fornece um ambiente escalável para desenvolvedores e cientistas para executar aplicativos Apache Spark em execução em lote, em escala. Você pode executar aplicativos escritos em qualquer linguagem Spark para realizar várias tarefas de preparação de dados.
  • O Machine Learning in Oracle Database suporta a exploração e a preparação de dados, além de criar e implantar modelos de ML usando interfaces SQL, R, Python, REST, AutoML e sem código. Ele inclui mais de 30 algoritmos no banco de dados que produzem modelos no Oracle Database para uso imediato em aplicativos. Crie modelos rapidamente, simplificando e automatizando os principais elementos do processo de ML.
Serviços de IA do OCI

Os serviços de IA da OCI contêm modelos de ML predefinidos para usos específicos. Alguns dos serviços de IA são pré-treinados, e alguns você pode treinar com os seus próprios dados. Para usá-las, basta chamar a API para o serviço e transmitir dados a serem processados; o serviço retorna um resultado. Não há infraestrutura para gerenciar.

  • O Digital Assistant oferece habilidades e modelos predefinidos para criar experiências de conversação para aplicativos de negócios e clientes por meio de interfaces de texto, bate-papo e voz.
  • O serviço Language possibilita a execução de análises de texto sofisticadas em escala. O serviço Language inclui modelos pré-treinados para análise de sentimentos, extração de frase-chave, classificação de texto, reconhecimento de entidade nomeada e muito mais.
  • O serviço Speech usa ASR (reconhecimento automático de fala) para converter fala em texto. Desenvolvidos nos mesmos modelos de IA usados para o serviço Digital Assistant, os desenvolvedores podem usar modelos acústicos e de idiomas com eficácia comprovada ao longo do tempo para fornecer transcrição altamente precisa de arquivos de áudio ou vídeo em muitos idiomas.
  • O Vision aplica a visão computacional para analisar conteúdo baseado em imagem. Os desenvolvedores podem facilmente integrar modelos pré-treinados a seus aplicativos com APIs ou modelos personalizados para atender aos seus casos de uso específicos. Esses modelos podem ser usados para detectar anomalias visuais na manufatura, extrair texto de documentos para automatizar workflows de negócios e marcar itens em imagens para contar produtos ou remessas.