Meta-aprendizaje al estilo Huggingface

May 10 2022
Autores Nabarun Barua Git/ LinkedIn/ Towardsdatascience Arjun Kumbakkara Git/ LinkedIn/ Towardsdatascience El metaaprendizaje es una tendencia emocionante en la investigación y antes de pasar a la implementación del proyecto, creemos que primero debemos comprender los conceptos básicos del metaaprendizaje. En el enfoque tradicional de ML/DL, lo que seguimos es que obtenemos un gran conjunto de datos y comenzamos a entrenar en ese conjunto de datos y, finalmente, obtenemos una buena puntuación de precisión.

Autores

Nabarún Barúa

Git / LinkedIn / Hacia la ciencia de los datos

Arjun Kumbakkara

Git / LinkedIn / Hacia la ciencia de los datos

El metaaprendizaje es una tendencia emocionante en la investigación y antes de pasar a la implementación del proyecto, creemos que primero debemos comprender los conceptos básicos del metaaprendizaje.

En el enfoque tradicional de ML/DL, lo que seguimos es que obtenemos un gran conjunto de datos y comenzamos a entrenar en ese conjunto de datos y, finalmente, obtenemos una buena puntuación de precisión.

Ahora, el enfoque de metaaprendizaje es como la forma en que aprende el ser humano, primero aprende en un dominio y después de obtener suficiente conocimiento, luego intenta aprender en el siguiente dominio con un puñado de ejemplos basados ​​en el conocimiento adquirido en el pasado. De esta forma, al repetir este paso varias veces, podemos mejorar la precisión del modelo con datos de entrenamiento limitados. Ahora Meta-Learning funciona mejor que el enfoque tradicional de Fine-Tuning en un gran conjunto de datos donde el conjunto de datos tiene muchos dominios. Sin embargo, en el enfoque tradicional, un modelo a la vez intenta aprender en diferentes dominios aleatorios, lo que aumenta el tiempo de entrenamiento general, mientras que en el modelo de metaaprendizaje aprende un dominio con k datos de entrenamiento de muestra,

Existen múltiples tipos de Meta-Aprendizaje:

  1. Metaaprendizaje basado en métricas
  2. Red siamesa
  3. Red coincidente
  4. Red prototípica
  5. Red de relaciones
    • MAML (metaaprendizaje independiente del modelo)
    • FOMAML: MAML de primer orden
    • Reptil

    En nuestro proyecto, usamos Reptile, una variante de MAML (metaaprendizaje independiente del modelo) del metaaprendizaje basado en la optimización. En la raíz Meta_Learning.py obtenemos un completo proceso de formación de meta-aprendizaje.

    Ahora en Nuestro Proyecto en Meta_Learning.py tenemos dos Funciones que son importantes

    • Meta tarea: esta función crea n tareas aleatorias, es decir, n dominios para entrenamiento con K muestras dadas para el conjunto de entrenamiento y L muestras para el conjunto de prueba.
    • Más delgado: esta función entrena para i epoch para cada tarea dada por Meta Task y actualiza los gradientes al modelo principal al final del tren para todas las tareas.
    Diagrama de metaflujo

    Ahora la pila técnica:

    • Transformadores de cara abrazada
    • Conjuntos de datos de Huggingface
    • Huggingface Acelerar
    • Pytorch

    Ahora hablemos del proyecto ( Github Link )

    Primer paso Comience con la configuración del entorno, tenemos diferentes archivos bash que crearán el entorno local. Seleccione el archivo bash según sus necesidades.

    Imágenes de archivos Bash

    Después de configurar el entorno local, estamos listos para el metaaprendizaje, pero antes de pasar al archivo python de metaaprendizaje. Debemos entender el conjunto de datos que estamos utilizando, a continuación se muestra la cantidad de registros por dominio:

    'ropa': 1717,

    'bebé': 1107,

    'belleza': 993,

    'libros': 921,

    'cámara_&_foto': 1086,

    'teléfonos_celulares_&_servicio': 698,

    'dvd': 893,

    'electrónica': 1277,

    'comestibles': 1100,

    'salud_&_cuidado_personal': 1429,

    'joyas_&_relojes': 1086,

    'cocina_y_artículos para el hogar': 1390,

    'revistas': 1133,

    'música': 1007,

    'vida_al aire libre': 980,

    'software': 1029,

    'deportes_&_al aire libre': 1336,

    'juguetes_&_juegos': 1363,

    'vídeo': 1010,

    'automotor': 100,

    'computadora_&_video_juegos': 100,

    'productos_de_oficina': 100

    Podemos ver que los últimos tres dominios, a saber, Automóviles, Computadoras y videojuegos y Productos de oficina, tienen solo 100 registros, por lo tanto, los tomamos para el conjunto de prueba, mientras que los otros restantes están en el conjunto de capacitación.

    Toda la configuración y los parámetros del meta: la capacitación se proporciona de forma centralizada en el archivo Config.yaml y el archivo Params.yaml, que se pueden cambiar para afectar la capacitación.

    Archivo Yaml de configuración y parámetros

    Ahora, para ejecutar el entrenamiento en múltiples GPU o una sola GPU o CPU, necesitamos configurar Accelerate para hacer eso, solo necesitamos ejecutar un comando

    accelerate config
    

    La forma tradicional de ejecutar el archivo python

    python my_script.py
    

    accelerate launch my_script.py
    

    Y puede ver el resultado en la carpeta denominada Registros en el archivo running_logs.log. Con esto, llegamos al final de nuestra entrada en el blog.

    La inspiración para nuestro trabajo provino de este Github (Long Mai) que se implementa completamente en PyTorch, visítelo amablemente y verifique si desea implementar su implementación completamente de la manera PyTorch.

    Si le gusta este blog, demuestre su amor y dénos un pulgar hacia arriba, denos una estrella y, si no, envíenos sus comentarios en la sección de comentarios. ¡Esperamos que se divierta con la implementación!

    Para colaboración, ayuda y aprendizaje de cosas juntos:

    Únete a nuestro Servidor de Discord:https://discord.gg/Z7Kx96CYGJ

    ¡Buena suerte!

    Sugerencias de envío de Mlearning.ai

© Copyright 2021 - 2022 | unogogo.com | All Rights Reserved