Aprendizagem pessoal com IA
e orientação prática
Sapo pintado em alumínio

olmOCR: conversão de documentos PDF em texto, suporte a tabelas, fórmulas e reconhecimento de conteúdo manuscrito

Introdução geral

O olmOCR é uma ferramenta de código aberto desenvolvida pela equipe AllenNLP do Allen Institute for Artificial Intelligence (AI2) que se concentra na conversão de arquivos PDF em texto linearizado e é especialmente adequada para a preparação de conjuntos de dados e treinamento de modelos de linguagem em larga escala (LLMs). Ele oferece suporte à extração de texto de documentos PDF complexos, mantém a ordem de leitura natural e pode lidar com tabelas, fórmulas e até mesmo conteúdo manuscrito. A ferramenta foi projetada para ser eficiente e pode ser executada em GPUs locais ou por meio do AWS S3 para processamento paralelo de vários nós, reduzindo significativamente os custos de processamento. De acordo com dados oficiais, sua velocidade de processamento chega a mais de 3.000 tokens por segundo, o custo é de apenas 1/32 do GPT-4o e é muito adequado para pesquisadores e desenvolvedores que precisam lidar com um grande número de PDFs. O olmOCR usa a licença Apache 2.0, o código, os pesos do modelo e os dados são totalmente de código aberto e incentiva a comunidade a participar do aprimoramento.

olmOCR: conversão de documentos PDF em texto, suporte para tabelas, fórmulas e reconhecimento de conteúdo manuscrito-1

Endereço de demonstração: https://olmocr.allenai.org/


 

Lista de funções

  • Extração e linearização de texto em PDFConverta arquivos PDF em texto formatado em JSONL no estilo Dolma, preservando a ordem de leitura.
  • Raciocínio acelerado por GPU: Aproveitamento de GPUs nativas e da tecnologia sglang para processamento eficiente de documentos.
  • Processamento paralelo de vários nósSuporte para coordenar tarefas de vários nós via AWS S3, adequado para processar milhões de PDFs.
  • Reconhecimento de conteúdo complexoProcessamento de tabelas, fórmulas matemáticas e texto manuscrito para gerar resultados estruturados.
  • Gerenciamento flexível do espaço de trabalhoEspaço de trabalho local ou na nuvem para armazenar resultados de processamento e dados intermediários.
  • Suporte ecológico de código abertoFornecimento de código e documentação completos para desenvolvimento e personalização secundários.

 

Usando a Ajuda

Processo de instalação

A instalação do olmOCR precisa ser feita em um ambiente compatível com Python, e é recomendável usar uma GPU para aumentar a eficiência do processamento. Veja a seguir as etapas detalhadas:

1. preparação ambiental

  • Instalação do AnacondaSe você não tiver o Anaconda, acesse o site oficial para fazer o download e instalá-lo.
  • Criação de um ambiente virtual:
    conda create -n olmocr python=3.11
    conda activate olmocr
  • Repositório de código clone:
    git clone https://github.com/allenai/olmocr.git
    cd olmocr
    

2. instalação das dependências principais

  • Instalação de dependências básicas:
    pip install -e .
    
  • Instalação do suporte à GPU (opcional)Instalação do sglang e do flashinfer se você precisar de aceleração de GPU:
    pip install sgl-kernel==0.0.3.post1 --force-reinstall --no-deps
    pip install "sglang[all]==0.4.2" --find-links https://flashinfer.ai/whl/cu124/torch2.4/flashinfer/
    

    tomar nota deVerifique se o driver da GPU e a versão CUDA são compatíveis com as dependências acima.

3. verificação da instalação

  • Na linha de comando, execute python -m olmocr.pipeline --helpSe a mensagem de ajuda for exibida, a instalação foi bem-sucedida.

Uso

O olmOCR oferece dois cenários principais de uso: processamento local de arquivo único e processamento em grande escala na nuvem. A seguir, descrevemos o processo de operação em detalhes.

Processamento local de PDFs individuais

  1. Preparação de arquivos PDF:
    • Coloque o PDF a ser processado em um diretório local, por exemplo . /tests/gnarly_pdfs/horribleocr.pdf.
  2. Executar comando de processamento:
    python -m olmocr.pipeline . /localworkspace --pdfs tests/gnarly_pdfs/horribleocr.pdf
    
  3. Exibir resultados:
    • Quando o processamento é concluído, os resultados são salvos no formato JSON no arquivo . /localworkspace.
    • O texto extraído é armazenado no formato JSONL no estilo Dolma no arquivo . /localworkspace/results Médio.
  4. Parâmetros de ajuste (opcional):
    • --TrabalhadoresDefine o número de threads de trabalho simultâneos, padrão 8.
    • --target_longest_image_dimComprimento do lado: Define o comprimento máximo do lado da imagem renderizada, padrão 1024 pixels.

saída de amostra (computação):

{ "text": "Molmo e PixMo:\nOpen Pesos and Open Data\nfor State-of-the..." , "metadata": {"primary_language": "en", "is_table": false}}

Processamento em grande escala na nuvem (AWS S3)

  1. Configuração do ambiente do AWS:
    • Certifique-se de que você tenha uma conta do AWS e gere uma chave de acesso.
    • Crie dois buckets no S3, por exemplo s3://my_s3_bucket/pdfworkspaces/exampleworkspace responder cantando s3://my_s3_bucket/jakep/gnarly_pdfs/.
  2. Carregar arquivos PDF:
    • Faça upload de arquivos PDF para s3://my_s3_bucket/jakep/gnarly_pdfs/.
  3. Iniciar uma tarefa de nó mestre:
    python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace --pdfs s3://my_s3_bucket/jakep/gnarly_pdfs/*.pdf
    
    • Esse comando cria uma fila de trabalho e inicia o processamento.
  4. Adição de nós escravos:
    • Em execução em outras máquinas:
    python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace
    
    • O nó escravo obterá automaticamente a tarefa da fila e a processará.
  5. Visualização de resultados:
    • Os resultados são armazenados no s3://my_s3_bucket/pdfworkspaces/exampleworkspace/results.

tomar nota deConfiguração da CLI do AWS: É necessário configurar a CLI do AWS e garantir que você tenha permissões suficientes para acessar o bucket de armazenamento S3.

Uso de béqueres (usuário interno do AI2)

  1. Adicionar parâmetros do béquer:
    python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace --pdfs s3://my_s3_bucket/jakep/gnarly_pdfs/*.pdf --beaker -- beaker_gpus 4
    
  2. efeito operacional:
    • Depois de preparar o espaço de trabalho localmente, 4 nós de trabalho da GPU são iniciados automaticamente no cluster.

Operação da função em destaque

1. manuseio de documentos complexos

  • procedimento:
    • Faça upload de PDFs que contenham tabelas ou fórmulas.
    • Usando o modelo padrão allenai/olmOCR-7B-0225-previewExecute o comando de processamento.
    • Verifique o arquivo JSONL de saída para ter certeza de que as tabelas e fórmulas estão sendo analisadas como texto corretamente.
  • chamar a atenção para algoAjuste se o reconhecimento for ruim --target_longest_image_dim para aumentar a resolução da imagem.

2. processamento de alto rendimento

  • procedimento:
    • Configure um ambiente com vários nós (como AWS ou Beaker).
    • crescente --Trabalhadores para aprimorar o paralelismo autônomo.
    • Monitore a velocidade de processamento para garantir mais de 3.000 tokens por segundo.
  • de pontaCustos: os custos são tão baixos quanto US$ 190 por milhão de páginas, muito menos do que as APIs comerciais.

3. desenvolvimento personalizado

  • procedimento:
    • modificações olmocr/pipeline.pyAjustando a lógica de processamento.
    • intercambialidade ---modelo usando um caminho de modelo personalizado.
    • Envie código para o GitHub e participe do desenvolvimento da comunidade.

advertência

  • Requisitos de hardwareGPU: é necessária uma GPU para a operação local; recomenda-se a placa de vídeo NVIDIA.
  • requisito de redeProcessamento em nuvem: o processamento em nuvem requer uma conexão de rede estável com o AWS.
  • Dicas de depuração: Uso --stats Parâmetro para visualizar as estatísticas do espaço de trabalho para solução de problemas.

Com essas etapas, você pode se familiarizar rapidamente com o olmOCR e realizar o trabalho com eficiência, independentemente de estar trabalhando com um único PDF ou com um conjunto de dados em grande escala.

CDN1
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " olmOCR: conversão de documentos PDF em texto, suporte a tabelas, fórmulas e reconhecimento de conteúdo manuscrito

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil