Modernização do pipeline de processamento de documentos legados e redução de custos

Computing/Software4분 읽기

TuBrief 편집팀 원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다. 원본 영상: Pare de construir pipelines de RAG desse jeito... Use o MarkItDown · Better Stack

Redução da manutenção através da integração da lógica de conversão Markdown

Se você está perdendo 5 horas por semana fazendo hora extra para enfiar centenas de arquivos PDF, PPT e Excel em um sistema RAG, a causa do problema é a fragmentação das bibliotecas de parsing. A estrutura existente que mistura PyPDF2 ou openpyxl apenas aumenta a complexidade do código. Ao adotar o MarkItDown da Microsoft, você pode eliminar lógicas complexas de ramificação.

Ao refatorar o pipeline, utilize o padrão processor factory.

  1. Remova as bibliotecas espalhadas por formato e unifique a interface de chamada com a função convert() do MarkItDown.
  2. Segmente o método de processamento de acordo com a complexidade do documento. Escolha um parser leve para textos simples e o MarkItDown para documentos complexos com muitas tabelas.
  3. Isole todas as dependências em contêineres Docker (Python 3.11 ou superior) e faça o deploy com FastAPI.

Essa estrutura permite que o mecanismo de parsing seja escalado de forma independente. Manter a estrutura das tabelas reduz em 34% os erros de preservação de tabelas quando o LLM lê o documento (com base no anúncio da Microsoft de 2024).

Economia de 30% nos custos de API com pré-processamento de Markdown

O custo de tokens de embedding é diretamente proporcional ao comprimento do arquivo Markdown. O resultado gerado pelo MarkItDown contém metadados ou ruídos que não precisam ser enviados ao LLM. Filtrar isso pode reduzir os custos de API em 30%.

Construa uma lógica de filtragem eficiente.

  1. Use o módulo re do Python para reduzir quebras de linha consecutivas (\n{3,}) para apenas duas, e remova avisos de direitos autorais repetitivos ou tags HTML com expressões regulares.
  2. Utilize o MarkdownHeaderTextSplitter para fazer o chunking por unidades de cabeçalho. Gerenciar separadamente child chunks para busca e parent chunks para contexto melhora a precisão da recuperação.
  3. Use o hash MD5 para bloquear preventivamente o embedding duplicado do mesmo relatório.

Aproveitar a eficiência de tokens reduz significativamente os custos mensais de API corporativa.

Gerenciamento da qualidade de dados com testes de snapshot

Quando a versão da biblioteca muda, o resultado do parsing também se altera sutilmente. Pare com essa prática de engenheiros abrirem arquivos manualmente para verificar. A adoção de testes de snapshot permite detectar quedas de qualidade imediatamente.

Crie um ambiente de testes unitários para evitar regressões.

  1. Instale o plugin pytest-regressions e salve o Markdown bem convertido como um arquivo golden master.
  2. Faça com que o script de teste compare o resultado da conversão com o golden master toda vez. Envie um alerta imediatamente se ocorrer uma diferença (diff).
  3. Use um modelo de sentence transformer para medir a similaridade de cosseno entre o original e a versão convertida. Configure para registrar um log apenas quando a taxa de preservação de formato for inferior a 0,9.

Esse sistema automatizado elimina o trabalho de verificação manual que consumia 5 horas por semana.

Aumento da velocidade de processamento em lote com processamento paralelo

Processar milhares de documentos sequencialmente é um desperdício de recursos do sistema. Ao usar concurrent.futures.ProcessPoolExecutor para paralelizar o processamento em lote, é possível concluir em poucas horas tarefas que levavam dias.

Implemente a arquitetura de paralelização da seguinte forma:

  1. Se o servidor tiver 16 GB de RAM, limite os workers a 20-25. Aumentar excessivamente causará apenas erros de memória.
  2. Divida os arquivos em lotes de 50 a 100 unidades e chame o garbage collection manualmente a cada lote para evitar vazamentos de memória.
  3. Separe PDFs de grande porte, acima de 10 MB, em uma fila dedicada para que sejam tratados por workers de alto desempenho.

Essa abordagem ajuda a manter a atualização dos dados enquanto utiliza os recursos do sistema de forma eficiente.

관련 영상

Pare de construir pipelines de RAG desse jeito... Use o MarkItDown

Better Stack6:17

커뮤니티의 다른 글

댓글

로그인하고 댓글을 남겨 보세요.

아직 댓글이 없습니다.