75 lines
2.5 KiB
Markdown
75 lines
2.5 KiB
Markdown
---
|
|
language:
|
|
- fr
|
|
- en
|
|
- es
|
|
- pt
|
|
- it
|
|
- de
|
|
tags:
|
|
- text-generation
|
|
- information-extraction
|
|
- atomic-propositions
|
|
- distillation
|
|
license: apache-2.0
|
|
base_model: Qwen/Qwen3-0.6B
|
|
---
|
|
|
|
# MPropositioneur-V2
|
|
|
|
**MPropositioneur-V2** est un petit modèle de langage (basé sur Qwen3-0.6B) spécialisé dans l'**extraction de propositions atomiques**. Il a été entraîné par distillation pour décomposer des phrases ou des passages complexes en une liste de déclarations simples, atomiques et indépendantes.
|
|
|
|
Développé par [Luc Pommeret](https://lucpommeret.com) au **LISN (CNRS)**.
|
|
|
|
## Intention d'usage
|
|
|
|
Ce modèle vise à améliorer la qualité et la granularité des informations dans les tâches de :
|
|
- RAG (Retrieval-Augmented Generation) : En indexant des propositions atomiques au lieu de gros paragraphes.
|
|
- Extraction d'Information Ouverte (OpenIE).
|
|
- Simplification de texte et analyse du discours.
|
|
|
|
## Exemple d'utilisation (Python)
|
|
|
|
```python
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer
|
|
import torch
|
|
import json
|
|
|
|
model_id = "Zual/MPropositioneur-V2"
|
|
|
|
tokenizer = AutoTokenizer.from_pretrained(model_id)
|
|
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.float16, device_map="auto")
|
|
|
|
texte = "Le chat et le chien sont dans la cuisine."
|
|
|
|
prompt = f"<|im_start|>user\nAtomize: {texte}<|im_end|>\n<|im_start|>assistant\n"
|
|
inputs = tokenizer(prompt, return_tensors="pt", truncation=True, max_length=8192).to(model.device)
|
|
|
|
with torch.no_grad():
|
|
outputs = model.generate(**inputs, max_new_tokens=2048, do_sample=False)
|
|
|
|
generated_ids = outputs[0][inputs.input_ids.shape[1]:]
|
|
result = tokenizer.decode(generated_ids, skip_special_tokens=True).strip()
|
|
|
|
# La sortie est une liste JSON : ["p1", "p2", ...]
|
|
propositions = json.loads(result)
|
|
for p in propositions:
|
|
print(f"• {p}")
|
|
```
|
|
|
|
**Sortie attendue :**
|
|
```
|
|
• Le chat est dans la cuisine.
|
|
• Le chien est dans la cuisine.
|
|
```
|
|
|
|
## Détails techniques
|
|
- **Architecture de base** : Qwen3-0.6B
|
|
- **Format de prompt** : `<|im_start|>user\nAtomize: {texte}<|im_end|>\n<|im_start|>assistant\n`
|
|
- **Format de sortie** : liste JSON de chaînes `["p1", "p2", ...]`
|
|
- **Objectif** : Générer une liste d'assertions atomiques décontextualisées mais fidèles sémantiquement à la phrase d'origine.
|
|
- **Multilingue** : Entraîné pour supporter plusieurs langues, notamment le français et l'anglais.
|
|
|
|
## Auteur
|
|
|
|
Développé par [Luc Pommeret](https://lucpommeret.com) au **LISN (Laboratoire Interdisciplinaire des Sciences du Numérique), CNRS**. |