Una introducción al aprendizaje por transferencia en NLP y HuggingFace

This ad is not shown to multipass and full ticket holders
React Summit US
React Summit US 2025
November 18 - 21, 2025
New York, US & Online
The biggest React conference in the US
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit US 2025
React Summit US 2025
November 18 - 21, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

En esta charla comenzaré presentando los avances recientes en NLP que resultaron de la combinación de esquemas de aprendizaje por transferencia y arquitecturas de Transformer. La segunda parte de la charla estará dedicada a una introducción de las herramientas de código abierto lanzadas por HuggingFace, en particular nuestras bibliotecas Transformers, Tokenizers y Datasets y nuestros modelos.

This talk has been presented at ML conf EU 2020, check out the latest edition of this Tech Conference.

FAQ

El aprendizaje transferido en NLP es una técnica que intenta imitar la forma en que los humanos aprenden, reutilizando conocimientos adquiridos en tareas anteriores para enfrentar nuevas tareas. Esto permite que los modelos de aprendizaje automático sean más eficientes en términos de uso de datos y alcancen mejores rendimientos.

Las dos ventajas principales del aprendizaje transferido son: aprender con solo unos pocos datos debido a la capacidad de interpolar entre puntos de datos conocidos, y la capacidad de utilizar conocimientos previos para lograr mejores rendimientos en nuevas tareas.

La transferencia secuencial de aprendizaje es un proceso que implica al menos dos pasos: el reentrenamiento, donde se recopila mucha data para construir una base de conocimientos, y un segundo paso de adaptación o ajuste fino, donde se selecciona una tarea específica para usar el modelo y se ajusta a esa tarea.

Modelos como BERT y GPT son preentrenados como modelos de propósito general sin enfocarse en una tarea específica, lo que les permite ser utilizados en diversas tareas. Posteriormente, estos modelos son ajustados finamente (adaptación) para tareas específicas mejorando su desempeño en dichas tareas.

El modelado del lenguaje es un objetivo de preentrenamiento auto-supervisado donde se usa el texto como su propia etiqueta. Consiste en maximizar la probabilidad de la siguiente palabra en una secuencia, lo que permite entrenar modelos sin necesidad de anotaciones manuales.

Hugging Face ha desarrollado varias herramientas como la Biblioteca Transformers, Tokenizer, y DataSets. Estas bibliotecas facilitan el acceso a modelos de NLP de última generación, el manejo eficiente de tokenización y el acceso y compartición de conjuntos de datos y métricas, respectivamente.

Thomas Wolf
Thomas Wolf
32 min
02 Jul, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
El aprendizaje por transferencia en NLP permite obtener un mejor rendimiento con datos mínimos. BERT se utiliza comúnmente para el aprendizaje por transferencia secuencial. Modelos como BERT se pueden adaptar para tareas posteriores como la clasificación de texto. El manejo de diferentes tipos de entradas en NLP implica la concatenación o duplicación del modelo. HuggingFace tiene como objetivo abordar los desafíos en NLP a través del intercambio de conocimientos y la liberación de código y bibliotecas de código abierto.

1. Introducción al aprendizaje transferido en NLP

Short description:

Hoy vamos a hablar sobre el aprendizaje transferido en NLP. En el aprendizaje transferido, reutilizamos el conocimiento de tareas anteriores para iniciar nuestro aprendizaje. Este enfoque nos permite aprender con solo unos pocos puntos de datos y lograr un mejor rendimiento. En Hugging Face, estamos desarrollando herramientas para el aprendizaje transferido en NLP.

Hola a todos. Bienvenidos a mi charla. Y hoy vamos a hablar sobre el aprendizaje transferido en NLP. Comenzaré hablando un poco sobre el concepto de historia, luego les presentaré las herramientas que estamos desarrollando en Hugging Face. Y luego espero que tengan muchas preguntas para mí. Así que, sesión de preguntas y respuestas. OK. Comencemos con los conceptos. ¿Qué es el aprendizaje transferido? Esa es una muy buena pregunta. Aquí está la forma tradicional en que hacemos el aprendizaje transferido. Lo siento. Esta es la forma tradicional en que hacemos machine learning. Por lo general, cuando nos enfrentamos a una primera tarea en machine learning, recopilamos un conjunto de data. Inicializamos nuestro modelo al azar y lo entrenamos en nuestros conjuntos de datos para obtener el sistema de machine learning que usaremos, por ejemplo, para trabajar en producción. Ahora, cuando nos enfrentamos a una segunda tarea, por lo general nuevamente, recopilaremos otro conjunto de data. Otro conjunto de data. Inicializaremos nuevamente nuestro modelo al azar y lo entrenaremos desde cero nuevamente para obtener el segundo sistema de aprendizaje y de la misma manera nos enfrentamos a una tercera tarea. Tendremos un tercer conjunto de datos, tendremos un tercer sistema de machine learning, nuevamente inicializado desde cero y que usaremos en producción. Entonces esto no es la forma en que los humanos aprendemos. Por lo general, cuando nos enfrentamos a una nueva tarea, reutilizamos todo el conocimiento que hemos aprendido en tareas anteriores, todas las cosas que hemos aprendido en la vida, todas las cosas que hemos aprendido en clases universitarias y lo usamos para iniciar nuestro aprendizaje. Entonces puedes ver eso como tener muchos data, muchos puntos de datos que ya hemos utilizado para generar una base de conocimientos. Y esto nos brinda dos ventajas principales. La primera es que podemos aprender con solo unos pocos data, solo unos pocos puntos de datos, porque podemos interpolar entre estos puntos de datos. Y esto nos ayuda a hacer alguna forma de mutación de data, si quieres, de forma natural. Y la segunda ventaja es simplemente... Es que también podemos aprovechar todo este conocimiento para lograr mejores rendimientos. Los humanos suelen ser más eficientes en términos de data y tener mejores rendimientos que los sistemas de machine learning. Entonces, el aprendizaje transferido es una forma de intentar hacer lo mismo para el aprendizaje estadístico, para el machine learning.

2. Transferencia secuencial de aprendizaje con BERT

Short description:

Hoy discutiremos la transferencia secuencial de aprendizaje, que implica volver a entrenar y ajustar un modelo de propósito general como BERT. El modelado del lenguaje es un objetivo de pre-entrenamiento auto-supervisado que maximiza la probabilidad de la siguiente palabra. Este enfoque no requiere datos anotados y es versátil, lo que lo hace útil para lenguajes con pocos recursos. Los transformadores como BERT se utilizan comúnmente para la transferencia de aprendizaje en NLP.

Así que el verano pasado hicimos un tutorial muy largo. Fue un tutorial de tres horas. Puedes revisar estos enlaces. Hay 300 diapositivas, muchos ejercicios prácticos y un código fuente de código abierto. Así que si quieres más información, realmente deberías ir allí.

Hay muchas formas de hacer transferencia de aprendizaje. Pero hoy voy a hablar de la transferencia secuencial de aprendizaje, que es la variante más utilizada actualmente, si quieres hacer transferencia de aprendizaje. La transferencia secuencial de aprendizaje, como su nombre indica, es una secuencia de pasos, al menos dos pasos. El primer paso se llama reentrenamiento. Y durante estos pasos, intentarás recopilar la mayor cantidad de data posible. Intentaremos construir básicamente una especie de base de conocimientos, como la base de conocimientos que los humanos construimos. Y la idea es que podemos terminar con un modelo de propósito general. Hay muchos modelos de propósito general diferentes. Probablemente hayas oído hablar de muchos de ellos, Word2Vec y GloVe fueron los primeros modelos que aprovecharon la transferencia de aprendizaje. Eran incrustaciones de palabras, pero hoy en día, usamos modelos que tienen muchos más parámetros, que están completamente pre-entrenados, como BERT, GPT o BERT destilado. Y estos modelos, se pre-entrenan como modelos de propósito general. No se centran en una tarea específica, pero se pueden utilizar en muchas tareas diferentes. Entonces, ¿cómo lo hacemos eso? Hacemos un segundo paso de adaptación o ajuste fino generalmente, en el que seleccionaremos la tarea para la que queremos usar nuestro modelo, y lo ajustaremos fino en esta tarea. Así que aquí tienes algunos ejemplos, clasificación de texto, etiquetado de palabras, respuesta a preguntas.

Pero comencemos por el primer paso, el pre-entrenamiento. La forma en que pre-entrenamos nuestros modelos hoy en día se llama modelado del lenguaje. El modelado del lenguaje es un objetivo de pre-entrenamiento que tiene muchas ventajas. La principal es que es auto-supervisado, lo que significa que usamos el texto como su propia etiqueta. Podemos descomponer el texto aquí, la probabilidad del texto como un producto de la probabilidad de las palabras, por ejemplo, y tratamos de maximizar eso. Así que puedes ver eso como dado un contexto, intentarás maximizar la probabilidad de la siguiente palabra o la probabilidad de un maestro. Lo bueno es que no tenemos que anotar los data. En muchos idiomas, solo aprovechando Internet, podemos tener suficiente texto para entrenar realmente un modelo de alta capacidad Esto es genial para muchas cosas, y en particular, para lenguajes con pocos recursos. También es muy versátil, como te dije, puedes descomponer esta probabilidad como un producto de la probabilidad de varias vistas de tus textos. Y esto es muy interesante desde un punto de vista de investigación.

Ahora, ¿cómo se ven los modelos? Hay dos sabores principales de modelos, ambos son transformadores porque los transformadores son interesantes desde un punto de vista de escalabilidad. El primero se llama BERT. Para entrenar un modelo BERT, haremos lo que llamamos modelado de lenguaje enmascarado,

3. Entrenamiento de BERT y Adaptación para Tareas Posteriores

Short description:

BERT se entrena prediciendo nuevamente el token enmascarado. Otro enfoque es el modelo auto-agresivo o causal, que asocia cada token con el siguiente token. Estos modelos son menos potentes pero se entrenan más rápido. Para adaptar BERT, se elimina la cabeza de pre-entrenamiento y se reemplaza con una cabeza específica para la tarea. Ejemplos de tareas posteriores incluyen clasificación y generación de texto.

que es un objetivo de desenmascaramiento. Tomamos una oración aquí, enmascaramos un token y tratamos de predecir este token nuevamente. Proyectamos todas estas palabras en vectores. Luego, realmente utilizamos lo que es la capa de atención en el transformador, que hará un promedio ponderado de estos vectores para obtener también vectores. Pero estos vectores ahora dependen del contexto, lo que significa que el vector asociado al enmascarado tiene suficiente información del contexto para poder predecir nuevamente, o al menos intentar predecir nuevamente, el token faltante, el enmascarado 12, ¿de acuerdo? Así es como se entrena BERT. Se entrena este modelo para predecir nuevamente el token enmascarado. Ahora hay otro enfoque, que se llama modelo auto-agresivo o causal. Y estos modelos se ven prácticamente iguales, pero puedes ver que a un token aquí se le asocia el siguiente token. Entonces, mi perro, el token que estará al final de la columna hiperasociada a perro será, es el siguiente token, ¿de acuerdo? Así que tenemos que ajustar la atención aquí. Tenemos que enmascarar el contexto correcto. De lo contrario, el modelo solo puede ver la etiqueta aquí a la derecha. Estos modelos son inherentemente menos potentes porque no pueden usar el contexto para hacer su predicción, pero tienen una señal más extraña aquí. Por lo general, se entrenan más rápido. Estos son los dos sabores principales de modelo. Estos son los dos marcos principales. Así que modelos de propósito general. Ahora, ¿cómo se realizan los pasos de adaptación? Es bastante fácil. Sí. Estas son las dos ventajas que te mostré. El primer paso es que eliminaremos la cabeza de pre-entrenamiento. Tomaremos estas cajas rosadas que te mostré en las diapositivas anteriores. Y las eliminaremos y las reemplazaremos con una cabeza específica para la tarea. Entonces, si estás haciendo clasificación de texto, puede ser simplemente una predicción lineal para el número de clases que tienes. Si estás haciendo una tarea más compleja, puedes agregar una red neuronal completa encima de ella. Si tu tarea es muy compleja, como la traducción automática, entonces tienes que hacer cosas más complejas. Hablaremos de eso un poco en la próxima sección.

Permíteme mostrarte dos ejemplos principales de tareas posteriores que podemos abordar, clasificación de texto y generación. Aquí tienes un ejemplo de clasificación de texto para mostrarte cómo funciona. Digamos que tenemos una oración aquí, Jim Hansen era un titiritero, y la tarea de nuestro modelo de aprendizaje automático es predecir si la oración es verdadera o falsa. Esto es simplemente una clasificación binaria, si quieres, ¿de acuerdo? El primer paso sería convertir esto

4. Entrenamiento del Modelo y Rendimiento

Short description:

Nuestros modelos se entrenan para procesar vocabulario y corpus de dominio abierto. Las palabras poco comunes se manejan dividiéndolas en prefijos y sufijos. La salida del modelo se proyecta de nuevo en dos clases utilizando un clasificador lineal. Este clasificador se entrena desde cero en la tarea posterior. En un ejemplo práctico, logramos una precisión de más del 90% después de solo una época en un conjunto de datos pequeño. La versatilidad del modelo se demuestra en un entorno de chatbot con una base de conocimientos.

una oración de entrada en algo que nuestro modelo pueda procesar. Entonces, nuestros modelos, pueden abordar integrales, números decimales, necesitan números. Entonces, el primer paso será convertir estas cadenas en números. Y hay algo interesante aquí, nuestros modelos están diseñados para ser entrenados y procesar básicamente vocabulario de dominio abierto, corpus de dominio abierto. Están diseñados para ser entrenados en internet. Entonces, tenemos que manejar algunas palabras poco comunes. Aquí perpetuer es una palabra que definitivamente no es muy común en inglés. Entonces, la forma en que manejamos eso es que cortaremos esta palabra en prefijo y sufijo hasta que conozcamos cada parte del palabra. De acuerdo. Entonces, aquí, por ejemplo, perpetuer son dos tipos de prefijo y sufijo comunes. Entonces, están en nuestro vocabulario y luego podemos convertir todo esto en nuestros índices de vocabulario. Estos son ahora los insumos del modelo que vimos en dos diapositivas anteriores, el nacimiento de GPT. Y como recuerdas, la salida era un vector aquí, la salida antes de las cajas rosadas era un vector. Y solo tenemos que proyectar ese vector de vuelta a dos clases. Entonces, por ejemplo, los extraemos, los colocamos en un clasificador lineal y luego obtenemos las clases. Entonces, este clasificador lineal se entrenará desde cero en nuestra tarea posterior. De acuerdo. Entonces, tiene que ser bastante pequeño en términos de parámetros si quieres que sea eficiente, pero este ya está pre-entrenado en el enorme corpus de datos que hemos recopilado. Entonces, este se puede usar realmente. De acuerdo. Entonces, aquí hay dos, quiero decir, aquí tienes un ejemplo práctico en una tarea de clasificación llamada pista seis. Puedes ver más detalles en las diapositivas de nuestros tutoriales del año pasado, pero básicamente verás que después de una sola época, ya tenemos una precisión superior al 90%, lo que significa que esto es realmente eficiente. Este conjunto de datos, esta pista seis, es realmente un conjunto de datos pequeño, 2500 ejemplos. Entonces, esto es realmente eficiente. Y cuando entrenas durante tres épocas, llegas a una tasa de error del 3.6, que es el estado del arte. Bueno, era el estado del arte el año pasado. Entonces, obtienes las dos cosas de las que estamos hablando, eficiencia de datos y alto rendimiento. De acuerdo. Ahora aquí hay un ejemplo totalmente diferente. Entonces, ves la variedad, la diversidad de tareas a las que este modelo puede enfrentarse. Este es un entorno de chatbot

5. Manejo de Diferentes Tipos de Entradas

Short description:

El chatbot finge ser un artista con cuatro hijos que tiene un gato y le gusta ver Game of Thrones. El agente de diálogo debe generar una respuesta coherente dada la personalidad. Esta es una tarea diferente debido a los diferentes tipos de entradas involucradas, como la base de conocimientos, el historial de diálogo y la utilidad del comienzo de la respuesta. Hay dos formas principales de manejar esto: concatenar todas las entradas en una sola entrada o duplicar el modelo y procesar cada tipo de entrada por separado.

donde tenemos una especie de base de conocimientos. El chatbot finge ser un artista con cuatro hijos que tiene un gato y le gusta ver Game of Thrones. Y ahora está discutiendo con un usuario en un entorno de dominio abierto. Entonces el usuario dijo, Hola, chatbot, responde, hola, ¿cómo estás? Y el usuario dice, Estoy bien. Gracias. ¿Cómo estás tú? Y nuestro agente de diálogo, nuestro modelo de aprendizaje automático, debe generar una respuesta que tenga sentido dada la personalidad. ¿De acuerdo? Entonces ves, esta es una tarea bastante diferente porque tenemos muchos tipos diferentes de entradas. Tenemos una especie de base de conocimientos aquí. También tenemos un historial de diálogo. Y tenemos esta utilidad incluso en el comienzo de la respuesta porque estamos generando la respuesta palabra por palabra. Entonces tenemos el comienzo de la respuesta que también debemos tener en cuenta para generar la siguiente. ¿Cómo manejamos eso? Bueno, en realidad tuvimos el artículo el año pasado en ACL que puedes consultar. Pero básicamente puedes hacer dos formas principales de manejar eso. Puedes concatenar todo esto en una sola entrada. Esta es una forma sencilla de abordar esto y funciona realmente bien. O puedes duplicar tu modelo y tener varias partes que procesen cada tipo de entrada, y luego necesitas conectarlas entre sí con atención cruzada o una forma de conectarlas. De acuerdo. Esto es muy diferente, pero la idea es que en general, como puedes ver aquí, esto es una competencia en la que participamos en el GameFest hace dos años. Y ves que estábamos liderando en la matriz automática por un margen considerable utilizando este tipo de enfoque de transferencia de aprendizaje.

6. Tendencias y Limitaciones en NLP

Short description:

Existe una tendencia hacia modelos más grandes, lo cual está limitando la competencia. Sin embargo, existen formas de reducir el tamaño de los modelos a través de destilación, poda y cuantización. Estos modelos tienen dificultades con la generalización fuera del dominio y están limitados por la falta de conocimiento de sentido común en el texto. Otro desafío es hacer que los modelos aprendan nuevos conocimientos sin olvidar los conocimientos previos. A pesar de estas limitaciones, Hugging Face tiene como objetivo abordar estos desafíos democratizando NLP a través del intercambio de conocimientos y la liberación de código y bibliotecas, como la Biblioteca Transformers.

Entonces, unas pocas palabras sobre las tendencias y limitaciones, iré rápido, pero sí, existe una tendencia hacia modelos más grandes. Este es un problema importante porque está limitando la competencia. Existen formas de reducir el tamaño de estos modelos, destilación, poda, cuantización. No dedicaré mucho tiempo a esto, pero es algo que nos gusta mucho. Estos modelos tienen problemas de generalización. A pesar de ser grandes, tienen dificultades para abordar la generalización fuera del dominio. Y básicamente hay un límite en el texto como medio, que es que gran parte del sentido común simplemente no está escrito en el texto. Y esto limita lo que este modelo puede aprender. La principal forma de superar esto es utilizar alguna database o imagen, o incluso utilizar a un humano en el proceso. Y ahora viene el último problema principal, que es que estos modelos se entrenan solo una vez y es muy difícil hacer que aprendan nuevos conocimientos más adelante, porque tienen este problema de olvido catastrófico. Por ejemplo, GPT-3, que fue muy costoso de entrenar. El costo del entrenamiento fue de 10 millones. GPT-3 no tiene idea de qué es el COVID. Bueno, el COVID es un elemento muy importante de nuestra vida diaria hoy en día, ¿vale? Así que esto es una lástima. Hay muchas limitaciones y en Hugging Face, intentamos abordar algunas de estas limitaciones. Entonces, ¿qué hacemos en Hugging Face? Bueno, intentamos democratizar NLP. Comenzamos como una empresa de chatbots, construyendo un juego, y liberamos muchas herramientas mientras lo hacíamos. Y en realidad, esta herramienta despertó tanto interés en la community que ahora nos enfocamos completamente en catalizar y democratizar todo este trabajo de investigación. Lo hacemos de dos formas principales. La primera forma es a través del intercambio de conocimientos. Por eso estoy hablando hoy. Y la segunda forma es liberar mucho código y liberar algunas bibliotecas, lo que permite a las personas aprovechar todos estos desarrollos y desarrollar mejores modelos sobre ellos. Vale. Veamos algunas de nuestras bibliotecas de código abierto, y esto será la puerta abierta para las preguntas en la segunda parte. Vale. Entonces, la primera biblioteca principal que probablemente conozcas se llama la Biblioteca Transformers, que es una forma de acceder a todos los modelos de vanguardia, y se pueden utilizar tanto para NLU como NLG, en muchos idiomas. Hoy en día tenemos realmente muchos modelos en la biblioteca. Está el modelo completo, probablemente BERT, GPT, y también modelos más interesantes, más recientes como DPR Pegasus. XM Roberta es un gran modelo multilingüe creado por Alex y su equipo. También está T5, que es un modelo realmente enorme.

7. Model Hub, Tokenizer, and DataSets Libraries

Short description:

Tenemos un centro de modelos donde las personas pueden compartir más de 3,000 modelos en muchos idiomas. También tenemos una interfaz web para probar los modelos. Recientemente abrimos una segunda biblioteca llamada Tokenizer para resolver el cuello de botella en la división de cadenas. También abrimos una tercera biblioteca llamada DataSets para facilitar el intercambio de conjuntos de datos y métricas. DataSets tiene interoperabilidad con marcos populares y está diseñada para conjuntos de datos grandes.

modelo, así que hay muchos, muy fáciles de usar. Podemos hablar de eso en la pregunta. Incluso tenemos un centro de modelos donde las personas pueden compartir sus modelos. Tenemos más de 3,000 modelos y muchos, muchos idiomas, así que si quieres usar un modelo para finlandés o alemán, tienen como 132 modelos diferentes que puedes esperar y con los que puedes jugar. Incluso en la interfaz web, puedes probar el modelo y ver cómo se comportan. Esto está en huggingface.com.

Ahora abrimos recientemente una segunda biblioteca llamada Tokenizer, que hace esta primera parte de la que estaba hablando, como dividir la cadena en partes. ¿Por qué hicimos esto? Esto realmente era un cuello de botella en términos de velocidad. Y decidimos usar un código rusk de muy bajo nivel, súper rápido para resolver este problema. Así que ahora es realmente un paso muy rápido. Está disponible en Python y en Node. Rust es un gran lenguaje. Y más recientemente, hace unos meses, lanzamos una tercera biblioteca, que se llama DataSets. Así que DataSets es nuestra tercera biblioteca. Esto es para abordar un último problema que descubrimos, que es que los propios conjuntos de datos, son difíciles de acceder para las personas, son difíciles de compartir. Y pasamos mucho tiempo reescribiendo el mismo código de procesamiento que las personas ya han escrito mucho en esos conjuntos. Así que decidimos hacer una biblioteca para resolver este problema, facilitar el intercambio de conjuntos de datos, y también compartir métricas. Algunas métricas en este momento, algunas métricas novedosas son realmente complejas de usar, o al menos de instalar y configurar métricas, por ejemplo, evaluar la generación de lenguaje natural puede ser realmente complejo. Y así que decidimos que también sería bueno hacer algo muy fácil para compartirlos, para subirlos, para compartirlos. Así que esta es la biblioteca DataSets con ese conjunto de métricas. Tiene algunas cosas realmente geniales. Por ejemplo, hay interoperabilidad con NumPy, Panda, PyTorch y Tensorflow también. Así que puedes usar básicamente cualquier tipo de marco si quieres, bueno, cualquier tipo de marco moderno. También está hecho específicamente para abordar conjuntos de datos realmente grandes. Así que si tienes gigabytes de data, si quieres, por ejemplo, entrenar tu modelo en Wikipedia y algunos data que tu conjunto de datos puede ser, por ejemplo, más grande que la memoria RAM, puedes usar esta biblioteca porque tiene muchas formas inteligentes de hacer una deserialización en disco. Así que solo toma nueve megabytes de, por ejemplo, entrenar Wikipedia. Hay mucho almacenamiento en caché inteligente. Si procesas tu conjunto de datos una vez, ya está bien y no perderás tiempo volviendo a procesarlo. Así que puedes verificar esto. Aquí tienes un ejemplo de cómo preparar. Esta es la preparación completa de un conjunto de entrenamiento para entrenar un modelo en Glue, con la tokenización, con el relleno.

8. Model Training, Libraries, and Questions

Short description:

El proceso de entrenamiento del modelo es eficiente y proporciona visibilidad. El centro permite acceder a conjuntos de datos, incluidos conjuntos de datos multimodales con imágenes. Visita HuggingFace.co para explorar los conjuntos de datos y ver su contenido. Estas tres bibliotecas principales están disponibles para discusión, junto con cualquier pregunta sobre el concepto e historia.

Y ves, esto es solo como 20 líneas de código, y aquí estás listo para entrenar este modelo. Entonces está diseñado para ser muy eficiente y que todo sea muy visible al mismo tiempo. Entonces, al igual que el modelo, también tenemos un centro donde puedes acceder e incluso explorar los conjuntos de datos. Entonces hay como un modelo, 160 conjuntos de datos ahora. También hay conjuntos de datos multimodales con imágenes. Y así puedes ir a HuggingFace.co, explorar todos los conjuntos de datos. Puedes ver la estación y todo. E incluso puedes ver qué hay dentro de un conjunto de datos en la interfaz web.

De acuerdo. Lo mismo aquí. Puedes ir y echar un vistazo en HuggingFace.co. De acuerdo. Estas son las tres bibliotecas principales, y estoy realmente feliz de hablar sobre cualquier pregunta que puedas tener sobre ellas. Y también, cualquier pregunta que puedas tener sobre la primera parte, el concepto, la historia.

QnA

NLP Advancements and Choosing Models

Short description:

Hola Thomas, ¿cómo te va? ¡Qué bueno saberlo! El procesamiento del lenguaje natural se ha convertido en el campo más emocionante de la IA. GPT-3 es un modelo impresionante, pero evaluar completamente sus capacidades es difícil. Sobresale en tareas de recuperación y puede generar código y publicaciones de blog realistas. Sin embargo, carece de habilidades de razonamiento profundo. Tener una gran base de datos no equivale a la IA general. Al elegir un modelo, comienza con algo simple como una versión destilada y escala si es necesario.

Gracias. Hola Thomas, ¿cómo te va? Hola. Bien, bien. ¿Cómo te va a ti?

Sí, también es bastante agradable. Quiero decir, el sol ya está un poco fuera en Múnich, pero todavía hay muchas charlas emocionantes. Y comenzaste esta conferencia de manera muy buena porque creo que el procesamiento del lenguaje natural o el lenguaje en general es uno de esos indicadores de qué tan bien entendemos este aprendizaje automático. ¿Cómo te sientes? Sí, definitivamente. Creo que lo que hemos visto en NLP en este momento, supongo que en los últimos dos años, probablemente es que se ha convertido realmente en lo que esperábamos que fuera desde el principio, lo cual significa realmente la forma de procesar el conocimiento y la forma de investigar o lo que esperamos que sea como investigar. Y cuando hablamos de IA general, creo que ahora mucha gente piensa en GPT-3, que es un modelo de texto completo. Así que creo que esto es realmente algo impresionante sobre cómo NLP es ahora el campo más emocionante en la IA.

Sí, y es un poco gracioso porque casi estás prediciendo la primera pregunta, ¿verdad? Y la primera pregunta es en realidad sobre GPT-3 y la gente pregunta, hey, ya que eres un experto en NLP y tu empresa está impulsando buenos esfuerzos en este sentido, ¿qué crees que es el avance de GPT-3 en comparación con GPT-2?

Sí, es una buena pregunta. Creo que uno de los problemas de GPT-3 es que es bastante difícil acceder a él. Así que creo que no hemos evaluado realmente la capacidad de GPT-3. Como lo hemos hecho con otros modelos como BERT o GPT-2 simplemente porque muchos académicos no tenían acceso completo para investigar qué está sucediendo. ¿Qué puedes hacer con eso? Ser capaz de probarlo completamente en muchas tareas. Así que es un poco difícil darte realmente una respuesta, ¿verdad? Lo que creo es que GPT-3 se comporta de alguna manera como algo interesante, que es una recuperación, como una recuperación suave que abarca un conjunto de datos realmente grande. Entonces puedes hacer cosas como, es como tener un enorme buscador de Google, donde puedes buscar en cada página de Internet y ser capaz de interpolar suavemente entre todas estas páginas. Así que creo que esto es muy interesante y lo que vemos, que se pueden hacer algunas aplicaciones bastante geniales con eso, como generar suavemente código y generar una publicación de blog que se vea realista. Ahora, cuando hablamos de razonamiento real, significado y cosas así, no creo que haya realmente ningún avance profundo en la suite GPT, pero esa es mi opinión personal. Sí, no, es realmente bueno que al menos para mí resuene que separas el razonamiento de tener una gran base de datos. Porque a veces tenemos la sensación de que nuestra comunidad o partes de nuestra comunidad piensan que, hey, si la base de datos es más grande, puedes resolver todos los problemas. Y a veces no es realmente así, tener un modelo más grande no significa automáticamente que de repente tengas una IA general, y es bueno recordarlo básicamente. Sí. Entonces, otra pregunta sería, solo del público, hay tantos tamaños diferentes de modelos, incluso basados en transformadores, está GPT-3, están los transformadores, está Vertra, Roberta, todo tipo de cosas. También hay versiones más destiladas ¿verdad? Y cuando un ingeniero de aprendizaje automático comienza a trabajar en la tarea, ¿cuál es una buena regla general para tomar este proceso de decisión? Y obviamente no hay una respuesta clara, pero ¿tienes algún modelo mental o un marco, especialmente para principiantes, que pueden estar trabajando en una empresa que no tiene un gran grupo de aprendizaje automático, pero son la persona que realmente toma las decisiones, ¿cómo podemos ayudar y apoyar a esa persona?

Sí, esa es una buena pregunta. Creo que eso es definitivamente algo con lo que muchas personas se enfrentan. Quiero decir, lo práctico acerca de mí, acerca de nuestro equipo en SwiggyFace, creo que es que deberíamos ayudar a las personas a hacer eso, porque entiendo que estamos proporcionando muchos modelos, estamos proporcionando muchos puntos de control, pero es realmente difícil ver el que debes seleccionar, el que debes usar. Entonces, lo primero es que intentaremos construir algunas herramientas mejores para esto. Pero ahora, para una respuesta rápida, creo que es bueno mantener tu buen reflejo, tu buena rutina, es que debes comenzar con algo simple, como debes comenzar con un modelo más pequeño, como comenzar con una versión destilada de BERT, por ejemplo, en lugar de BERT, como comenzar con algo pequeño y ver hasta dónde puedes llegar con eso, con este modelo eficiente en cómputo, como un BERT destilado, un GPT-2 destilado, un Roberta destilado, probar un poco con ellos. Y si no es suficiente, entonces escalas, entonces comienzas a usar modelos más grandes y tratas de ver si necesitas, como, un T5 o algo así.

Starting with a logistic projection

Short description:

Comenzar con una proyección logística antes de pasar a algo más avanzado es un enfoque típico. GPT-3 es un modelo potente y comenzar con él puede no dar mejores resultados. Sería interesante explorar casos de uso que muestren el espacio de problemas y cómo se pueden aplicar diferentes modelos.

Sí. Sí, eso es lo típico. Es lo mismo, siempre debes comenzar con, como, una proyección logística antes de pasar a algo muy sofisticado, pero sí. Sí. Definitivamente. Solo puedo estar de acuerdo contigo, ¿verdad? Porque una vez que comienzas con GPT-3, ¿verdad?, solo puedes empeorar a partir de ahí, ¿verdad? Así que no hay forma de explicarlo, ¿verdad? Pero tal vez solo una idea al azar, porque también estás construyendo muchas herramientas, ¿verdad? Entonces, en este momento, muchas empresas están construyendo esto, como un modelo, ¿verdad? Tal vez también puedas tener algo como, como un caso de uso, ¿verdad? Pero que muestre, como, hey, cuál es el espacio de problemas, ¿verdad? Y cómo se mapea, como, un espacio de modelos, ¿verdad? Y sí, una solución. Pero nuevamente, solo una idea al azar. Bueno, esa es una muy buena idea. Creo que deberías venir a construir eso con nosotros.

Future of Transformers in NLP and Vision

Short description:

Los Transformers han revolucionado la industria del NLP y ahora se están explorando para tareas de visión. Son eficientes y escalables para el aprendizaje por transferencia en conjuntos de datos grandes. La elección del modelo no es tan importante como la estrategia subyacente del aprendizaje por transferencia. También hay una tendencia hacia el aprendizaje débil o no supervisado. Al utilizar el aprendizaje por transferencia, existe el riesgo de caer en óptimos locales, pero hay recursos disponibles para guiar el aprendizaje por transferencia avanzado en NLP.

Sí. Sí, sí. Lo intentaré. Bueno. Entonces, la siguiente pregunta sería sobre los transformers, ¿verdad? Hemos visto que los transformers reinventaron o revolucionaron la industria del NLP en absoluto, ¿verdad? Pero, ¿cómo te sientes, como, sobre el futuro de los transformers? Hubo, como, algunos artículos también sobre el uso de transformers para, como, visión, ¿verdad? ¿Ves que pronto los transformers serán como en todo el machine learning o el aprendizaje en particular, o van a encontrar su propio nicho, ¿verdad? ¿Y llegar a un punto de estancamiento básicamente?

Sí, esa es una buena pregunta. Es una pregunta oportuna. Creo que este transformer de visión fue un artículo muy impresionante porque realmente mostró que lo que hemos visto para NLP también es cierto para visión, que los transformers son bastante eficientes, y realmente son un buen modelo para escalar a grandes conjuntos de data. Tan pronto como comiences a hablar sobre el aprendizaje por transferencia desde un gran conjunto de data, realmente quieres la architecture más eficiente que puedas escalar. Sí, quiero decir, no soy un experto en visión por computadora. Así que sí, realmente no sé por qué solo vemos eso hoy, por ejemplo. Así que no sé si hubo algo desbloqueado, pero sí, creo que son buenos. Soy bastante agnóstico en cuanto a modelos, diría. Creo que la estrategia subyacente, como el aprendizaje por transferencia, es algo muy profundo e importante. En cuanto al modelo preciso que seleccionamos para usar, no me importa tanto. Si alguien encuentra algo mejor que Transformer, estaría feliz de cambiar a esos nuevos modelos. Pero creo que la idea de reutilizar un modelo pre-entrenado es mucho más profunda con consecuencias profundas.

Sí, supongo que algo que está sucediendo en la industria en este momento es incluso no utilizar Transformer como una architecture, sino más bien utilizar el aprendizaje débil o no supervisado. Porque gran parte de Transformer o BERT, o esta dirección, fue como, hey, no necesitamos tener un gran conjunto de datos etiquetados, podemos simplemente reutilizar lo que tenemos. Y al utilizar las mismas ideas de, hey, ¿podemos aprender representaciones de la propia imagen, y todas las ideas de pérdida contrastiva podrían ser algo que desencadene otra dirección diferente. Genial, una pregunta más del público. La reformularé, pero espero no perder el sentido. Entonces, lo que también sugeriste en tu charla, si puedes usar el aprendizaje por transferencia, puedes intentar comenzar desde allí y tratar de descongelar algunas capas y entrenarlo gradualmente para obtener la tarea correcta. Y la persona está preguntando, básicamente, qué tan probable es que al hacer aprendizaje por transferencia, termines en este óptimo local de convergencia, por lo que no obtienes realmente algo bueno. En comparación, si comienzas con un modelo desde cero y básicamente lo entrenas todo junto. Porque, quiero decir, por lo general, las personas esperan que cuanto más descongeles, mejor será y es casi como una transición suave desde el aprendizaje por transferencia directo a este modelo que ha sido entrenado desde cero. ¿Estás de acuerdo con esto, verdad? ¿O hay algo de lo que las personas deberían estar conscientes? Algunos tips y trucos básicamente de aprendizaje por transferencia avanzado y NLP. Sí, hay muchas cosas aquí. El mejor recurso, quiero decir, probablemente sea... Así que tenía un enlace en mi primera diapositiva a un tutorial largo donde hablamos de eso. Y también hice un video que podría compartir a principios de este año sobre esta pregunta. Pero hay mucho riesgo de caer en óptimos locales. Así que, vemos que cuando ajustas finamente BERT, por ejemplo, puedes obtener un comportamiento no óptimo.

Model Conversion and Stuck Minima

Short description:

Para algunas semillas aleatorias, el modelo queda atrapado en mínimos, mientras que para otras funciona bien. Los investigadores están investigando este fenómeno y desarrollando herramientas como MixOut para evitar quedar atrapados. Hay varias técnicas para lograr una interpolación suave y evitar mínimos locales. Las asambleas también son efectivas. Esta es una pregunta abierta de investigación y se fomenta una mayor exploración.

Para cierto tipo de semillas aleatorias, el modelo simplemente no se convierte, se queda atrapado en mínimos. Y para algunas otras semillas aleatorias funciona muy bien, lo cual fue sorprendente al principio. Muchas personas han estado investigando qué estaba sucediendo y ahora tienes muchas herramientas para tratar de evitar eso. Tienes herramientas como algo relacionado con lo que estás diciendo, que se llama MixOut, que es la idea de que es un poco como DropOut, probablemente quieras, como, probablemente quieras regularizar tu modelo. Con DropOut regularizas hacia cero, como cancelas algunos pesos. Y con estas otras cosas, puedes regularizar hacia el modelo pre-entrenado. Así que puedes tener una interpolación suave desde el modelo pre-entrenado hasta el modelo que se ajusta finamente. Pero hay muchas otras técnicas que intentan hacer una interpolación suave para no quedar atrapados en mínimos locales. Es un área muy activa de investigación, y la otra opción es intentar hacer algunas asambleas, que también funcionan muy bien. Pero sí, sigue siendo una pregunta de investigación abierta. Creo que aún no entendemos realmente todo lo que está sucediendo aquí. Toma algo de tiempo, aunque funciona muy bien en esos casos, parece estar muy cerca. Así que tal vez para quien hizo esta pregunta, también es un buen tema para investigar, ¿verdad? Entonces, una vez que encuentres algunas respuestas, por favor escribe el artículo o el documento. Y todos podemos leerlo más tarde. Genial. Tal vez la última pregunta, porque parece que esta conversación podría durar mucho tiempo, pero todavía tenemos un poco de tiempo en la agenda. Entonces, ¿cómo te sientes acerca de NLP y los teléfonos inteligentes? ¿Es algo que ya está agotado y ya tenemos una buena destilación? ¿O todavía hay grandes avances por delante? Sí. Creo que es un área interesante. Tenemos algunas bibliotecas de código abierto en Swift, Swift Core ML con modelos que se pueden ejecutar en el iPhone. Y hay muchos artículos muy recientes que estamos grabando una charla para la próxima semana, NLP, EMNLP en realidad sobre eso. Puedes cuantizar modelos de manera muy eficiente. Así que sí, puedo ver que hay muchos avances que vendrán con modelos muy eficientes, manteniendo un alto rendimiento que tenemos en PC y en la computadora, pero en el teléfono inteligente. Sí. Bueno. Gracias Thomas por... Perdón. Sí, sí. Perdón, gracias nuevamente por tus increíbles respuestas y también por tu charla, pero también me gustaría mencionar nuevamente el trabajo que Hugging Face hace en código abierto. Es realmente útil y reduce la barrera de entrada para muchas personas en esta industria. Así que gracias nuevamente y espero verte en algún lugar de internet. Gracias. Sí, y si aún tienes algunas preguntas y te gustaría dirigirlas directamente a Tomas, recuerda que tenemos la sala de conferenciantes. Para eso, simplemente ve al sitio web. Como Ajay te explicó antes y luego encontrarás el enlace a la conversación con Tomas. Que comenzará más o menos ahora mismo. Así que por favor continúa si deseas seguir la conversación sobre NLP.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

TensorFlow.js 101: Aprendizaje automático en el navegador y más allá
ML conf EU 2020ML conf EU 2020
41 min
TensorFlow.js 101: Aprendizaje automático en el navegador y más allá
TensorFlow.js enables machine learning in the browser and beyond, with features like face mesh, body segmentation, and pose estimation. It offers JavaScript prototyping and transfer learning capabilities, as well as the ability to recognize custom objects using the Image Project feature. TensorFlow.js can be used with Cloud AutoML for training custom vision models and provides performance benefits in both JavaScript and Python development. It offers interactivity, reach, scale, and performance, and encourages community engagement and collaboration between the JavaScript and machine learning communities.
Transformers.js: Machine Learning de Última Generación para la Web
JSNation 2025JSNation 2025
27 min
Transformers.js: Machine Learning de Última Generación para la Web
Joshua introduces Transformers JS and Hugging Face, emphasizing community collaboration and pre-trained models. Transformers JS evolution led to 1.4 million monthly users, supporting 155 architectures. The library's browser-based capabilities offer real-time processing, cost-efficiency, and scalability. Integration enhancements include native web GPU execution and React Native implementation. Web ML implementation focuses on Onyx Runtime for device execution and web GPU for resource optimization. Browser-based ML applications cover vision, speech recognition, and text-to-speech. Advanced implementations include multimodal applications and educational tools. Interactive AI demonstrations showcase semantic search and conversational AI scenarios. Model licensing transitions to ECMAScript for efficiency and model redownloading factors are discussed.
Uso de MediaPipe para Crear Aplicaciones de Aprendizaje Automático Multiplataforma con React
React Advanced 2021React Advanced 2021
21 min
Uso de MediaPipe para Crear Aplicaciones de Aprendizaje Automático Multiplataforma con React
Top Content
MediaPipe is a cross-platform framework that helps build perception pipelines using machine learning models. It offers ready-to-use solutions for various applications, such as selfie segmentation, face mesh, object detection, hand tracking, and more. MediaPipe can be integrated with React using NPM modules provided by the MediaPipe team. The demonstration showcases the implementation of face mesh and selfie segmentation solutions. MediaPipe enables the creation of amazing applications without needing to understand the underlying computer vision or machine learning processes.
Observabilidad con diagnostics_channel y AsyncLocalStorage
Node Congress 2023Node Congress 2023
21 min
Observabilidad con diagnostics_channel y AsyncLocalStorage
Observability with Diagnostics Channel and async local storage allows for high-performance event tracking and propagation of values through calls, callbacks, and promise continuations. Tracing involves five events and separate channels for each event, capturing errors and return values. The span object in async local storage stores data about the current execution and is reported to the tracer when the end is triggered.
TensorFlow.js 101: Aprendizaje automático en el navegador y más allá
JSNation Live 2021JSNation Live 2021
39 min
TensorFlow.js 101: Aprendizaje automático en el navegador y más allá
JavaScript with TensorFlow.js allows for machine learning in various environments, enabling the creation of applications like augmented reality and sentiment analysis. TensorFlow.js offers pre-trained models for object detection, body segmentation, and face landmark detection. It also allows for 3D rendering and the combination of machine learning with WebGL. The integration of WebRTC and WebXR enables teleportation and enhanced communication. TensorFlow.js supports transfer learning through Teachable Machine and Cloud AutoML, and provides flexibility and performance benefits in the browser and Node.js environments.

Workshops on related topic

¿Pueden los LLM aprender? Personalicemos un LLM para chatear con tus propios datos
C3 Dev Festival 2024C3 Dev Festival 2024
48 min
¿Pueden los LLM aprender? Personalicemos un LLM para chatear con tus propios datos
WorkshopFree
Andreia Ocanoaia
Andreia Ocanoaia
Sientes las limitaciones de los LLMs? Pueden ser creativos, pero a veces carecen de precisión o se basan en información desactualizada. En esta masterclass, desglosaremos el proceso de construir y desplegar fácilmente un sistema de Generación con Recuperación Mejorada. Este enfoque te permite aprovechar el poder de los LLMs con el beneficio adicional de precisión factual e información actualizada.
Aprovechando LLMs para Construir Experiencias de IA Intuitivas con JavaScript
JSNation 2024JSNation 2024
108 min
Aprovechando LLMs para Construir Experiencias de IA Intuitivas con JavaScript
Workshop
Roy Derks
Shivay Lamba
2 authors
Hoy en día, todos los desarrolladores están utilizando LLMs en diferentes formas y variantes, desde ChatGPT hasta asistentes de código como GitHub CoPilot. Siguiendo esto, muchos productos han introducido capacidades de IA integradas, y en este masterclass haremos que los LLMs sean comprensibles para los desarrolladores web. Y nos adentraremos en la codificación de tu propia aplicación impulsada por IA. No se necesita experiencia previa en trabajar con LLMs o aprendizaje automático. En su lugar, utilizaremos tecnologías web como JavaScript, React que ya conoces y amas, al mismo tiempo que aprendemos sobre algunas nuevas bibliotecas como OpenAI, Transformers.js
Deja que la IA sea tu Documentación
JSNation 2024JSNation 2024
69 min
Deja que la IA sea tu Documentación
Workshop
Jesse Hall
Jesse Hall
Únete a nuestro masterclass dinámico para crear un portal de documentación impulsado por IA. Aprende a integrar ChatGPT de OpenAI con Next.js 14, Tailwind CSS y tecnología de vanguardia para ofrecer soluciones de código e resúmenes instantáneos. Esta sesión práctica te equipará con el conocimiento para revolucionar la forma en que los usuarios interactúan con la documentación, convirtiendo las búsquedas tediosas en descubrimientos eficientes e inteligentes.
Aspectos destacados:
- Experiencia práctica en la creación de un sitio de documentación impulsado por IA.- Comprensión de la integración de la IA en las experiencias de usuario.- Habilidades prácticas con las últimas tecnologías de desarrollo web.- Estrategias para implementar y mantener recursos de documentación inteligente.
Tabla de contenidos:- Introducción a la IA en la documentación- Configuración del entorno- Construcción de la estructura de documentación- Integración de ChatGPT para documentación interactiva
Prácticas con TensorFlow.js
ML conf EU 2020ML conf EU 2020
160 min
Prácticas con TensorFlow.js
Workshop
Jason Mayes
Jason Mayes
Ven y descubre nuestro masterclass que te guiará a través de 3 recorridos comunes al usar TensorFlow.js. Comenzaremos demostrando cómo usar uno de nuestros modelos predefinidos, clases de JS muy fáciles de usar para trabajar rápidamente con ML. Luego veremos cómo volver a entrenar uno de estos modelos en minutos utilizando el aprendizaje por transferencia en el navegador a través de Teachable Machine y cómo se puede usar en tu propio sitio web personalizado. Finalmente, terminaremos con un hola mundo escribiendo tu propio código de modelo desde cero para hacer una regresión lineal simple y predecir los precios ficticios de las casas en función de sus metros cuadrados.
La Guía del Autoestopista de la Galaxia de Ingeniería de Aprendizaje Automático
ML conf EU 2020ML conf EU 2020
112 min
La Guía del Autoestopista de la Galaxia de Ingeniería de Aprendizaje Automático
Workshop
Alyona Galyeva
Alyona Galyeva
¿Eres un Ingeniero de Software al que se le asignó la tarea de implementar un modelo de aprendizaje automático o aprendizaje profundo por primera vez en tu vida? ¿Te preguntas qué pasos seguir y cómo se diferencia el software impulsado por IA del software tradicional? Entonces este es el masterclass adecuado al que asistir.
Internet ofrece miles de artículos y cursos gratuitos que muestran lo fácil que es entrenar e implementar un modelo de IA simple. Al mismo tiempo, en la realidad es difícil integrar un modelo real en la infraestructura actual, depurarlo, probarlo, implementarlo y monitorearlo correctamente. En este masterclass, te guiaré a través de este proceso compartiendo consejos, trucos y herramientas de código abierto favoritas que te facilitarán mucho la vida. Así que al final del masterclass, sabrás por dónde empezar tu viaje de implementación, qué herramientas utilizar y qué preguntas hacer.
Introducción al Aprendizaje Automático en la Nube
ML conf EU 2020ML conf EU 2020
146 min
Introducción al Aprendizaje Automático en la Nube
Workshop
Dmitry Soshnikov
Dmitry Soshnikov
Este masterclass será tanto una introducción suave al Aprendizaje Automático, como un ejercicio práctico de uso de la nube para entrenar modelos de aprendizaje automático simples y no tan simples. Comenzaremos utilizando ML Automático para entrenar el modelo para predecir la supervivencia en el Titanic, y luego pasaremos a tareas de aprendizaje automático más complejas como la optimización de hiperparámetros y la programación de series de experimentos en el clúster de cómputo. Finalmente, mostraré cómo Azure Machine Learning se puede utilizar para generar pinturas artificiales utilizando Redes Generativas Adversarias, y cómo entrenar un modelo de preguntas y respuestas de lenguaje en documentos de COVID para responder preguntas relacionadas con COVID.