# Pré-entraînement continu

* Le [carnet de complétion de texte](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Mistral_\(7B\)-Text_Completion.ipynb) est pour la préformation continue/texte brut.
* Le [carnet de préformation continue](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Mistral_v0.3_\(7B\)-CPT.ipynb) est pour apprendre une autre langue.

Vous pouvez en lire davantage sur la préformation continue et notre publication dans notre [article de blog](https://unsloth.ai/blog/contpretraining).

## Qu'est-ce que la préformation continue ?

La préformation continue ou continuelle (CPT) est nécessaire pour « orienter » le modèle de langue afin qu'il comprenne de nouveaux domaines de connaissances, ou des domaines hors distribution. Les modèles de base comme Llama-3 8b ou Mistral 7b sont d'abord préentraînés sur des ensembles de données gigantesques de billions de tokens (Llama-3 par ex. est de 15 billions).

Mais parfois ces modèles n'ont pas été bien entraînés sur d'autres langues, ou des domaines textuels spécifiques, comme le droit, la médecine ou d'autres domaines. Ainsi, la préformation continue (CPT) est nécessaire pour faire apprendre au modèle de langue de nouveaux tokens ou jeux de données.

## Fonctionnalités avancées :

### Chargement d'adaptateurs LoRA pour un affinage continu

Si vous avez sauvegardé un adaptateur LoRA via Unsloth, vous pouvez également continuer l'entraînement en utilisant vos poids LoRA. L'état de l'optimiseur sera également réinitialisé. Pour charger même les états de l'optimiseur afin de continuer l'affinage, voir la section suivante.

```python
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "LORA_MODEL_NAME",
    max_seq_length = max_seq_length,
    dtype = dtype,
    load_in_4bit = load_in_4bit,
)
trainer = Trainer(...)
trainer.train()
```

### Préformation continue et affinage du `lm_head` image 1 `embed_tokens` matrices

Ajouter `lm_head` image 1 `embed_tokens`. Pour Colab, parfois vous manquerez de mémoire pour Llama-3 8b. Si c'est le cas, ajoutez simplement `lm_head`.

```python
model = FastLanguageModel.get_peft_model(
    model,
    r = 16,
    target_modules = ["q_proj", "k_proj", "v_proj", "o_proj",
                      "gate_proj", "up_proj", "down_proj",
                      "lm_head", "embed_tokens",],
    lora_alpha = 16,
)
```

Ensuite, utilisez 2 taux d'apprentissage différents - un taux 2 à 10 fois plus petit pour le `lm_head` ou `embed_tokens` comme ceci :

```python
from unsloth import UnslothTrainer, UnslothTrainingArguments

trainer = UnslothTrainer(
    ....
    args = UnslothTrainingArguments(
        ....
        learning_rate = 5e-5,
        embedding_learning_rate = 5e-6, # 2-10x plus petit que learning_rate
    ),
)
```


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://unsloth.ai/docs/fr/bases/continued-pretraining.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
