FastAI 2 para a gente de habla hispana Español - Mega Hilo

¡Hola a todos! Estoy creando un hilo de conversaion para toda la gente que no lee ni habla ingles. Ya que en mi opinion Fasai es la mejor libreria de alto nivel para implementar Redes Neuronales (¡gracias a @Jeremy y @sgugger por todo el increíble trabajo que ha realizado!).

Es para mi muy importante que estas enseñanzas puedan llegar a la comunidad latina que no habla ingles, por que les va a facilitar la implementacion de RN o deep learning, con las ulitimas y mas avnazadas tecnicas en el mercado de investigacion.

Realmente no necesitamos aprender tanta matematica o otras cosas hoy en dia para implementar RN, es lo mismo que tratar de crear paginas web on un editor de texto, ya nadie lo hace…

Por aqui estaremos contestando preguntas para todos los interezados.

el link para el codigo en español en Github es este codigo y el canal de youtube para los video es aqui videos

Poco a poco ire subiendo cada Jupyter Notebook con todas las explicaciones en español , es importante notar que todo el trabajo es de @Jeremy y su equipo de trabajo, yo solo voy hacer traducciones y explicar el codigo como lo ha echo el en sus videos, aqui videos

Este es mi linkedin para aquellos que quieran saber un poco mas de mi.

Oscar Rangel

5 Likes

Buena idea Óscar! Espero que esto ayude a atraer más gente a la comunidad :wink:

Me parece una idea genial!

Tenia una pregunta, sabeis si el model gpt-2 esta disponible en español o si alguien lo ha entrenado?

Queria hacer un proyecto con unos amigos de generacion de frases haciendo finetuning con nuestras conversaciones de whatsapp pero no se que modelo entrenar para esta tarea…

Gracias @vrodriguezf ! todos en equipo contribuyendo seremos mas fuerte como latinos!

Hola @gsidorov, fijate que este modelo es de openai.com, pero el modelo completo no esta disponible, por razones de seguridad (eso dicen ellos)…

OpenAI es mas que todo reimforcement learning, que es otro tipo de implementar AI. Puedes conseguir el modelo que esta a la disipocion que es mas pequeño para experimentos con (1.5B parameters) lo consigues aqui

También puedes conseguir el modelo completo pero tienes que pasar varios filtros con ellos para ver si lo comparten contigo.

Si necesitas ayuda para traducir o ayudarte en el proyecto dejame saber con gusto te ayudo.

1 Like

Buenas @orangelmx

Muchisimas gracias por tu respuesta,

Ya tenia mirado el tema de que existe la versoin de gpt-2 en ingles, de hecho he jugado un poco descargandome tweets y entrenando el modelo para imitar el habla de ciertas personas, funciona de manera interesante

Pero lo que queria saber era como podriamos hacer el mismo proceso cuando el input son datos en español? Y que pasaría con el output? estaria en ingles?

Por lo que entiendo de deep learning, necesito tener un modelo de gpt-2 en español (si es que lo hay) y entrenarlo con mis inputs (chats en español)

Por otro lado, creo que lo que quiero hacer sería posible de replicar con Berto, (Bert en español), aunque Bert es un modelo para clasificar frases cogiendo como input la frase entera.

Por ello, habría que modificar el modelo para que intente predecir la siguiente palabra, en lugar de la estructura actual.

Si alguien esta interesado en algun proyecto de generacion de texto en español, podríamos mirarlo!

Un saludo,

Hola a todos!
Si de alguna manera podemos contribuir a la comunidad de habla hispana seria de gran agrado!

Podémos crear un grupo de estudio o para organizarnos, podemos usar Slack
Un abrazo a todos!

Creo que slack es medio restrictivo por el historial y la paga…

Pense que era gratuito … pero podrías ver una forma …
Lo bueno es que se genere comunidad.

Ahora estoy revisando Intro to Machine Learning: Lesson 2 -3

Me parece muy buen curso, centrado ahora en Random Forest … he visto los syllabus de varios cursos de Machine Learning y. te llevan por un buen numero de métodos tanto para regresión como para clasificación sin enfocarse en uno a detalle.

En lo personal me parece que este curso es super bueno!

Un abrazo, a ver si logramos ser un buen grupo!!!

Hola @LeTorres,

Pienso que es mejor quedarnos por aquí, ya que aquí es parte de fastai, no me gustaría alejarnos del papa que es fastai, y entonces convertirse en otra entidad.

Gracias por la sugerencia.

Hola @LeTorres,

Tengo 20+ a;nos en la industria de Ingeniería de software, y par de anos en AI, y realmente si necesitamos los detalles pero no para hacer Deep Learning, la forma que Jeremy se enfoca es desde arriba para abajo, menos detalles a mas detalles, ya que realmente, los detalles no son tan importantes cuando tienes una librería como fastai, fastai2.

Es como cuando salio Windows Beta en principio de los 90’s teníamos que dibujar con codogo los botones y las sombre de los botones etc, pero despues llego Visual Studio, y ya podíamos concentrarnos en el problema del ngocio a resolver, ( domain problem) y menos en el GUI.

Igual pasa aqui ya podemos concentrarnos mas en problema de negocio que tenemos que resolver y menos en el detalle.

Ya que la mayoría de el codigo que se escribe es “boiler code” es repetitivo, como el training loop, vaildation code, etc.

Y sobre todo utiliza las tecnicas mas recientes y modernas de entrenar modelos.

Pero tambien hay mucho que hacer en la parte de investigación, creación de librerías, etc. Que es otra rama de AI, donde si se necesita saber todo el detalle. Pero este es un buen principio y después si uno quiere puede meterse mas crear librerías o nuevos activadores de neuronas etc.

Por supuesto, la idea no es separarse de Fastai, pero entiendo tu punto

Fastai me parece una gran comunidad y creo en sus fundamentos de democratizar y hace entendible esta tecnología.

Muchas gracias @orangelmx!

Gracias por la explicación!!! :clap:t4: :clap:t4: :clap:t4:

Hola @gsidorov,

Ya parece que salio el GPT3…

Tienes razón, este modelo esta entrenado utilizando 8+ millones de paginas Web, la pregunta que e hago es serán todas en ingles o son de varios idiomas? ya que tiene 1.5 BILLONES de parametros…

Lo otro que tenemos que acordanos es que el motor no ve palabras o frazes, solo numeros, que son los tensors.

Has tratado de hacer transfer learning? por que ellos hablan de que es como el camaleon, se adapta al estilo y el texto.

Siendo lo mas importante la arquitectura del modelo o motor, no es una arquitectura particularmente novedosa: su arquitectura es muy similar al transformador solo de decodificador. Sin embargo, el GPT2 es un modelo de lenguaje muy grande, basado en transformadores, entrenado en un conjunto de datos masivo.

El GPT-2 fue entrenado en un conjunto de datos masivo de 40GB llamado WebText que los investigadores de OpenAI rastrearon el Internet como parte del esfuerzo de investigación. Para comparar en términos de tamaño de almacenamiento, la aplicación de teclado, SwiftKey, ocupa 78 MB de espacio. La variante más pequeña del GPT-2 entrenado, ocupa 500 MB de almacenamiento para almacenar todos sus parámetros. La variante GPT-2 más grande tiene 13 veces el tamaño, por lo que podría ocupar más de 6.5 GB de espacio de almacenamiento.

Aqui tendríamos que ver que lenguajes de paginas web utilizaron, ya lo sabes ?

Una excelente manera de experimentar con GPT-2 es usar el Explorador AllenAI GPT-2

Ya que utilizado esta herramiento puede predecir espa;nol tambien…

Creo que es mejor seguir con GPS-2,3 que BERT.

Dime como mas te puedo ayudar, o podemos continuar la investigacion juntos y si alguien mas se quiere unir?

Que tipo de hardware tienes para entrenar modelos ?

Oscar.

Buenos días, estoy trabajando con redes neuronales convolucionales, si alguien tiene una red que me pueda facilitar le agradezco mucho. MI correo es jorgemariomtz12@gmail.com

Hola @jorgemariomtz12,

Creo que no parece bien tu pregunta, ya que hay miles de tipos de redes neuronales, para miles de diferentes soluciones…

Vas a tener que ser mas especifico para poderte ayudar.

Hola Oscar, estoy trabajando con imágenes etiquetadas en 10 clases, quiero usar distintas redes neuronales convolucionales como AlexNet, Resnet y otras que me puedan ayudar para verificar cual tiene mejor eficiencia con las imágenes que estoy trabajando, en verdad agradezco mucho.
Mi correo jorgemariomtz12@gmail.com o si me puede regalar su correo tengo una red con Fastai V7 pero presenta un error y no he podido encontrarlo.

Hola @jorgemariomtz12,

Ahh ya empezamos a definir algo, pero todavia te falta varias cositas,

1.- Que framework estas utilizando? Pytorh, Tensorflow, Fastai, Fastai2, Keras ?
2.- Me imagino que estas utilizando Python, verdad?
3.- para Imágenes lo mejor que funciona son los modelos de Resnet
4.- Todos los modelos que hay en en Internet tienen sus metricas de evaluacion y comparacion con otros modelos. Aqui tienes una lista de los mas populares aqui
5.- quieres entrenar los modelos desde cero o quieres hacer transferencia de conocimientos?

Puedes explicar que es una Red de Fastai…? quieres decir que estas utilizando la libreia de fastai ver 1 ?

Sobre el error, se necesita saber que OS tienes, configuración del hardware, y sobre todo la leyenda del error.

Es mejor que sigamos por aqui, por ahora, para que las preguntas y respuestas ayuden otras personas.

Bendiciones.

Hola Oscar, por el momento una un red fastai version 0.7, te comparto la estructura que estoy corriendo en mi pc. en Jupyter, no tengo GPU, intento conectarla en google colab pero no he podido, pero para probar si funciona la estoy corriendo en Jupyter , mas adelante intentare correrla en otro pc.
ME GUSTARÍA HACER TRASFERENCIA DE CONOCIMIENTO CON RESNET USANDO TENSORFLOW. SI TIENES ALGUNA RED QUE ME AYUDE CON ESO TE AGRADEZCO, TENGO QUE GENERAR UNA MATRIZ DE CONFUNCIÓN AL FINAL.

import matplotlib.pyplot as plt
%reload_ext autoreload
%autoreload 2
%matplotlib inline
from fastai.imports import *
from fastai.torch_imports import *
from fastai.transforms import *
from fastai.conv_learner import *
from fastai.model import *
from fastai.dataset import *
from fastai.sgdr import *
from fastai.plots import *
from random import sample
from itertools import chain
from sklearn.metrics import confusion_matrix
from itertools import chain
from random import sample

torch.cuda.set_device(0)   ### use first GPU if you have many
PATH = "data/data_rmsalt_rmol2/pics/" ### path to where your pictures are downloaded and the .csv files with val sets
sz = 224  ### resize images to this px by px
arch = resnext101_64  ### pre-trained network choice
bs = 200   ### batch size for minibatches


def get_val_cv_byclass(label_csv):
    label_df = pd.read_csv(label_csv)
    val_idxs = []
    for x in label_df['class'].unique(): ### should be class but reversed column labels
        start= label_df.index[label_df['class'] == x].tolist()[0]
        end = start+len(label_df.index[label_df['class'] == x].tolist())-1
        n_sample= int(round((end-start)*0.2,0))
        val_idxs.append(random.sample(range(start,end),n_sample))
    val_idxs = list(chain.from_iterable(val_idxs))
    return val_idxs

def get_val_idx_fromfile(validx_csv):
    validx_df =pd.read_csv(validx_csv, header=None)
    return validx_df[0].tolist()
    
def get_data(sz, bs, val_idxs, label_csv): # sz: image size, bs: batch size
    tfms = tfms_from_model(arch, sz, aug_tfms=transforms_top_down, max_zoom=1.1)
    data = ImageClassifierData.from_csv(PATH, 'train', label_csv,
                                       val_idxs=val_idxs, suffix='.png', tfms=tfms, bs=bs, num_workers=3)
    return data if sz > 300 else data.resize(340, 'tmp')

label_csv = f'{PATH}3cls_rmsaltol.csv'
#n = len(list(open(label_csv))) - 1
vacc =[]
reps=5
start=0
bs=200
valididx_base = '3cls_val_ids'

for rep in range(reps):
    print(rep+start)
    val_idxs = get_val_idx_fromfile(f'{PATH}'+valididx_base+str(rep+start)+'.csv')
    data = get_data(sz, bs, val_idxs, label_csv)
    learn = ConvLearner.pretrained(arch, data, precompute=True)
    val_loss, val_acc = learn.fit(1e-2, 10, cycle_len=1, cycle_mult=2)
    vacc.append(val_acc)
print('3 class average, cyclic learning')
print(np.mean(vacc))
print(np.std(vacc))

HASTA ACA LA RED EMPIEZA A CORRER PERO DESPUES DE DOS HORAS ME MUESTRA EL SIGUIENTE ERROR, AUN ASÍ ME MUESTRA LA MATRIZ DE CONFUNSIÓN, PERO COMO NO TERMINA LA EFICIENCIA NO ES LA ESPERADA, PARECE QUE LA RED PRE-ENTRENADA O BUENO NO HE PODIDO SABER BIEN

1-. Amigo, creo que tienes par de cosas confundias, si utilizas fastai, no puedes utilizar tensorflow!!! ya que fastai se asienta sobre Pytorch no Tensorflow. aparte que no tienes importado nada de tensorflow por nigun lado.