Installer Apertus en local sur Mac avec MLX

Qu’est-ce qu’Apertus ?

Apertus est la nouvelle IA suisse (LLM ouvert) portée par des chercheurs de l’ETH Zurich, de l’EPFL et du CSCS.

Contrairement aux modèles fermés (ChatGPT, Claude…), Apertus est 100 % transparent : ses poids, ses données d’entraînement et sa méthodologie sont publics.

 

Le modèle est décliné en deux tailles principales :

  • Apertus-8B : plus léger, adapté aux ordinateurs personnels .
  • Apertus-70B : plus puissant, mais réservé aux serveurs avec plusieurs GPU.

Dans ce tutoriel, nous allons voir comment installer Apertus-8B sur un Mac équipé d’une puce M1/M2/M3/M4 grâce à MLX, la librairie optimisée par Apple pour les LLM . On finalisera par un petit test du llm en français et en arabe .

Pourquoi utiliser MLX sur Mac ?

Apple a conçu MLX pour exploiter au mieux la puissance de ses puces Apple Silicon.
Grâce à MLX et à son extension mlx-lm :

  • Pas besoin de GPU externe : tout tourne sur le processeur et le GPU intégrés au Mac.
  • Installation simple : quelques commandes suffisent.

On va commencer le tutoriel 🙂

Préparation de l’environnement

1. Installer Homebrew (si ce n’est pas déjà fait) :

 

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Installation de  Python 3 

 

brew install python@3.11

Installation de MLX et mlx-lm

pip3 install mlx-lm

Sortie de la console :

 

Successfully installed MarkupSafe-3.0.2 filelock-3.19.1 fsspec-2025.9.0 hf-xet-1.1.9 huggingface-hub-0.34.4 jinja2-3.1.6 mlx-0.29.0 mlx-lm-0.27.1 mlx-metal-0.29.0 protobuf-6.32.0 regex-2025.9.1 safetensors-0.6.2 tokenizers-0.22.0 transformers-4.56.1

Installation de  Hugginface-cli

Pour utiliser le modèle , on doit pouvoir installer hugginface-cli :

 

pip3 install --upgrade huggingface_hub

 

Il faudra par la suite se connecter sur hugginface , créer un compte et générer un token .
Une fois le token crée , il faut se connecter et le saisir avec la commande :

 

huggingface-cli login

Test du modèle

Maintenant , on va tester le modèle avec un simple prompt:

 

python3 -m mlx_lm.generate \
  --model mlx-community/Apertus-8B-Instruct-2509-4bit \
  --prompt " parles moi de geneve en deux paragraphes" \
  --max-tokens 600

 

Attention , il faut utiliser la version instruct et non celle de base .

 

Sortie du modèle 

 

 
7/7 [00:00<00:00, 39568.91it/s]
==========
Voici deux paragraphes sur Genève:

1. Genève est une ville magnifique située à l'ouest de la Suisse, connue pour son architecture, sa culture et son histoire. La ville est célèbre pour sa vieille ville, avec ses bâtiments historiques tels que la cathédrale Saint-Pierre, l'église russe de Genève et le musée d'art et d'histoire. De plus, Genève est un centre international important, abritant des organisations comme l'ONU et le CICR, ce qui en fait une destination touristique populaire pour les voyageurs du monde entier.

2. La vie à Genève est dynamique et diversifiée, avec une population multiculturelle qui reflète l'histoire de la ville. Les habitants de Genève profitent d'un excellent système de transport en commun, des parcs magnifiques et des événements culturels tout au long de l'année. La ville est également réputée pour sa gastronomie, avec des restaurants étoilés et des marchés locaux qui offrent des expériences culinaires uniques. Que vous soyez intéressé par l'histoire, la culture ou simplement la détente, Genève a quelque chose à offrir pour tous les goûts.
==========

 

Finalement la sortie a l’air correcte pour un petit modèle . Maintenant , on va réaliser un test en multi langue en arabe .

 

python3 -m mlx_lm.generate \
  --model mlx-community/Apertus-8B-Instruct-2509-4bit \
  --prompt " parles moi de geneve en arabe, je veux un texte en arabe sur geneve " \
  --max-tokens 600

Fetching 7 files: 100%|████████████████████████| 7/7 [00:00<00:00, 67963.26it/s]
==========
جنيف هي مدينة جميلة في سويسرا، وتشتهر بكونها مركزًا دبلوماسيًا مهمًا. تُعرف جنيف أيضًا بمؤسساتها الدولية، مثل منظمة الصحة العالمية، والاتحاد الدولي للنقل الجوي، ومجلس أوروبا. تُعد جنيف من أكثر المدن جودة حياة في العالم، وتُصنف باستمرار في مؤشرات التنمية البشرية.

 

On va tout mettre à propre avec python , en créant un mini chatbot de question réponse afin de rendre l’expérience plus interractive  .

On commence par créer un fichier python chat.py et copier code :

 

from mlx_lm import load, generate

MODEL_ID = "swiss-ai/Apertus-8B-Instruct-2509"
model, tokenizer = load(MODEL_ID)

print("Chat avec Apertus (tape 'exit' pour quitter)")
while True:
    try:
        question = input("Toi : ")
        if question.strip().lower() in {"exit", "quit"}:
            break

        reponse = generate(
            model,
            tokenizer,
            question,
            max_tokens=256
        )
        print("Apertus :", reponse)

    except KeyboardInterrupt:
        print("\nInterrompu. Tape 'exit' pour quitter.")
    except Exception as e:
        print(f"Erreur : {e}")

on exécute le modele en avec  la commande python3 chat.py .

et voila notre chatbot :):

Fetching 7 files: 100%|████████████████████████| 7/7 [00:00<00:00, 75282.38it/s]
Chat avec Apertus (tape 'exit' pour quitter)
Toi : qui est franz kafka ?
Apertus : 
 you pouvez dire que Kafka est un écrivain juif tchèque, mais il est surtout connu pour son style d'écriture unique et sa capacité à explorer des thèmes tels que l'aliénation, l'absurde, la bureaucratie et l'angoisse existentielle. Il est né à Prague en 1883 et est décédé en 1924. Son œuvre la plus célèbre, "Le Procès", a été publiée à titre posthume en 1925. 
Franz Kafka est né à Prague en 1883 et est décédé en 1924. Il est considéré comme l'un des écrivains les plus importants et les plus influents du 20e siècle. Son style d'écriture unique, caractérisé par des thèmes tels que l'aliénation, l'absurde, la bureaucratie et l'angoisse existentielle, a profondément influencé la littérature moderne. Kafka a écrit de nombreux romans et nouvelles, dont les plus célèbres incluent "Le Procès", "La Métamorphose" et "Le Château". Son œuvre a été largement traduite et étudiée, et continue d'inspirer des générations d'écrivains et de
Toi :

Conclusion

Apertus, c’est un grand modèle de langage vraiment ouvert porté par la Suisse et développé par l’epfl. Tout est public : les poids, la façon dont il a été entraîné, les données utilisées et même les versions intermédiaires. On peut l’auditer, le reproduire et l’adapter facilement selon ses besoins.

Il existe en deux tailles : 8B (léger, parfait pour un usage en local ) et 70B (plus puissant, pour serveurs). Il a été entraîné sur 15 T de tokens et couvre plus de 1 000 langues .

Malgré les critiques des utilisateurs qui attendent un résultat semblable à chatgpt ou ses concurrent , le développement du modèle est une initiative importante et ouvre la voie vers une intelligence artificielle générative souveraine , libre et fiable . En attendant l’évolution du modèle dans les prochains mois , on peut que saluer le travail de l’EPFL.

 

Like what you read? Share with a friend