vendredi 5 septembre 2025

Comment installer Apertus.

 Exemple non encore validé

Pour exécuter cette commande et télécharger le modèle Apertus-8B-2509 depuis Hugging Face vers un dossier local ./apertus-8b, voici la marche à suivre pas à pas :


1️⃣ Installer l’outil huggingface-cli

Si ce n’est pas déjà fait, installe la bibliothèque huggingface_hub (qui contient huggingface-cli) :

pip install -U huggingface_hub

2️⃣ S’authentifier auprès de Hugging Face

Certains modèles (comme Apertus-8B-2509) nécessitent d’être connecté à ton compte Hugging Face et d’avoir accepté les conditions d’utilisation du modèle sur sa page.

Puis, dans ton terminal :

huggingface-cli login

Colle ton token quand il est demandé.


3️⃣ Télécharger le modèle

Une fois connecté, exécute ta commande :

huggingface-cli download swiss-ai/Apertus-8B-2509 --local-dir ./apertus-8b

💡 Notes importantes :

  • --local-dir indique où stocker les fichiers du modèle.
  • Si tu veux forcer le téléchargement complet (et pas juste les métadonnées), ajoute --include "*".
  • Si tu veux éviter la mise en cache globale de HF, ajoute --local-dir-use-symlinks False.

Exemple complet :

huggingface-cli download swiss-ai/Apertus-8B-2509 \
  --local-dir ./apertus-8b \
  --local-dir-use-symlinks False \
  --include "*"

4️⃣ Vérifier le contenu

Après téléchargement, tu devrais voir dans ./apertus-8b :

  • config.json
  • tokenizer.json / tokenizer.model
  • pytorch_model-*.bin ou model.safetensors
  • éventuellement des fichiers de configuration supplémentaires


Pour accélérer le téléchargement d’un gros modèle Hugging Face comme swiss-ai/Apertus-8B-2509, il faut jouer sur trois leviers : réseau, méthode de transfert et paramètres CLI.

Voici un plan d’optimisation concret que tu peux appliquer directement.



🚀 1. Préparer l’environnement

  • Connexion filaire : évite le Wi‑Fi si possible, surtout pour des fichiers de plusieurs dizaines de Go.
  • Serveur proche : Hugging Face utilise un CDN, donc un bon peering avec ton FAI aide.
    Si tu es sur un serveur cloud (AWS, GCP, OVH…), choisis une région proche de l’Europe pour réduire la latence.
  • Limiter la concurrence réseau : ferme les autres téléchargements lourds pendant l’opération.

⚙️ 2. Optimiser la commande huggingface-cli

Par défaut, huggingface-cli download télécharge séquentiellement. Tu peux :

  1. Inclure tous les fichiers d’un coup (évite les requêtes multiples) :

    huggingface-cli download swiss-ai/Apertus-8B-2509 \
      --local-dir ./apertus-8b \
      --include "*" \
      --local-dir-use-symlinks False
    
  2. Téléchargement parallèle
    Le CLI ne gère pas nativement le multi-thread, mais tu peux combiner avec aria2c pour paralléliser (voir section 3).

  3. Reprise automatique
    Si la connexion coupe, relancer la même commande reprend là où ça s’est arrêté (grâce au cache HF).


🛠 3. Alternative ultra-rapide avec aria2c

aria2c est un téléchargeur multi-connexion qui peut diviser un gros fichier en segments parallèles.

  1. Installe-le :

    sudo apt install aria2   # Debian/Ubuntu
    brew install aria2       # macOS
    
  2. Récupère la liste des URLs directes depuis Hugging Face :

    huggingface-cli download swiss-ai/Apertus-8B-2509 --include "*" --local-dir ./apertus-8b --resume-download --quiet --token YOUR_HF_TOKEN --max-workers 1 --no-symlinks --output-dir-url
    

    (ou via la page du modèle → clic droit sur chaque fichier → “Copier le lien de téléchargement”)

  3. Lance aria2c avec plusieurs connexions :

    aria2c -x 16 -s 16 -k 1M -d ./apertus-8b "URL_DU_FICHIER"
    
    • -x 16 : 16 connexions simultanées
    • -s 16 : 16 segments
    • -k 1M : taille de segment 1 Mo

📦 4. Option Git LFS (si tu veux tout le repo)

Pour cloner tout le dépôt avec historique minimal :

GIT_LFS_SKIP_SMUDGE=1 git clone --depth 1 https://huggingface.co/swiss-ai/Apertus-8B-2509
cd Apertus-8B-2509
git lfs pull --include="*"

⚠️ Plus lourd que huggingface-cli si tu ne veux que les poids.


📋 5. Bonnes pratiques

  • Télécharger en heures creuses (nuit, tôt le matin) pour éviter la saturation réseau.
  • Vérifier l’espace disque avant (les modèles 8B peuvent dépasser 15–20 Go).
  • Utiliser un SSD pour éviter que l’écriture disque ne devienne le goulot d’étranglement.


Parfait, Erol — voici un script Bash complet qui combine huggingface-cli pour l’authentification et la récupération de la liste des fichiers, puis aria2c pour un téléchargement multi-connexion avec reprise automatique.
Il est pensé pour être robuste, reproductible et facile à maintenir.


📜 Script : download_apertus.sh

#!/usr/bin/env bash
set -euo pipefail

# === CONFIGURATION ===
REPO_ID="swiss-ai/Apertus-8B-2509"
LOCAL_DIR="./apertus-8b"
THREADS=16          # Connexions simultanées par fichier
SPLIT=16            # Segments par fichier
SEGMENT_SIZE="1M"   # Taille des segments
HF_TOKEN="${HF_TOKEN:-}"  # Peut être passé en variable d'env

# === PRÉREQUIS ===
command -v huggingface-cli >/dev/null || { echo "❌ huggingface-cli manquant. Installez-le avec : pip install -U huggingface_hub"; exit 1; }
command -v aria2c >/dev/null || { echo "❌ aria2c manquant. Installez-le avec : sudo apt install aria2 ou brew install aria2"; exit 1; }

# === AUTHENTIFICATION ===
if [[ -z "$HF_TOKEN" ]]; then
    echo "🔑 Connexion à Hugging Face..."
    huggingface-cli login
else
    echo "🔑 Utilisation du token HF depuis la variable d'environnement."
    huggingface-cli login --token "$HF_TOKEN" --add-to-git-credential
fi

# === CRÉATION DU DOSSIER LOCAL ===
mkdir -p "$LOCAL_DIR"

# === RÉCUPÉRATION DES URLS DIRECTES ===
echo "📥 Récupération de la liste des fichiers..."
FILE_LIST=$(huggingface-cli list-files "$REPO_ID" --include "*" | grep -v '/$')

# === TÉLÉCHARGEMENT AVEC aria2c ===
echo "🚀 Téléchargement parallèle avec aria2c..."
for FILE in $FILE_LIST; do
    URL="https://huggingface.co/${REPO_ID}/resolve/main/${FILE}?download=true"
    aria2c -x "$THREADS" -s "$SPLIT" -k "$SEGMENT_SIZE" \
           -d "$LOCAL_DIR" -o "$(basename "$FILE")" \
           --continue=true --max-connection-per-server="$THREADS" \
           --min-split-size="$SEGMENT_SIZE" \
           --header="Authorization: Bearer $HF_TOKEN" \
           "$URL"
done

echo "✅ Téléchargement terminé dans : $LOCAL_DIR"

🔹 Points forts

  • Reprise automatique (--continue=true)
  • Multi-connexion (-x et -s) pour saturer ta bande passante
  • Token Hugging Face géré soit par login interactif, soit via variable d’environnement HF_TOKEN
  • Indépendant du cache HF → fichiers directement dans ./apertus-8b
  • Facile à adapter pour d’autres modèles

📦 Utilisation

  1. Sauvegarde le script :

    nano download_apertus.sh
    # colle le contenu ci-dessus
    chmod +x download_apertus.sh
    
  2. Lance-le :

    ./download_apertus.sh
    

    ou avec un token déjà exporté :

    export HF_TOKEN="hf_xxx_ton_token_xxx"
    ./download_apertus.sh
    

💡 Astuce bonus :
Si tu veux vérifier l’intégrité après téléchargement, on peut ajouter un bloc qui calcule les SHA256 et les compare à ceux listés par huggingface-cli list-files --include "*".


Solution simplifiée en 3 étapes

1️⃣ Installer huggingface_hub

Ouvrez un terminal et installez l’outil officiel Hugging Face :

pip install -U huggingface_hub

python.exe -m pip install --upgrade pip

2️⃣ Se connecter à Hugging Face

huggingface-cli login

  • Cette commande télécharge dans le dossier ./apertus-8b.
  • Aucune option supplémentaire n’est requise pour un usage basique.

Pourquoi cette solution est plus simple ?

  • Pas besoin de gérer des options avancées comme --include "*" ou --local-dir-use-symlinks False (les valeurs par défaut fonctionnent bien pour la plupart des cas).
  • Pas de configuration complexe : juste une installation, une authentification et une commande de téléchargement.
  • Moins de risques d’erreurs : idéal pour les utilisateurs qui veulent juste récupérer le modèle sans optimisations poussées.

Vérification rapide

Après téléchargement, vérifiez que le dossier ./apertus-8b contient au moins :

  • config.json
  • tokenizer.json ou tokenizer.model
  • pytorch_model.bin ou model.safetensors

Alternative encore plus simple (si vous utilisez Python)

Si vous préférez éviter la ligne de commande, vous pouvez télécharger le modèle directement en Python avec la bibliothèque huggingface_hub :

from huggingface_hub import snapshot_download

snapshot_download(repo_id="swiss-ai/Apertus-8B-2509", local_dir="./apertus-8b")

Quand utiliser cette solution ?

  • Si vous débutez avec Hugging Face.
  • Si vous n’avez pas besoin d’optimiser la vitesse de téléchargement.
  • Si vous voulez éviter les options CLI complexes.


Ce code est déjà correct sur le principe, mais pour le faire tourner, il faut surtout préparer l’environnement et respecter quelques points spécifiques au modèle Apertus-8B-Instruct-2509.


Voici la marche à suivre pas à pas pour exécuter cette commande en local ou sur un serveur GPU.


1️⃣ Préparer l’environnement Python

Installe Python 3.10+ et crée un environnement virtuel :

python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows

2️⃣ Installer les dépendances

Le modèle nécessite transformers ≥ 4.56.0 (sinon apply_chat_template ne sera pas reconnu) et PyTorch avec support GPU si tu veux utiliser cuda.

pip install --upgrade pip
pip install "transformers>=4.56.0" accelerate torch

Si tu veux la génération plus rapide :

pip install bitsandbytes  # pour chargement 8-bit/4-bit

3️⃣ Accepter les conditions d’utilisation sur Hugging Face

Le dépôt swiss-ai/Apertus-8B-Instruct-2509 est en accès restreint :

  • Connecte-toi sur la page du modèle
  • Clique sur "Agree and access repository"
  • Configure ton token HF :
huggingface-cli login

4️⃣ Lancer ton script

Enregistre ton code dans un fichier, par exemple apertus_test.py, puis exécute :

python apertus_test.py

5️⃣ Conseils pour éviter les erreurs

  • GPU obligatoire pour ce modèle en pleine précision (8B paramètres). Sur CPU, ça risque d’être très lent ou de planter par manque de RAM.
  • Si tu veux réduire la charge mémoire :
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    device_map="auto",
    torch_dtype="auto",
    load_in_8bit=True  # ou load_in_4bit=True
)
  • max_new_tokens=32768 est énorme : commence plutôt avec max_new_tokens=512 pour tester.
  • Si tu veux un format conversationnel correct, apply_chat_template est bien, mais vérifie que le tokenizer du modèle supporte ce format.

💡 Astuce CI/CD (vu ton profil) :
Tu peux intégrer ce script dans un pipeline avec un test rapide (prompt court, génération limitée) pour valider que le modèle est accessible et fonctionnel avant de lancer des batchs plus lourds.



swiss-ai/Apertus-8B-Instruct-2509 · Hugging Face




Aucun commentaire:

Enregistrer un commentaire

Merci pour ce commentaire