Alura > Cursos de Dados > Cursos de MLOps e Operacionalização > Conteúdos de MLOps e Operacionalização > Primeiras aulas do curso Databricks: engenharia de Machine Learning e MLOps

Databricks: engenharia de Machine Learning e MLOps

A plataforma Databricks e a arquitetura Lakehouse para ML - Apresentação

Apresentando o curso e o instrutor

Olá! Bem-vindos ao curso de Databricks para Engenharia de Machine Learning (aprendizado de máquina). Meu nome é João Manuel e serei seu instrutor ao longo deste curso.

Audiodescrição: João é um homem branco, com cabelo castanho na altura dos ombros e barba curta preta. Usa uma camiseta preta e, ao fundo, há uma estante de livros iluminada em azul.

Tenho mais de cinco anos no mercado de dados. Atuei em diversas equipes de ciência de dados, engenharia de dados e engenharia de aprendizado de máquina. Sou engenheiro e tenho mestrado, ambos pela Universidade de São Paulo, e atualmente faço doutorado com foco em visão computacional e inteligência artificial.

Detalhando o conteúdo do curso e o projeto

Este curso está dividido em seis aulas. Nós vamos nos familiarizar com o ambiente do Databricks: entender como funciona, o que oferece e como criar uma conta. Em seguida, nós vamos desenvolver nosso modelo de Machine Learning (aprendizado de máquina) e realizar a implantação desse modelo.

Teremos um projeto muito interessante, que abrangerá desde a construção da camada inicial no Databricks — como criamos as tabelas e como realizamos nosso processo de ETL dentro do Databricks — até, de fato, o treinamento do modelo inicial e o deployment (implantação) desse modelo. Também veremos como automatizar etapas e, por exemplo, como realizar a engenharia de características do nosso modelo. Será um projeto orientado a resolver um problema de negócio real: a recomendação de produtos em um e-commerce (comércio eletrônico).

Apresentando o cronograma das aulas e encerrando a introdução

É isso. Eu espero que vocês gostem da nossa aula e até o próximo vídeo.

A plataforma Databricks e a arquitetura Lakehouse para ML - Criando conta no Databricks

Apresentando a aula

Olá, todes! Bem-vindes a outra aula.

Agora, faremos uma introdução ao Databricks e veremos como podemos criar nossa conta de forma gratuita para ter acesso a praticamente todos os recursos disponíveis na plataforma.

Explicando o que é o databricks

O que é o Databricks? O Databricks é um ambiente em nuvem fundado pelas mesmas pessoas criadoras do Spark, do Delta Lake e do MLflow. Todas essas tecnologias estão muito bem integradas ao ecossistema do Databricks. Trata-se de uma plataforma com foco em Inteligência Artificial, analítica e agentes. Assim, podemos reunir essa combinação de ferramentas com uma camada de governança, denominada arquitetura Lakehouse.

Além de contar com tecnologias de código aberto, como Spark, Python e bibliotecas de aprendizado de máquina, também temos toda a parte de governança estruturada, que é muito importante para o ambiente corporativo.

Apresentando o projeto e a edição gratuita

Nesta série de aulas, nós vamos realizar um projeto de ingestão de dados no Databricks. Veremos como podemos fazer essas ingestões. Existem diversas formas pelas quais o Databricks pode aceitar a ingestão de dados, incluindo conectores externos, mas nós vamos nos concentrar na ingestão do nosso projeto. Criaremos toda a camada de dados do nosso projeto, que será a recomendação de produtos para o e-commerce (comércio eletrônico).

Agora, veremos a edição gratuita e como criar a conta para aproveitar todas as funcionalidades do Databricks. Entre as principais características da edição gratuita, nós realmente podemos criar e explorar diversos tipos de desenvolvimento com Inteligência Artificial, desenvolver nossas habilidades com dados e fazer tudo isso sem qualquer custo. Podemos criar agentes de IA ou treinar modelos clássicos, que é o que vamos fazer, além de realizar toda a parte de visualização dos nossos dados.

Destacando integrações e limitações

O Databricks possui uma integração muito boa com SQL, de modo que, ao mesmo tempo, podemos criar um notebook (caderno de código) de Python e também um notebook (caderno de código) de SQL na mesma linha de código e explorar toda a orquestração da parte de engenharia de dados.

Aqui temos algumas limitações, principalmente no tipo de máquina a que teremos acesso. É uma máquina razoável, uma máquina boa, mas não será suficiente para criarmos nossos modelos. Como trabalhamos com máquinas serverless (sem servidor), que são máquinas on-demand (sob demanda), acabamos enfrentando gargalos dependendo do horário do dia. Pode ser que não haja máquinas disponíveis e a execução do nosso código acabe demorando mais.

Criando a conta gratuita no databricks

Criar a conta é relativamente simples. Acessamos a página da edição gratuita do Databricks e clicamos em registrar. Será solicitada uma conta para fazermos login (autenticação), então podemos iniciar sessão com uma conta do Google ou da Microsoft. Em seguida, inserimos um e-mail pessoal e receberemos um código nesse e-mail. É simples assim. Escolhemos a conta desejada, o código chegará e realizaremos o acesso.

Agora vamos mostrar as opções. Podemos escolher o tipo de uso. O Databricks permite uso corporativo, com algumas limitações; nesse caso, obtemos 14 dias e alguns créditos para utilizar. Se usarmos um e-mail pessoal genérico (como Hotmail ou Gmail), receberemos um pouco menos de crédito, mas, se usarmos um e-mail corporativo, recebemos US$ 400 de crédito. Neste caso, vamos usar para uso pessoal, clicando na edição gratuita para uso pessoal.

Depois, escolhemos o nome da conta; vamos manter o nome como está, selecionamos nossa região, que é Brasil, e resolvemos um pequeno quebra-cabeça. Concluído.

Em seguida, aparecerão algumas informações que podemos omitir, pois não são necessárias. A plataforma começará a configurar nossa conta; isso leva alguns segundos e pode demorar 1 ou 2 minutos, dependendo do horário em que estivermos criando a conta. Vamos aguardar.

Concluindo a criação da conta e próximos passos

Pronto. Foi simples: não levou nem 3 minutos e já temos nossa conta no Databricks criada. Muitos recursos já estão disponíveis. Em seguida, mostraremos, de forma breve, como explorar as ferramentas do Databricks.

O objetivo deste vídeo foi basicamente mostrar como criar uma conta gratuita no Databricks (edição gratuita).

A plataforma Databricks e a arquitetura Lakehouse para ML - Arquitetura Databricks

Introduzindo a arquitetura do databricks

Olá, pessoal! Sejam bem-vindes a outro vídeo.

Agora, vamos entender a arquitetura do Databricks, suas principais características e o que a diferencia de outras arquiteturas de Big Data no mercado. Podemos destacar três características importantes: Delta Lake, o Unity Catalog e uma plataforma com arquitetura Lakehouse (arquitetura híbrida de dados).

Comparando data warehouse, data lake e lakehouse

Para entender o que é a arquitetura Lakehouse (arquitetura híbrida de dados), precisamos retomar os diferentes tipos de arquitetura quando falamos de Big Data. A primeira delas é o Data Warehouse (armazém de dados), a primeira arquitetura que surgiu quando havia a necessidade de unificar dados dentro do ambiente corporativo. Os dados estavam em diversas fontes e em vários ambientes diferentes. Fazemos essa unificação e utilizamos ETLs (extração, transformação e carga) para transformar os dados e construir o Data Warehouse (armazém de dados), que costuma ser um ambiente mais on-premises (local), com tecnologias de código fechado e cujo foco é realizar BI (inteligência de negócios), dashboards (painéis) executivos e análises orientadas à tomada de decisão executiva. Fazemos essa unificação de dados totalmente em formato tabular, garantindo governança de dados e controle de acesso a cada tabela, mas com foco principal em realizar análises e construir dashboards (painéis). Há pouco uso de tecnologias de inteligência artificial e ciência de dados, sobretudo por serem ambientes com tecnologias de código fechado, o que reduz a liberdade para mudanças e modificações.

Em seguida, surgiu o Data Lake (lago de dados), uma evolução do Data Warehouse (armazém de dados), no qual pudemos incorporar tecnologias mais novas, como Scala, Python e PySpark, muito utilizadas na camada de ciência de dados e inteligência artificial. Passamos a suportar vários tipos de dados: estruturados, não estruturados e semiestruturados. Aqui, por exemplo, temos dados de imagem, vídeo, áudio, PDFs, e também preservamos a parte do Data Warehouse (armazém de dados), isto é, mantemos os dados estruturados necessários dentro do nosso Data Lake (lago de dados). Realizamos transformações com foco principal na criação de modelos de machine learning (aprendizado de máquina), na criação de agentes de IA e em aplicações orientadas a ciência de dados. Embora construamos sobre tecnologias de código aberto e o foco seja machine learning (aprendizado de máquina), mantemos a camada de Data Warehouse (armazém de dados), pois precisamos dessa estruturação, de organizar os dados e de ter governança, algo essencial no âmbito corporativo.

A arquitetura Lakehouse (arquitetura híbrida de dados) combina o melhor dos dois mundos. Nela, podemos ter tudo o que havia no Data Lake (lago de dados) e no Data Warehouse (armazém de dados), agora em uma camada mais unificada e com muito mais governança. Isso significa que podemos construir um modelo de machine learning (aprendizado de máquina) que estará sob a mesma governança que antes tínhamos apenas no Data Warehouse (armazém de dados). Por exemplo, podemos colocar em produção esse modelo, colocar em produção uma feature (atributo) e não apenas uma tabela para usar na construção de indicadores. Podemos aplicar governança aos nossos modelos e aos nossos dados, seja uma tabela ou dados não estruturados, como PDFs ou áudios. É uma arquitetura muito interessante. Além disso, podemos realizar todos os tipos de análises: toda a parte de BI (inteligência de negócios), a parte analítica, bem como a parte de machine learning (aprendizado de máquina), agentes e agendas relacionadas, e ciência de dados, sem abrir mão da camada de governança de dados. Essa é a principal característica da arquitetura Lakehouse (arquitetura híbrida de dados): combinar as tecnologias mais modernas — a parte de ciência de dados e machine learning (aprendizado de máquina) — com a governança de que precisamos em um ambiente corporativo.

Detalhando o delta lake e recursos de governança

A característica principal que vamos destacar é a construção que já existe de forma nativa com o Delta Lake. O Delta Lake é uma evolução dos arquivos Parquet à qual adicionamos uma camada de versionamento e log dentro dos próprios Parquet. Assim, passamos a ter transações ACID (atomicidade, consistência, isolamento e durabilidade). Atomicidade significa que ou todos os dados são salvos ou nenhum é salvo. Consistência significa que os dados são gravados com o tipo esperado naquele conjunto específico; por exemplo, um dado numérico será gravado como numérico e um dado do tipo string (texto) será gravado como string (texto), garantindo a manutenção do esquema original. Isolamento é fundamental porque a camada de leitura e a camada de escrita do nosso conjunto de dados são distintas. Durabilidade significa evitar conflitos entre várias versões do conjunto de dados; uma vez que um dado específico é gravado, se não houver modificação futura, isto é, se não for sobrescrito, ele permanecerá como está. Podemos estruturar o ambiente de modo que novas ingestões não afetem o histórico, o que é muito importante.

A segunda característica é a relação natural com o time travel (viagem no tempo). Isso é fantástico.

Como dissemos, ao adicionar um log (registro) e mais governança sobre o Data Lake (lago de dados), podemos ver versões dos nossos dados. Veremos isso mais adiante, quando começarmos a explorar o ambiente do Databricks, observando como funciona na prática. Basicamente, imaginemos que fizemos uma alteração nos dados há uma semana e queremos verificar como estavam os dados há dois meses. Com o time travel (viagem no tempo), se configurado para manter uma janela de tempo maior, podemos retornar à versão antiga e consultar os dados exatamente como estavam naquela versão. E, se necessário, podemos fazer rollback (reversão) e voltar àquela versão anterior. É uma tecnologia excelente que, para quem trabalha com dados, pode salvar muitos projetos.

Também há suporte às operações MERGE e à evolução de esquema. Isso é muito útil. Antes, quando alterávamos o esquema da tabela e adicionávamos uma nova coluna, às vezes precisávamos excluir a definição lógica da tabela para que o Spark a recriasse. Com o Delta Lake, isso não é necessário. Ele suporta naturalmente essa evolução, que é algo comum. Às vezes colocamos um modelo em produção ou criamos uma tabela sem determinada informação; depois queremos adicionar essa informação, e o Delta Lake facilita bastante esse controle.

Centralizando o catálogo de dados com o unity catalog

O Unity Catalog é onde centralizaremos nosso catálogo de dados. É comum, especialmente ao migrar de uma arquitetura de Data Warehouse (armazém de dados), existir um catálogo de dados não unificado na empresa. Ao acessá-lo, verificamos que um dado está em um ambiente e outro dado pode estar em outro ambiente totalmente distinto, sem comunicação entre si, o que gera confusão ao acessar ou descobrir novos dados. Com o Unity Catalog, centralizamos tudo na plataforma do Databricks e adicionamos uma camada adicional de governança. Podemos consultar uma tabela específica e ver, por exemplo, suas colunas e a descrição da tabela. Isso torna a descoberta de novos dados muito mais simples.

Esse processo não se aplica apenas a tabelas ou dados estruturados. Podemos catalogar praticamente tudo que estiver disponível no Databricks: modelos, features (características) e outros tipos de dados. É uma ferramenta excelente e, naturalmente, conta com a parte de governança de dados, pois não será possível acessar tabelas para as quais não há permissão. É uma camada muito interessante e uma das inovações do ambiente Databricks.

O Unity Catalog se integra a diversos ambientes de armazenamento, como AWS, Google Cloud e Azure. Ao explorarmos o Databricks, veremos que existem muitas ferramentas disponíveis para essas conexões, atendendo claramente às demandas do nosso projeto.

Relembrando a arquitetura medallion e suas camadas

Vamos relembrar a arquitetura Medallion (medalhas), pois ela será útil. A partir do Unity Catalog, criaremos várias camadas no projeto que vamos implementar. Temos a camada bronze, que representa a ingestão de dados brutos, praticamente sem alterações, tal como são consumidos na fonte. Em seguida, criamos a camada silver (prata), na qual realizamos algum tipo de limpeza e uma validação inicial do conjunto de dados. Por exemplo, às vezes os dados chegam em formato string (texto) e, na camada silver, convertê-los para numérico, se necessário. São processos de ETL (extração, transformação e carga) mais simples, mas ainda assim ETL. Às vezes recebemos dados semiestruturados; nessa camada já podemos estruturar novas colunas.

Por fim, temos a camada gold (ouro), a camada final, onde aplicamos regras de negócio, validações e agregações finais, possivelmente combinando com outras tabelas, para alimentar nosso modelo de machine learning (aprendizado de máquina). Relembramos essa arquitetura porque construiremos algo muito parecido no ambiente do Databricks.

Aproveitando o databricks runtime e o mlflow

O Databricks Runtime é um ambiente otimizado para machine learning (aprendizado de máquina) e AI (inteligência artificial). O Databricks tem forte foco em machine learning e ciência de dados e já inclui várias bibliotecas pré-instaladas, como PySpark e scikit-learn. Ele possui integração nativa com o MLflow para gerenciar modelos. Outra vantagem do Databricks é que, no mesmo notebook (caderno), podemos executar código Python e, se necessário, consultas SQL. Há integração real, e o Databricks foi projetado com foco em engenharia de dados e em modelos de machine learning, o que facilita bastante nosso trabalho diário.

O MLflow vem integrado ao Databricks, o que torna simples a realização de experimentos. Por padrão, ele exibe uma baseline (linha de base) de alguns modelos, recurso muito útil. Podemos acompanhar métricas com muito mais facilidade, por exemplo, para verificar o desempenho do nosso modelo em produção. O Databricks nos oferece um ambiente praticamente pronto para colocar nosso modelo em produção, monitorar seu desempenho, realizar todo o registro e o versionamento dos modelos, ou seja, gerenciar todo o ciclo de vida do nosso modelo de machine learning.

Eu espero que vocês tenham gostado da aula de hoje. Até a próxima.

Sobre o curso Databricks: engenharia de Machine Learning e MLOps

O curso Databricks: engenharia de Machine Learning e MLOps possui 327 minutos de vídeos, em um total de 63 atividades. Gostou? Conheça nossos outros cursos de MLOps e Operacionalização em Dados, ou leia nossos artigos de Dados.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda MLOps e Operacionalização acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas