| --- |
| language: |
| - fr |
| license: mit |
| tags: |
| - philosophy |
| - socratic |
| - french |
| - croissant-llm |
| base_model: croissantllm/CroissantLLMChat-v0.1 |
| --- |
| |
| [](https://opensource.org/licenses/MIT) |
| [](https://huggingface.co/XenocodeRCE/Croissantine) |
|
|
| # 🎓 Croissantine |
|
|
| Modèle de langage français fine-tuné pour répondre aux questions dans un "style socratique". |
|
|
| ## 📋 Description |
|
|
| Ce modèle est basé sur **CroissantLLM-v0.1** (1.3B paramètres) et fine-tuné avec **LoRA** sur 748 paires question-réponse philosophiques. |
|
|
| **Caractéristiques** : |
| - Répond par des questions pour stimuler la réflexion |
| - Explore plusieurs angles d'une même question |
|
|
| ## 🚀 Utilisation |
|
|
| ```python |
| from transformers import AutoTokenizer, AutoModelForCausalLM |
| import torch |
| |
| # Charger le modèle |
| model_path = "XenocodeRCE/Croissantine" |
| tokenizer = AutoTokenizer.from_pretrained(model_path) |
| model = AutoModelForCausalLM.from_pretrained( |
| model_path, |
| device_map="auto", |
| torch_dtype=torch.bfloat16 |
| ) |
| |
| # Générer une réponse |
| prompt = "Peut-on tout dire ?" |
| messages = [{"role": "user", "content": prompt}] |
| inputs = tokenizer.apply_chat_template(messages, return_tensors="pt").to(model.device) |
| |
| outputs = model.generate( |
| inputs, |
| max_new_tokens=300, |
| temperature=0.75, |
| do_sample=True, |
| top_p=0.9, |
| repetition_penalty=1.05, |
| no_repeat_ngram_size=3 |
| ) |
| |
| response = tokenizer.decode(outputs[0], skip_special_tokens=True) |
| print(response) |
| ``` |
|
|
| ## 📊 Entraînement |
|
|
| - **Méthode** : SFT avec LoRA (rank 16) |
| - **Quantization** : 4-bit NF4 |
| - **Dataset** : 748 exemples |
| - **Loss finale** : 0.60 |
| - **Epochs** : 7 |
|
|
| ## 💡 Exemple |
|
|
| **Question** : Peut-on tout dire ? |
|
|
| **Réponse** : |
| > Tout dire, sans risquer le ridicule ou la censure ? Le discours est-il une affaire privée où chacun est seul juge de ses paroles et de leurs conséquences ? Ou peut-il être un acte public qui engage tous les citoyens d'un pays ? Les limites du langage sont-elles celles que l'on croit : celle des autres, de soi-même, de l'histoire ? Et si on ne dit rien, est-ce vraiment parce qu'on n'a rien à dire ? Chacun doit décider pour lui-même ce qu'il veut entendre. Mais cela suppose-t-il d'être d'accord avec lui sur tout, y compris sur son propre sens des mots ? La parole vraie n'existe-t-elle qu'en partageant cette vérité au-delà de toute règle ? |
|
|
| ## ⚠️ Limitations |
|
|
| - Modèle de 1.3B paramètres (performances limitées comparé aux modèles > 7B) |
| - Entraîné uniquement sur 748 exemples |
| - Fonctionne mieux sur les questions philosophiques classiques |
| - Peut générer des réponses parfois trop abstraites |
|
|
| ## 📄 Licence |
|
|
| MIT |