paint-brush
Um guia de arquiteto para as 10 principais ferramentas necessárias para construir o moderno Data Lakepor@minio
631 leituras
631 leituras

Um guia de arquiteto para as 10 principais ferramentas necessárias para construir o moderno Data Lake

por MinIO8m2024/08/27
Read on Terminal Reader

Muito longo; Para ler

Aqui está uma lista de fornecedores e ferramentas necessárias para construir o data lake moderno, com cada entrada um recurso necessário para dar suporte à IA generativa.
featured image - Um guia de arquiteto para as 10 principais ferramentas necessárias para construir o moderno Data Lake
MinIO HackerNoon profile picture


Eu já escrevi sobre o arquitetura de referência de data lake moderna , abordando os desafios em todas as empresas — mais dados, ferramentas Hadoop antigas (especificamente HDFS) e maiores demandas por APIs RESTful (S3) e desempenho — mas quero preencher algumas lacunas.


O data lake moderno, às vezes chamado de data lakehouse, é metade data lake e metade data warehouse baseado em Open Table Format Specification (OTF). Ambos são construídos em armazenamento de objetos moderno.


Ao mesmo tempo, pensamos profundamente sobre como as organizações podem construir uma infraestrutura de dados de IA que possa dar suporte a todas as suas necessidades de IA/ML — não apenas ao armazenamento bruto de seus conjuntos de treinamento, conjuntos de validação e conjuntos de teste. Em outras palavras, ela deve conter a computação necessária para treinar grandes modelos de linguagem, ferramentas MLOps, treinamento distribuído e muito mais. Como resultado dessa linha de pensamento, elaboramos outro artigo sobre como usar o data lake moderno arquitetura de referência para dar suporte à sua IA/ML necessidades. O gráfico abaixo ilustra as arquitetura de referência de data lake moderna com as capacidades necessárias para IA generativa destacadas.


Fonte: IA/ML em um data lake moderno


Ambos os artigos não mencionam fornecedores ou ferramentas específicas. Agora, quero discutir fornecedores e ferramentas necessárias para construir o data lake moderno. Nesta lista top 10, cada entrada é uma capacidade necessária para dar suporte à IA generativa.

1. Lago de dados

Os data lakes corporativos são construídos em armazenamento de objetos. Não o seu armazenamento de objetos antigo, baseado em dispositivos, que atendia a casos de uso de arquivamento baratos e profundos, mas armazenamentos de objetos modernos, de alto desempenho, definidos por software e nativos do Kubernetes, os pilares da pilha GenAI moderna. Eles estão disponíveis como um serviço (AWS, GCP, Azure) ou no local ou híbridos/ambos, como MinIO. Esses data lakes precisam dar suporte a cargas de trabalho de streaming, devem ter criptografia e codificação de eliminação altamente eficientes, precisam armazenar metadados atomicamente com o objeto e dar suporte a tecnologias como computação Lambda. Considerando que essas alternativas modernas são nativas da nuvem, elas se integrarão a toda a pilha de outras tecnologias nativas da nuvem — de firewalls a observabilidade e gerenciamento de usuários e acesso — imediatamente.

2. Data Warehouse baseado em OTF

O armazenamento de objetos também é a solução de armazenamento subjacente para um data warehouse baseado em OTP. Usar o armazenamento de objetos para um data warehouse pode parecer estranho, mas um data warehouse construído dessa forma representa a próxima geração de data warehouses. Isso é possível graças às especificações OTF criadas pela Netflix, Uber e Databricks, que tornam fácil empregar o armazenamento de objetos em um data warehouse.


Os OTFs — Apache Iceberg, Apache Hudi e Delta Lake — foram escritos porque não havia produtos no mercado que pudessem lidar com as necessidades de dados dos criadores. Essencialmente, o que todos eles fazem (de maneiras diferentes) é definir um data warehouse que pode ser construído sobre o armazenamento de objetos. O armazenamento de objetos fornece a combinação de capacidade escalável e alto desempenho que outras soluções de armazenamento não podem. Como essas são especificações modernas, elas têm recursos avançados que os data warehouses antigos não têm, como evolução de partição, evolução de esquema e ramificação de cópia zero.


Dois parceiros da MinIO que podem executar seu data warehouse baseado em OTF sobre a MinIO são Dremio e Starburst.


Dremio Sonar (mecanismo de processamento de data warehouse)

Dremio Arctic (catálogo de data warehouse)

Open Data Lakehouse | Starburst (catálogo e mecanismo de processamento)

3. Operações de Aprendizado de Máquina (MLOps)

MLOps é para machine learning o que DevOps é para desenvolvimento de software tradicional. Ambos são um conjunto de práticas e princípios que visam melhorar a colaboração entre equipes de engenharia (Dev ou ML) e equipes de operações de TI (Ops). O objetivo é simplificar o ciclo de vida do desenvolvimento usando automação, do planejamento e desenvolvimento à implantação e operações. Um dos principais benefícios dessas abordagens é a melhoria contínua.


As técnicas e recursos do MLOps estão em constante evolução. Você quer uma ferramenta que seja apoiada por um grande player, garantindo que a ferramenta esteja em constante desenvolvimento e melhoria e oferecerá suporte de longo prazo. Cada uma dessas ferramentas usa MinIO sob o capô para armazenar artefatos usados durante o ciclo de vida de um modelo.


MLRun (Iguazio, adquirida pela McKinsey & Company)

MLflow (Bricks de Dados)

Kubeflow (Google)

4. Estrutura de Aprendizado de Máquina

Sua estrutura de aprendizado de máquina é a biblioteca (geralmente para Python) que você usa para criar seus modelos e escrever o código que os treina. Essas bibliotecas são ricas em recursos, pois fornecem uma coleção de diferentes funções de perda, otimizadores, ferramentas de transformação de dados e camadas pré-construídas para redes neurais. O recurso mais importante que essas duas bibliotecas fornecem é um tensor. Tensores são matrizes multidimensionais que podem ser movidas para a GPU. Eles também têm diferenciação automática, que é usada durante o treinamento do modelo.


As duas estruturas de aprendizado de máquina mais populares hoje são PyTorch (do Facebook) e Tensorflow (do Google).


PyTorch

TensorFlow

5. Treinamento Distribuído

O treinamento de modelo distribuído é o processo de treinar simultaneamente modelos de machine learning em vários dispositivos computacionais ou nós. Essa abordagem acelera o processo de treinamento, particularmente quando grandes conjuntos de dados são necessários para treinar modelos complexos.


No treinamento de modelo distribuído, o conjunto de dados é dividido em subconjuntos menores, e cada subconjunto é processado por diferentes nós em paralelo. Esses nós podem ser máquinas individuais dentro de um cluster, processos individuais ou pods individuais dentro de um cluster Kubernetes. Eles podem ter acesso a GPUs. Cada nó processa independentemente seu subconjunto de dados e atualiza os parâmetros do modelo de acordo. As cinco bibliotecas abaixo isolam os desenvolvedores da maior parte da complexidade do treinamento distribuído. Você pode executá-los localmente se não tiver um cluster, mas precisará de um cluster para ver uma redução notável no tempo de treinamento.


DeepSpeed (da Microsoft)

Horovod (do Uber)

Ray (da Anyscale)

Distribuidor Spark PyTorch (da Databricks)

Distribuidor Spark TensorFlow (da Databricks)

6. Centro de modelos

Um hub de modelos não faz realmente parte da arquitetura de referência de data lake moderna, mas estou incluindo-o de qualquer maneira porque é importante para começar rapidamente com IA generativa. O Hugging Face se tornou o lugar para ir para grandes modelos de linguagem. O Hugging Face hospeda um hub de modelos onde os engenheiros podem baixar modelos pré-treinados e compartilhar modelos que eles mesmos criam. O Hugging Face também é o autor das bibliotecas Transformers e Datasets, que trabalham com grandes modelos de linguagem (LLMs) e os dados usados para treiná-los e ajustá-los.


Existem outros hubs de modelos. Todos os principais fornecedores de nuvem têm alguma maneira de carregar e compartilhar modelos, mas o Hugging Face, com sua coleção de modelos e bibliotecas, se tornou o líder nesse espaço.


Abraçando o Rosto

7. Estrutura de aplicação

Uma estrutura de aplicativo ajuda a incorporar um LLM em um aplicativo. Usar um LLM é diferente de usar uma API padrão. Muito trabalho deve ser feito para transformar uma solicitação do usuário em algo que o LLM possa entender e processar. Por exemplo, se você criar um aplicativo de bate-papo e quiser usar o Retrieval Augmented Generation (RAG), precisará tokenizar a solicitação, transformar os tokens em um vetor, integrar com um banco de dados de vetores (descrito abaixo), criar um prompt e, em seguida, chamar seu LLM. Uma estrutura de aplicativo para IA generativa permitirá que você encadeie essas ações. A estrutura de aplicativo mais amplamente usada hoje é o LangChain. Ele tem integrações com outras tecnologias, por exemplo, a biblioteca Hugging Face Transformer e a biblioteca Unstructured para processamento de documentos. Ele é rico em recursos e pode ser um pouco complicado de usar, então, listadas abaixo estão algumas alternativas para aqueles que não têm requisitos complexos e querem algo mais simples do que o LangChain.


Cadeia Lang

AgenteGPT

GPT automático

BebêAGI

Fluxo

GradienteJ

Índice de Lhama

Langdock

TensorFlow (API Keras)

8. Processamento de documentos

A maioria das organizações não tem um único repositório com documentos limpos e precisos. Em vez disso, os documentos são espalhados pela organização em vários portais de equipe em muitos formatos. O primeiro passo ao se preparar para IA generativa é construir um pipeline que pegue apenas documentos que foram aprovados para uso com IA generativa e os coloque em seu banco de dados vetorial. Esta pode ser potencialmente a tarefa mais difícil de uma solução de IA generativa para grandes organizações globais.



Um pipeline de documentos deve converter os documentos em texto, dividir o documento em partes e executar o texto dividido em partes por meio de um modelo de incorporação para que sua representação vetorial possa ser salva em um banco de dados vetorial. Felizmente, algumas bibliotecas de código aberto podem fazer isso para muitos dos formatos comuns de documentos. Algumas bibliotecas estão listadas abaixo. Essas bibliotecas podem ser usadas com o LangChain para construir um pipeline completo de processamento de documentos.


Não estruturado

Análise Aberta

9. Bancos de dados vetoriais

Bancos de dados vetoriais facilitam a busca semântica. Entender como isso é feito requer muito conhecimento matemático e é complicado. No entanto, a busca semântica é conceitualmente fácil de entender. Digamos que você queira encontrar todos os documentos que discutam qualquer coisa relacionada à “inteligência artificial”. Para fazer isso em um banco de dados convencional, você precisaria procurar por todas as abreviações, sinônimos e termos relacionados possíveis de “inteligência artificial”. Sua consulta seria algo como isto:


 SELECT snippet FROM MyCorpusTable WHERE (text like '%artificial intelligence%' OR text like '%ai%' OR text like '%machine learning%' OR text like '%ml%' OR ... and on and on ...


Não só essa busca manual de similaridade é árdua e propensa a erros, mas a busca em si é muito lenta. Um banco de dados vetorial pode receber uma solicitação como a abaixo e executar a consulta mais rapidamente e com maior precisão. A capacidade de executar consultas semânticas de forma rápida e precisa é importante se você deseja usar o Retrieval Augmented Generation.


 { Get { MyCorpusTable(nearText: {concepts: ["artificial intelligence"]}) {snippet} } }


Quatro bancos de dados de vetores populares estão listados abaixo.


Milvus

Pgvetor

Pinha

Tecer

10. Exploração e visualização de dados

É sempre uma boa ideia ter ferramentas que permitam que você controle seus dados e os visualize de diferentes maneiras. As bibliotecas Python listadas abaixo fornecem recursos de manipulação e visualização de dados. Elas podem parecer ferramentas que você só precisa para IA tradicional, mas também são úteis com IA generativa. Por exemplo, se você estiver fazendo análise de sentimentos ou detecção de emoções, então você deve verificar seus conjuntos de treinamento, validação e teste para ter certeza de que tem uma distribuição adequada em todas as suas classes.


Pandas

Matplotlib

Nascido no mar

Streamlit

Conclusão

Aí está: 10 capacidades que podem ser encontradas na arquitetura de referência de data lake moderna, juntamente com produtos e bibliotecas de fornecedores concretos para cada capacidade. Abaixo está uma tabela resumindo essas ferramentas.


  1. Lago de Dados - MinIO , AWS, GCP, Azure
  2. Armazém de dados baseado em OTF - Dremio , Dremio Sonar , Dremio Arctic , Starburst , Open Data Lakehouse | Explosão estelar
  3. Estrutura de aprendizado de máquina - PyTorch , TensorFlow
  4. Operações de aprendizagem de máquina - MLRun (McKinsey & Company ), MLflow (Databricks) , Kubeflow (Google)
  5. Treinamento distribuído - DeepSpeed (da Microsoft) , Horovod (da Uber) , Ray (da Anyscale) , Distribuidor Spark PyTorch (da Databricks) , Distribuidor Spark Tensoflow (da Databricks)
  6. Centro de modelos - Abraçando o Rosto
  7. Estrutura de aplicação - LangChain , AgentGPT , Auto-GPT , BabyAGI , Flowise , GradientJ , LlamaIndex , Langdock , TensorFlow (API Keras)
  8. Processamento de documentos - Não estruturado , análise aberta
  9. Banco de dados de vetores - Milvus , Pgvector , Pinha , Weaviate
  10. Exploração e visualização de dados - Pandas , Matplotlib , Seaborn , Streamlit