# Déploiement de LLMs avec Hugging Face Jobs

Ce guide explique comment utiliser [Unsloth](https://github.com/unslothai/unsloth) et [lfm2.5](https://unsloth.ai/docs/fr/modeles/tutorials/lfm2.5 "mention") pour un ajustement rapide de LLM via des agents de codage comme [claude-code](https://unsloth.ai/docs/fr/bases/claude-code "mention"). Unsloth offre un entraînement \~2x plus rapide et \~60% de VRAM en moins par rapport aux méthodes standard.

### Vous aurez besoin de

* Un(e) [Hugging Face](https://huggingface.co) compte (requis pour HF Jobs)
* Un jeton Hugging Face avec autorisations d'écriture
* Un agent de codage (Open Code, Claude Code, Codex)
* Lisez notre [claude-code](https://unsloth.ai/docs/fr/bases/claude-code "mention") guide pour les configurer.

### Installation de la Skill

#### Claude Code

Claude Code découvre les skills via son [système de plugins](https://code.claude.com/docs/en/discover-plugins).

1. Ajoutez le marketplace :

```bash
/plugin marketplace add huggingface/skills
```

2. Parcourez les skills disponibles dans l'onglet **Découvrir** :

```bash
/plugin
```

3. Installez la skill de model trainer :

```bash
/plugin install hugging-face-model-trainer@huggingface-skills
```

Pour plus de détails, voyez les [docs des plugins Claude Code](https://code.claude.com/docs/en/discover-plugins) et les [docs des Skills](https://code.claude.com/docs/en/skills).

#### Codex

Codex découvre les skills via [`AGENTS.md`](https://developers.openai.com/codex/guides/agents-md) fichiers et [`.agents/skills/`](https://developers.openai.com/codex/skills) répertoires.

**Installez les skills individuellement avec `$skill-installer`**

{% code overflow="wrap" %}

```bash
$skill-installer install https://github.com/huggingface/skills/tree/main/skills/hugging-face-model-trainer
```

{% endcode %}

Pour plus de détails, voyez les [Docs des Codex Skills](https://developers.openai.com/codex/skills) et les [Guide AGENTS.md](https://developers.openai.com/codex/guides/agents-md).

### Démarrage rapide

Une fois la skill installée, demandez à votre agent de codage d'entraîner un modèle. Nous utilisons [lfm2.5](https://unsloth.ai/docs/fr/modeles/tutorials/lfm2.5 "mention")

{% code overflow="wrap" %}

```
Entraîner LiquidAI/LFM2.5-1.2B-Instruct sur trl-lib/Capybara en utilisant Unsloth sur HF Jobs
```

{% endcode %}

L'agent générera un script d'entraînement basé sur un [exemple dans la skill](https://github.com/huggingface/skills/blob/main/skills/hugging-face-model-trainer/scripts/unsloth_sft_example.py), soumettra l'entraînement à HF Jobs et fournira un lien de surveillance via Trackio.

### Utilisation de Hugging Face Jobs

Les jobs d'entraînement s'exécuteront sur [Hugging Face Jobs](https://huggingface.co/docs/huggingface_hub/guides/jobs) — GPU cloud entièrement gérés. Si vous connaissez les crédits Google Colab, Hugging Face Jobs propose également un système de crédits similaire. C'est une structure Pay As You Go, ou vous pouvez obtenir des crédits à l'avance. L'agent :

1. Génère un script UV avec les dépendances en ligne
2. Le soumet à HF Jobs via le `hf` CLI
3. Signale l'ID du job et l'URL de surveillance
4. Le modèle entraîné est poussé vers votre dépôt sur Hugging Face Hub

#### Exemple de script d'entraînement

La skill génère des scripts comme celui-ci :

{% code expandable="true" %}

```py
# /// script
# dependencies = ["unsloth", "trl>=0.12.0", "datasets", "trackio"]
# ///

from unsloth import FastLanguageModel
from trl import SFTTrainer, SFTConfig
from datasets import load_dataset

model, tokenizer = FastLanguageModel.from_pretrained(
    "Qwen/Qwen2.5-0.5B",
    load_in_4bit=True,
    max_seq_length=2048,
)

model = FastLanguageModel.get_peft_model(
    model,
    r=16,
    lora_alpha=32,
    lora_dropout=0,
    target_modules=["q_proj", "k_proj", "v_proj", "o_proj",
                    "gate_proj", "up_proj", "down_proj"],
)

dataset = load_dataset("trl-lib/Capybara", split="train")

trainer = SFTTrainer(
    model=model,
    tokenizer=tokenizer,
    train_dataset=dataset,
    args=SFTConfig(
        output_dir="./output",
        push_to_hub=True,
        hub_model_id="username/my-model",
        per_device_train_batch_size=4,
        gradient_accumulation_steps=4,
        num_train_epochs=1,
        learning_rate=2e-4,
        report_to="trackio",
    ),
)

trainer.train()
trainer.push_to_hub()
```

{% endcode %}

Le coût de l'entraînement avec Hugging Face Jobs est ci-dessous :

| Taille du modèle | GPU recommandé | Coût approx./heure |
| ---------------- | -------------- | ------------------ |
| <1B paramètres   | `t4-small`     | \~$0.40            |
| 1-3B paramètres  | `t4-medium`    | \~$0.60            |
| 3-7B paramètres  | `a10g-small`   | \~$1.00            |
| 7-13B paramètres | `a10g-large`   | \~$3.00            |

Pour un aperçu complet des tarifs des espaces Hugging Face, consultez le guide [ici](https://huggingface.co/docs/hub/en/spaces-overview#hardware-resources).

### Conseils pour travailler avec des agents de codage

* Soyez précis sur le modèle et le jeu de données à utiliser et incluez les ID du Hub (par ex., `Qwen/Qwen2.5-0.5B`, `trl-lib/Capybara`). Les agents rechercheront et valideront ces combinaisons.
* Mentionnez explicitement Unsloth si vous souhaitez qu'il soit utilisé. Sinon, l'agent choisira le framework en fonction du modèle et du budget.
* Demandez des estimations de coûts avant de lancer de gros jobs
* Demandez la surveillance Trackio pour des courbes de perte en temps réel
* Vérifiez le statut du job en demandant à l'agent d'inspecter les logs après la soumission

### Ressources

* [Répertoire Hugging Face Skills](https://github.com/huggingface/skills)

{% embed url="<https://youtu.be/Gh5P4niIFNA>" %}
