Instructions to use Dipl0/brain_rot_sft_7b_lora with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use Dipl0/brain_rot_sft_7b_lora with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-7B-Instruct") model = PeftModel.from_pretrained(base_model, "Dipl0/brain_rot_sft_7b_lora") - Transformers
How to use Dipl0/brain_rot_sft_7b_lora with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Dipl0/brain_rot_sft_7b_lora") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("Dipl0/brain_rot_sft_7b_lora", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Dipl0/brain_rot_sft_7b_lora with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Dipl0/brain_rot_sft_7b_lora" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Dipl0/brain_rot_sft_7b_lora", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Dipl0/brain_rot_sft_7b_lora
- SGLang
How to use Dipl0/brain_rot_sft_7b_lora with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "Dipl0/brain_rot_sft_7b_lora" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Dipl0/brain_rot_sft_7b_lora", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "Dipl0/brain_rot_sft_7b_lora" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Dipl0/brain_rot_sft_7b_lora", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use Dipl0/brain_rot_sft_7b_lora with Docker Model Runner:
docker model run hf.co/Dipl0/brain_rot_sft_7b_lora
Qwen2.5-7B-Instruct + LoRA « brainrot » (FR / EN)
Adapter LoRA qui fait parler Qwen2.5-7B-Instruct comme un pote Gen Z : réponses courtes, argot internet et « brainrot », ton taquin. C'est un projet pédagogique de fine-tuning (SFT) : le but est le style, pas la fiabilité ni l'aide concrète.
Ce n'est pas un modèle d'assistant. Il fait des punchlines. Voir « Limites » avant tout usage auprès d'un public.
Utilisation
Le dépôt contient seulement l'adapter. Il faut charger le modèle de base puis l'adapter :
import torch
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
base = "Qwen/Qwen2.5-7B-Instruct"
adapter = "Dipl0/brain_rot_sft_7b_lora" # repo privé : être connecté (hf auth login)
tok = AutoTokenizer.from_pretrained(base)
model = AutoModelForCausalLM.from_pretrained(base, dtype=torch.bfloat16, device_map="auto")
model = PeftModel.from_pretrained(model, adapter)
messages = [
{"role": "system", "content": "Pote français Gen Z, brainrot naturel, drôle et jamais boomer."},
{"role": "user", "content": "j'ai un partiel de droit constitutionnel lundi"},
]
text = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tok(text, return_tensors="pt", add_special_tokens=False).to(model.device)
out = model.generate(**inputs, max_new_tokens=60, do_sample=True, temperature=0.8, top_p=0.9)
print(tok.decode(out[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True))
Utilisez un message système proche de ceux de l'entraînement (ci-dessous) : le modèle a été entraîné avec eux, et les réponses se dégradent avec un message très différent.
Données d'entraînement
data_best.jsonl : 2 365 conversations (2 247 pour l'entraînement, 118 pour la validation,
tirées au hasard), au format {"messages": [system, user, assistant, ...]} avec un à trois
tours de réponse. Environ 17 % sont en français, le reste en anglais.
Messages système (31 variantes), par exemple :
You're a genz friend who speaks brainrot. Keep it casual and funny.Pote français Gen Z, brainrot naturel, drôle et jamais boomer.
Construction : mélange de trois fichiers de conversations courtes, dédoublonné. Le fichier français d'origine contenait 10 393 lignes dont 10 020 provenaient de 40 scénarios répétés 250 fois (seulement 660 conversations distinctes) : un premier entraînement dessus mémorisait ces scénarios (loss à 0,001, validation faussée par des doublons entre train et val). Ces scénarios sont ici plafonnés à 3 variantes chacun. Les données sont écrites à la main ou générées à partir de gabarits, pas collectées auprès de personnes réelles.
Entraînement
- Méthode : SFT avec LoRA ; la loss ne porte que sur les réponses de l'assistant (messages système et utilisateur masqués).
- LoRA : rang 16, alpha 32, dropout 0,05, sur q/k/v/o/gate/up/down_proj (40 370 176 paramètres entraînables, 0,53 % du modèle).
- Hyperparamètres : learning rate 1e-4 (cosinus, 5 % de warmup), batch 8, longueur maximale 256 tokens, AdamW, bf16 (adapter en fp32), graine 0. Jusqu'à 3 epochs avec arrêt anticipé.
- Résultat : val loss 2,244 (epoch 1), 2,193 (epoch 2, conservée), 2,380 (epoch 3 : surapprentissage). L'adapter publié est celui de l'epoch 2.
- Matériel : un GPU NVIDIA RTX PRO 6000 sur Hugging Face Jobs, quelques minutes.
- Versions : PEFT 0.21.1.
Évaluation
Préliminaire : lm-evaluation-harness, message système neutre, format de chat, 25 questions
par tâche (par sous-tâche pour MMLU). Les écarts de moins de quelques points ne sont pas
significatifs à cette taille d'échantillon.
| Qwen2.5-7B-Instruct | + LoRA | |
|---|---|---|
| MMLU | 0,709 | 0,725 |
| HellaSwag | 0,60 | 0,64 |
| ARC-Challenge | 0,48 | 0,52 |
Lecture prudente : le fine-tuning n'a pas dégradé ces scores. Une évaluation sur les jeux
complets (avec TruthfulQA et IFEval) est en cours ; ses résultats seront dans bench/.
Ces benchmarks ne mesurent pas le style, évalué seulement à la main.
Limites et risques
- Réponses très courtes et peu utiles : ce sont des punchlines, pas des conseils.
- Cohérence variable sur les cas nouveaux : correct sur certaines phrases (« le grindset juridique » pour un partiel de droit), incohérent sur d'autres (réponse sans rapport pour « ma coloc a mangé mon yaourt »). Il reprend des tournures vues à l'entraînement (« ratio », « boss final », « grindset »).
- Peu de français : environ 17 % des données, d'où des écarts de qualité et des réponses parfois en anglais.
- Textes longs : entraîné sur des messages courts (256 tokens max), il réagit mal à un long texte collé et répond par une formule générique.
- Aucune sécurité apprise : les données ne contiennent aucun exemple de sujet grave. Sur des sujets sensibles (extrémisme, violences historiques), le modèle peut valider ou banaliser des propos qu'une version de base corrige, ou faire une blague déplacée. Ne pas exposer ce modèle à des utilisateurs sans filtre de modération en amont, ni le présenter comme source d'information fiable.
- Hérite des limites de Qwen2.5-7B-Instruct (erreurs factuelles, biais).
Pistes d'amélioration
Ajouter des conversations françaises variées, des exemples de sujets graves traités avec le bon ton (refus ou correction), des messages plus longs ; ajouter un modèle de modération devant le modèle ; mesurer sur un jeu de phrases hors scénarios, plusieurs échantillons par phrase.
Licence
Adapter publié sous Apache-2.0, comme le modèle de base Qwen2.5-7B-Instruct. Vérifier les conditions du modèle de base avant toute diffusion.
- Downloads last month
- -