Maison  >  Article  >  Périphériques technologiques  >  HuggingFace vous apprend à créer un modèle visuel SOTA

HuggingFace vous apprend à créer un modèle visuel SOTA

王林
王林original
2024-06-05 21:39:58876parcourir

Avant, il y avait le GPT-4o d'OpenAI, et plus tard, il y avait la série de grands modèles multimodaux avancés de Google qui sont entrés en scène les uns après les autres.

D'autres pratiquants ont été choqués et ont commencé à réfléchir à la manière de rattraper à nouveau ces super modèles.

Dans cet article de HuggingFace et de l'Université de la Sorbonne en France, ils ont résumé les expériences clés dans la création de grands modèles visuels et ont indiqué une voie à suivre pour les développeurs.

HuggingFace vous apprend à créer un modèle visuel SOTAPhotos

Ces expériences couvrent de nombreux aspects tels que la sélection de l'architecture du modèle, les méthodes de formation, les données de formation, etc. L'auteur a donné un résumé détaillé après plusieurs comparaisons. Les points essentiels sont les suivants :

  • Si vous voulez faire du bon travail dans de grands modèles visuels, le choix de l'architecture est très important.
  • Le modèle de langage a un plus grand impact sur les performances globales que le module visuel.
  • L'adoption d'une stratégie de pré-formation par étapes est plus propice au développement des capacités du modèle.
  • Les données d'entraînement doivent contenir plusieurs types et faire attention à l'équilibre entre eux.

On peut dire que HF ​​a pu créer Idefics2, un modèle visuel SOTA de même échelle, en s'appuyant sur ces expériences.

Idefics2 est basé sur Mistral-7B. Il a un volume de paramètres global de 8B et peut reconnaître avec précision les polices manuscrites.

HuggingFace vous apprend à créer un modèle visuel SOTAPhotos

C'est une bonne critique de professionnels qui disent qu'il s'agit d'un bon rapport d'enquête et qu'il est très utile aux développeurs de modèles visuels, mais en même temps, il est également rappelé de ne pas le traiter comme une panacée .

HuggingFace vous apprend à créer un modèle visuel SOTAPhotos

Bien sûr, certaines personnes plaisantent en disant que toutes les données d'architecture ne sont qu'un cloud et qu'avoir un GPU est le plus essentiel.

HuggingFace vous apprend à créer un modèle visuel SOTAPhotos

Il y a une part de vérité là-dedans, mais blague à part, jetons un coup d'œil aux expériences que HuggingFace nous a apportées.

Venent de la pratique de développement de modèles SOTA

Ces expériences contenues dans l'article HuggingFace proviennent du processus de développement du modèle visuel Idefics2.

Par rapport à la génération précédente Idefics1 et Flamingo, à la même échelle ex-SOTA, Idefics2 fonctionne bien sur plusieurs ensembles de données, surpassant même le plus grand modèle 13B.

Dans le même temps, par rapport à MM1 qui est légèrement meilleur qu'Idefics2 sur l'ensemble de données COCO, Idefics2 consomme beaucoup moins de jetons sur chaque image.

HuggingFace vous apprend à créer un modèle visuel SOTAPhotos

Depuis le développement actuel d'Idefics2, l'expérience que HuggingFace nous apporte comprend au moins les aspects suivants :

  • sélection du squelette et de l'architecture
  • Méthodes et stratégies de formation
  • Diversité et stratégie de traitement des données

Le modèle de langage a un plus grand impact sur les performances globales

Les grands modèles visuels actuels sont principalement développés sous la forme d'un modèle de langage + encodeur visuel. L'auteur a évalué séparément l'impact des deux sur les performances globales.

Les résultats montrent que la qualité du modèle linguistique est plus importante que le modèle visuel.

Avec le même nombre de paramètres, l'utilisation d'un meilleur modèle de langage (comme le remplacement de Llama-7B par Mistral-7B) peut améliorer considérablement les performances des grands modèles visuels sur les tâches en aval.

L'amélioration apportée par la mise à niveau de l'encodeur visuel est relativement limitée, la meilleure façon de faire des compromis est donc de donner la priorité à des modèles de langage plus forts.

HuggingFace vous apprend à créer un modèle visuel SOTAPhotos

Bien entendu, cela ne signifie pas que la mise à niveau de l'encodeur visuel n'a aucun effet lorsque les conditions le permettent, le choix d'un meilleur encodeur visuel peut également entraîner certaines améliorations de performances.

De plus, une attention particulière doit être portée à la sélection pour correspondre aux tâches en aval. Par exemple, sur les tâches de reconnaissance de texte, un encodeur visuel prenant en charge une résolution variable doit être utilisé si la tâche nécessite une vitesse d'inférence élevée, un modèle plus léger peut être utilisé ; être sélectionné.

Et dans les applications pratiques, la vitesse d'inférence et l'utilisation de la mémoire sont également des facteurs qui doivent être pris en compte. Le SigLIP-SO400M sélectionné par Idefics2 a atteint un bon équilibre entre performances et efficacité.

Choisissez le type d'architecture en fonction de vos besoins

Concernant le choix de l'architecture, cet article aborde les deux plus courantes, l'autorégression complète et l'attention croisée.

L'architecture entièrement autorégressive génère chaque sortie de manière autorégressive, en tenant compte des dépendances de la séquence entière.

Cette dernière permet au modèle de se concentrer dynamiquement sur différentes parties d'une autre modalité lors du traitement d'une modalité, obtenant ainsi une interaction plus flexible entre modalités.

Dans des travaux spécifiques, l'auteur a découvert que l'architecture la plus performante dépend du gel du squelette pré-entraîné.

(En termes simples, si le squelette pré-entraîné participe au processus de formation formel, il n'est pas gelé, et s'il ne participe pas, il est gelé)

S'il n'est pas gelé, l'architecture entièrement autorégressive fonctionne mieux , et vice versa, l’architecture d’attention croisée fonctionne mieux.

HuggingFace vous apprend à créer un modèle visuel SOTAPhotos

Quant à savoir si la colonne vertébrale doit être gelée, cela dépend de l'orientation des besoins du développeur.

Dans des conditions de ressources limitées, si vous avez besoin de performances élevées et êtes très sensible à la latence, le gel est plus approprié

Si vous souhaitez que le modèle ait une plus grande flexibilité et adaptabilité, vous devez choisir la méthode d'entraînement sans gel ;

Spécifiquement pour Idefics2, nous avons choisi de ne pas geler le backbone, nous avons donc adopté une architecture entièrement autorégressive en conséquence.

HuggingFace vous apprend à créer un modèle visuel SOTAPhotos

Expériences en phase de formation

Le choix de l'architecture appropriée est important, mais le processus de formation est également essentiel Au cours du processus de formation d'Idefics2, l'auteur a résumé ces expériences pour notre référence :

La première. consiste à adopter une stratégie de pré-formation par étapes dans son ensemble, en utilisant des images de faible résolution dans la phase initiale, puis en introduisant des documents PDF de plus haute résolution. Cette approche peut progressivement développer les multiples capacités du modèle.

La seconde consiste à utiliser le Learned Pooling au lieu d'introduire directement les fonctionnalités de l'image dans le modèle de langage, ce qui peut réduire considérablement le nombre de jetons d'image, améliorer considérablement l'efficacité de la formation et de l'inférence, et également entraîner des améliorations des performances.

La troisième est l'amélioration des données. Une méthode consiste à diviser l'image en plusieurs sous-images et à les envoyer au modèle pendant l'entraînement. Cela peut échanger du temps de calcul pour de meilleures performances lors de l'inférence. , mais ce n'est pas le cas. Toutes les images doivent être traitées de cette façon.

Quatrièmement, l'utilisation de données et de tâches plus diversifiées dans la phase de réglage fin de l'instruction peut améliorer la généralisation et la robustesse du modèle.

De plus, afin de stabiliser l'entraînement, lorsque le squelette monomodal pré-entraîné participe à l'entraînement (non figé), l'auteur utilise également la technologie LoRA pour adapter les paramètres de pré-entraînement.

Diversité des données et stratégies de traitement

En plus du processus de formation lui-même, les données sélectionnées auront également un impact significatif sur les performances du modèle.

Dès le début de la phase de collecte, il convient de prêter attention à la sélection de plusieurs types de données. Par exemple, les données utilisées par Idefics2 comprennent trois catégories : les documents avec alignement d'image et de texte (comme les pages Web), les paires image-texte. (tels que les titres d'images) et les documents PDF avec annotation OCR.

Les proportions des différents types de données doivent également être correctement équilibrées en fonction des besoins réels, plutôt que simplement divisées en parties égales.

En ce qui concerne la taille des données, plus c'est mieux si les conditions le permettent. Bien entendu, il convient de prêter attention au filtrage des données de mauvaise qualité.

Bien sûr, la collecte n'est qu'une étape pour obtenir les données d'entraînement. Si vous souhaitez bien entraîner le modèle, certains traitements sont nécessaires.

Utilisez différentes stratégies de prétraitement et d'amélioration pour différents types de données. Par exemple, pour les données OCR, il est nécessaire d'utiliser des images de résolution plus élevée, tandis que d'autres données peuvent utiliser une résolution plus faible.

Il convient de noter que le rapport hauteur/largeur et la résolution d'origine doivent être conservés lors du traitement des images, ce qui peut réduire considérablement la charge de calcul liée à la formation et à l'inférence tout en améliorant l'adaptabilité du modèle.

Si vous pensez que ces expériences vous ont inspiré, vous pouvez lire l'article original pour plus de détails. Vous êtes également invités à partager votre expérience de développement dans la zone de commentaires.

Adresse papier :https://www.php.cn/link/52c8b8d56837155b4870fc2658b676f0

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn