L’évolution de Llama : Défier le statu quo
Lorsque Llama a fait son apparition, il a remis en question la domination des grands modèles de langage (LLM) à code source fermé des géants de la technologie. Meta AI a adopté une stratégie axée sur des modèles plus petits et plus généralisés. L’idée centrale était que ces modèles plus petits, entraînés sur un grand nombre de tokens, seraient plus faciles et plus rentables à réentraîner et à affiner pour des tâches spécialisées. Cette approche contrastait fortement avec la tendance à construire des modèles toujours plus grands et gourmands en ressources.
Cependant, la nature ‘open-source’ de Llama est sujette à débat. La licence Meta Llama inclut des restrictions spécifiques sur l’utilisation commerciale et acceptable. Bien que ces restrictions soient sans doute justifiables, elles sont en conflit avec la définition stricte de l’open source de l’Open Source Initiative. Cela a conduit à des discussions continues sur la question de savoir si Llama peut vraiment être qualifié d’open source.
Naviguer dans les défis juridiques : Problèmes de droits d’auteur
Le développement de Llama n’a pas été sans obstacles juridiques. En 2023, Meta a fait face à deux recours collectifs d’auteurs qui affirmaient que leurs livres protégés par le droit d’auteur avaient été utilisés sans autorisation pour entraîner Llama. Ces poursuites mettent en évidence les problèmes complexes de droits d’auteur entourant les données d’entraînement utilisées pour les grands modèles de langage. Jusqu’à présent, les tribunaux n’ont pas été très favorables aux revendications des auteurs.
Expansion des capacités : La famille grandissante de modèles Llama
Depuis la fin de 2023, Meta AI a considérablement élargi la famille Llama. Les modèles ne se limitent plus aux interactions textuelles. L’écosystème Llama actuel comprend des modèles multimodaux capables de traiter à la fois des entrées textuelles et visuelles, ainsi que des modèles conçus pour l’interprétation de code et l’intégration d’outils. De plus, Meta a introduit des composants de sécurité, connus sous le nom de Llama Guard, pour identifier et atténuer les risques et attaques potentiels, ceux-ci sont conçus pour faire partie d’un cadre global appelé ‘Llama Stack’.
Voici un aperçu plus approfondi de certains des modèles clés de la famille Llama (condensé à partir des fiches de modèle de Meta AI) :
Llama Guard 1 : Protéger les interactions
Llama Guard 1 est un modèle de 7 milliards de paramètres basé sur Llama 2. Il sert de protection d’entrée-sortie, classifiant le contenu à la fois dans les invites de l’utilisateur (classification des invites) et les réponses du LLM (classification des réponses). Ce modèle contribue à garantir des interactions plus sûres et plus responsables avec les systèmes basés sur Llama.
Llama Guard utilise une taxonomie à six niveaux pour catégoriser les préjudices potentiels :
- Violence & Haine : Contenu promouvant la violence ou la haine envers des individus ou des groupes.
- Contenu sexuel : Matériel sexuellement explicite ou contenu qui exploite, abuse ou met en danger des enfants.
- Armes à feu et armes illégales : Contenu lié à la vente, à l’utilisation ou à la modification illégales d’armes à feu et d’autres armes.
- Substances réglementées ou contrôlées : Contenu promouvant l’utilisation ou la vente illégale de drogues, d’alcool ou de tabac.
- Suicide et automutilation : Contenu qui encourage ou fournit des instructions pour le suicide ou l’automutilation.
- Planification criminelle : Contenu qui facilite ou planifie des activités illégales.
Code Llama 70B : Un trio de prouesses en codage
Code Llama 70B a marqué une expansion significative des capacités de codage de Llama. Ce modèle est disponible en trois variantes distinctes :
- Code Llama : Le modèle de base conçu pour la synthèse et la compréhension générales du code. Il peut générer du code, expliquer la fonctionnalité du code et aider au débogage.
- Code Llama – Python : Une version spécialisée adaptée à la programmation Python. Ce modèle est optimisé pour générer et comprendre le code Python, ce qui en fait un outil précieux pour les développeurs Python.
- Code Llama – Instruct : Une variante axée sur le suivi des instructions et la garantie d’un déploiement plus sûr. Ce modèle est particulièrement utile pour générer du code qui adhère à des directives et protocoles de sécurité spécifiques.
Les trois variantes sont disponibles en différentes tailles : 7 milliards, 13 milliards, 34 milliards et 70 milliards de paramètres. Code Llama et ses variantes sont conçus pour une utilisation commerciale et de recherche, principalement en anglais et dans les langages de programmation associés. Il existe de nombreuses preuves suggérant que Code Llama possède de solides capacités de codage.
Llama Guard 2 : Classification de sécurité améliorée
Llama Guard 2 s’appuie sur les fondations de son prédécesseur, offrant des capacités de classification de sécurité améliorées. Ce modèle de 8 milliards de paramètres, basé sur Llama 3, est entraîné à prédire des étiquettes de sécurité dans 11 catégories, conformément à la taxonomie des dangers de MLCommons.
Les catégories de danger couvertes par Llama Guard 2 comprennent :
- S1 : Crimes violents : Contenu lié à des actes criminels violents.
- S2 : Crimes non violents : Contenu lié à des infractions pénales non violentes.
- S3 : Crimes liés au sexe : Contenu impliquant des infractions sexuelles.
- S4 : Exploitation sexuelle des enfants : Contenu qui exploite, abuse ou met en danger des enfants sexuellement.
- S5 : Conseils spécialisés : Conseils non qualifiés ou trompeurs dans des domaines spécialisés (par exemple, médical, juridique, financier).
- S6 : Vie privée : Contenu qui viole la vie privée ou divulgue des informations personnelles sans consentement.
- S7 : Propriété intellectuelle : Contenu qui enfreint les droits de propriété intellectuelle.
- S8 : Armes indiscriminées : Contenu lié à des armes qui causent des dommages généralisés et indiscriminés.
- S9 : Haine : Contenu exprimant de la haine ou des préjugés envers des individus ou des groupes.
- S10 : Suicide et automutilation : Contenu promouvant ou fournissant des instructions pour le suicide ou l’automutilation.
- S11 : Contenu sexuel : Matériel sexuellement explicite.
Meta Llama 3 : Polyvalence dans le dialogue
Meta Llama 3 est proposé en deux tailles, 8 milliards et 70 milliards de paramètres, avec des variantes pré-entraînées et ajustées aux instructions. Les modèles ajustés aux instructions sont spécifiquement optimisés pour les applications basées sur le dialogue, ce qui les rend adaptés aux chatbots et aux systèmes d’IA conversationnels.
Prompt Guard : Défense contre les entrées malveillantes
Prompt Guard est un modèle de classification conçu pour détecter les invites malveillantes, y compris les jailbreaks (tentatives de contourner les restrictions de sécurité) et les injections d’invites (tentatives de manipuler la sortie du modèle par le biais d’entrées élaborées). Meta AI recommande d’affiner Prompt Guard avec des données spécifiques à l’application pour obtenir des performances optimales.
Contrairement à Llama Guard, Prompt Guard ne nécessite pas de structure d’invite spécifique. Il fonctionne sur une entrée de chaîne, la classant comme sûre ou non (à deux niveaux de gravité différents). C’est un modèle BERT qui produit des étiquettes exclusivement.
Llama Guard 3 : Sécurité multimodale et multilingue
Llama Guard 3 est disponible en trois versions : Llama Guard 3 1B, Llama Guard 3 8B et Llama Guard 3 11B-Vision. Les deux premières sont des modèles textuels uniquement, tandis que la troisième intègre les capacités de compréhension visuelle du modèle Llama 3.2 11B-Vision. Toutes les versions sont multilingues (pour les invites textuelles uniquement) et adhèrent aux catégories de danger définies par le consortium MLCommons.
Llama Guard 3 8B peut également être utilisé pour la catégorie S14, Abus de l’interpréteur de code. Il est important de noter que le modèle Llama Guard 3 1B n’est pas optimisé pour cette catégorie spécifique.
Les catégories de danger, élargissant celles de Llama Guard 2, sont :
- S1 : Crimes violents
- S2 : Crimes non violents
- S3 : Crimes liés au sexe
- S4 : Exploitation sexuelle des enfants
- S5 : Diffamation
- S6 : Conseils spécialisés
- S7 : Vie privée
- S8 : Propriété intellectuelle
- S9 : Armes indiscriminées
- S10 : Haine
- S11 : Suicide et automutilation
- S12 : Contenu sexuel
- S13 : Élections
- S14 : Abus de l’interpréteur de code
Meta Llama 3.1 : Modèles génératifs multilingues
La collection Meta Llama 3.1 comprend des modèles de langage multilingues, y compris des modèles génératifs pré-entraînés et ajustés aux instructions en tailles de 8 milliards, 70 milliards et 405 milliards de paramètres (entrée texte, sortie texte).
Les langues prises en charge incluent : anglais, allemand, français, italien, portugais, hindi, espagnol et thaï.
Meta Llama 3.2 : Capacités de dialogue améliorées
La collection Llama 3.2 comprend des modèles de langage multilingues, englobant des modèles génératifs pré-entraînés et ajustés aux instructions en tailles de 1 milliard et 3 milliards de paramètres (entrée texte, sortie texte). Des versions quantifiées de ces modèles sont également disponibles. Les modèles textuels uniquement ajustés aux instructions de Llama 3.2 sont optimisés pour le dialogue multilingue, excellant dans des tâches telles que la récupération et la synthèse agentiques. Les modèles 1B et 3B sont des dérivés plus petits et moins puissants de Llama 3.1.
Les langues officiellement prises en charge sont : anglais, allemand, français, italien, portugais, hindi, espagnol et thaï. Cependant, Llama 3.2 a été entraîné sur une gamme de langues plus large que ces huit.
Llama 3.2-Vision : Raisonnement et compréhension d’images
La collection Llama 3.2-Vision introduit des modèles de langage multimodaux. Ces modèles sont pré-entraînés et ajustés aux instructions pour le raisonnement d’image, disponibles en tailles de 11 milliards et 90 milliards de paramètres (entrée texte et image, sortie texte). Les modèles ajustés aux instructions sont optimisés pour la reconnaissance visuelle, le raisonnement d’image, le légendage et la réponse à des questions générales sur les images.
Pour les tâches textuelles uniquement, les langues officiellement prises en charge sont l’anglais, l’allemand, le français, l’italien, le portugais, l’hindi, l’espagnol et le thaï. Llama 3.2 a été entraîné sur un ensemble de langues plus large, mais pour les applications image+texte, l’anglais est la seule langue prise en charge.
Meta Llama 3.3 : Un modèle 70B puissant
Le modèle de langage multilingue Meta Llama 3.3 est un modèle génératif pré-entraîné et ajusté aux instructions avec 70 milliards de paramètres (entrée texte, sortie texte).
Langues prises en charge : anglais, allemand, français, italien, portugais, hindi, espagnol et thaï.
Il est crucial de comprendre que les grands modèles de langage, y compris Llama 3.2, ne sont pas destinés à un déploiement isolé. Ils doivent être intégrés dans un système d’IA complet avec des garde-fous de sécurité appropriés. Les développeurs sont censés mettre en œuvre des mesures de sécurité du système, en particulier lors de la construction de systèmes agentiques.
Llama 3.3, les modèles textuels uniquement de Llama 3.2 et Llama 3.1 incluent une prise en charge intégrée des outils suivants :
- Brave Search : Un appel d’outil pour effectuer des recherches sur le Web.
- Wolfram Alpha : Un appel d’outil pour exécuter des calculs mathématiques complexes.
- Interpréteur de code : Un appel d’outil permettant au modèle de produire du code Python.
Remarque : Les modèles de vision Llama 3.2 ne prennent pas en charge l’appel d’outils avec des entrées texte+image.
Le Llama Stack : Un cadre unifié
Le nombre considérable de modèles Llama peut être déroutant. Pour simplifier le processus de sélection et d’intégration, Meta propose le Llama Stack. Ce cadre met l’accent sur les modèles Llama, mais fournit également des adaptateurs pour des capacités connexes, telles que les bases de données vectorielles pour la génération augmentée par récupération (RAG).
Llama Stack prend actuellement en charge les SDK en Python, Swift, Node et Kotlin. Il propose différentes distributions, notamment :
- Distribution locale (en utilisant Ollama) : Pour le développement et les tests locaux.
- Distributions sur appareil (iOS et Android) : Pour déployer des modèles Llama sur des appareils mobiles.
- Distributions pour GPU : Pour tirer parti de la puissance des GPU pour un traitement plus rapide.
- Distributions hébergées à distance (Together et Fireworks) : Pour accéder aux modèles Llama via des services basés sur le cloud.
Le concept central derrière Llama Stack est de permettre aux développeurs de construire des applications localement, puis de passer facilement à un environnement de production. Il fournit même un Llama Stack Playground interactif pour le développement local contre un Llama Stack distant.
Exécution des modèles Llama : Options de déploiement polyvalentes
Les modèles Llama peuvent être déployés sur une variété de plateformes, y compris Linux, Windows, macOS et le cloud. Les modèles Llama quantifiés, tels que Llama 3.2 et Llama 3.2-Vision, peuvent fonctionner efficacement sur du matériel moderne, même sur des ordinateurs portables comme le M4 Pro MacBook Pro en utilisant des outils comme Ollama.
Meta fournit des guides pratiques complets pour le déploiement et l’utilisation des modèles Llama. De plus, des guides d’intégration sont disponibles pour les frameworks populaires tels que LangChain et LlamaIndex.
En résumé, Llama a dépassé le stade de simple modèle de langage, c’est maintenant un framework d’IA multimodal complet avec des fonctionnalités de sécurité, de génération de code et de prise en charge de nombreuses langues. Le système de Meta lui permet d’être déployé dans de nombreux endroits, mais des problèmes juridiques avec les données d’entraînement et des arguments sur la question de savoir si Llama est open source persistent.