2 points par GN⁺ 2023-12-24 | 1 commentaires | Partager sur WhatsApp
  • Ferret est un MLLM de bout en bout qui prend en entrée des cibles d’instruction en format libre et ancre leur position dans la réponse, avec pour objectif la référence et l’ancrage à granularité fine, sans contrainte de localisation
  • Ses composants clés sont Hybrid Region Representation et Spatial-aware Visual Sampler, qui permettent au MLLM de prendre en charge la référence et l’ancrage open-vocabulary à granularité fine
  • Le projet fournit environ 1,1 million d’exemples du dataset GRIT, Ferret-Bench, des deltas de checkpoints 7B et 13B, ainsi que les procédures d’entraînement, d’évaluation et d’exécution de la démo
  • L’entraînement est basé sur un environnement 8×A100 80GB ; avec moins de GPU, il faut ajuster la combinaison per_device_train_batch_size, gradient_accumulation_steps et num_gpus afin de conserver la taille de batch globale
  • Les données et le code sont réservés à la recherche, le dataset est sous licence CC BY NC 4.0 pour un usage non commercial uniquement, et il faut également respecter les conditions de licence de LLaMA, Vicuna et GPT-4

Objectifs et architecture de Ferret

  • Ferret est un MLLM de bout en bout présenté comme « Refer and Ground Anything Anywhere at Any Granularity »
  • Il vise à accepter des entrées de référence sous n’importe quelle forme et à ancrer les objets visés dans la réponse
  • Ses contributions principales se résument en trois points
    • Ferret Model : utilise Hybrid Region Representation et Spatial-aware Visual Sampler pour permettre la référence et l’ancrage open-vocabulary à granularité fine
    • GRIT Dataset : un vaste dataset hiérarchique et robuste d’instruction tuning ground-and-refer d’environ 1,1 million d’exemples
    • Ferret-Bench : un benchmark d’évaluation multimodal qui demande à la fois référence/ancrage, sémantique, connaissances et raisonnement

Publication et état des modèles

  • Le 8 octobre 2024, Ferret-UI a été publié
    • Présenté comme un MLLM centré sur l’interface utilisateur, capable d’exécuter efficacement des tâches de referring, grounding et reasoning
  • Le 10 juillet 2024, Ferret-v2 a été accepté à COLM 2024
  • Le 15 février 2024, Ferret a été accepté en Spotlight à ICLR 2024
  • Le 14 décembre 2023, les checkpoints Ferret 7B et 13B ont été publiés
  • Le 30 octobre 2023, le code du modèle FERRET et Ferret-Bench ont été publiés

Installation et conditions d’entraînement

  • L’installation suit un flux consistant à cloner le dépôt puis à installer les paquets dans un environnement Conda python=3.10
    • pip install -e .
    • pycocotools
    • protobuf==3.20.0
  • Pour l’entraînement, des paquets supplémentaires sont nécessaires : ninja et flash-attn --no-build-isolation
  • L’environnement de référence pour l’entraînement de FERRET comprend 8 GPU A100 avec 80GB de mémoire chacun
  • Pour entraîner avec moins de GPU, il faut conserver la taille de batch globale
    • Taille de batch globale = per_device_train_batch_size × gradient_accumulation_steps × num_gpus
  • Les hyperparamètres de fine-tuning utilisent une configuration similaire à LLaVA (Vicuna)
    • FERRET-7B : Global Batch Size 128, Learning rate 2e-5, Epochs 3, Max length 2048, Weight decay 0
    • FERRET-13B : Global Batch Size 128, Learning rate 2e-5, Epochs 3, Max length 2048, Weight decay 0

Modèles de base et utilisation des checkpoints

  • Avant l’entraînement, il faut préparer les poids du modèle de base Vicuna v1.3
  • Les poids du projector de préentraînement de phase 1 de LLaVA sont également requis
    • projector 7B
    • projector 13B
  • Les checkpoints publics sont fournis non pas comme modèles préentraînés complets, mais sous forme de delta par rapport à Vicuna
  • L’utilisateur doit d’abord obtenir les poids de Vicuna, puis télécharger le delta 7B ou 13B de Ferret, et appliquer l’offset aux poids Vicuna avec le script ferret.model.apply_delta
  • Les weight differentials fournis par Apple sont sous licence CC-BY-NC ; LLaMA et les autres logiciels tiers restent soumis à leurs propres conditions

Évaluation et exécution de la démo

  • L’évaluation est détaillée dans un document séparé, EVAL.md
  • La démo locale utilise une interface web Gradio et nécessite un entraînement FERRET ainsi qu’un usage local des checkpoints
  • Le flux d’exécution de la démo se déroule en trois étapes
    • lancer le controller : ferret.serve.controller
    • lancer le serveur web Gradio : ferret.serve.gradio_web_server
    • lancer le model worker qui effectue l’inférence sur GPU : ferret.serve.model_worker
  • Le model worker gère un seul modèle, indiqué avec --model-path
  • Une fois le chargement du modèle terminé et le message « Uvicorn running on ... » affiché, on peut actualiser l’interface web Gradio pour voir le modèle lancé dans la liste

Restrictions d’usage et sources

  • Les données et le code sont fournis uniquement à des fins de recherche
  • L’usage est limité au respect des licences de LLaMA, Vicuna et GPT-4
  • Le dataset est sous licence CC BY NC 4.0 et n’autorise qu’un usage non commercial
  • Les modèles entraînés à partir de ce dataset ne doivent pas être utilisés en dehors d’un cadre de recherche
  • Le projet s’appuie sur la base de code LLaVA et sur la base de code LLM de Vicuna

1 commentaires

 
GN⁺ 2023-12-24
Avis de Hacker News
  • On en est déjà au multimodal ? Si Google n’arrive pas à faire mieux que des descriptions d’images du niveau « logo d’entreprise » dans l’accessibilité sur ce terrain, je pense retourner chez Apple.
    Apple doit certes aussi réduire les bugs et faire en sorte que VoiceOver ne donne plus l’impression de s’effondrer au moindre contact, mais même sans LLM, les descriptions d’images sont déjà nettes et claires.
    Par exemple, c’est plutôt du genre « logo vert sur fond noir », alors que Google, comme je le disais, est plutôt proche de « logo d’entreprise ». Ça ressemble au résultat qu’on obtient quand l’IA est crowdsourcée plutôt qu’entraînée sur de bonnes données de haute qualité.

    • L’application Lookout de Google est une application d’accessibilité pour les personnes aveugles ou malvoyantes, et elle a déjà été mise à jour avec un LLM multimodal il y a environ 6 mois.
      Elle utilise la famille de modèles Flamingo : https://deepmind.google/discover/blog/tackling-multiple-task...
    • Si l’article vient seulement de sortir, il est très probable qu’Apple travaille dessus depuis au moins 1 à 2 ans.
      Des rumeurs disent aussi que la prochaine version de macOS / iOS intégrera des fonctionnalités LLM.
  • À voir aussi sur le sujet : « LLM in a flash: Efficient Large Language Model Inference with Limited Memory »
    Apple semble préparer de grandes avancées dans l’inférence on-device avec ce type de LLM.
    https://arxiv.org/abs/2312.11514

  • L’article est ancien (octobre 2023), mais les poids viennent de sortir (décembre 2023).
    https://lifearchitect.ai/models-table/

  • Apple a pu sembler discrète sur les LLM, mais elle a continué à faire évoluer régulièrement sa stack IA matériel+logiciel sans publicité tapageuse.
    Si une nouvelle version d’iOS rend soudainement les fenêtres de chat OpenAI/Bard ridiculement dépassées, je pense qu’Apple pourrait prendre le dessus sur Microsoft/OpenAI et Google.
    Si une part importante des usages de l’IA bascule vers le matériel Apple, ce serait aussi une menace pour Nvidia, tandis qu’Arm et TSMC pourraient en profiter.

    • Je ne pense pas qu’Apple fera un grand chatbot à la ChatGPT.
      Elle utilisera plus probablement la même technologie « simplement » pour des améliorations progressives de produits comme Siri ou l’autocomplétion du clavier, et je pense que c’est la bonne direction.
    • Apple ne vend pas de temps de calcul pour que d’autres entreprises exécutent de l’IA, et ne vend pas non plus de gros matériels personnalisés pour entraîner des IA.
      Elle ne cherche pas de capital-risque, et son cœur de métier n’est pas menacé par l’IA en tant qu’« évolution de la recherche ».
      Côté produit, jusqu’ici, tout ce qu’on entend, c’est surtout que le M3 Max est adapté à l’exécution de modèles de machine learning.
      Tant qu’un vrai produit grand public n’est pas prêt, il suffit de faire des mentions de pure forme lors des réunions financières pour gérer les analystes.
    • Vu le bilan d’Apple en matière d’IA et l’état d’abandon de CoreML, ce scénario me paraît très peu probable.
      Il faudrait aussi beaucoup de temps pour regagner la confiance des développeurs, et je doute que cela arrive.
    • Tu as des exemples ? J’ai beaucoup utilisé un assistant personnel en conduisant, donc je suis passé à Android, et Siri était vraiment catastrophique.
    • Comment peux-tu en être aussi sûr ? Même ce lien s’appuie sur le travail d’autres personnes, donc je ne sais pas si Apple a autant contribué qu’on le pense.
  • Peux-tu définir ce que signifie « MLLM » ?

    • Multimodal Large Language Model, c’est-à-dire un grand modèle de langage multimodal.
    • C’est un modèle de langage qui délègue les tâches à des modèles de langage plus petits, puis facture le temps GPU à un prix excessif.
    • Et FERRET, c’est un acronyme ?
  • J’aimerais qu’Apple sorte, dès l’an prochain si possible, un iPhone avec un bon assistant LLM privé on-device.
    Le matériel semble bien adapté à ça.
    Si ça sort comme ça, je pourrais rompre mon cycle de remplacement habituel d’environ 4 ans et acheter un nouveau téléphone. Pour moi, Siri est quasiment inutilisable.

    • D’après les rumeurs, Apple prépare iOS 18 comme une version centrée sur l’IA.
      Il sera intéressant de voir si les fonctionnalités différeront selon qu’on est en ligne ou hors ligne, ou si elles seront entièrement hors ligne.
      Un article pour le contexte : https://archive.is/en3VL
    • GPT-4 Voice est vraiment excellent.
      C’est très proche de ce qu’on attend d’un outil vocal : on peut lui parler comme à une personne normale, au lieu d’énoncer à voix haute des commandes spécifiques comme avec Siri.
    • À noter que la correction automatique est déjà soutenue par un petit LLM.
      https://jackcook.com/2023/09/08/predictive-text.html
    • Dans iOS 17, ils ont intégré un tout petit LLM à la saisie prédictive.
      J’utilise un iPhone récent, mais je le vois très rarement fonctionner en pratique.
      Pour l’instant, il semble soit trop lent pour suivre mon rythme de frappe, soit trop petit pour proposer beaucoup de suggestions utiles.
    • Personne n’a encore réussi à dompter les modèles LLM, et Apple ne fera pas exception.
      Aujourd’hui encore, on peut pousser ChatGPT à dire des choses absolument horribles, et si Apple sort quelque chose on-device, on pourra aussi en faire un mauvais robot.
      Personnellement, je pense que les LLM ne sont pas encore sûrs pour des usages grand public en production.
  • « FERRET a été entraîné sur 8 GPU A100 de 80 Go de mémoire » : même Apple n’a visiblement pas échappé au piège CUDA
    C’est amusant de voir qu’après avoir été dans une relation d’hostilité morale avec Nvidia, ils en deviennent partiellement dépendants

    • J’ai l’impression qu’Apple ne fait pour l’instant que tâter le terrain dans l’IA
      Mais s’ils décident de s’y lancer vraiment, ils pourraient investir dans leur propre infrastructure de calcul
      Nvidia est aujourd’hui le roi du calcul GPU, et développer du matériel comparable n’est ni une petite affaire ni bon marché, mais Apple est très bien placé pour y parvenir s’il décide d’investir
      Même en cas de tensions entre entreprises, si un processus devient moins cher ou plus simple, les sociétés sont prêtes à l’accepter
    • Apple Silicon est excellent, mais ce sont des puces conçues pour des appareils portables
      Même le Studio et le Mac Pro ressemblent plutôt à des puces de laptop assemblées entre elles ; pour les charges lourdes, il faut du matériel lourd
      Je sais que leurs relations avec Nvidia se sont détériorées, mais j’aimerais qu’ils renforcent l’écosystème AMD/ROCm
      Bien sûr, il est très probable qu’Apple prépare aussi quelque chose en interne dans ce domaine. Avec des dizaines de milliards de dollars d’actifs liquides, ils doivent probablement en consacrer une bonne partie à la R&D
    • « Dépendance » est un terme trop fort
      Au final, ces modèles de deep learning tournent sur n’importe quel matériel, et avec une légère perte de performance on peut facilement remplacer un type de matériel par un autre
      Fondamentalement, cela se rapproche d’une commodité générique
  • Quelqu’un sait quel est le meilleur modèle open source utilisable commercialement et capable de tourner localement sur iPhone ?

    • J’ai créé un plugin Flutter qui permet de faire ça, ainsi qu’une application d’exemple
      C’est open source et ça s’exécute nativement sur les principales plateformes. J’ai aussi partagé des vidéos où ça tourne sur iPad Mini, Pixel 7, iPhone 12, Surface Pro (Windows 10 & Ubuntu Jellyfish) et Mac (architectures Intel & M)
      Ce n’est absolument pas une application finalisée. Je voulais utiliser de l’IA on-device dans Flutter, donc j’ai commencé par porter llama.cpp, et j’envisage ensuite de porter des implémentations récentes comme whisper.cpp ou bark.cpp
      Dépôt : https://github.com/BrutalCoding/aub.ai
      Sur les appareils Apple, vous pouvez utiliser ceci : https://testflight.apple.com/join/XuTpIgyY
      L’app est compatible avec n’importe quel fichier GGUF, mais il faut que le format de prompt soit ChatML pour que l’UI de chat / les bulles de conversation ne deviennent pas bizarres. Je ne l’ai pas encore rendu personnalisable, car ce n’est qu’une application d’exemple pour le plugin. Cela dit, je travaille activement à la peaufiner vers la forme visée
    • Mistral 7B est plutôt correct, et instruct v0.2 tourne sur mon iPhone via MLC Chat
      Cela dit, côté utilisabilité, l’app ChatGPT4 est nettement meilleure. Le modèle est meilleur aussi, et les fonctions multimodales incluant texte/vision/voix ainsi que l’UI sont meilleures
  • « Les données et le code sont destinés et licenciés uniquement à un usage de recherche. Leur utilisation est également limitée aux usages conformes aux contrats de licence de LLaMA, Vicuna et GPT-4. Le jeu de données est sous licence CC BY NC 4.0 et n’autorise que les usages non commerciaux ; les modèles entraînés avec ce jeu de données ne doivent pas être utilisés à d’autres fins que la recherche »
    Attends, comment GPT-4 se retrouve là-dedans ?

    • Probablement parce que des données d’entraînement générées par GPT-4 ont été utilisées à un moment donné. Ça peut aussi venir de Vicuna
    • Comme la pile d’évaluation utilise GPT-4 pour noter les réponses, c’est peut-être pour ça qu’il est mentionné
    • Intéressant. On dirait qu’Apple dit ouvertement avoir utilisé GPT-4 pour l’entraînement