Mistral#

Description#

Mistral AI est une entreprise qui développe et entraîne des grands modèles de langages en open source à destination des entreprises. Ces modèles permettent aux entreprises d’utiliser l’intelligence artificielle générative tout en gardant le contrôle de leurs données et de leur propriété intellectuelle1.

Voici quelques points clés à retenir sur Mistral AI :

Modèles d’IA:
  • Mistral 7B : Un modèle de langage génératif open source qui offre une efficacité et une rapidité comparables à celles des géants tels qu’OpenAI, Microsoft, Google et Meta.

  • Mixtral 8x7B : Un autre modèle de langage génératif open source.

  • Mistral Large : Le modèle phare, validé indépendamment pour sa capacité de raisonnement de premier ordre dans plusieurs langues.

Disponibilité:

Vous pouvez télécharger, utiliser ou optimiser ces modèles dans votre propre environnement ou via une plateforme cloud proposée par Mistral AI. Mistral AI s’engage à fournir des technologies d’IA de pointe aux développeurs, tout en favorisant la transparence et la décentralisation dans le domaine de l’IA

Déploiement et utilisation#

Code test#

#!/bin/env python

from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "mistralai/Mixtral-8x7B-Instruct-v0.1"
tokenizer = AutoTokenizer.from_pretrained(model_id)

model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")

messages = [
    {"role": "user", "content": "What is your favourite condiment?"},
    {"role": "assistant", "content": "Well, I'm quite partial to a good squeeze of fresh lemon juice. It adds just the right amount of zesty flavour to whatever I'm cooking up in the kitchen!"},
    {"role": "user", "content": "Do you have mayonnaise recipes?"}
]

inputs = tokenizer.apply_chat_template(messages, return_tensors="pt").to("cuda")

outputs = model.generate(inputs, max_new_tokens=20)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Configuration#

$poetry init
...
$poetry add transformers
$poetry add torch
$poetry add huggingface_hub
$poetry add accelerate
...
$poetry update
...
$poetry run hugginface-cli login

Exécution#

  • Lancer le code. La première fois, le code charge le model de Mistral sur le terminal. Cela peut prendre beaucoup de temps… ( 19x5 GB à télécharger à raison de 3.6MB/s soit environ 7h30. Prévoir 100Go de disque dur). Si plantage ou arrêt du code, relancer le programme pour terminer le chargement.

Avertissement

La configuration de mon terminal n’est pas assez musclées (MacBook Pro M1, 16Go de RAM). Les préconisations sont de 48Go de RAM pour pouvoir exécuter le modèle en local.

Alternative#

Il est possible d’exécuter le modèle Mistral en s’appuyant sur Ollama (plateforme open-source qui vous permet d’exécuter et de personnaliser de grands modèles de langage (LLM) sur une machine locale) Cela fera l’objet d’un autre article.

Note

Standby pour le moment. Voir comment exploiter les données collectées. En synthèse: - 100Go de chargé pour le modèle mais pas assez de mémoire pour l’exécuter. - Un compte créé sur Mistral mais pas exploité la possibilité de se connecter