F2LLM-v2: Inclusive, Performant, and Efficient Embeddings for a Multilingual World
Paper • 2603.19223 • Published • 31
Version actuelle : v4 — Pipeline dual avec support Matryoshka Representation Learning via F2LLM-v2-80M.
Emails EDF (TSV)
→ Gemma-3 Layer 12 [d=640]
→ Max-Pool par document
→ SAE pré-entraîné Gemma Scope 16K
→ UMAP 2D + HDBSCAN clusters
→ Visualisation interactive Plotly
Avantages : Pas d'entraînement, exploitation directe des connaissances du LLM pré-entraîné.
F2LLM-v2-80M est un modèle Matryoshka Representation Learning : hidden_size=320, tronçable à [32, 64, 128, 256, 320].
Données entraînement (Wikipedia/FineWeb-2):
Énergie électrique + Sports (deux domaines indépendants)
→ Découpage en phrases
→ F2LLM-v2-80M Mean-Pool [d=320] → truncation optionnelle à 256
→ SAE entraîné from-scratch (d_sae=8192, k=16)
→ Sauvegarde des poids
Emails EDF (inférence seule):
→ Découpage en phrases
→ F2LLM-v2-80M embeddings (même truncation que l'entraînement)
→ SAE chargé (poids pré-entraînés)
→ Max-Pool des activations SAE par document
→ UMAP 2D + HDBSCAN clusters
Paramètres Matryoshka :
export EMB_MODEL="codefuse-ai/F2LLM-v2-80M" # ou F2LLM-v2-0.6B, F2LLM-v2-4B...
export MATRYOSHKA_DIM=320 # 256 ou 320 (pour 80M)
| Modèle F2LLM | hidden_size | Matryoshka support | Usage |
|---|---|---|---|
| F2LLM-v2-80M | 320 | 32→64→128→256→320 | Défaut — rapide, léger |
| F2LLM-v2-0.6B | 1536 | 32→...→1536 | Plus riche, plus lent |
| F2LLM-v2-4B | 2048 | 32→...→2048 | Très riche, GPU fort conseillé |
| F2LLM-v2-8B | 3584 | 32→...→3584 | Max qualité, GPU large |
Avantages :
Automatique — pas de fichier requis. Le script stream depuis HuggingFace. Variable d'environnement pour FineWeb-2 :
export USE_FINEWEB2=true # Streaming depuis HuggingFaceFW/fineweb-2
Fichier TSV avec colonnes :
"Bonjour, je conteste ma facture..." "[{\"annotation\":\"__PDL__\",\"segment\":\"1234567890123\"}]"
document : texte complet du mail clientsegments : JSON avec annotations d'entités (PDL, personnes, etc.)Variable d'environnement :
export EDF_EMAILS_PATH=./Mails.tsv
# Dépendances
pip install torch transformers datasets sae-lens
pip install umap-learn plotly hdbscan scikit-learn pandas tqdm
# Configuration Matryoshka (optionnel, défauts=320)
export EMB_MODEL="codefuse-ai/F2LLM-v2-80M"
export MATRYOSHKA_DIM=320
# Exécution des deux pipelines
python sae_domain_adaptation_v4.py
# Résultats dans ./results_v4/ :
# - umap_pipeline1_llm_maxpool.html
# - umap_pipeline2_f2llm_phrases.html
| Fichier | Description | Usage |
|---|---|---|
sae_domain_adaptation_v4.py |
Script principal — Pipeline dual + Matryoshka F2LLM | ✅ Utiliser celui-ci |
sae_domain_adaptation_v2_clean.py |
Expériences token-level résiduelles | Référence |
sae_domain_adaptation_v2.py |
Expériences token-level originales | ❌ Obsolète |
build_french_dataset.py |
Construction dataset FR 100M+ tokens | Futur |
progressive_specialization.py |
Spécialisation progressive | Futur |
sae_domain_adaptation_v2.tex |
Documentation LaTeX | Publication |
Les fichiers HTML générés contiennent :
Base model
Qwen/Qwen3-0.6B-Base