Simple Science

Ciência de ponta explicada de forma simples

# Informática# Bases de dados

Lester: Uma Ferramenta para Pipelines de ML Mais Limpos

O Lester ajuda a simplificar códigos bagunçados de ciência de dados pra uma melhor gestão dos dados.

― 8 min ler


Código Mais Limpo paraCódigo Mais Limpo paraPipelines de MLuma gestão de dados organizada.Lester transforma código bagunçado em
Índice

Aprendizado de máquina (ML) tá sendo cada vez mais usado pra ajudar a automatizar decisões importantes. Mas, muitos desses sistemas têm dificuldade em gerenciar os dados direitinho e seguir as novas regras sobre Proteção de Dados. Um dos motivos é que as ferramentas usadas pra montar pipelines de ML geralmente não são feitas pra lidar com dados de forma clara e eficiente. Pesquisas mostram que algumas técnicas podem ajudar a gerenciar esses pipelines melhor, mas elas precisam de código limpo e bem estruturado. Infelizmente, os cientistas de dados costumam escrever código bagunçado que dificulta a aplicação dessas técnicas.

O Desafio

Os cientistas de dados costumam ter formas de trabalhar já estabelecidas que são difíceis de mudar. Por isso, é meio irreal esperar que eles comecem a escrever código de um jeito diferente. Em vez de pedir pra eles mudarem seus hábitos, a gente sugere usar grandes modelos de linguagem (LLMs) pra ajudar a reescrever o código deles. Esses modelos conseguem pegar código bagunçado de ciência de dados e traduzir pra um estilo mais claro e organizado, que é mais fácil de gerenciar.

A Necessidade de Melhor Gestão de Dados

À medida que as empresas dependem mais dos pipelines de ML pra treinar e implementar seus modelos, os desafios de gestão de dados ficam mais evidentes. Muitas organizações operam vários pipelines de ML, mas ainda enfrentam dificuldades com dados pessoais e sensíveis. Por exemplo, já rolou casos em que sistemas acidentalmente incluíram informações sensíveis, levando a problemas sérios e questões legais. Com mais regulamentos novos surgindo sobre proteção de dados, é crucial que esses sistemas gerenciem os dados corretamente.

As bibliotecas de ML atuais e os serviços de nuvem geralmente não oferecem as ferramentas certas pra lidar com dados de forma eficaz. Eles tendem a priorizar flexibilidade e facilidade de uso em vez de uma gestão de dados sólida. Isso significa que os desenvolvedores acabam arcando com a responsabilidade de garantir a Conformidade com as regras de proteção de dados.

Soluções Atuais e Suas Limitações

Pesquisadores têm trabalhado pra melhorar aplicativos de ML adicionando recursos como rastreamento de histórico de dados e capacidades de depuração. Embora essas melhorias sejam valiosas, elas costumam ter dificuldades em se integrar ao uso real, porque o código existente não é estruturado de uma maneira que permita o uso eficaz desses recursos.

Um grande problema é que a maioria dos cientistas de dados foca muito nos aspectos de ML do trabalho e não presta atenção suficiente em como preparam os dados. Eles costumam achar a preparação de dados chata e escrevem Códigos rápidos e sujos pra finalizar logo. Por isso, têm pouca motivação pra refatorar seu código em algo melhor.

Apresentando Lester: Uma Nova Abordagem

Pra resolver essa questão, a gente propõe uma ferramenta chamada Lester. Lester usa as capacidades dos LLMs pra ajudar a reescrever o código bagunçado que os cientistas de dados criam. O objetivo é converter esse código em um formato mais organizado que seja mais fácil de trabalhar e gerenciar.

Automatizando o processo de limpeza do código, Lester pode ajudar com questões de conformidade e facilitar pra desenvolvedores gerenciarem os dados em suas aplicações de ML. Esse protótipo mostra como os LLMs podem transformar códigos caóticos de ciência de dados em um pipeline claro que rastreia como os dados se movem pelo sistema e pode ser atualizado conforme necessário.

Um Exemplo Prático

Pra ilustrar a utilidade do Lester, vamos considerar um provedor de serviços financeiros hipotético com um lago de dados que contém informações sensíveis de clientes, incluindo e-mails. Essa organização usa múltiplos modelos de ML pra analisar esses dados e oferecer serviços.

Um dia, a equipe descobre que alguns e-mails continham números de cartão de crédito desprotegidos. Isso pode levar a riscos sérios, e eles precisam agir rápido pra deletar essas informações sensíveis dos sistemas. Porém, a equipe percebe rapidamente que os dados críticos podem já estar misturados aos dados processados por vários modelos de ML em seus pipelines.

A equipe enfrenta vários desafios:

  1. Como eles podem identificar quais modelos e pipelines são afetados?
  2. Como remover os dados contaminados sem perder o resto?
  3. Como garantir que podem provar a conformidade com as regras de proteção de dados enquanto lidam com o problema?

O código bagunçado que os cientistas de dados escreveram complica essas tarefas porque não mostra claramente como os dados fluem pelo sistema. Como resultado, a equipe fica em uma situação difícil, onde pode ter que trabalhar longas horas pra corrigir o problema.

Processo de Reescrita de Código

O Lester pode ajudar usando as capacidades dos LLMs pra reescrever partes do código bagunçado que gerencia a preparação de dados. Esse código pode então ser transformado em operações mais adequadas pra lidar com os dados de um jeito mais limpo e organizado. O código reescrito permitiria um rastreamento melhor de onde os dados vêm e como eles mudam ao longo do pipeline.

A beleza dessa abordagem é que ela pode acelerar significativamente o processo de identificar e corrigir modelos e artefatos afetados. Em vez de ter que executar cada pipeline do zero pra remover os dados sensíveis, o Lester pode fazer atualizações direcionadas rapidamente, economizando tempo e recursos.

Rastreio de Proveniência pra Melhor Conformidade

Outra grande vantagem de usar o Lester é sua capacidade de rastrear o histórico das mudanças de dados, conhecido como rastreamento de proveniência. Isso significa que cada pedaço de dado pode ser rastreado até sua origem. No contexto da conformidade, isso é crucial. Se a organização precisar mostrar quais dados possui, como foram usados ou quando foram modificados, ter esse histórico simplifica o processo.

O Lester pode tratar as saídas dos pipelines de ML como visões dos dados iniciais. Isso permite atualizações fáceis sempre que houver mudanças, como quando informações sensíveis precisam ser removidas. Como o Lester mantém o controle das mudanças feitas durante a execução inicial do pipeline, ele pode fazer atualizações direcionadas de forma rápida e eficiente.

Avaliação e Resultados

Em testes preliminares, ficou claro que usar o Lester pra esses tipos de atualizações pode ser muito mais rápido do que começar do zero. Quando a equipe usa o Lester pra focar em alterações específicas nos dados, eles conseguem fazer atualizações em segundos, comparado a horas ou até dias se tivessem que rerun todo o pipeline.

Experiência do Usuário e Feedback

Pra entender quão útil o Lester poderia ser, fizemos um pequeno estudo com usuários. Os participantes trabalharam com um pipeline complexo de ML e foram instruídos a fazer certas mudanças. Os resultados mostraram que os participantes tiveram dificuldades com tarefas comuns que são vitais pra gerenciar pipelines de forma eficaz. Isso destaca a necessidade de sistemas como o Lester pra apoiar os cientistas de dados em seu trabalho e reduzir a chance de erros.

Próximos Passos pro Lester

Seguindo em frente, o Lester tem a intenção de melhorar sua interface pra guiar melhor os cientistas de dados pelo processo de reescrita de código. Também planejamos explorar como tornar o processo de atualização de código ainda mais suave com a ajuda dos LLMs. Mais recursos relacionados à gestão de conformidade, como monitoramento de fluxos de dados e fornecimento de insights, também serão desenvolvidos.

Em resumo, à medida que o aprendizado de máquina se torna essencial em várias indústrias, a habilidade de gerenciar dados de forma eficaz nunca foi tão importante. Ferramentas como o Lester podem fechar a lacuna entre código bagunçado de ciência de dados e pipelines organizados e gerenciáveis que estão em conformidade com os regulamentos. Ao fazer isso, elas têm o potencial de reduzir significativamente os riscos associados à gestão de dados em aplicações de aprendizado de máquina.

Fonte original

Título: Messy Code Makes Managing ML Pipelines Difficult? Just Let LLMs Rewrite the Code!

Resumo: Machine learning (ML) applications that learn from data are increasingly used to automate impactful decisions. Unfortunately, these applications often fall short of adequately managing critical data and complying with upcoming regulations. A technical reason for the persistence of these issues is that the data pipelines in common ML libraries and cloud services lack fundamental declarative, data-centric abstractions. Recent research has shown how such abstractions enable techniques like provenance tracking and automatic inspection to help manage ML pipelines. Unfortunately, these approaches lack adoption in the real world because they require clean ML pipeline code written with declarative APIs, instead of the messy imperative Python code that data scientists typically write for data preparation. We argue that it is unrealistic to expect data scientists to change their established development practices. Instead, we propose to circumvent this "code abstraction gap" by leveraging the code generation capabilities of large language models (LLMs). Our idea is to rewrite messy data science code to a custom-tailored declarative pipeline abstraction, which we implement as a proof-of-concept in our prototype Lester. We detail its application for a challenging compliance management example involving "incremental view maintenance" of deployed ML pipelines. The code rewrites for our running example show the potential of LLMs to make messy data science code declarative, e.g., by identifying hand-coded joins in Python and turning them into joins on dataframes, or by generating declarative feature encoders from NumPy code.

Autores: Sebastian Schelter, Stefan Grafberger

Última atualização: 2024-09-16 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2409.10081

Fonte PDF: https://arxiv.org/pdf/2409.10081

Licença: https://creativecommons.org/licenses/by-sa/4.0/

Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.

Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.

Mais de autores

Artigos semelhantes