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.
Una introducción al aprendizaje por transferencia en NLP y HuggingFace
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
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
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.
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
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.
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
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.
5. Manejo de Diferentes Tipos de Entradas
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.
6. Tendencias y Limitaciones en NLP
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
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.
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
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
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.
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
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
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í, 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
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.