Aprendizagem pessoal com IA
e orientação prática
Espelho de desenho CyberKnife

SmolDocling: um modelo de linguagem visual para o processamento eficiente de documentos em um pequeno volume

Introdução geral

O SmolDocling é um Modelo de Linguagem Visual (VLM) desenvolvido pela equipe do ds4sd em colaboração com a IBM, baseado no SmolVLM-256M e hospedado na Hugging Face Platform. É o menor VLM do mundo, com apenas 256 milhões de parâmetros, e sua função principal é extrair texto de imagens, reconhecer layouts, códigos, fórmulas e diagramas e gerar documentos estruturados no formato DocTags. O smolDocling pode ser executado em dispositivos comuns, com alta eficiência e baixo uso de recursos. A equipe de desenvolvimento está compartilhando esse modelo por meio de código aberto, na esperança de ajudar mais pessoas a lidar com tarefas de documentos. Ele faz parte da família SmolVLM, que se concentra na conversão de documentos e é adequado para usuários que precisam processar documentos complexos rapidamente.

SmolDocling: um modelo de linguagem visual para o processamento eficiente de documentos em tamanho pequeno-1


 

SmolDocling: um modelo de linguagem visual para o processamento eficiente de documentos em tamanho pequeno-1

 

Lista de funções

  • Extração de texto (OCR)Reconhecimento e extração de texto de imagens, suporte a vários idiomas.
  • Identificação do layoutAnálise da estrutura do documento na imagem, por exemplo, a posição dos cabeçalhos, parágrafos e tabelas.
  • reconhecimento de códigoExtrai blocos de código e preserva a indentação e a formatação.
  • reconhecimento de fórmulasDetectar fórmulas matemáticas e convertê-las em texto editável.
  • reconhecimento de gráficosAnálise de conteúdo gráfico de imagens e extração de dados: analisa o conteúdo do gráfico a partir de imagens e extrai dados.
  • Processamento de formuláriosIdentificar a estrutura da tabela e reter as informações de linhas e colunas.
  • Saída de DocTagsConverta os resultados do processamento em um formato de rotulagem uniforme para facilitar o uso posterior.
  • Processamento de imagens de alta resoluçãoSuporte para entrada de imagens com resolução maior para melhorar a precisão do reconhecimento.

 

Usando a Ajuda

O uso do SmolDocling é dividido em duas partes: instalação e operação. Abaixo estão as etapas detalhadas para ajudar os usuários a começar rapidamente.

Processo de instalação

  1. Preparação do ambiente
    • Certifique-se de ter o Python 3.8 ou posterior instalado em seu computador.
    • Instale a biblioteca de dependências digitando o seguinte comando no terminal:
      pip install torch transformers docling_core
      
    • Se você tiver uma GPU, é recomendável instalar o PyTorch com suporte a CUDA para executar mais rapidamente. Verifique a metodologia:
      importar torch
      print("GPU disponível:" if torch.cuda.is_available() else "Usando CPU")
      
  2. Modelos de carregamento
    • O SmolDocling não precisa ser baixado manualmente, pois está disponível diretamente no Hugging Face por meio de código.
    • Certifique-se de que a rede esteja aberta e que os arquivos do modelo sejam baixados automaticamente na primeira execução.

Etapas de uso

  1. Preparar a imagem
    • Encontre uma imagem que contenha texto, como um documento digitalizado ou uma captura de tela.
    • Carregue a imagem com o código:
      from transformers.image_utils import load_image
      image = load_image("Caminho para sua imagem.jpg")
      
  2. Inicialização de modelos e processadores
    • Carregue o processador e o modelo do SmolDocling:
      from transformers import AutoProcessor, AutoModelForVision2Seq
      DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
      processor = AutoProcessor.from_pretrained("ds4sd/SmolDocling-256M-preview")
      model = AutoModelForVision2Seq.from_pretrained(
      "ds4sd/SmolDocling-256M-preview",
      torch_dtype=torch.bfloat16
      ).to(DEVICE)
      
  3. Gerar DocTags
    • Configure as entradas e execute o modelo:
      messages = [{"role": "user", "content": [{"type": "image"}, {"type": "text", "text": "Convert this page to docling."}]}]]
      prompt = processor.apply_chat_template(messages, add_generation_prompt=True)
      inputs = processor(text=prompt, images=[image], return_tensors="pt").to(DEVICE)
      generated_ids = model.generate(**inputs, max_new_tokens=8192)
      doctags = processor.batch_decode(generated_ids[:, inputs.input_ids.shape[1]:], skip_special_tokens=False)[0].lstrip()
      print(doctags)
      
  4. Conversão para formatos comuns
    • Converta DocTags para Markdown ou outros formatos:
      from docling_core.types.doc import DoclingDocument
      doc = DoclingDocument(name="Meu documento")
      doc.load_from_doctags(doctags)
      print(doc.export_to_markdown())
      
  5. Uso avançado (opcional)
    • Manuseio de documentos com várias páginasProcessar várias imagens em um loop e, em seguida, mesclar DocTags.
    • otimizar o desempenho: Configurações torch_dtype=torch.bfloat16 Economia de memória, os usuários de GPU podem ativar flash_attention_2 Aceleração:
      model = AutoModelForVision2Seq.from_pretrained(
      "ds4sd/SmolDocling-256M-preview",
      torch_dtype=torch.bfloat16,
      _attn_implementation="flash_attention_2" if DEVICE == "cuda" else "eager"
      ).to(DEVICE)
      

habilidade operacional

  • Requisitos de imagemImagens: As imagens precisam ser claras e o texto legível; quanto maior a resolução, melhor.
  • Parâmetros de ajusteSe o resultado estiver incompleto, adicione max_new_tokens(padrão 8192).
  • arquivo de loteImagens múltiplas podem ser passadas como uma lista images=[image1, image2].
  • Método de comissionamentoSaída de verificação de resultados intermediários, por exemplo, impressão insumos Verifique se a entrada está correta.

advertência

  • O acesso à Internet é necessário para a primeira execução, depois disso ele pode ser usado off-line.
  • Fotos muito grandes podem resultar em falta de memória, portanto, é recomendável cortá-las e lidar com elas.
  • Se você encontrar um erro, verifique se a versão do Python e as bibliotecas dependentes estão instaladas corretamente.

Com as etapas acima, os usuários podem transformar imagens em documentos estruturados com o SmolDocling. Todo o processo é simples e adequado para usuários iniciantes e profissionais.

 

cenário do aplicativo

  1. pesquisa acadêmica
    Converta documentos digitalizados em texto, extraia fórmulas e tabelas para facilitar a edição e a citação.
  2. Documentação de programação
    Converte imagens manuais que contêm código em Markdown, preservando a formatação do código para os desenvolvedores.
  3. automação de escritório
    Manusear cópias digitalizadas de contratos, relatórios, etc., reconhecendo o layout e o conteúdo para aumentar a eficiência.
  4. Suporte educacional
    Transforme imagens de livros didáticos em documentos editáveis para ajudar professores e alunos a organizar suas anotações.

 

QA

  1. Qual é a diferença entre SmolDocling e SmolVLM?
    O SmolDocling baseia-se em uma versão otimizada do SmolVLM-256M, concentrando-se no processamento de documentos e na saída do formato DocTags, enquanto o SmolVLM é mais geral e oferece suporte a tarefas como a descrição de imagens.
  2. Quais sistemas operacionais são compatíveis?
    Windows, Mac e Linux são compatíveis e podem ser executados com o Python e as bibliotecas dependentes instaladas.
  3. O processamento é rápido?
    O processamento de uma imagem leva apenas alguns segundos em um computador comum e é ainda mais rápido para usuários de GPU, geralmente menos de um segundo.
  4. Você consegue lidar com textos escritos à mão?
    Sim, mas os resultados dependem da clareza da caligrafia e é recomendável usar imagens de texto impresso para obter os melhores resultados.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " SmolDocling: um modelo de linguagem visual para o processamento eficiente de documentos em um pequeno volume

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