HyperAIHyperAI
Back to Headlines

Amélioration des Modèles de Langue Visuelle : Fine-Tuning Qwen 2.5 VL pour l’Extraction de Texte Manuscrit

il y a 3 mois

L'Affinement des Modèles de Langue Visuels-Textuels pour le Traitement des Documents Présentation Générale Cet article explore comment affiner des modèles de langue visuels-linguistiques (vLLMs), tels que Qwen 2.5 VL 7B, pour les rendre plus performants dans des tâches spécifiques. En particulier, l'auteur se concentre sur l'extraction de textes manuscrits à partir de documents, une tâche cruciale pour la recherche scientifique, notamment en climatologie. Le travail réalisé dans cet article est réalisé par Eivind Kjosbakken et Lars Aurdal au sein de l'entreprise Findable. L'un des enjeux majeurs est l'amélioration de l'extraction de données manuscrites d'un conjunto norvégien de phénologie, qui consiste en environ 82 000 images de cellules de tableaux avec du texte manuscrit. Ces données, souvent difficilement lues par les techniques traditionnelles de reconnaissance optique de caractères (OCR), peuvent avoir un impact significatif sur la recherche sur le changement climatique. Motivation et Objectifs La motivation principale est de montrer comment affiner un modèle de langue visuel (vLM) pour optimiser ses performances sur une tâche spécifique : l'extraction de textes manuscrits. Ce travail repose sur un ensemble de données de phénologie norvégienne, disponible dans un dépôt GitHub. Les informations extraites peuvent notamment être utilisées pour analyser les changements à long terme dans le débourrement des plantes, un sujet de recherche climatique pertinent. L'auteur met en garde que les données extraites sont fournies de bonne foi, sans prétendre à des conclusions scientifiques spécifiques. Le but principal est de présenter le processus d'extraction de données et de partager ces données pour leur utilisation en recherche scientifique. Pourquoi Utiliser des vLLMs Quand on regarde les images de ce jeu de données, on pourrait être tenté d'utiliser des techniques OCR traditionnelles. Cependant, ces modèles sont souvent surpassés par les grands modèles de langage incorporant la vision, connus sous le nom de vLLMs. Ci-dessous, quelques exemples montrent pourquoi un vLLM comme Qwen 2.5 VL 7B est préférable à EasyOCR : Extraction du "2" manuscrit : EasyOCR échoue à détecter le "2" parce qu'il est écrit de manière très pâle et confond la bordure de la cellule avec un "1". Points de fond : Dans certaines images, l'arrière-plan contient des points, rendant l'extraction manuscrite impossible pour EasyOCR mais faisable pour Qwen. Confusion entre "1" et "7" : EasyOCR a tendance à confondre les "1" et les "7", tandis que Qwen, formé avec des instructions précises, arrive à distinguer ces chiffres. Avantages des vLLMs Les vLLMs présentent plusieurs avantages par rapport aux OCR traditionnels : Performance supérieure en OCR : Les vLLMs sont souvent formés avec des ensembles de données d'OCR, ce qui les rend plus efficaces. Possibilité de donner des instructions : Les vLLMs permettent d'instruire le modèle sur la manière d'interpréter les images, une fonction inexistante chez les OCR traditionnels. Par exemple, pour résoudre la confusion entre "1" et "7", le système peut recevoir une instruction comme celle-ci : ```python SYSTEM_PROMPT = """ Below is an instruction that describes a task, write a response that appropriately completes the request. You are an expert at reading handwritten table entries. I will give you a snippet of a table and you will read the text in the snippet and return the text as a string. The texts can consist of the following: 1) A number only, the number can have from 1 to 3 digits. 2) A number surrounded by ordinary parenthesis. 3) A number surrounded by square brackets. 5) The letter 'e', 's' or 'k' 6) The percent sign '%' 7) No text at all (blank image). Instructions: General Rules: - Return the text as a string. - If the snippet contains no text, return: "unknown". - In order to separate the digit 1 from the digit 7, know that the digit 7 always will have a horizontal stroke appearing in the middle of the digit. If there is no such horizontal stroke, the digit is a 1 even if it might look like a 7. - Beware that the text will often be surrounded by a black border, do not confuse this with the text. In particular, it is easy to confuse the digit 1 with parts of the border. Borders should be ignored. - Ignore anything OUTSIDE the border. - Do not use any code formatting, backticks, or markdown in your response. Just output the raw text. - Respond ONLY with the string. Do not provide explanations or reasoning. """ ``` Cette instruction aide Qwen à mieux comprendre le contexte et à améliorer l'exactitude de son extraction. Inspection et Étiquetage du Jeu de Données Avant de commencer l'affinement, il est crucial de comprendre les particularités et les défis du jeu de données. Eivind Kjosbakken a consacré du temps à examiner manuellement les images, identifiant les problèmes suivants : Ressemblance entre "1" et "7" : Les chiffres manuscrits peuvent être difficiles à distinguer. Texte furtif : Certaines images contiennent des textes très pâles. Bordures de cellules : Les bordures peuvent être mal interprétées comme des caractères. Symboles confondus : Les parenthèses et crochets peuvent être interprétés de manière erronée. Images vides : Environ 70% des cellules sont vides et doivent être traitées différemment. Pour créer des étiquettes efficacement, l'auteur recommande un processus de trois étapes : Prédiction : Utiliser le modèle de base pour extraire le texte d'un échantillon initial de quelques centaines d'images. Révision et Correction : Examiner les prédictions du modèle et corriger les erreurs. Réentraînement : Retrainer le modèle sur l'ensemble d'étiquettes corrigées, puis recommencer le cycle jusqu'à convergence. Processus d'Affinement Pour affiner Qwen 2.5 VL 7B, Eivind Kjosbakken a utilisé le package Unsloth, qui propose un notebook de détail sur la procédure. Le code d'affinement est présenté ci-dessous : python model, tokenizer = FastVisionModel.from_pretrained( "unsloth/Qwen2.5-VL-7B-Instruct", load_in_4bit = False, use_gradient_checkpointing = "unsloth", ) Quelques précisions techniques sur l'affinement : Exactitude des Étiquettes : Une très petite proportion d'étiquettes incorrectes (0,5%) peut gravement dégrader les performances du modèle. Par conséquent, une revue minutieuse des labels est essentielle. Équilibrage des Données : Environ 70% des cellules sont vides. Pour éviter que le modèle ne se concentre trop sur ces images, l'échantillon d'entraînement est équilibré pour contenir au maximum 30% d'images vides. Choix des Couches à Affiner : Idéalement, toutes les couches du modèle sont affinées, mais cela dépend des contraintes computing. Pour ce modèle, les couches de vision (ViT) et le adapté vision-langue (VL) ont été choisies en premier. Recherche des Hyperparamètres : Une recherche exhaustive des hyperparamètres a été réalisée grâce à l'accès à une GPU A100 80 GB, rendant le processus de formation plus rapide (10-20 minutes par entraînement). Résultats et Visualisations Après plusieurs cycles d'affinement, les performances du modèle ont largement été améliorées. Les résultats sur quatre ensembles de tests, chacun comprenant 278 échantillons, sont les suivants : EasyOCR : Performances très faibles (trop d'erreurs pour être fiable). Modèle de Base Qwen 2.5 VL : Performances satisfaisantes (93-99% d'exactitude). Modèle Affiné : Performances supérieures (meilleures que le modèle de base sur tous les ensembles de tests sauf le numéro 4 où ils sont équivalents). Ces améliorations permettent la création de visualisations riches, comme une carte de Norvège montrant les altitudes des limites forestières. Les couleurs plus froides représentent des altitudes basses (proches de l'océan ou au nord), tandis que les couleurs plus chaudes indiquent des altitudes plus hautes (au cœur du pays). Conclusion En conclusion, cet article a démontré le processus d'affinement d'un vLLM pour l' extraction de textes manuscrits. Grâce à une inspection minutieuse du jeu de données, à des techniques d'étiquetage efficaces et à l'utilisation de instructions détaillées, Eivind Kjosbakken et Lars Aurdal ont réussi à améliorer considérablement les performances de Qwen 2.5 VL 7B. Les résultats obtenus démontrent la supériorité des vLLMs dans cette tâche et offrent des perspectives prometteuses pour l'avenir de la recherche climatique et phénologique. Évaluation et Profil de l'Entreprise Ce travail a été réalisé par Eivind Kjosbakken et Lars Aurdal, deux chercheurs au sein de Findable, une entreprise spécialisée dans la digitalisation et le partage de données scientifiques. Leur objectif est de mettre en valeur les capacités techniques des vLLMs contemporains et de contribuer à des projets de recherche scientifiques en partageant des ensembles de données précieuses. Les codes source sont disponibles sur GitHub, et les données sur HuggingFace.

Related Links

Amélioration des Modèles de Langue Visuelle : Fine-Tuning Qwen 2.5 VL pour l’Extraction de Texte Manuscrit | Gros titres | HyperAI