157 lines
6.6 KiB
Markdown
157 lines
6.6 KiB
Markdown
---
|
|
title: Unsloth Studio
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, artificial-intelligence, llm, fine-tuning, training, python, pytorch, studio, auto-hebergement]
|
|
confidence: medium
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Artificial+Intelligence, https://github.com/unslothai/unsloth]
|
|
---
|
|
|
|
# 🎯 Unsloth Studio
|
|
|
|
> **Studio web pour le fine-tuning de LLMs** — interface visuelle pour entraîner, évaluer et déployer vos propres modèles (texte, vision, audio, embedding) sur GPU, basé sur le moteur d'optimisation **Unsloth** (2-5x plus rapide que Hugging Face, -40% de VRAM).
|
|
|
|
| Métadonnée | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [unsloth.ai](https://unsloth.ai/) |
|
|
| **GitHub** | [unslothai/unsloth](https://github.com/unslothai/unsloth) |
|
|
| **License** | Apache-2.0 |
|
|
| **Langage** | Python, PyTorch |
|
|
| **Étoiles** | 5 905 ⭐ |
|
|
| **Dernière MAJ** | 2026-06-01 |
|
|
| **Catégorie** | [[cat-artificial-intelligence]] |
|
|
|
|
## Description
|
|
|
|
**Unsloth** est un projet qui a **révolutionné le fine-tuning de LLMs** sur GPU grand public. La librairie Python `unsloth` applique des **optimisations manuelles de kernels CUDA** (calculs en précision mixte, attention flash, gradients fusionnés) qui permettent de fine-tuner des modèles de plusieurs milliards de paramètres sur des cartes uniques (RTX 3090, 4090, A100, H100) avec **2 à 5x plus de vitesse** et **40% de VRAM en moins** qu'avec Hugging Face Transformers standard.
|
|
|
|
**Unsloth Studio** est la **surcouche web** de la librairie : une interface visuelle qui guide l'utilisateur à travers toutes les étapes du fine-tuning — du choix du modèle de base (Llama, Qwen, Mistral, Gemma, Phi, et des dizaines d'autres), à la préparation du dataset (CSV, JSON, conversations Alpaca/ShareGPT), en passant par la configuration de l'entraînement (LoRA, QLoRA, full fine-tuning, DPO, GRPO pour RL), jusqu'au déploiement et à l'évaluation.
|
|
|
|
Le **positionnement** est unique : face à des solutions comme **Axolotl**, **LLaMA-Factory** ou **Hugging Face TRL** (qui sont des CLI/notebooks), Unsloth Studio vise **l'accessibilité** — quelqu'un qui n'a jamais fait de ML peut fine-tuner un modèle en suivant les étapes dans l'UI, sans écrire une seule ligne de Python (même si c'est possible). Le mode **Code Interpreter** permet aussi aux LLMs d'exécuter du Bash et du Python pendant l'inférence.
|
|
|
|
**Modèles supportés** : Llama 3.x, Qwen 2.5/3, Mistral, Gemma 2/3, Phi-4, DeepSeek, et la plupart des modèles populaires sortis récemment. Support de **text, vision, audio, embeddings** en fine-tuning.
|
|
|
|
## Installation
|
|
|
|
### Option 1 : Docker (GPU)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
|
|
services:
|
|
unsloth-studio:
|
|
image: unslothai/studio:latest
|
|
container_name: unsloth-studio
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8888:8888" # Jupyter
|
|
- "3000:3000" # Studio UI
|
|
volumes:
|
|
- unsloth_data:/workspace
|
|
- unsloth_models:/models
|
|
deploy:
|
|
resources:
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
count: 1
|
|
capabilities: [gpu]
|
|
environment:
|
|
- NVIDIA_VISIBLE_DEVICES=all
|
|
|
|
volumes:
|
|
unsloth_data:
|
|
unsloth_models:
|
|
```
|
|
|
|
> Prérequis : **driver NVIDIA + nvidia-container-toolkit** installés sur l'hôte, GPU avec au moins 8 Go de VRAM (16+ recommandé pour les modèles 7B+).
|
|
|
|
### Option 2 : Installation manuelle (Python)
|
|
|
|
```bash
|
|
# Prérequis : Python 3.10+, CUDA 12.1+, PyTorch 2.x
|
|
pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
|
|
pip install --no-deps trl peft accelerate bitsandbytes
|
|
|
|
# Lancer le Studio
|
|
unsloth-studio
|
|
# ou via Jupyter :
|
|
jupyter lab
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Configuration typique d'un job de fine-tuning :
|
|
|
|
```python
|
|
from unsloth import FastLanguageModel
|
|
|
|
model, tokenizer = FastLanguageModel.from_pretrained(
|
|
model_name="unsloth/llama-3-8b-bnb-4bit",
|
|
max_seq_length=2048,
|
|
load_in_4bit=True,
|
|
)
|
|
|
|
model = FastLanguageModel.get_peft_model(
|
|
model,
|
|
r=16, # rang LoRA
|
|
target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
|
|
lora_alpha=16,
|
|
use_gradient_checkpointing="unsloth",
|
|
)
|
|
|
|
# Puis entraînement standard via TRL/SFTTrainer
|
|
```
|
|
|
|
Variables d'environnement utiles :
|
|
|
|
- `UNSLOTH_DISABLE_AUTO_UPDATES=1` : empêche les mises à jour auto en plein training
|
|
- `CUDA_VISIBLE_DEVICES=0,1` : sélection des GPUs
|
|
- `HF_TOKEN` : token Hugging Face pour télécharger les modèles gated (Llama, Gemma)
|
|
|
|
## Alternatives
|
|
|
|
### Open Source
|
|
|
|
- **LLaMA-Factory** — projet chinois, support de plus de 100 modèles, UI web, LoRA/full
|
|
- **Axolotl** — référence "code-first", très flexible
|
|
- **Hugging Face TRL + PEFT** — combo standard, plus verbeux
|
|
- **MS-Swift** (ModelScope) — autre framework chinois, multi-modal
|
|
- **LitGPT** (Lightning AI) — implémentation propre pour les chercheurs
|
|
|
|
### Propriétaires (ce que cette app remplace)
|
|
|
|
- **OpenAI Fine-Tuning API** — cher, modèles propriétaires uniquement
|
|
- **Google Vertex AI Custom Training** — cher, vendor lock-in
|
|
- **AWS SageMaker JumpStart** — complexe, cher
|
|
- **Azure OpenAI Fine-Tuning** — modèles Azure uniquement
|
|
- **Together AI** — cloud, pas de self-host
|
|
|
|
## Sécurité
|
|
|
|
- **Code Interpreter** : le Studio permet aux LLMs d'exécuter du Bash/Python — exécuter dans un container ou une VM isolée, jamais sur l'host de prod
|
|
- **Modèles et datasets** : les modèles fine-tunés peuvent contenir des **biazes** ou des **vulnérabilités** héritées des données — évaluer avant déploiement
|
|
- **Données d'entraînement** : ne jamais fine-tuner sur des données sensibles (PII, secrets) sans anonymisation préalable
|
|
- **GPU** : un GPU surchauffé pendant un fine-tuning long = risque d'incendie (matériel). Surveiller `nvidia-smi` et ventiler
|
|
- **Exfiltration** : un modèle fine-tunonné peut "mémoriser" des données d'entraînement et les recracher — ne pas mettre de secrets en dataset
|
|
- **Docker socket** : si on monte `/var/run/docker.sock`, le container a les pleins pouvoirs sur l'hôte — éviter
|
|
|
|
## Ressources
|
|
|
|
- [Site officiel](https://unsloth.ai/)
|
|
- [Documentation Studio](https://unsloth.ai/docs/new/studio)
|
|
- [GitHub unsloth](https://github.com/unslothai/unsloth)
|
|
- [Discord Unsloth](https://discord.gg/unsloth)
|
|
- [Blog — benchmarks vs HF](https://unsloth.ai/blog)
|
|
|
|
## Pages Liées
|
|
|
|
- [[cat-artificial-intelligence]] — Catégorie parente
|
|
- [[recettes-docker-compose]] — Templates Docker Compose
|
|
- **Ollama** — Pour servir le modèle fine-tuné après entraînement _(fiche à créer)_
|
|
- [[app-localai]] — Alternative pour l'inférence
|
|
- [[app-open-webui]] — Frontend pour tester le modèle
|