Clemylia commited on
Commit
1f4a2ac
·
verified ·
1 Parent(s): f232114

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +19 -92
README.md CHANGED
@@ -63,98 +63,25 @@ ou du moins, nous ne sommes pas responsables des conséquences, si quelq'un est
63
  exemple de code d'utilisation :
64
 
65
  ```
66
- # ==============================================================================
67
- # 1. INSTALLATION ET IMPORTS
68
- # ==============================================================================
69
- # Accelerate n'est pas strictement nécessaire pour la simple inférence CPU
70
- !pip install -q transformers torch
71
-
72
- import torch
73
- from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
74
-
75
- # ==============================================================================
76
- # 2. DÉFINITION DES CONSTANTES ET CHARGEMENT
77
- # ==============================================================================
78
- MODEL_NAME = "Clemylia/Lam-3" # Votre modèle finetuné
79
- # Définir explicitement l'appareil sur CPU
80
- DEVICE = "cpu"
81
-
82
- # Chargement du modèle sur CPU peut prendre du temps et consommer beaucoup de RAM
83
- print(f"Chargement du modèle {MODEL_NAME} sur {DEVICE}...")
84
-
85
- # Chargement du tokenizer
86
- tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
87
- tokenizer.pad_token = tokenizer.eos_token
88
-
89
- # Chargement du modèle. Nous chargeons en float32 (par défaut) pour la compatibilité CPU.
90
- # Nous mappons explicitement sur le CPU.
91
- model = AutoModelForCausalLM.from_pretrained(
92
- MODEL_NAME,
93
- torch_dtype=torch.float32, # float32 est standard pour le CPU
94
- device_map=DEVICE # Mappage explicite sur le CPU
95
- ).to(DEVICE) # Assurez-vous que le modèle final est sur CPU
96
-
97
- # ==============================================================================
98
- # 3. PRÉPARATION DE LA REQUÊTE ET GÉNÉRATION (Méthode manuelle)
99
- # ==============================================================================
100
- QUESTION = "Qui es-tu ? Présente toi"
101
- prompt = f"### Instruction:\{QUESTION}\n\n### Response:\n"
102
-
103
- print("\n--- Génération de la réponse (Manuelle) ---")
104
-
105
- # Tokenization du prompt et placement sur l'appareil (CPU)
106
- inputs = tokenizer(prompt, return_tensors="pt").to(DEVICE)
107
-
108
- # Génération
109
- output_tokens = model.generate(
110
- **inputs,
111
- max_new_tokens=100,
112
- do_sample=True,
113
- temperature=0.7,
114
- top_k=50,
115
- eos_token_id=tokenizer.eos_token_id,
116
- )
117
-
118
- # Décodage
119
- generated_text = tokenizer.decode(output_tokens[0], skip_special_tokens=True)
120
- assistant_prefix = "\n\n### Response:\n"
121
- if assistant_prefix in generated_text:
122
- clean_response = generated_text.split(assistant_prefix)[-1].strip()
123
- else:
124
- clean_response = generated_text.replace(QUESTION, "").strip()
125
-
126
-
127
- print(f"\n🧠 Réponse de {MODEL_NAME} (Manuelle) :\n")
128
- print(clean_response)
129
- print("\n-------------------------------")
130
-
131
- # ==============================================================================
132
- # 4. UTILISATION DE PIPELINE (CORRIGÉE et simplifiée pour CPU)
133
- # ==============================================================================
134
- print("\nTest rapide avec le pipeline (méthode simplifiée) :")
135
-
136
- # Création du pipeline. Nous pouvons laisser le pipeline détecter le CPU
137
- # ou forcer device=-1 pour le CPU (contrairement à la V1, ici nous n'avons pas utilisé
138
- # device_map="auto" donc c'est plus sûr de le spécifier).
139
- generator = pipeline(
140
- "text-generation",
141
- model=model,
142
- tokenizer=tokenizer,
143
- #device=-1 # -1 force l'utilisation du CPU # Removed this line
144
- )
145
-
146
- # Le pipeline utilise le format de chat par défaut pour les modèles de type 'Chat'
147
- result = generator(
148
- QUESTION,
149
- max_new_tokens=100,
150
- do_sample=True,
151
- temperature=0.7
152
- )
153
-
154
- # Affichage du résultat nettoyé par le pipeline
155
- print(f"\n🧠 Réponse de {MODEL_NAME} (Pipeline) :\n")
156
- print(result[0]['generated_text'])
157
- print("\n-------------------------------")
158
  ```
159
 
160
  🎉 **Lam-3 est créatif** : Lam-3 peut inventer des mots et des synthaxes comme tenaire, c'est totalement normal, et est même une fonctionnalité. En tant que SLM il n'est pas conçu pour etre chatgpt.
 
63
  exemple de code d'utilisation :
64
 
65
  ```
66
+ # Load model directly
67
+ from transformers import AutoTokenizer, AutoModelForCausalLM
68
+
69
+ tokenizer = AutoTokenizer.from_pretrained("Clemylia/Lam-3")
70
+ model = AutoModelForCausalLM.from_pretrained("Clemylia/Lam-3")
71
+ messages = [
72
+ {"role": "user", "content": "Qui es-tu ?"},
73
+ ]
74
+ inputs = tokenizer.apply_chat_template(
75
+ messages,
76
+ add_generation_prompt=True,
77
+ tokenize=True,
78
+ return_dict=True,
79
+ return_tensors="pt",
80
+ ).to(model.device)
81
+
82
+ outputs = model.generate(**inputs, max_new_tokens=150, do_sample=True, temperature=0.7, repetition_penalty=1.2)
83
+ print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:]))
84
+ print('fin')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85
  ```
86
 
87
  🎉 **Lam-3 est créatif** : Lam-3 peut inventer des mots et des synthaxes comme tenaire, c'est totalement normal, et est même une fonctionnalité. En tant que SLM il n'est pas conçu pour etre chatgpt.