SmolDocling : un modèle de langage visuel pour le traitement efficace de documents en petit volume

Introduction générale

SmolDocling est un modèle de langage visuel (VLM) développé par l'équipe ds4sd en collaboration avec IBM, basé sur SmolVLM-256M et hébergé sur la plateforme Hugging Face. Il s'agit du plus petit VLM au monde avec seulement 256M de paramètres, et sa fonction principale est d'extraire du texte à partir d'images, de reconnaître des mises en page, des codes, des formules et des diagrammes, et de générer des documents structurés au format DocTags. smolDocling peut être exécuté sur des appareils ordinaires, avec une grande efficacité et une faible utilisation de ressources. L'équipe de développement partage ce modèle en open source dans l'espoir d'aider un plus grand nombre de personnes à effectuer des tâches documentaires. Il fait partie de la famille SmolVLM, qui se concentre sur la conversion de documents et convient aux utilisateurs qui ont besoin de traiter rapidement des documents complexes.

SmolDocling:小体积高效处理文档的视觉语言模型

 

SmolDocling:小体积高效处理文档的视觉语言模型

 

Liste des fonctions

  • Extraction de texte (OCR)Reconnaître et extraire du texte à partir d'images, prendre en charge le multilinguisme.
  • Identification de la mise en pageLes documents de référence : Analyser la structure du document dans l'image, par exemple l'emplacement des titres, des paragraphes, des tableaux.
  • reconnaissance du codeExtraction de blocs de code et préservation de l'indentation et de la mise en forme.
  • reconnaissance de la formuleDétecter les formules mathématiques et les convertir en texte éditable.
  • reconnaissance des cartes: analyse le contenu de la carte dans l'image et en extrait les données.
  • Traitement des formulairesLes tableaux : Identifier la structure d'un tableau et retenir les informations sur les lignes et les colonnes.
  • Sortie des balises DocTagsLes résultats du traitement sont convertis dans un format d'étiquetage uniforme pour faciliter l'utilisation ultérieure.
  • Traitement d'images à haute résolutionLa reconnaissance des images est plus précise grâce à la prise en charge d'images de plus grande résolution.

 

Utiliser l'aide

L'utilisation de SmolDocling se divise en deux parties : l'installation et l'exploitation. Vous trouverez ci-dessous des étapes détaillées pour aider les utilisateurs à démarrer rapidement.

Processus d'installation

  1. Préparation de l'environnement
    • Assurez-vous que Python 3.8 ou une version ultérieure est installé sur votre ordinateur.
    • Installez la bibliothèque de dépendances en entrant la commande suivante dans le terminal :
      pip install torch transformers docling_core
      
    • Si vous disposez d'un GPU, il est recommandé d'installer PyTorch avec le support CUDA pour une exécution plus rapide. Vérifier la méthodologie :
      import torch
      print("GPU可用:" if torch.cuda.is_available() else "使用CPU")
      
  2. Modèles de chargement
    • SmolDocling n'a pas besoin d'être téléchargé manuellement, il est disponible directement à partir de Hugging Face via le code.
    • Assurez-vous que le réseau est ouvert et que les fichiers du modèle sont automatiquement téléchargés lors de la première exécution.

Étapes d'utilisation

  1. Préparer l'image
    • Recherchez une image contenant du texte, telle qu'un document numérisé ou une capture d'écran.
    • Charger l'image avec le code :
      from transformers.image_utils import load_image
      image = load_image("你的图片路径.jpg")
      
  2. Initialisation des modèles et des processeurs
    • Charger le processeur et le modèle de 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. Générer des étiquettes de documents
    • Configurez les entrées et exécutez le modèle :
      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. Conversion vers des formats courants
    • Convertir les balises DocTags en Markdown ou dans d'autres formats :
      from docling_core.types.doc import DoclingDocument
      doc = DoclingDocument(name="我的文档")
      doc.load_from_doctags(doctags)
      print(doc.export_to_markdown())
      
  5. Utilisation avancée (facultatif)
    • Traitement de documents de plusieurs pages: Traiter plusieurs images en boucle, puis fusionner les étiquettes DocTags.
    • optimiser les performances: Réglages torch_dtype=torch.bfloat16 Économie de mémoire, les utilisateurs de GPU peuvent activer flash_attention_2 Accélération :
      model = AutoModelForVision2Seq.from_pretrained(
      "ds4sd/SmolDocling-256M-preview",
      torch_dtype=torch.bfloat16,
      _attn_implementation="flash_attention_2" if DEVICE == "cuda" else "eager"
      ).to(DEVICE)
      

compétence opérationnelle

  • Exigences en matière d'imagesLes images doivent être claires et le texte lisible ; plus la résolution est élevée, mieux c'est.
  • Paramètres de réglageSi le résultat est incomplet, ajouter max_new_tokens(par défaut 8192).
  • fichier de lotLes images multiples peuvent être transmises sous forme de liste. images=[image1, image2].
  • Méthode de mise en service: vérification des résultats intermédiaires, par exemple, imprimer inputs Vérifier si l'entrée est correcte.

mise en garde

  • L'accès à l'internet est nécessaire pour la première exécution, après quoi il peut être utilisé hors ligne.
  • Les images trop grandes peuvent entraîner un manque de mémoire, il est donc recommandé de les recadrer et de les traiter.
  • Si vous rencontrez une erreur, vérifiez que la version de Python et les bibliothèques dépendantes sont correctement installées.

Grâce aux étapes ci-dessus, les utilisateurs peuvent transformer des images en documents structurés avec SmolDocling. L'ensemble du processus est simple et convient aux débutants comme aux utilisateurs professionnels.

 

scénario d'application

  1. recherche universitaire
    Convertissez les documents numérisés en texte, extrayez les formules et les tableaux pour faciliter l'édition et la citation.
  2. Documentation sur la programmation
    Convertit les images manuelles contenant du code en Markdown, en préservant le formatage du code pour les développeurs.
  3. bureautique
    Traiter des copies numérisées de contrats, de rapports, etc., en reconnaissant la mise en page et le contenu pour améliorer l'efficacité.
  4. Soutien à l'éducation
    Transformez les images de manuels scolaires en documents modifiables pour aider les enseignants et les étudiants à organiser leurs notes.

 

QA

  1. Quelle est la différence entre SmolDocling et SmolVLM ?
    SmolDocling est basé sur une version optimisée de SmolVLM-256M, axée sur le traitement des documents et la production du format DocTags, tandis que SmolVLM est plus général et prend en charge des tâches telles que la description d'images.
  2. Quels sont les systèmes d'exploitation pris en charge ?
    Windows, Mac et Linux sont pris en charge et peuvent être exécutés avec Python et les bibliothèques dépendantes installées.
  3. Le traitement est-il rapide ?
    Le traitement d'une image ne prend que quelques secondes sur un ordinateur ordinaire, et encore plus vite pour les utilisateurs de GPU, généralement moins d'une seconde.
  4. Pouvez-vous traiter du texte écrit à la main ?
    Oui, mais les résultats dépendent de la clarté de l'écriture et il est recommandé d'utiliser des images de textes imprimés pour obtenir les meilleurs résultats.
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...