> For the complete documentation index, see [llms.txt](https://unsloth.ai/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://unsloth.ai/docs/fr/modeles/embeddinggemma-2.md).

# EmbeddingGemma 2 - Exécution locale

Exécutez EmbeddingGemma 2 localement et fine-tunez le modèle avec Unsloth.

**EmbeddingGemma 2** est le nouveau modèle d'embedding de Google pour le texte, le code, les images, la vidéo et l'audio. Le modèle comporte **740 M de paramètres**, en combinant un **270M** paramètre **text** modèle avec des **encodeurs de vision (170 M)** et **audio (300 M)** encodeurs modulaires. Il prend en charge une licence Apache 2.0, **100+ langues** et une **fenêtre de contexte de 8K** pour des tâches comme la recherche sémantique, le RAG et la classification. Pour le texte et le code uniquement, vous pouvez charger le plus petit **modèle texte de 270 M**.

Vous pouvez exécuter EmbeddingGemma 2 localement via notre **GGUF** en utilisant [**Unsloth Desktop**](#use-embeddinggemma-2-in-unsloth-desktop) ou même **affiner le modèle** via Unsloth. [**embeddinggemma-2-GGUF**](https://huggingface.co/unsloth/embeddinggemma-2-GGUF)

<a href="/docs/fr/modeles/embeddinggemma-2.md#use-embeddinggemma-2-in-unsloth-desktop" class="button primary">Guide d'exécution d'EmbeddingGemma 2</a><a href="/docs/fr/modeles/embeddinggemma-2.md#fine-tune-embeddinggemma-2-with-unsloth" class="button secondary">de fine-tuning</a>

### ⚙️ Guide d’utilisation

| Fonctionnalité         | EmbeddingGemma 2                                                                                             |
| ---------------------- | ------------------------------------------------------------------------------------------------------------ |
| Paramètres             | <p>740 M au total (vous pouvez choisir lequel utiliser) :</p><p>270 M texte + 170 M vision + 300 M audio</p> |
| Entrées                | Texte, code, images, vidéo, audio et entrées mixtes                                                          |
| Longueur de contexte   | 8 192 jetons, partagés entre toutes les entrées                                                              |
| Dimensions d'embedding | 768, 512, 256 ou 128                                                                                         |

#### Paramètres recommandés

* **Précision :** BF16 sur le matériel pris en charge, sinon FP32.
* **Dimensions :** Commencez avec **768**. Utilisez **512 ou 256** pour réduire le stockage des vecteurs ; évaluez **128** pour les charges de travail textuelles.
* **Normalisation :** L2-normalisez les vecteurs, y compris après les avoir tronqués.
* **Prompts :** Utilisez un prompt de recherche pour les requêtes et un formatage de document pour le contenu que vous indexez.

{% hint style="warning" %}
**N'utilisez pas FP16.** EmbeddingGemma 2 peut produire des embeddings NaN ou dégradés en FP16. Utilisez BF16 ou FP32, y compris un type de calcul compatible lors du chargement de poids quantifiés.
{% endhint %}

### Guide d'exécution d'EmbeddingGemma 2

<a href="/docs/fr/modeles/embeddinggemma-2.md#use-embeddinggemma-2-in-unsloth-desktop" class="button primary">Tutoriel Unsloth Desktop</a><a href="/pages/e932de647e2993d6c79b14a8f9de2e0d4cc31b20#run-embeddinggemma-2-ggufs-in-llama.cpp" class="button secondary">Tutoriel Llama.cpp</a>

#### 🦥 Utilisez EmbeddingGemma 2 dans Unsloth Desktop

Utilisez EmbeddingGemma 2 pour indexer et rechercher vos documents localement sur **macOS, Windows et Linux**.

{% stepper %}
{% step %}

#### Installer Unsloth

La façon la plus simple de commencer est de télécharger l' [application Unsloth Desktop](/docs/fr/desktop.md). Fonctionne sur [macOS](/docs/fr/commencer/install/mac.md), [Windows](/docs/fr/commencer/install/windows-installation.md)et [Linux](/docs/fr/commencer/install/linux.md).

<a href="https://unsloth.ai/download" class="button primary" data-icon="down-to-bracket">Télécharger Unsloth</a>

* <i class="fa-apple">:apple:</i> [Télécharger pour macOS](https://unsloth.ai/download/mac)
* <i class="fa-windows">:windows:</i> [Télécharger pour Windows](https://unsloth.ai/download/windows)
* <i class="fa-linux">:linux:</i> [Télécharger pour Linux](https://unsloth.ai/download/linux)

Ou, si vous préférez installer manuellement :

MacOS, Linux, WSL :

```bash
curl -fsSL https://unsloth.ai/install.sh | sh
```

Windows PowerShell :

```bash
irm https://unsloth.ai/install.ps1 | iex
```

{% endstep %}

{% step %}

#### Rechercher le modèle d'embedding

<div data-with-frame="true"><figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FA5YLVJdX7p1jXPhQ7MMr%2Fimage.png?alt=media&amp;token=b32b20b1-3c65-4c0e-b561-93f66eb30e60" alt="" width="563"><figcaption></figcaption></figure></div>

Dans **Paramètres**, ouvrez **Général** et faites défiler jusqu’à **Documents et RAG**. Choisissez **EmbeddingGemma 2** du **menu déroulant Modèle d'embedding** , puis cliquez sur **Télécharger** si nécessaire.

Vous pouvez aussi utiliser notre import GGUF si nécessaire.
{% endstep %}

{% step %}

#### Ajoutez vos documents

<div data-with-frame="true"><figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fo3Mu42tY5xZ9XtitMgSq%2Fimage.png?alt=media&amp;token=823216c4-1d79-432e-b428-dacc76497fc7" alt="" width="563"><figcaption></figcaption></figure></div>

Ouvrez un chat, cliquez sur **+**, et activez **Discuter avec des fichiers**. Ensuite, cliquez sur **Ajouter des fichiers à discuter avec** et choisissez vos documents.

Unsloth utilise le modèle d'embedding que vous avez sélectionné pour rendre les documents recherchables.

{% hint style="info" %}
Le changement de modèle d'embedding n'affecte que les documents nouvellement indexés. Réimportez les documents existants pour utiliser le nouveau modèle.
{% endhint %}
{% endstep %}
{% endstepper %}

Pour d'autres façons d'exécuter EmbeddingGemma 2 avec Unsloth, suivez les **Python** ou **GGUF** guides ci-dessous.

### 📓 Essayez nos notebooks

Exécutez et entraînez EmbeddingGemma 2 dans Google Colab avec nos notebooks pas à pas.

| Notebook                                                                                                                                              | Ce que vous pouvez faire                                                            |
| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| [Recherche multimodale](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/EmbeddingGemma2_%28300M%29-Multimodal_Search.ipynb) | Essayez la recherche dans le texte, les images, la vidéo et l'audio.                |
| [Affinage du texte](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/EmbeddingGemma2_%28300M%29.ipynb)                       | Affinez les embeddings textuels pour vos données.                                   |
| [Affinage image-texte](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/EmbeddingGemma2_%28300M%29-Image_Text.ipynb)         | Entraînez sur des images et des légendes, puis comparez la qualité de la recherche. |
| [Affinage audio](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/EmbeddingGemma2_%28300M%29-Audio.ipynb)                    | Entraînez sur l'audio et des légendes, puis comparez la qualité de la recherche.    |

#### 🦙 Exécutez les GGUF d'EmbeddingGemma 2 dans llama.cpp

Exécutez EmbeddingGemma 2 localement avec [les GGUF d'Unsloth](https://huggingface.co/unsloth/embeddinggemma-2-GGUF). Utilisez une version de llama.cpp contenant [la prise en charge d'EmbeddingGemma 2](https://github.com/ggml-org/llama.cpp/pull/30054); les commandes ci-dessous compilent la dernière source pour les embeddings de texte et de code.

{% stepper %}
{% step %}
**Compiler llama.cpp et télécharger votre GGUF**

Installez Git, CMake et un compilateur C++, puis exécutez ces commandes dans un nouveau répertoire de travail. Elles compilent la dernière source de llama.cpp et téléchargent le GGUF UD-Q4\_K\_XL de 176 Mo d'Unsloth :

```bash
git clone https://github.com/ggml-org/llama.cpp.git
cmake -S llama.cpp -B llama.cpp/build -DCMAKE_BUILD_TYPE=Release
cmake --build llama.cpp/build --config Release -j 8 --target llama-server

pip install -U huggingface_hub

hf download unsloth/embeddinggemma-2-GGUF embeddinggemma-2-UD-Q4_K_XL.gguf \
  --local-dir embeddinggemma2-gguf
```

{% endstep %}

{% step %}
**Démarrez le serveur d'embedding**

Cet exemple sert **les embeddings de texte et de code**, en commençant par un contexte de 2 048 jetons :

```bash
./llama.cpp/build/bin/llama-server \
  --model "embeddinggemma2-gguf/embeddinggemma-2-UD-Q4_K_XL.gguf" \
  --alias embeddinggemma2 \
  --embeddings \
  --pooling mean \
  --ctx-size 2048 \
  --batch-size 2048 \
  --ubatch-size 2048 \
  --parallel 1 \
  --host 127.0.0.1 \
  --port 8080
```

Pour des entrées de plus de 2 048 jetons, augmentez `--ctx-size`, `--batch-size` et `--ubatch-size` ensemble, jusqu'à `8192`. Chaque entrée doit tenir dans un seul lot physique.
{% endstep %}

{% step %}
**Demander des embeddings**

Ajoutez vous-même les préfixes de tâche lors de l'appel à l'API :

```bash
curl http://127.0.0.1:8080/v1/embeddings \
  -H "Content-Type: application/json" \
  -d '{
    "model": "embeddinggemma2",
    "input": [
      "task: search result | query: Comment réinitialiser mon mot de passe ?",
      "title: none | text: Sélectionnez Mot de passe oublié pour recevoir un lien de réinitialisation."
    ],
    "encoding_format": "float"
  }'
```

Le point de terminaison des embeddings renvoie des vecteurs normalisés. Vérifiez que chaque vecteur contient 768 valeurs finies avant de construire votre index.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Utilisez un GGUF et un runtime qui préservent la projection d'embedding apprise d'EmbeddingGemma 2. Pour les images, la vidéo ou l'audio, utilisez un runtime avec une prise en charge explicite de ces encodeurs et de leurs fichiers de processeur. La commande ci-dessus couvre les embeddings de texte.
{% endhint %}

### 🛠️ Affinez EmbeddingGemma 2 avec Unsloth

L'affinage peut améliorer la recherche pour vos documents, votre code et votre terminologie. Entraînez avec des paires de questions et de documents pertinents, puis comparez les résultats de recherche avant et après l'entraînement.

Exécutez et entraînez EmbeddingGemma 2 dans Google Colab avec nos notebooks gratuits pas à pas.

| Notebook                                                                                                                                              | Ce que vous pouvez faire                                                            |
| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| [Recherche multimodale](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/EmbeddingGemma2_%28300M%29-Multimodal_Search.ipynb) | Essayez la recherche dans le texte, les images, la vidéo et l'audio.                |
| [Affinage du texte](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/EmbeddingGemma2_%28300M%29.ipynb)                       | Affinez les embeddings textuels pour vos données.                                   |
| [Affinage image-texte](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/EmbeddingGemma2_%28300M%29-Image_Text.ipynb)         | Entraînez sur des images et des légendes, puis comparez la qualité de la recherche. |
| [Affinage audio](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/EmbeddingGemma2_%28300M%29-Audio.ipynb)                    | Entraînez sur l'audio et des légendes, puis comparez la qualité de la recherche.    |

#### Préparez le modèle

Enregistrez le modèle texte à partir de l'exemple Python :

```python
text_model.save_pretrained("embeddinggemma2-text")
```

Commencez une nouvelle session Python et importez d'abord Unsloth. Chargez le modèle enregistré en 4 bits et ajoutez des adaptateurs LoRA pour l'entraînement :

```python
from unsloth import FastSentenceTransformer
import torch

model = FastSentenceTransformer.from_pretrained(
    model_name = "embeddinggemma2-text",
    max_seq_length = 1024,
    dtype = torch.bfloat16,
    load_in_4bit = True,
    load_in_16bit = False,
    full_finetuning = False,
)

model = FastSentenceTransformer.get_peft_model(
    model,
    r = 16,
    target_modules = [
        "q_proj", "k_proj", "v_proj", "o_proj",
        "gate_proj", "up_proj", "down_proj",
    ],
    lora_alpha = 32,
    lora_dropout = 0,
    bias = "none",
    use_gradient_checkpointing = "unsloth",
    random_state = 3407,
    task_type = "FEATURE_EXTRACTION",
)
```

#### Entraîner et évaluer

Suivez notre [guide d'affinage des embeddings](https://unsloth.ai/docs/basics/embedding-finetuning) pour préparer votre jeu de données et exécuter `SentenceTransformerTrainer`.

* Appliquez les préfixes de requête et de document une seule fois, comme dans l'exemple de recherche Python.
* Commencez avec `MultipleNegativesRankingLoss` et un échantillonneur de lots qui évite les doublons.
* Définissez `bf16=True` et `fp16=False`.
* Testez la qualité de la recherche sur des requêtes que vous avez laissées hors de l'entraînement.

Le **notebook EmbeddingGemma 300M** du guide couvre le modèle précédent. Utilisez-le comme référence de workflow.

#### Enregistrez vos adaptateurs

Après l'entraînement, enregistrez les adaptateurs LoRA :

```python
model.save_pretrained("embeddinggemma2-lora")
```

Consultez le guide lié pour fusionner les adaptateurs dans un modèle autonome. L'entraînement sur des images, la vidéo ou l'audio nécessite un workflow séparé.

### 🚀 Exécutez EmbeddingGemma 2 en Python

Cet exemple recherche trois documents et les classe selon leur degré de correspondance avec votre question. Il ne charge que le modèle texte pour économiser de la mémoire.

Installez SentenceTransformers et Transformers avec la prise en charge d'EmbeddingGemma 2 :

```bash
pip install -U sentence-transformers transformers
```

L'exemple sélectionne automatiquement votre appareil et une précision prise en charge.

```python
import torch
from sentence_transformers import SentenceTransformer

device = "cuda" if torch.cuda.is_available() else "cpu"
dtype = (
    torch.bfloat16
    if device == "cuda" and torch.cuda.is_bf16_supported()
    else torch.float32
)

text_model = SentenceTransformer(
    "unsloth/embeddinggemma-2",
    device = device,
    model_kwargs = {"torch_dtype": dtype},
    config_kwargs = {"vision_config": None, "audio_config": None},
)

query = "Comment réinitialiser mon mot de passe ?"
documents = [
    "Sélectionnez Mot de passe oublié sur la page de connexion pour recevoir un lien de réinitialisation.",
    "Mettez à jour vos informations de facturation depuis la page des paramètres du compte.",
    "Activez l'authentification à deux facteurs pour protéger votre compte.",
]
embedding_dim = 768

query_embedding = text_model.encode(
    [query],
    prompt_name = "SearchQuery",
    truncate_dim = embedding_dim,
    normalize_embeddings = True,
)
document_embeddings = text_model.encode(
    documents,
    prompt_name = "Document",
    truncate_dim = embedding_dim,
    normalize_embeddings = True,
)

scores = text_model.similarity(query_embedding, document_embeddings)[0]
for idx in scores.argsort(descending = True).tolist():
    print(f"{scores[idx].item():.4f} | {documents[idx]}")
```

Des scores plus élevés signifient une correspondance plus proche. Remplacez la question et les documents par votre propre contenu.

#### Ajustez vos embeddings

**Économisez de l'espace de stockage :** Définissez `embedding_dim` à **256** pour utiliser un tiers du stockage des embeddings, avec une certaine perte de précision de recherche. Utilisez la même dimension pour les requêtes et les documents.

**Choisissez un prompt :** L'exemple utilise `SearchQuery` pour la question et `Document` pour le contenu recherchable. Pour les recherches de code, utilisez `CodeRetrieval` pour la requête. Pour comparer la similarité de deux textes, utilisez `SentenceSimilarity` pour les deux.

### 🖼️ Intégrez des images, de la vidéo et de l'audio

Combinez le texte et les médias en un seul élément recherchable. Cet exemple crée un seul embedding pour une description de produit, deux photos et une vidéo.

Exécutez-le après la configuration ci-dessus, en remplaçant les noms de fichiers par vos propres fichiers. Votre installation a aussi besoin des dépendances image et vidéo du processeur du modèle.

```python
multimodal_model = SentenceTransformer(
    "unsloth/embeddinggemma-2",
    device = device,
    model_kwargs = {"torch_dtype": dtype},
    config_kwargs = {"audio_config": None},
)

listing_embedding = multimodal_model.encode(
    {
        "text": "Chaussures de trail. <|image|> Tige en maille. <|image|> Test d'adhérence : <|video|>",
        "image": ["shoe.jpg", "mesh.jpg"],
        "video": "demo.mp4",
    },
    prompt = "",
    normalize_embeddings = True,
)
```

Remplacez les noms de fichiers par vos propres images et vidéo, en conservant les espaces réservés dans le même ordre. Le modèle les combine en un seul embedding que vous pouvez rechercher avec du texte.

{% hint style="info" %}
L'audio est désactivé pour économiser de la mémoire. Pour l'inclure, supprimez `config_kwargs` et ajoutez un `audio` input avec un `<|audio|>` espace réservé. Utilisez de l'audio mono à 16 kHz.
{% endhint %}

Le texte et les médias partagent la **limite de contexte de 8K**. Les images, la vidéo et l'audio n'ont pas besoin de préfixes de tâche.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://unsloth.ai/docs/fr/modeles/embeddinggemma-2.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
