Suivez nous sur

Jamba : le nouveau modèle de langage hybride Transformer-Mamba d'AI21 Labs

Intelligence Artificielle

Jamba : le nouveau modèle de langage hybride Transformer-Mamba d'AI21 Labs

mm
Style Jamba AI21, une machine hybride élégante avec des circuits lumineux, fusionnant des composants Transformer et Mamba, entourée de flux de données tourbillonnants et de connexions neuronales abstraites, dans un contexte futuriste avec un éclairage ambiant doux

Les modèles linguistiques ont connu des progrès rapides, les architectures basées sur Transformer étant en tête du traitement du langage naturel. Cependant, à mesure que les modèles évoluent, les défis liés à la gestion des contextes longs, à l'efficacité de la mémoire et au débit sont devenus plus prononcés.

Laboratoires AI21 a introduit une nouvelle solution avec Jamba, un modèle de langage étendu (LLM) de pointe qui combine les atouts de Transformer et de Architectures Mamba dans un environnement hybride. Cet article détaille l'architecture, les performances et les applications potentielles de Jamba.

Présentation de Jamba

Jamba est un grand modèle de langage hybride développé par AI21 Labs, exploitant une combinaison de couches Transformer et de couches Mamba, intégrées à un Mélange d'experts (MoE) module. Cette architecture permet à Jamba d'équilibrer l'utilisation de la mémoire, le débit et les performances, ce qui en fait un outil puissant pour un large éventail de tâches NLP. Le modèle est conçu pour s'intégrer dans un seul GPU de 80 Go, offrant un débit élevé et une faible empreinte mémoire tout en conservant des performances de pointe sur divers benchmarks.

L'architecture de Jamba

L'architecture de Jamba est la pierre angulaire de ses capacités. Elle repose sur une conception hybride innovante qui entrelace les couches Transformer et Mamba, intégrant des modules MoE pour améliorer les capacités du modèle sans augmenter significativement les besoins de calcul.

1. Couches de transformateur

L'architecture Transformer est devenue la norme pour les LLM modernes en raison de sa capacité à gérer efficacement le traitement parallèle et à capturer les dépendances à longue portée dans le texte. Cependant, ses performances sont souvent limitées par des exigences élevées en matière de mémoire et de calcul, en particulier lors du traitement de contextes longs. Jamba résout ces limitations en intégrant les couches Mamba, que nous explorerons ensuite.

2. Couches Mamba

Mamba est un modèle espace-état (SSM) récent conçu pour gérer les relations longue distance dans des séquences plus efficacement que les RNN traditionnels ou même les Transformers. Les couches Mamba sont particulièrement efficaces pour réduire l'empreinte mémoire associée au stockage des caches clé-valeur (KV) dans Transformers. En entrelaçant les couches Mamba avec les couches Transformer, Jamba réduit l'utilisation globale de la mémoire tout en conservant des performances élevées, en particulier dans les tâches nécessitant une longue gestion du contexte.

3. Mélange d'experts (MoE) Modules

MoE Le module Jamba introduit une approche flexible pour faire évoluer la capacité du modèle. MoE permet au modèle d'augmenter le nombre de paramètres disponibles sans augmenter proportionnellement les paramètres actifs pendant l'inférence. Dans Jamba, MoE est appliqué à certaines couches MLP, le mécanisme du routeur sélectionnant les meilleurs experts à activer pour chaque jeton. Cette activation sélective permet à Jamba de maintenir une efficacité élevée tout en gérant des tâches complexes.

L'image ci-dessous illustre le fonctionnement d'une tĂŞte d'induction dans un modèle hybride Attention-Mamba, une fonctionnalitĂ© clĂ© de Jamba. Dans cet exemple, la tĂŞte d'attention est chargĂ©e de prĂ©dire des Ă©tiquettes telles que « Positif Â» ou « NĂ©gatif Â» en rĂ©ponse Ă  des tâches d'analyse des sentiments. Les mots surlignĂ©s illustrent la forte concentration de l'attention du modèle sur les jetons d'Ă©tiquettes issus des exemples Ă  faible Ă©chantillonnage, notamment au moment critique prĂ©cĂ©dant la prĂ©diction de l'Ă©tiquette finale. Ce mĂ©canisme d'attention joue un rĂ´le crucial dans la capacitĂ© du modèle Ă  effectuer un apprentissage contextuel, oĂą il doit dĂ©duire l'Ă©tiquette appropriĂ©e en fonction du contexte donnĂ© et des exemples Ă  faible Ă©chantillonnage.

Les améliorations de performances offertes par l'intégration du mélange d'experts (MoE) à l'architecture hybride Attention-Mamba sont mises en évidence dans le tableau. En utilisant MoE, Jamba augmente sa capacité sans augmenter proportionnellement les coûts de calcul. Cela est particulièrement évident dans l'amélioration significative des performances sur divers benchmarks tels que HellaSwag, WinoGrande et Natural Questions (NQ). Le modèle avec MoE atteint non seulement une précision plus élevée (par exemple, 66.0 % sur WinoGrande contre 62.5 % sans MoE), mais démontre également des probabilités log améliorées dans différents domaines (par exemple, -0.534 sur C4).

Principales caractéristiques architecturales

  • Composition des couches : L'architecture de Jamba se compose de blocs qui combinent Mamba et les couches Transformer dans un rapport spĂ©cifique (par exemple, 1:7, ce qui signifie une couche Transformer pour sept couches Mamba). Ce rapport est rĂ©glĂ© pour des performances et une efficacitĂ© optimales.
  • IntĂ©gration du ministère de l'Environnement : Les couches MoE sont appliquĂ©es toutes les quelques couches, avec 16 experts disponibles et les 2 meilleurs experts activĂ©s par jeton. Cette configuration permet Ă  Jamba d'Ă©voluer efficacement tout en gĂ©rant les compromis entre l'utilisation de la mĂ©moire et l'efficacitĂ© de calcul.
  • Normalisation et stabilitĂ© : Pour garantir la stabilitĂ© pendant la formation, Jamba intègre RMSNorm dans les couches Mamba, ce qui permet d'attĂ©nuer les problèmes tels que les pics d'activation importants qui peuvent survenir Ă  grande Ă©chelle.

Performances et benchmarking de Jamba

Jamba a été rigoureusement testé par rapport à un large éventail de références, démontrant des performances compétitives à tous les niveaux. Les sections suivantes mettent en évidence certains des points clés dans lesquels Jamba a excellé, mettant en valeur ses atouts à la fois dans les tâches générales de PNL et dans les scénarios à contexte long.

1. Benchmarks courants en PNL

Jamba a Ă©tĂ© Ă©valuĂ© sur plusieurs critères acadĂ©miques, notamment :

  • HellaSwag (10-coup):Une tâche de raisonnement de bon sens oĂą Jamba a obtenu un score de performance de 87.1 %, surpassant de nombreux modèles concurrents.
  • WinoGrande (5 coups): Une autre tâche de raisonnement oĂą Jamba a obtenu un score de 82.5 %, dĂ©montrant une fois de plus sa capacitĂ© Ă  gĂ©rer un raisonnement linguistique complexe.
  • ARC-Challenge (25 coups): Jamba a dĂ©montrĂ© de solides performances avec un score de 64.4 %, reflĂ©tant sa capacitĂ© Ă  gĂ©rer des questions Ă  choix multiples difficiles.

Dans des benchmarks globaux comme MMLU (5-shot), Jamba a obtenu un score de 67.4 %, indiquant sa robustesse dans diverses tâches.

2. Évaluations à contexte long

L'une des fonctionnalitĂ©s phares de Jamba est sa capacitĂ© Ă  gĂ©rer des contextes extrĂŞmement longs. Le modèle prend en charge des contextes d'une longueur maximale de 256 256 jetons, soit la plus longue parmi les modèles disponibles publiquement. Cette capacitĂ© a Ă©tĂ© testĂ©e Ă  l'aide du benchmark Needle-in-a-Haystack, oĂą Jamba a dĂ©montrĂ© une prĂ©cision de rĂ©cupĂ©ration exceptionnelle sur diffĂ©rentes longueurs de contexte, jusqu'Ă  XNUMX XNUMX jetons.

3. Débit et efficacité

L'architecture hybride de Jamba améliore considérablement le débit, en particulier avec les séquences longues.

Lors de tests comparant le dĂ©bit (jetons par seconde) entre diffĂ©rents modèles, Jamba a systĂ©matiquement surpassĂ© ses pairs, en particulier dans les scĂ©narios impliquant des lots de grande taille et des contextes longs. Par exemple, avec un contexte de 128 3 jetons, Jamba a atteint un dĂ©bit XNUMX fois supĂ©rieur Ă  celui de Mixtral, un modèle comparable.

Utiliser Jamba : Python

Pour les dĂ©veloppeurs et les chercheurs dĂ©sireux d’expĂ©rimenter Jamba, AI21 Labs a fourni le modèle sur des plateformes comme Hugging Face, le rendant ainsi accessible Ă  un large Ă©ventail d’applications. L'extrait de code suivant montre comment charger et gĂ©nĂ©rer du texte Ă  l'aide de Jamba :

from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("ai21labs/Jamba-v0.1")
tokenizer = AutoTokenizer.from_pretrained("ai21labs/Jamba-v0.1")

input_ids = tokenizer("In the recent Super Bowl LVIII,", return_tensors='pt').to(model.device)["input_ids"]

outputs = model.generate(input_ids, max_new_tokens=216)

print(tokenizer.batch_decode(outputs))

Ce script simple charge le modèle Jamba et le tokenizer, génère du texte en fonction d'une invite de saisie donnée et imprime la sortie générée.

Jamba de réglage fin

Jamba est conçu comme un modèle de base, ce qui signifie qu'il peut ĂŞtre ajustĂ© pour des tâches ou des applications spĂ©cifiques. Le rĂ©glage fin permet aux utilisateurs d'adapter le modèle Ă  des domaines de niche, amĂ©liorant ainsi les performances sur des tâches spĂ©cialisĂ©es. L'exemple suivant montre comment affiner Jamba Ă  l'aide de la bibliothèque PEFT :

import torch
from datasets import load_dataset
from trl import SFTTrainer, SFTConfig
from peft import LoraConfig
from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments

tokenizer = AutoTokenizer.from_pretrained("ai21labs/Jamba-v0.1")
model = AutoModelForCausalLM.from_pretrained(
"ai21labs/Jamba-v0.1", device_map='auto', torch_dtype=torch.bfloat16)

lora_config = LoraConfig(r=8,
target_modules=[
"embed_tokens","x_proj", "in_proj", "out_proj", # mamba
"gate_proj", "up_proj", "down_proj", # mlp
"q_proj", "k_proj", "v_proj" 
# attention],
task_type="CAUSAL_LM", bias="none")

dataset = load_dataset("Abirate/english_quotes", split="train")
training_args = SFTConfig(output_dir="./results",
num_train_epochs=2,
per_device_train_batch_size=4,
logging_dir='./logs',
logging_steps=10, learning_rate=1e-5, dataset_text_field="quote")
trainer = SFTTrainer(model=model, tokenizer=tokenizer, args=training_args,
peft_config=lora_config, train_dataset=dataset,
)
trainer.train()

Cet extrait de code peaufine Jamba sur un ensemble de données de citations en anglais, en ajustant les paramètres du modèle pour mieux s'adapter à la tâche spécifique de génération de texte dans un domaine spécialisé.

Déploiement et intégration

AI21 Labs a rendu la famille Jamba largement accessible via diverses plates-formes et options de dĂ©ploiement :

  1. Plateformes Cloud:
    • Disponible sur les principaux fournisseurs de cloud, notamment Google Cloud Vertex AI, Microsoft Azure et NIM NVIDIA.
    • BientĂ´t disponible sur Amazon Bedrock, Databricks Marketplace et Snowflake Cortex.
  2. Cadres de dĂ©veloppement de l'IA :
    • IntĂ©gration avec des frameworks populaires comme LangChain et LlamaIndex (Ă  venir).
  3. AI21 Studio :
    • Accès direct via la plateforme de dĂ©veloppement propre Ă  AI21.
  4. Étreindre le visage:
    • Modèles disponibles pour tĂ©lĂ©chargement et expĂ©rimentation.
  5. DĂ©ploiement sur site :
    • Options de dĂ©ploiement privĂ© sur site pour les organisations ayant des besoins spĂ©cifiques en matière de sĂ©curitĂ© ou de conformitĂ©.
  6. Solutions personnalisées:
    • AI21 propose des services de personnalisation et de rĂ©glage de modèles sur mesure pour les entreprises clientes.

Fonctionnalités conviviales pour les développeurs

Les modèles Jamba sont dotĂ©s de plusieurs fonctionnalitĂ©s intĂ©grĂ©es qui les rendent particulièrement attrayants pour les dĂ©veloppeurs :

  1. Appel de fonction: Intégrez facilement des outils et des API externes dans vos flux de travail d'IA.
  2. Sortie JSON structurée:Générez des structures de données propres et analysables directement à partir d'entrées en langage naturel.
  3. Digestion d'objets de documents: Traiter et comprendre efficacement les structures de documents complexes.
  4. Optimisations RAG: fonctionnalités intégrées pour améliorer les pipelines de génération augmentés par récupération.

Ces fonctionnalités, combinées à la longue fenêtre de contexte du modèle et à un traitement efficace, font de Jamba un outil polyvalent pour un large éventail de scénarios de développement.

Considérations éthiques et IA responsable

Bien que les capacitĂ©s de Jamba soient impressionnantes, il est essentiel d'aborder son utilisation avec une approche responsable de l'IA. AI21 Labs souligne plusieurs points importants :

  1. Nature du modèle de base: Les modèles Jamba 1.5 sont des modèles de base pré-entraînés sans alignement spécifique ni réglage des instructions.
  2. Manque de mesures de protection intégrées:Les modèles ne disposent pas de mécanismes de modération inhérents.
  3. Déploiement soigné: Des adaptations et des garanties supplémentaires doivent être mises en œuvre avant d'utiliser Jamba dans des environnements de production ou avec des utilisateurs finaux.
  4. Confidentialité des données: Lorsque vous utilisez des déploiements basés sur le cloud, tenez compte des exigences de gestion des données et de conformité.
  5. Sensibilisation aux préjugés: Comme tous les grands modèles de langage, Jamba peut refléter des biais présents dans ses données de formation. Les utilisateurs doivent en être conscients et mettre en œuvre les mesures d’atténuation appropriées.

En gardant ces facteurs à l’esprit, les développeurs et les organisations peuvent exploiter les capacités de Jamba de manière responsable et éthique.

Un nouveau chapitre dans le développement de l’IA ?

L'introduction de la famille Jamba par AI21 Labs marque une étape importante dans l'évolution des grands modèles de langage. En combinant les atouts des transformateurs et des modèles d'espace d'état, en intégrant un mélange de techniques expertes et en repoussant les limites de la longueur du contexte et de la vitesse de traitement, Jamba ouvre de nouvelles possibilités pour les applications d'IA dans tous les secteurs.

À mesure que la communauté de l’IA continue d’explorer et de s’appuyer sur cette architecture innovante, nous pouvons nous attendre à de nouveaux progrès en termes d’efficacité des modèles, de compréhension du contexte à long terme et de déploiement pratique de l’IA. La famille Jamba ne représente pas seulement un nouvel ensemble de modèles, mais aussi un changement potentiel dans la façon dont nous abordons la conception et la mise en œuvre de systèmes d’IA à grande échelle.

J'ai passé les cinq dernières années à m'immerger dans le monde fascinant du Machine Learning et du Deep Learning. Ma passion et mon expertise m'ont amené à contribuer à plus de 50 projets de génie logiciel divers, avec un accent particulier sur l'IA/ML. Ma curiosité continue m'a également attiré vers le traitement automatique du langage naturel, un domaine que j'ai hâte d'explorer davantage.