JusteLeo's picture
Upload README.md
acb61d6 verified
|
Raw
History Blame Contribute Delete
5.38 kB
---
license: other
license_name: lfm1.0
license_link: LICENSE
language:
- fr
base_model: LiquidAI/LFM2-350M
tags:
- text-generation
- emotion-classification
- lfm
- lfm2
---
# French Emotion Recognition Model: french-emotion-recognition
This repository contains a fine-tuned version of the `LiquidAI/LFM2-350M` model, specialized in classifying emotions from French text.
> **GGUF Version Available**
> Looking for a version that runs efficiently on your CPU? A GGUF-quantized version of this model is available here:
> **[JusteLeo/french-emotion-recognition-GGUF](https://huggingface.co/JusteLeo/french-emotion-recognition-GGUF)**
---
## 🇬🇧 English Version
### Model Description
This model is a fine-tune of **[LiquidAI/LFM2-350M](https://huggingface.co/LiquidAI/LFM2-350M)**. It has been trained to identify and classify the following emotions from a given text:
- `joy` (joie)
- `anger` (colere)
- `sadness` (tristesse)
- `fear` (peur)
- `surprise` (surprise)
- `disgust` (dégout)
- `neutral` (neutre)
The model was trained on the following synthetic dataset: **[JusteLeo/French-emotion](https://huggingface.co/datasets/JusteLeo/French-emotion)**.
### How to Use
This model can be used directly with the `text-generation` pipeline from the `transformers` library.
```python
from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer
# Load the model and tokenizer
model_id = "JusteLeo/french-emotion-recognition"
model = AutoModelForCausalLM.from_pretrained(model_id)
tokenizer = AutoTokenizer.from_pretrained(model_id)
# Create the pipeline
emotion_classifier = pipeline(
"text-generation",
model=model,
tokenizer=tokenizer
)
# --- Examples ---
prompts = [
"Je viens de gagner au loto, c'est incroyable !", # "I just won the lottery, it's incredible!"
"Ce plat a un goût vraiment étrange, je n'aime pas du tout.", # "This dish has a really weird taste, I don't like it at all."
"La date limite pour le projet est demain et je n'ai rien commencé.", # "The project deadline is tomorrow and I haven't started anything."
"Il est 15h00." # "It's 3:00 PM."
]
for prompt in prompts:
# The model expects a simple instruction; the prompt is the sentence to analyze.
# The generated response will be the detected emotion.
result = emotion_classifier(
prompt,
max_new_tokens=10, # 10 tokens are enough for the emotion name
pad_token_id=tokenizer.eos_token_id,
eos_token_id=tokenizer.eos_token_id
)
print(f"Sentence: '{prompt}'")
# The response contains the prompt + emotion, we only display the generated part.
print(f"Predicted Emotion: {result[0]['generated_text'][len(prompt):].strip()}")
print("-" * 20)
```
### Acknowledgements
- A big thank you to **[Liquid AI](https://huggingface.co/LiquidAI)** for sharing the weights of their excellent `LFM2-350M` model.
- Thanks also to **[Unsloth](https://huggingface.co/unsloth)** to share simple codes for the development process.
---
## 🇫🇷 Version Française
### Description du Modèle
Ce modèle est un affinage de **[LiquidAI/LFM2-350M](https://huggingface.co/LiquidAI/LFM2-350M)**. Il a été entraîné pour identifier et classifier les émotions suivantes dans un texte donné :
- `joie`
- `colere`
- `tristesse`
- `peur`
- `surprise`
- `dégout`
- `neutre`
Le modèle a été entraîné sur le jeu de données synthétique suivant : **[JusteLeo/French-emotion](https://huggingface.co/datasets/JusteLeo/French-emotion)**.
### Comment l'utiliser ?
Ce modèle peut être utilisé directement avec la pipeline `text-generation` de la bibliothèque `transformers`.
```python
from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer
# Charger le modèle et le tokenizer
model_id = "JusteLeo/french-emotion-recognition"
model = AutoModelForCausalLM.from_pretrained(model_id)
tokenizer = AutoTokenizer.from_pretrained(model_id)
# Créer la pipeline
emotion_classifier = pipeline(
"text-generation",
model=model,
tokenizer=tokenizer
)
# --- Exemples ---
prompts = [
"Je viens de gagner au loto, c'est incroyable !",
"Ce plat a un goût vraiment étrange, je n'aime pas du tout.",
"La date limite pour le projet est demain et je n'ai rien commencé.",
"Il est 15h00."
]
for prompt in prompts:
# Le modèle attend une instruction simple, le prompt est la phrase à analyser.
# La réponse générée sera l'émotion détectée.
result = emotion_classifier(
prompt,
max_new_tokens=10, # Une dizaine de tokens est suffisant pour le nom de l'émotion
pad_token_id=tokenizer.eos_token_id,
eos_token_id=tokenizer.eos_token_id
)
print(f"Phrase : '{prompt}'")
# La réponse contient le prompt + l'émotion, nous affichons seulement la partie générée.
print(f"Émotion prédite : {result[0]['generated_text'][len(prompt):].strip()}")
print("-" * 20)
```
### Remerciements
- Un grand merci à **[Liquid AI](https://huggingface.co/LiquidAI)** pour avoir partagé les poids de leur excellent modèle `LFM2-350M`.
- Merci également à **[Unsloth](https://huggingface.co/unsloth)** de partager des codes simples pour le processus de fine-tuning.