Ir para o conteúdo principal

De Zero a Herói GenAI: Construindo Seu Aplicativo GenAI com HuggingFace e Databricks

Integre modelos HuggingFace com ferramentas Databricks para projetar, treinar e implantar seu aplicativo GenAI sem esforço

From Zero to GenAI Hero: Building Your GenAI App with HuggingFace and Databricks

Published: March 26, 2025

Soluções13 min de leitura

Summary

  • Utilize o Catálogo Unity para gerenciamento e governança de dados, integrando os dados da sua organização com os modelos Hugging Face para criar soluções GenAI personalizadas que se alinham com as necessidades específicas do seu negócio.
  • Utilize o Databricks Model Serving para implantar e gerenciar seus modelos GenAI personalizados, aproveitando sua integração perfeita com o Catálogo Unity e suporte para modelos de código aberto e de terceiros, incluindo os da Hugging Face.
  • Aproveite os Apps Databricks para criar e implantar interfaces amigáveis para seus aplicativos GenAI diretamente na Plataforma Databricks, simplificando o processo de desenvolvimento e eliminando a necessidade de extenso conhecimento em desenvolvimento web.

A Databricks introduziu no ano passado Databricks Apps, completando sua suíte de ferramentas que permite aos usuários criar e implantar aplicações diretamente na Plataforma Databricks. Com Databricks Apps, os desenvolvedores podem construir e lançar aplicações de dados e IA mais rapidamente, de forma mais segura e com integração perfeita na Plataforma de Inteligência de Dados Databricks. Suportando frameworks populares, implantação sem servidor e governança integrada, Databricks Apps é projetado para simplificar e acelerar o desenvolvimento de soluções de IA impactantes.

Neste guia, mostraremos como aproveitar o poder do GenAI e do Unity Catalog para construir e implantar aplicações de IA personalizadas que podem transformar seu negócio. Usando modelos Hugging Face, Unity Catalog, Model Serving e Databricks Apps, vamos passar pela criação e implantação de um aplicativo GenAI pronto para produção - sem necessidade de experiência avançada em desenvolvimento de aplicativos web. Ao final deste tutorial, você aprenderá como desbloquear o potencial dos seus dados no Catálogo Unity e transformar modelos complexos de IA em aplicações práticas e prontas para o negócio, que impulsionam a produtividade e a inovação.

Como exemplo, criamos um aplicativo GenAI que combina duas entradas: uma imagem e um texto de prompt. Com o poder da IA gerativa, o aplicativo transformou a imagem original com base no prompt, produzindo uma saída visual única e personalizada.

Nas seções abaixo, vamos guiá-lo passo a passo pelo processo:

  • Carregando imagens em um volume gerenciado pelo Catálogo Unity
  • Registrando um modelo Hugging Face no Catálogo Unity usando MLflow
  • Implementando o modelo com Model Serving
  • Desenvolvendo um aplicativo Databricks e incorporando o modelo

Nota: Databricks Apps está atualmente em Visualização Pública e pode ainda não estar disponível em sua região. Para disponibilidade, verifique aqui.

Carregue a imagem de exemplo para o Volume:

No Databricks, volume é um objeto do Catálogo Unity que fornece armazenamento governado para dados não tabulares (como arquivos, imagens ou documentos). Isso permite que as organizações armazenem, acessem e compartilhem vários tipos de dados de forma segura, mantendo a governança e o controle centralizados.

Para o nosso exemplo, vamos baixar uma imagem do Hugging Face e, como estamos manipulando imagens, vamos salvá-la em um volume do Databricks:

A imagem de exemplo pode ser vista abaixo:

HuggingFace
Our example image downloaded from HuggingFace

Registre o modelo do HuggingFace no Catálogo Unity com MLflow:

Primeiro, precisamos selecionar um modelo do HuggingFace que possa gerar imagens com base em um prompt e uma imagem de entrada. Vamos escolher o modelo decodificador Kandinsky 2-2 (https://huggingface.co/docs/diffusers/pt/using-diffusers/img2img#image-to-image).

Em seguida, podemos registrar nosso modelo no Catálogo Unity usando MLflow. Usaremos o sabor MLflow pyfunc para criar uma classe personalizada, que servirá como nosso invólucro de modelo:

Adicionamos duas funções (image_to_base64 e base64_to_image) à classe para codificar e decodificar imagens. Elas são necessárias porque não podemos analisar imagens PIL em JSON para enviar nossa entrada para nosso modelo implantado.

Depois de preparar nossa classe, faremos o log e registraremos o modelo no Catálogo Unity. O modelo esperará um DataFrame contendo parâmetros, o prompt e a imagem como entrada. Criamos um exemplo de entrada usando nossa imagem previamente carregada em nosso Volume.

Tendo registrado nosso modelo no Unity Catalog, agora estamos prontos para enfrentar a crucial etapa de implantação através do Model Serving. A próxima seção irá guiá-lo na transformação do seu modelo em um serviço pronto para produção, capaz de lidar com solicitações de previsão em tempo real em grande escala.

Implemente o modelo com Model Serving:

Model Serving no Databricks é um serviço totalmente gerenciado que permite implantar modelos de aprendizado de máquina como APIs REST. Isso os torna facilmente acessíveis para previsões em tempo real sem se preocupar com a infraestrutura subjacente ou escalabilidade. Para saber mais, consulte o recurso disponível neste link.

Implantamos um modelo registrado no Catálogo Unity com Model Serving:

  • Manualmente, usando a interface do usuário: navegue até seu modelo no Catálogo Unity e clique em "servir este modelo"
  • Ou, podemos fazer isso via API, conforme mostrado no código abaixo

O processo de construção do ponto de extremidade de serviço do modelo começará. Uma vez em funcionamento, podemos navegar até a seção "Model Serving" e clicar no ponto de extremidade para obter os detalhes da conexão.

Em seguida, podemos começar a criar nossos Apps Databricks.

Desenvolvimento de Apps Databricks

Databricks Apps é um novo recurso (confira a documentação aqui) projetado para simplificar a criação e implantação de aplicativos web dentro da Plataforma Databricks. Com Databricks Apps, os profissionais podem construir aplicativos aproveitando dados, modelos e governança já existentes no Databricks sem a necessidade de gerenciar uma infraestrutura separada. Databricks Apps oferece flexibilidade, permitindo que você construa sua Interface de Aplicativo com o framework de sua escolha: Dash, Shiny, Gradio, Streamlit ou Flask.

Para começar a criar o App na sua Plataforma Databricks com base nesta página:

  1. Navegue até Computação > Apps em sua Plataforma Databricks.
  2. Clique em "Criar App". Deixe as configurações avançadas vazias por enquanto, pois as preencheremos mais tarde nesta seção.

Em seguida, configure o ambiente do seu aplicativo:

  1. Vá para o perfil do seu usuário e crie uma nova pasta para o seu aplicativo.
    • Esta pasta conterá o código do seu aplicativo e quaisquer dependências adicionais.
  2. Nesta pasta, crie:
    • Um arquivo chamado main.py:
      • Em main.py, usaremos um Token de Acesso Pessoal (PAT) para acessar o endpoint de serviço do modelo, recuperando-o de forma segura a partir de um "escopo secreto" criado via CLI do Databricks em vez de exibi-lo diretamente.
      • Para encontrar instruções sobre como registrar um segredo usando o Databricks CLI, navegue aqui.
    • Um nome de arquivo requirements.txt:
      • Este arquivo lista as bibliotecas e pacotes externos necessários para o nosso código funcionar corretamente.
      • Você pode encontrar mais informações sobre isso neste link

Agora que concluímos a configuração, vamos prosseguir com a construção do código para nosso WebApp.

Vamos mergulhar nos componentes críticos do nosso aplicativo:

O Back-End: Lidando com interações com Volumes do Catálogo Unity

O código a seguir define uma função, query_image_from_volume(), que recupera um arquivo de imagem de um volume Databricks. Ele usa o SDK Databricks para autenticar e baixar o arquivo de imagem, depois o abre usando a PIL (Python Imaging Library) e o converte para o formato RGB. A função configura as variáveis de ambiente necessárias, incluindo um token secreto para autenticação, antes de buscar e processar a imagem.

Integração do Endpoint do Modelo: Consultando nosso modelo de IA para previsões

Abaixo, definimos uma função query_model_endpoint que prepara e envia uma solicitação ao nosso endpoint de modelo (implantado anteriormente com Model Serving) para geração de imagem. Ela pega uma imagem de entrada, a converte para base64 (porque uma imagem PIL não pode ser diretamente serializada em JSON), constrói um DataFrame com vários parâmetros, incluindo a imagem e os prompts, e envia esses dados como um payload JSON para a URL do endpoint do modelo. Finalmente, ela processa a resposta convertendo os dados da imagem base64 retornados em um objeto de imagem RGB para que possamos visualizar o resultado em nosso App.

A URL do seu modelo pode ser encontrada na interface do usuário do Model Serving clicando no seu modelo implantado.

Desenvolvimento Front-End: Combinando funcionalidade de back-end e consultas de modelo em uma interface de usuário

Nesta seção, criamos uma interface Gradio para nosso aplicativo GenAI que transforma imagens com base na entrada do usuário. Ela configura um layout com um logotipo, título, caixa de texto de entrada para descrição de personagem e duas exibições de imagem (antes e depois da transformação), juntamente com botões para executar a transformação e limpar as entradas. A interface conecta a entrada do usuário à nossa função query_model_endpoint definida anteriormente, que processa a entrada e gera os resultados, que serão então exibidos no componente de imagem "Depois".

Se você quiser adicionar imagens ou logs ao seu WebApp, pode criar outra pasta (chamada "static" em nosso código acima) dentro do mesmo diretório para armazenar as imagens (como fizemos aqui com static/DatabricksLogo_full3.png).

Implantação: Colocando nosso aplicativo para funcionar

Este trecho de código é normalmente usado no final de um script de aplicativo Gradio. Ele verifica se o script está sendo executado diretamente (não importado como um módulo) usando a condição if __name__ == "__main__":. Se verdadeiro, ele lança a interface Gradio definida no objeto demo. O aplicativo é inicialmente implantado no host local. Se você quiser torná-lo acessível através de uma URL pública, terá que adicionar share=True em launch().

Com nosso App Databricks desenvolvido e pronto para implantação, criamos com sucesso uma interface interativa e poderosa para nosso modelo GenAI. No entanto, antes de podermos liberar seu potencial, devemos abordar um aspecto crucial da gestão de aplicativos: as permissões.

Na próxima seção, exploraremos como conceder as permissões necessárias ao Service Principal por trás do nosso App Databricks, garantindo que ele tenha o nível certo de acesso para desempenhar suas funções de forma segura e eficaz.

Permissões de Apps Databricks:

Você pode encontrar o nome do service principal no UI do seu App, na seção Recursos do App. Uma vez identificado, conceda as seguintes permissões ao Service Principal:

  • Token de acesso pessoal
    • Conceda permissão de Pode Ler para permitir que o Service Principal acesse o token registrado
    • Seguindo as instruções neste link, você pode conceder acesso diretamente à interface do usuário:
      • Clique em Editar, Configurações avançadas, o tipo de Recurso "Segredo" e o escopo e chave-secreta em que você registrou seu token.
      • Para referenciar o segredo em seu código de aplicativo, use o valor do campo nome (TOKEN em nosso exemplo) para se referir ao valor da chave configurada e salve.
  • Acesso ao Volume:
    • Atribua a permissão READ_VOLUME para permitir o acesso às imagens armazenadas em seu Volume.
    • Através da interface do Volume:
      • Em seu Volume, clique em Permissões e selecione Conceder
  • Endpoints que disponibiliza modelos
    • Forneça a permissão PODE USAR para o modelo previamente implementado no Model Serving.
    • Através da interface do usuário do Model Serving:
      • Na página do seu modelo, clique em Permissões

Para implantar nosso WebApp, navegue até a interface do usuário do seu WebApp e clique em Implantar. Em seguida, selecione a pasta onde seu main.py está localizado. Isso implantará seu código em um contêiner isolado. A implantação inicial do aplicativo pode levar vários minutos para ser concluída. Uma vez que o processo conclui e o indicador de status exibe "Running", seu aplicativo está totalmente implantado e operacional.

Após a implementação bem-sucedida, você terá acesso a uma interface de usuário totalmente funcional e interativa dentro de um aplicativo web que utiliza o modelo Kandinsky. Para lançar seu aplicativo:

  1. Navegue até a seção Compute em seu espaço de trabalho Databricks
  2. Localize e clique no nome do seu aplicativo
  3. Encontre o indicador de status "Running"
  4. Clique no link adjacente para abrir seu aplicativo.

Aqui estão os resultados do nosso exemplo no nosso Databricks App:

Comece com Databricks Apps

Como demonstrado, os passos são claros e diretos. A maior parte do trabalho é feita dentro da Plataforma de Inteligência Databricks, reduzindo significativamente a complexidade e o tempo de desenvolvimento. Essa abordagem permite que você implante seu modelo de forma rápida e simples em um aplicativo web sem servidor, sem os obstáculos tradicionais do gerenciamento de infraestrutura.

Esperamos que você tenha achado este tutorial útil ao concluir esta jornada. Encorajamos você a explorar mais estas capacidades e ver como elas podem acelerar suas iniciativas de IA. Com a ajuda deste blog, você pode levar seu App para o próximo nível, ajustando o modelo, permitindo que você personalize ainda mais seu aplicativo para atender às suas necessidades específicas. Esta personalização permitirá que você crie soluções de IA verdadeiramente adaptadas às necessidades da sua organização, potencialmente revolucionando seus processos de negócios e impulsionando a inovação.

Desejamos-lhe sucesso na construção do seu próprio aplicativo web GenAI e estamos animados para ver os fantásticos aplicativos web GenAI que você criará!

 

(This blog post has been translated using AI-powered tools) Original Post

Nunca perca uma postagem da Databricks

Inscreva-se nas categorias de seu interesse e receba as últimas postagens na sua caixa de entrada