Views
No views yet
1from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
2import torch
3
4MODEL_NAME = "papasega/gpt-oss-20b-mxfp4-HF4-Multilingual-Thinking"
5
6print("🔄 Chargement du modèle (cela peut prendre quelques petites minutes)...\n")
7
8model = AutoModelForCausalLM.from_pretrained(
9 MODEL_NAME,
10 dtype="auto",
11 device_map="cuda",
12)
13
14tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
15
16print("✅ Modèle chargé avec succès !")
17if torch.cuda.is_available():
18 print(f"📊 Mémoire GPU utilisée : {torch.cuda.memory_allocated() / 1e9:.2f} Go")
19
20###----*---#### Génération d'une réponse pour la résolution de l'equation x^4 + 2 = 0.
21
22def generate_response(messages, reasoning_effort="low", max_tokens=512, verbose=True):
23 """
24 Fonction helper pour générer une réponse
25
26 Args:
27 messages (list): Liste de dictionnaires {role, content}
28 reasoning_effort (str): "low", "medium", ou "high"
29 max_tokens (int): Nombre max de tokens à générer
30 verbose (bool): Afficher les détails
31 """
32 if verbose:
33 print(f"🧠 Niveau de raisonnement: {reasoning_effort.upper()}")
34 print(f"📝 Génération de {max_tokens} tokens maximum\n")
35 print("-" * 70)
36
37 inputs = tokenizer.apply_chat_template(
38 messages,
39 add_generation_prompt=True,
40 return_tensors="pt",
41 return_dict=True,
42 reasoning_effort=reasoning_effort,
43 ).to(model.device)
44
45 streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
46
47 with torch.inference_mode():
48 _ = model.generate(
49 **inputs,
50 max_new_tokens=max_tokens,
51 streamer=streamer,
52 temperature=0.7, ###----*---#### Agis dans la créativité du modèle
53 top_p=0.9,
54 do_sample=True,
55
56 )
57
58 print("\n" + "-" * 70)
59
60messages_exemple1 = [
61 {"role": "system", "content": "reasoning language: French\n\nTu es un assistant pédagogique."},
62 {"role": "user", "content": "Résout cette equation pour un élève en classe de seconde qui ne connait pas les complexes et élève en classe de Terminale : x^4 + 2 = 0."}
63]
64
65generate_response(messages_exemple1, reasoning_effort="low", max_tokens=512)
66