Apresentamos o IBM Data Prep Kit para fluxos de trabalho de LLM simplificados
Modelos de Linguagem Grandes (LLMs) foram amplamente adotados nos setores de saúde, varejo e e-commerce, gerando bilhões de dólares em receita total. Um ingrediente-chave por trás do sucesso desses LLMs são os dados nos quais eles são treinados. A inteligência geral desses modelos depende da quantidade, qualidade e variedade dos dados usados; portanto, garantir um pré-processamento eficiente torna-se crítico.
Em um recente NYC Unstructured Data Meetup organizado pela Zilliz, Santosh Borse, Engenheiro Sênior na IBM Research, falou sobre um Data Prep Kit (DPK) de código aberto que eles criaram para otimizar o processo de preparação de dados para fluxos de trabalho de LLM. Ele discutiu os desafios enfrentados com a qualidade dos dados, como os abordaram e o pipeline para implementar o DPK de código aberto.
Este blog recapitulará seus principais pontos e explorará como o DPK pode ser ainda mais integrado ao Milvus para aplicações como busca semântica e Retrieval Augmented Generation (RAG).
Dados São o Novo Petróleo!
“Dados são o novo petróleo”—essa afirmação pode ser aplicada com precisão ao crescimento dos LLMs. Assim como o petróleo impulsiona a economia, os dados são a fonte do sucesso dos LLMs.
Aqui está uma lista de fontes de dados que muitos LLMs, como os modelos GPT da OpenAI, aproveitaram para extrair dados para o treinamento de LLMs.
Common Crawl: Uma enorme fonte de dados contendo petabytes de dados, equivalente a quase 250 bilhões de páginas da web. Também é um superconjunto para muitos outros conjuntos de dados disponíveis. Esses dados servem como a fonte fundamental para modelos de linguagem de uso geral.
Conjuntos de Dados Processados: C4, The Pile, Red Pajama e Wikipedia oferecem dados de alta qualidade e curados, adaptados para tarefas específicas.
Dados Específicos de Domínio: Dados específicos de domínio podem ser utilizados para atender a casos de uso mais direcionados. Alguns exemplos são BookCorpus para análise literária, MathQA para resolução de problemas matemáticos e StarCoder para tarefas relacionadas a codificação.
HuggingFace: Possui mais de 210 mil conjuntos de dados, permitindo personalização para tarefas de ajuste fino.
Seus Próprios Dados: LLMs geralmente são treinados usando uma combinação de dados da empresa e de código aberto.
A Qualidade dos Dados é a Chave!
Garantir a qualidade dos dados é a etapa mais importante para obter o desempenho ideal dos LLMs. Alguns dos principais aspectos que devem ser considerados ao processar seus dados de treinamento são:
Variedade—Os dados devem conter uma variedade de informações e vir de várias fontes para garantir que haja informação suficiente para o modelo aprender a generalizar.
Padrão Linguístico—Padrões linguísticos diversos devem estar presentes nos dados para tornar os LLMs mais generalizáveis entre idiomas e domínios.
Overfitting vs. Underfitting—Se uma notícia aparece em mais de 100 páginas na Internet, então o modelo será treinado em todas essas páginas, fazendo com que ele sofra overfitting nesses dados específicos. Em contraste, para outras notícias, ele sofreria underfitting. Portanto, é necessário manter um equilíbrio entre ambos.
Viés—Vieses nos dados de treinamento, como estereótipos de gênero ou culturais, podem propagar saídas prejudiciais nos LLMs. Portanto, a mitigação de viés é uma etapa crucial de pré-processamento.
Informações Pessoais—Informações pessoais devem ser codificadas ou removidas para proteger a privacidade e a segurança do indivíduo.
Dados Ruins—Dados que contêm conteúdo prejudicial (abuso, palavrões ou discurso de ódio) devem ser removidos para manter os padrões éticos e profissionais das saídas dos modelos.
| Dados ruins | Dados bons |
|---|---|
| Duplicados | Únicos e distintos |
| Erros de digitação e ortografia | Precisos e sem erros |
| Inconsistentes | Consistentes |
| Alucinações | Validados |
| Tóxicos | Seguros e protegidos |
| … | … |
Tabela: Dados bons vs dados ruins
Se os dados permanecerem de baixa qualidade, isso aumentará o custo computacional e o tempo necessários para treinar LLMs de forma eficaz.
Limpeza de dados
A limpeza de dados é outra etapa essencial para o pré-processamento de dados de LLM. Ela garante que os dados de treinamento estejam livres de inconsistências, imprecisões ou informações irrelevantes. Abaixo estão algumas das principais etapas para a limpeza de dados.
Figura- Exemplos de limpeza de dados .png
Figura: Exemplos de limpeza de dados
Desduplicação—Entradas duplicadas no conjunto de dados podem distorcer os resultados do treinamento, levando ao uso ineficiente de recursos e ao sobreajuste.
Filtros de qualidade—Filtros para remover dados inconsistentes (por exemplo, dois idiomas na mesma frase), imputar valores ausentes, normalizar formatos, remover padrões ou textos indesejados e purificar ainda mais os dados.
Filtros de conteúdo—Dados tóxicos ou tendenciosos são filtrados substituindo palavras prejudiciais específicas por palavras moderadas e éticas que sejam mais inclusivas para todos.
Redução de privacidade—Informações de identificação pessoal (PII) são codificadas com determinadas palavras-chave para proteger a privacidade dos dados de indivíduos ou organizações.
Limpeza baseada em regras—Certas regras são definidas para remover erros relacionados a erros de digitação, sinais de pontuação desnecessários, problemas de formatação etc.
Data Prep Kit e a jornada dos dados para o modelo IBM Granite
Depois de falar sobre os principais problemas de qualidade dos dados e como lidar com eles por meio da limpeza de dados, Santosh Borse falou sobre a jornada de processamento de dados para o seu próprio modelo IBM Granite, mostrada abaixo. Ele também menciona algumas estatísticas interessantes sobre o volume de dados (em última instância, 2,5 trilhões de tokens para treinamento) após algumas etapas de pré-processamento, conforme mencionado abaixo. Mais de 70% dos dados brutos são inúteis, o que significa que o pré-processamento e a limpeza de dados são etapas cruciais.
O Data Prep Kit (DPK) é um kit de ferramentas open-source da IBM Research projetado para simplificar a preparação de dados não estruturados para desenvolvedores que criam aplicações habilitadas por LLM. Ele é adaptado para casos de uso como fine-tuning, instruction-tuning e geração aumentada por recuperação (RAG), oferecendo soluções modulares e escaláveis para gerenciar diversos desafios de processamento de dados. O DPK tem sido benéfico e eficaz na produção de conjuntos de dados de pré-treinamento para os modelos LLM open-source Granite.
Fluxo de trabalho do DPK
O Data Prep Kit (DPK) simplifica a preparação de dados com transformações reutilizáveis (módulos) projetadas para dados de código e linguagem. Também está previsto expandir seu suporte para imagens, fala e dados multimodais. O DPK fornece APIs de alto nível que permitem aos desenvolvedores começar rapidamente a processar seus dados sem exigir conhecimento profundo dos frameworks ou runtimes subjacentes.
Figura- Fluxo de trabalho do Data Prep Kit.png
Figura: Fluxo de trabalho do Data Prep Kit
O fluxo de trabalho começa convertendo arquivos de entrada (como HTML, PDFs ou código) para o formato Parquet padronizado, garantindo esquemas de dados consistentes. Em sua essência, o DPK inclui uma biblioteca robusta de processamento de dados que permite aos usuários aplicar transformações predefinidas ou personalizadas, encadeando várias transformações para processar dados sistematicamente. Por exemplo, dados de texto podem passar por deduplicação exata e, em seguida, prosseguir para etapas como análise de qualidade de documentos e tokenização ou fragmentação de documentos e geração de embeddings.
Os embeddings de documentos resultantes podem ser aproveitados para aplicações avançadas, como ajuste fino de modelos, implementação de pipelines RAG ou instruct-tuning. Ao automatizar e padronizar o processo de preparação de dados, o DPK permite que desenvolvedores se concentrem em criar e refinar seus modelos de IA, escalando de laptops a ambientes baseados em clusters com facilidade.
O DPK também permite que os usuários criem e adicionem suas transformações personalizadas para atender a necessidades específicas. Veja como você pode começar:
Tutorial Passo a Passo para ajudar você a adicionar sua própria transformação.
Demonstração Abrangente para implementar todas as etapas de pré-processamento de documentos em um único fluxo de trabalho.
Integrando o DPK com o Milvus para RAG
Depois de passar os dados brutos pelo DPK, o resultado são embeddings de texto, que podem ser integrados ainda mais com bancos de dados vetoriais como o Milvus para criar aplicações interessantes de LLM. Vejamos um exemplo de pipeline RAG integrando o DPK com o Milvus.
Retrieval Augmented Generation (RAG) é uma técnica avançada que melhora a precisão, a relevância e a fundamentação factual das saídas de LLM ao combinar métodos de recuperação e geração. Ela consiste em dois componentes principais: o retriever, que busca informações contextuais relevantes em um banco de dados vetorial como o Milvus preenchido com dados externos, e o generator, que usa esse contexto para criar respostas precisas e significativas.
Abaixo está o pipeline RAG criado com Milvus e DPK. O Milvus atua como o retriever neste pipeline, gerenciando e consultando eficientemente dados externos em larga escala. O DPK pré-processa os dados, garantindo que estejam limpos, consistentes e de alta qualidade antes de serem armazenados no Milvus. O LLM é o generator, produzindo respostas precisas e conscientes do contexto, adaptadas às necessidades do usuário.
Figura- Fluxo de Trabalho Geral do Data Prep Kit com Milvus para RAG.png
Figura: Fluxo de Trabalho Geral do Data Prep Kit com Milvus para RAG (Fonte)
Limpeza de documentos - Esta etapa executa todas as funções de pré-processamento de dados, como remover marcações, realizar deduplicação exata e aproximada, etc.
Dividir em fragmentos - Divide os documentos em fragmentos ou segmentos gerenciáveis usando várias estratégias de fragmentação. Os documentos podem ser divididos em páginas, parágrafos ou seções. A estratégia de fragmentação correta depende dos tipos de documentos sendo processados.
Vetorizar/Gerar Embeddings - Os chunks obtidos são então vetorizados usando modelos de embedding. Esta etapa serve para tornar o texto pesquisável.
Salvar dados no Milvus Vector Database - O Milvus armazena todos os embeddings codificados e os prepara para a recuperação por similaridade.
Vetorizar a pergunta - Quando um usuário faz uma pergunta, ela é vetorizada usando o mesmo modelo de embedding.
Busca vetorial - A consulta codificada é enviada ao Milvus para uma busca por similaridade vetorial.
Recuperar documentos relevantes - O Milvus retorna os top-K documentos mais relevantes para a consulta.
Formar um novo prompt: Os documentos recuperados e a consulta original são combinados para formar um novo prompt para o LLM.
O LLM gera a resposta— Por fim, o LLM gera uma resposta mais precisa usando seu conhecimento e as informações contextuais recuperadas do banco de dados vetorial Milvus.
Para conferir a implementação completa do fluxo de trabalho acima, consulte este tutorial.
Conclusão
O Data Prep Kit (DPK) open-source da IBM simplifica o pré-processamento de dados para fluxos de trabalho de LLM ao enfrentar desafios comuns como toxicidade, overfitting e viés nos dados. Com mais de 20 transformações modulares, o DPK otimiza tarefas essenciais, como deduplicação, filtragem e proteção de privacidade. O pipeline do DPK começa pré-processando entradas brutas, como PDFs ou HTML, e convertendo-as em formatos estruturados como Parquet. Verificações de qualidade, limpeza de dados e geração de embeddings seguem esta etapa. Esses embeddings podem ser armazenados em bancos de dados vetoriais como o Milvus para apoiar aplicações como fine-tuning e Retrieval-Augmented Generation (RAG).
Este blog também demonstrou como a integração do Milvus com o DPK permite a recuperação de documentos contextualmente relevantes e aprimora as saídas de LLM com respostas confiáveis e baseadas em fatos.
Recursos relevantes
Continue lendo

How to Improve Retrieval Quality for Japanese Text with Sudachi, Milvus/Zilliz, and AWS Bedrock
Learn how Sudachi normalization and Milvus/Zilliz hybrid search improve Japanese RAG accuracy with BM25 + vector fusion, AWS Bedrock embeddings, and practical code examples.

Milvus WebUI: A Visual Management Tool for Your Vector Database
Explore Milvus WebUI to monitor, manage, and optimize your vector database with real-time insights, performance tracking, and system health monitoring.

Building RAG Pipelines for Real-Time Data with Cloudera and Milvus
explore how Cloudera can be integrated with Milvus to effectively implement some of the key functionalities of RAG pipelines.


