-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
72 lines (61 loc) · 2.36 KB
/
app.py
File metadata and controls
72 lines (61 loc) · 2.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
import torch
# Charger le modèle et le tokenizer BARThez
model_name = "moussaKam/barthez"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
# Mettre le modèle en mode évaluation
model.eval()
# Utiliser GPU si disponible
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)
def resumer_texte(texte, max_length=150, min_length=40, num_beams=4):
"""
Résume un texte en français avec BARThez
Args:
texte: Le texte à résumer
max_length: Longueur maximale du résumé
min_length: Longueur minimale du résumé
num_beams: Nombre de beams pour la recherche (plus élevé = meilleure qualité)
Returns:
Le texte résumé
"""
# Tokeniser le texte d'entrée
inputs = tokenizer(
texte,
max_length=1024,
truncation=True,
return_tensors="pt"
).to(device)
# Générer le résumé
with torch.no_grad():
summary_ids = model.generate(
inputs["input_ids"],
max_length=max_length,
min_length=min_length,
num_beams=num_beams,
length_penalty=2.0,
early_stopping=True
)
# Décoder le résumé
resume = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
return resume
# Exemple d'utilisation
if __name__ == "__main__":
texte_exemple = """
L'intelligence artificielle transforme rapidement notre monde.
Les avancées en apprentissage automatique permettent désormais aux machines
de comprendre le langage naturel, de reconnaître des images et même de générer
du contenu créatif. Ces technologies sont utilisées dans divers domaines,
de la médecine à la finance, en passant par l'éducation. Cependant, ces progrès
soulèvent également des questions éthiques importantes concernant la vie privée,
l'emploi et la responsabilité. Il est crucial que nous développions ces
technologies de manière responsable pour maximiser leurs bénéfices tout en
minimisant les risques potentiels.
"""
print("Texte original:")
print(texte_exemple)
print("\n" + "="*50 + "\n")
resume = resumer_texte(texte_exemple)
print("Résumé:")
print(resume)