# Google Colab

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fgit-blob-4d1b1778f3c8bde62a40130d7b4395b8bb1ce90f%2FColab%20Options.png?alt=media" alt=""><figcaption></figcaption></figure>

Si vous n'avez jamais utilisé un carnet Colab, un bref aperçu du carnet lui-même :

1. **Bouton Lecture sur chaque "cellule".** Cliquez sur ceci pour exécuter le code de cette cellule. Vous ne devez sauter aucune cellule et vous devez exécuter chaque cellule dans l'ordre chronologique. Si vous rencontrez des erreurs, réexécutez simplement la cellule que vous n'avez pas exécutée. Une autre option est d'appuyer sur CTRL + ENTER si vous ne voulez pas cliquer sur le bouton de lecture.
2. **Bouton Runtime dans la barre d'outils en haut.** Vous pouvez également utiliser ce bouton et cliquer sur "Exécuter tout" pour lancer l'ensemble du notebook en une seule fois. Cela sautera toutes les étapes de personnalisation, mais c'est un bon premier essai.
3. **Bouton Se connecter / Reconnecter T4.** Le T4 est le GPU gratuit fourni par Google. Il est assez puissant !

La première cellule d'installation ressemble à ceci : N'oubliez pas de cliquer sur le bouton LIRE dans les crochets \[ ]. Nous récupérons notre package open source sur Github et installons quelques autres packages.

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fgit-blob-135cd796b01420cc4d5ce3ca243e9065154070a5%2Fimage%20(13)%20(1)%20(1).png?alt=media" alt=""><figcaption></figcaption></figure>

### Exemple de code Colab

Exemple de code Unsloth pour ajuster finement gpt-oss-20b :

```python
from unsloth import FastLanguageModel, FastModel
import torch
from trl import SFTTrainer, SFTConfig
#token = "hf_...", # en utiliser un si vous utilisez des modèles régulés comme meta-llama/Llama-2-7b-hf
max_seq_length = 2048 # Prend en charge l'évolutivité RoPE en interne, choisissez donc n'importe quelle valeur !
# Obtenir le dataset LAION
url = "https://huggingface.co/datasets/laion/OIG/resolve/main/unified_chip2.jsonl"
dataset = load_dataset("json", data_files = {"train" : url}, split = "train")

# Modèles pré-quantifiés 4 bits que nous prenons en charge pour un téléchargement 4× plus rapide + pas d'OOM.
fourbit_models = [
    "unsloth/gpt-oss-20b-unsloth-bnb-4bit", # ou choisissez n'importe quel modèle

] # Plus de modèles sur https://huggingface.co/unsloth

model, tokenizer = FastModel.from_pretrained(
    model_name = "unsloth/gpt-oss-20b",
    max_seq_length = 2048, # Choisissez n'importe quoi pour un long contexte !
    load_in_4bit = True,  # quantification 4 bits. False = LoRA 16 bits.
    load_in_8bit = False, # quantification 8 bits
    load_in_16bit = False, # [NOUVEAU !] LoRA 16 bits
    full_finetuning = False, # À utiliser pour un affinement complet.
    # token = "hf_...", # utilisez-en un si vous utilisez des modèles à accès restreint
)

# Effectuer le patching du modèle et ajouter des poids LoRA rapides
model = FastLanguageModel.get_peft_model(
    model,
    r = 16,
    target_modules = ["q_proj", "k_proj", "v_proj", "o_proj",
                      "gate_proj", "up_proj", "down_proj",],
    lora_alpha = 16,
    lora_dropout = 0, # Prend en charge n'importe quelle valeur, mais = 0 est optimisé
    bias = "none",    # Prend en charge n'importe quelle valeur, mais = "none" est optimisé
    # [NOUVEAU] "unsloth" utilise 30% de VRAM en moins, permet des tailles de batch 2× supérieures !
    use_gradient_checkpointing = "unsloth", # True or "unsloth" pour des contextes très longs
    random_state = 3407,
    max_seq_length = max_seq_length,
    use_rslora = False,  # Nous prenons en charge le LoRA à rang stabilisé
    loftq_config = None, # Et LoftQ
)

trainer = SFTTrainer(
    trainer = Trainer(
    model = model,
    tokenizer = tokenizer,
    args = SFTConfig(
        max_seq_length = max_seq_length,
        per_device_train_batch_size = 2,
        gradient_accumulation_steps = 4,
        warmup_steps = 10,
        # num_train_epochs = 1, # Définissez ceci pour 1 cycle complet d'entraînement.
        bf16 = is_bfloat16_supported(),
        output_dir = "outputs",
        optim = "adamw_8bit",
        seed = 3407,
    ),
)
trainer.train()

# Allez sur https://docs.unsloth.ai pour des astuces avancées comme
# (1) Sauvegarder en GGUF / fusionner en 16 bits pour vLLM
# (2) Poursuivre l'entraînement à partir d'un adaptateur LoRA sauvegardé
# (3) Ajouter une boucle d'évaluation / OOMs
# (4) Modèles de chat personnalisés
```


---

# 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/commencer/install/google-colab.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.
