Ffftdtd5dtft commited on
Commit
20125f3
verified
1 Parent(s): 89486e5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +47 -59
app.py CHANGED
@@ -8,12 +8,10 @@ import matplotlib.animation as animation
8
  import time
9
  import threading
10
  from tqdm import tqdm
11
- from transformers import AutoTokenizer, AutoModel, TrainingArguments, pipeline
12
  from diffusers import DiffusionPipeline
13
  from huggingface_hub import login, HfApi, Repository
14
  from dotenv import load_dotenv
15
- import gradio as gr
16
-
17
 
18
  # Cargar variables de entorno
19
  load_dotenv()
@@ -114,6 +112,9 @@ def main():
114
 
115
  # Inicializar los pipelines
116
  pipelines_to_unify = [
 
 
 
117
  DiffusionPipeline.from_pretrained("stabilityai/stable-video-diffusion-img2vid-xt-1-1"),
118
  pipeline("automatic-speech-recognition", model="openai/whisper-small"),
119
  DiffusionPipeline.from_pretrained("black-forest-labs/FLUX.1-dev"),
@@ -134,6 +135,13 @@ def main():
134
  pipeline("text-generation", model="Groq/Llama-3-Groq-8B-Tool-Use")
135
  ]
136
 
 
 
 
 
 
 
 
137
  tokenizers = {}
138
  models = []
139
  for model_name in models_to_train:
@@ -146,8 +154,11 @@ def main():
146
  tokenizers[model_name] = tokenizer
147
  models.append(model)
148
 
149
- # Agregar pipelines como modelos
150
- models.extend(pipelines_to_unify)
 
 
 
151
 
152
  # Crear un dataset sint茅tico para entrenamiento y evaluaci贸n
153
  synthetic_dataset = SyntheticDataset(tokenizers, size=100)
@@ -191,45 +202,43 @@ def main():
191
  def train(model, train_loader, eval_loader, args):
192
  model.train()
193
  epoch = 0
194
- total_steps = args.num_train_epochs * len(train_loader)
195
- progress_bar = tqdm(total=total_steps, desc="Training")
196
-
197
- while epoch < args.num_train_epochs:
198
  start_time = time.time()
199
- for step, batch in enumerate(train_loader):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
200
  input_ids = [batch[f"input_ids_{name}"].to("cpu") for name in tokenizers.keys()]
201
  attention_mask = [batch[f"attention_mask_{name}"].to("cpu") for name in tokenizers.keys()]
202
  labels = batch["label"].to("cpu")
203
- optimizer.zero_grad()
204
  outputs = model(input_ids)
205
  loss = nn.CrossEntropyLoss()(outputs, labels)
206
- loss.backward()
207
- optimizer.step()
208
- progress_bar.update(1)
209
-
210
- elapsed_time = time.time() - start_time
211
- estimated_total_time = total_steps * (elapsed_time / (step + 1))
212
- estimated_remaining_time = estimated_total_time - elapsed_time
213
-
214
- if step % args.logging_steps == 0:
215
- train_losses.append(loss.item())
216
- print(f"Step {step}/{total_steps}, Loss: {loss.item()}, Estimated remaining time: {estimated_remaining_time:.2f} seconds")
217
-
218
- epoch += 1
219
- model.eval()
220
- eval_loss = 0
221
- with torch.no_grad():
222
- for batch in eval_loader:
223
- input_ids = [batch[f"input_ids_{name}"].to("cpu") for name in tokenizers.keys()]
224
- attention_mask = [batch[f"attention_mask_{name}"].to("cpu") for name in tokenizers.keys()]
225
- labels = batch["label"].to("cpu")
226
- outputs = model(input_ids)
227
- loss = nn.CrossEntropyLoss()(outputs, labels)
228
- eval_loss += loss.item()
229
-
230
- eval_loss /= len(eval_loader)
231
- eval_losses.append(eval_loss)
232
- print(f"Epoch {epoch}/{args.num_train_epochs}, Evaluation Loss: {eval_loss}")
233
 
234
  train(unified_model, train_loader, eval_loader, training_args)
235
 
@@ -257,26 +266,5 @@ def main():
257
  print(f"Error: {e}")
258
  time.sleep(2)
259
 
260
-
261
-
262
- def gradio_app():
263
- with gr.Blocks() as app:
264
- gr.Markdown(
265
- """
266
- # IA Generativa con Transformers y Diffusers
267
- Explora diferentes modelos de IA para generar texto, im谩genes, audio, video y m谩s.
268
- """
269
- )
270
- app.launch()
271
-
272
-
273
-
274
-
275
-
276
  if __name__ == "__main__":
277
  main()
278
- gradio_app()
279
-
280
-
281
-
282
-
 
8
  import time
9
  import threading
10
  from tqdm import tqdm
11
+ from transformers import AutoTokenizer, AutoModel, AutoModelForTextToWaveform, TrainingArguments, pipeline
12
  from diffusers import DiffusionPipeline
13
  from huggingface_hub import login, HfApi, Repository
14
  from dotenv import load_dotenv
 
 
15
 
16
  # Cargar variables de entorno
17
  load_dotenv()
 
112
 
113
  # Inicializar los pipelines
114
  pipelines_to_unify = [
115
+ pipeline("text-to-audio", model="facebook/musicgen-melody"),
116
+ pipeline("text-to-audio", model="facebook/musicgen-large"),
117
+ pipeline("text-to-audio", model="facebook/musicgen-small"),
118
  DiffusionPipeline.from_pretrained("stabilityai/stable-video-diffusion-img2vid-xt-1-1"),
119
  pipeline("automatic-speech-recognition", model="openai/whisper-small"),
120
  DiffusionPipeline.from_pretrained("black-forest-labs/FLUX.1-dev"),
 
135
  pipeline("text-generation", model="Groq/Llama-3-Groq-8B-Tool-Use")
136
  ]
137
 
138
+ # A帽adir modelos adicionales
139
+ additional_models = [
140
+ "facebook/musicgen-large",
141
+ "facebook/musicgen-melody"
142
+ ]
143
+
144
+ # Inicializar los tokenizadores y modelos
145
  tokenizers = {}
146
  models = []
147
  for model_name in models_to_train:
 
154
  tokenizers[model_name] = tokenizer
155
  models.append(model)
156
 
157
+ for model_name in additional_models:
158
+ tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=True)
159
+ model = AutoModelForTextToWaveform.from_pretrained(model_name)
160
+ tokenizers[model_name] = tokenizer
161
+ models.append(model)
162
 
163
  # Crear un dataset sint茅tico para entrenamiento y evaluaci贸n
164
  synthetic_dataset = SyntheticDataset(tokenizers, size=100)
 
202
  def train(model, train_loader, eval_loader, args):
203
  model.train()
204
  epoch = 0
205
+ total_steps = len(train_loader)
206
+ for step, batch in enumerate(train_loader):
 
 
207
  start_time = time.time()
208
+ input_ids = [batch[f"input_ids_{name}"].to("cpu") for name in tokenizers.keys()]
209
+ attention_mask = [batch[f"attention_mask_{name}"].to("cpu") for name in tokenizers.keys()]
210
+ labels = batch["label"].to("cpu")
211
+ optimizer.zero_grad()
212
+ outputs = model(input_ids)
213
+ loss = nn.CrossEntropyLoss()(outputs, labels)
214
+ loss.backward()
215
+ optimizer.step()
216
+
217
+ progress_bar.update(1)
218
+
219
+ elapsed_time = time.time() - start_time
220
+ estimated_total_time = total_steps * (elapsed_time / (step + 1))
221
+ estimated_remaining_time = estimated_total_time - elapsed_time
222
+
223
+ if step % args.logging_steps == 0:
224
+ train_losses.append(loss.item())
225
+ print(f"Step {step}/{total_steps}, Loss: {loss.item()}, Estimated remaining time: {estimated_remaining_time:.2f} seconds")
226
+
227
+ epoch += 1
228
+ model.eval()
229
+ eval_loss = 0
230
+ with torch.no_grad():
231
+ for batch in eval_loader:
232
  input_ids = [batch[f"input_ids_{name}"].to("cpu") for name in tokenizers.keys()]
233
  attention_mask = [batch[f"attention_mask_{name}"].to("cpu") for name in tokenizers.keys()]
234
  labels = batch["label"].to("cpu")
 
235
  outputs = model(input_ids)
236
  loss = nn.CrossEntropyLoss()(outputs, labels)
237
+ eval_loss += loss.item()
238
+
239
+ eval_loss /= len(eval_loader)
240
+ eval_losses.append(eval_loss)
241
+ print(f"Epoch {epoch}/{args.num_train_epochs}, Evaluation Loss: {eval_loss}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
242
 
243
  train(unified_model, train_loader, eval_loader, training_args)
244
 
 
266
  print(f"Error: {e}")
267
  time.sleep(2)
268
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
269
  if __name__ == "__main__":
270
  main()