A produção sustentável se tornou uma necessidade no mercado de manufatura atual. De acordo com uma pesquisa de 2022 da Associação Nacional de Fabricantes, 79% dos fabricantes têm metas específicas de sustentabilidade. Um líder global na produção de folhas e folhas de alumínio aceitou esse desafio de frente, usando o Databricks para analisar os dados da linha de produção. Esta empresa de fabricação de alumínio visa melhorar a qualidade do produto, otimizar recursos e reduzir o impacto ambiental.
A produção de alumínio é um processo complexo com muitas etapas envolvidas na transformação de matérias-primas em produtos acabados. Para garantir a sustentabilidade ao longo deste processo, a empresa desenvolveu sistemas de relatórios que rastreiam o impacto ambiental do início ao fim. Uma das principais métricas nesse esforço é a taxa de recuperação - a porcentagem de alumínio reciclado com sucesso de materiais descartados para novos produtos. Para medir isso com precisão, a empresa deve primeiro identificar cada etapa necessária na criação do produto final (por exemplo, "rastreamento de lote") e depois calcular o desperdício de material associado a cada etapa.
No entanto, os dados são massivos. Os sistemas de produção registraram mais de 1 bilhão de linhas com até 40 níveis de lotes de produção vinculados. Os métodos tradicionais de DataFrame não eram bem adequados para analisar essas relações a partir dos dados. A empresa considerou o uso de UDFs do Pandas, mas esses UDFs mostraram limitações de desempenho à medida que o tamanho e a complexidade dos dados aumentavam. Identificar relações profundamente aninhadas em um conjunto de dados tão grande exigiu a modelagem das relações como um gráfico. Uma solução construída com GraphFrames—um framework de processamento de gráficos distribuídos incluído no Databricks ML Runtime e otimizado com Databricks’ Photon Engine—realizou o rastreamento de lote de ponta a ponta com bom desempenho e escalabilidade.
Sistemas de manufatura podem refinar uma única matéria-prima em centenas de produtos finais com centenas de etapas intermediárias. Embora cada subprocesso possa emitir informações sobre seus próprios materiais de entrada e saída, a medição de indicadores-chave de sustentabilidade, como a taxa de recuperação, requer a análise da sequência de ponta a ponta. O objetivo é conectar um lote de saída com um lote de origem através de uma série de IDs de lotes intermediários. Uma vez que o rastreamento completo está disponível, podemos determinar o material perdido em cada etapa.
Rastrear lotes de produção armazenados como linhas em um DataFrame—para calcular o total de material perdido na produção de um produto final, por exemplo—pode ser difícil. Embora os DataFrames sejam úteis para muitas consultas analíticas em conjuntos de objetos de negócios, eles não possuem funcionalidade para modelar e analisar hierarquias complexas de objetos. GraphFrames são uma estrutura de dados útil para lidar com grandes hierarquias de objetos. Eles modelam hierarquias como grafos com:
A biblioteca GraphFrames possui muitas ferramentas integradas para processar dados de grafos. Uma classe de algoritmos, Pregel, envia informações ao longo das arestas do grafo para calcular resultados. Para o rastreamento em lote, usamos o Pregel para enviar informações sobre as etapas de produção anteriores (por exemplo, o número do lote de saída) ao longo do gráfico, gerando uma lista completa de todos os lotes de material a montante para cada produto final.
Pregel é uma estrutura que permite aos usuários construir algoritmos personalizados de passagem de mensagens paralelizadas adequados aos seus problemas de negócios únicos. Cada vértice é inicializado com um valor padrão. Os resultados são calculados ao longo de iterações chamadas superpassos. Em cada superpasso, os vértices do gráfico podem:
Funções definidas pelo usuário (UDFs) controlam como as mensagens são passadas e usadas para atualizar o estado de um vértice. Essa flexibilidade permite que os usuários implementem algoritmos Pregel para uma variedade de casos de uso. Para rastrear lotes em nosso processo de fabricação, enviamos o número do lote de entrada de um vértice para outro, atualizando a profundidade de cada vértice e os números do lote de origem quando uma mensagem era recebida.
Para implementar o rastreamento de lote com Pregel, queríamos enviar números de lote ao longo do gráfico. Começamos definindo uma estrutura de mensagem—nossa incluía a profundidade do nó, o número do lote e quaisquer números de lote anteriores (também conhecido como "rastreamento"). Com nosso esquema de mensagem definido, criamos um UDF para garantir que as mensagens fossem enviadas de lote pai para lote filho com base na profundidade de cada vértice.
Como os sistemas de manufatura podem envolver várias entradas, precisávamos de uma maneira de lidar com mensagens de vários vértices a montante. Criamos uma função para coletar uma única lista de números de lote recebidos de cada linha de produção a montante.
Finalmente, criamos uma função para atualizar cada vértice com os números de lote agregados.
Nosso primeiro passo foi identificar os lotes de origem em nosso conjunto de dados. Criamos um GraphFrame a partir de nossos dados de lote e usamos a propriedade inDegrees
para determinar o número de lotes de entrada para cada lote de saída.
Depois de encontrarmos os lotes de origem, conseguimos construir um algoritmo Pregel para passar o número do lote ao longo de cada aresta, da entrada para a saída até que a linhagem completa fosse rastreada para cada lote.
A imagem abaixo mostra as chamadas do framework Pregel para executar o algoritmo e rastrear a linhagem.
GraphFrames acelerou a travessia hierárquica em 24x (de 4 horas para cerca de 10 minutos) para 1 milhão de lotes vs. Pandas UDFs rodando no mesmo cluster. Enquanto as Pandas UDFs só poderiam ser escaladas aumentando o tamanho do trabalhador, os testes mostraram que os GraphFrames escalaram horizontalmente quando os trabalhadores foram adicionados ao cluster.
O uso de GraphFrames no Databricks proporcionou a este fabricante uma maior visibilidade em seu processo de produção. Com relatórios desenvolvidos a partir de dados de rastreamento em lote, gerentes de operações podem identificar defeitos precocemente, reduzir o desperdício e entregar uma qualidade de produto mais consistente. Rastrear resíduos e emissões de forma mais precisa ajudará a empresa a minimizar seu impacto ambiental, garantir a conformidade com regulamentos cada vez mais rigorosos e se alinhar melhor com os valores de seus clientes.
Adotar soluções baseadas em dados ajudou este fabricante a encontrar maneiras mais eficientes e sustentáveis de produzir bens. GraphFrames oferece uma funcionalidade de gráfico nativa do Spark que pode ser usada por muitos fabricantes para entender seus processos de produção em escala.
Interessado em impulsionar a sustentabilidade em seu negócio? Confira nosso acelerador de soluções de Análise de Desempenho ESG para começar!
(This blog post has been translated using AI-powered tools) Original Post