{"id":21153,"date":"2022-05-26T10:41:03","date_gmt":"2022-05-26T08:41:03","guid":{"rendered":"https:\/\/www.teldat.com\/sin-categorizar\/21153\/ai-inteligencia-artificial-bert\/"},"modified":"2022-12-22T14:16:53","modified_gmt":"2022-12-22T12:16:53","slug":"ai-inteligencia-artificial-bert","status":"publish","type":"post","link":"https:\/\/www.teldat.com\/es\/blog\/ai-inteligencia-artificial-bert\/","title":{"rendered":"Transformers: BERT"},"content":{"rendered":"<p><img decoding=\"async\" class=\"alignleft wp-image-6198 size-medium\" src=\"https:\/\/www.teldat.com\/wp-content\/uploads\/2022\/06\/GettyImages-1364392680-scaled.jpg\" alt=\"ai-artificial-intelligence-bert\" width=\"300\" height=\"200\" title=\"\">No es ning\u00fan secreto que en un futuro cercano, la<strong> Inteligencia Artificial,<\/strong> se encontrar\u00e1 implementada en la mayor\u00eda de los dispositivos tecnol\u00f3gicos. Esto se debe a que los algoritmos de Inteligencia Artificial permiten predecir y tomar decisiones con un razonamiento similar al humano para tareas muy concretas, reduciendo considerablemente el error y el tiempo utilizado, y, por lo tanto, aumentando enormemente la eficiencia del sistema el cual implementa.<\/p>\n<p><!--more--><\/p>\n<p>Existe una amplia variedad de campos de estudio donde debido a factores como necesidad de memorias y capacidades de procesamiento altas, entre otros limitantes tecnol\u00f3gicos, no se consigue avanzar. En muchos de estos campos podemos atravesar sin dificultades estos limitantes gracias a t\u00e9cnicas de Inteligencia Artificial.<\/p>\n<p><strong>[*] En esta ocasi\u00f3n vamos a hablar del campo de la Inteligencia Artificial que ayuda a las m\u00e1quinas a entender, interpretar y manipular el lenguaje humano: Natural Language Processing, por sus siglas, NLP.<\/strong><\/p>\n<p>Para llegar al estado del arte del NLP, ha sido necesario el desarrollo e innovaci\u00f3n de algoritmos los cuales han permitido el r\u00e1pido avance de tecnolog\u00edas en el campo de la Inteligencia Artificial, hasta tal punto, que se han conseguido desarrollar aplicaciones las cuales, utilizando estos algoritmos, nos permiten experimentar conversaciones humano-m\u00e1quina con una calidad de conversaci\u00f3n bastante buena.<\/p>\n<p>Estas tecnolog\u00edas permiten identificar el sentimiento con el que se expresa una frase, predecir si dadas dos frases, la segunda tiene relaci\u00f3n contextual con la primera, o incluso buscar una equivalencia sem\u00e1ntica entre ambas frases.<\/p>\n<p>Una de las tecnolog\u00edas que, con mayor fiabilidad y precisi\u00f3n permite realizar estas tareas es el sistema<strong> BERT<\/strong> desarrollado por GOOGLE en 2018.<\/p>\n<h2>Proceso hasta BERT<\/h2>\n<p>En los inicios del NLP se utilizaban las <strong>Redes Neuronales Recurrentes<\/strong>, por sus siglas en ingl\u00e9s, RNN. Las RNN implementan t\u00e9cnicas de<strong> Deep Learning<\/strong> para introducir datos, como su nombre indica, de manera recurrente (es decir, uno detr\u00e1s de otro) en una red neuronal.<\/p>\n<p>Traslademos este sistema a nuestro campo, \u00bfC\u00f3mo funcionar\u00eda?<\/p>\n<p>Supongamos que tenemos una frase completa, la frase ser\u00e1 \u201cEsto es una prueba\u201d, y necesitamos que nuestra red neuronal procese la frase para que a la salida obtengamos, por ejemplo, una idea sem\u00e1ntica de que quiere decir nuestra frase.<\/p>\n<p>El primer paso que realiza nuestro sistema es separar las palabras de la frase. Una vez las palabras han sido separadas, iniciamos el proceso de recurrencia, es decir, introducimos \u00fanicamente la primera palabra como input en la red neuronal. Cuando obtenemos el resultado de la red neuronal a la palabra \u201cEsto\u201d, sumamos este resultado a la palabra siguiente \u201ces\u201d y lo introducimos de nuevo como entrada en la misma red neuronal. El nuevo resultado obtenido, como podemos predecir, tiene en cuenta las dos primeras palabras, \u201cEsto es\u201d. De esta forma continuamos el proceso de recurrencia hasta la ultima palabra, habiendo procesado entonces la frase entera, teniendo en cuenta todas y cada una de las palabras de la frase.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-6176 size-full\" src=\"https:\/\/www.teldat.com\/wp-content\/uploads\/2022\/05\/Imagen1-1.png\" alt=\"ai-artificial-intelligence-bert\" width=\"566\" height=\"215\" title=\"\" srcset=\"https:\/\/www.teldat.com\/wp-content\/uploads\/2022\/05\/Imagen1-1.png 566w, https:\/\/www.teldat.com\/wp-content\/uploads\/2022\/05\/Imagen1-1-480x182.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 566px, 100vw\" \/><\/p>\n<p>A primera vista todo parece correcto, pero este tipo de red tiene dos grandes problemas:<\/p>\n<ol>\n<li>El primero es trivial, y es que, al ser un recurrente, como ya hemos visto, se necesita del procesamiento de la palabra \u201cEsto\u201d para comenzar a procesar la palabra \u201ces\u201d, y as\u00ed sucesivamente, sumando una cantidad de tiempo al procesado final tan grande como palabras tenga la frase. Esto quiere decir que son algoritmos generalmente lentos.<\/li>\n<li>El segundo gran problema, es que estos sistemas \u201colvidan\u201d las frases extensas, de forma que en el c\u00e1lculo final, la red no tiene en cuenta las palabras iniciales. En este caso, y suponiendo que la frase fuera suficientemente larga, la red es incapaz de tener en cuenta la palabra \u201cEsto\u201d al llegar al c\u00e1lculo final, por lo que hay una variaci\u00f3n del significado final de la frase.<\/li>\n<\/ol>\n<p>La soluci\u00f3n a este problema vendr\u00eda con el famoso paper \u201c<strong>Attention is all you need\u201d<\/strong>, donde se sustituyen completamente a las RNN por los mecanismos de atenci\u00f3n.<\/p>\n<p>\u00bfY que son los mecanismos de atenci\u00f3n?<\/p>\n<p>Son arquitecturas las cuales permiten procesar la frase palabra por palabra, en paralelo, solucionando el problema del tiempo de procesado y el problema de falta de memoria que ten\u00edan las RNN.<\/p>\n<p>Esto se consigue de una manera muy simple. Cada palabra de una misma frase es introducida como input en dos redes neuronales diferentes. La primera red neuronal especifica cual es el significado de la palabra, y la segunda red neuronal con qu\u00e9 tipo de palabras busca tener relaci\u00f3n. Por lo tanto, cada palabra de la frase va a contener dos valores. Su significado, llamado <strong>vector key<\/strong>, y sus necesidades, llamado <strong>vector query<\/strong>, de forma que en el ejemplo anterior quedar\u00eda de la siguiente manera.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-6180 size-large\" src=\"https:\/\/www.teldat.com\/wp-content\/uploads\/2022\/05\/Captura1-1-1024x550.png\" alt=\"ai-artificial-intelligence-bert\" width=\"1024\" height=\"550\" title=\"\" srcset=\"https:\/\/www.teldat.com\/wp-content\/uploads\/2022\/05\/Captura1-1-1024x550.png 1024w, https:\/\/www.teldat.com\/wp-content\/uploads\/2022\/05\/Captura1-1-980x526.png 980w, https:\/\/www.teldat.com\/wp-content\/uploads\/2022\/05\/Captura1-1-480x258.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/p>\n<p>Una vez con estos resultados, con un c\u00e1lculo sencillo podemos obtener la correlaci\u00f3n que tiene cada palabra con el resto de la frase. Esto lo podemos conseguir comparando lo que busca cada una de las palabras <strong>(vector query)<\/strong>, con lo que son realmente el resto de palabras <strong>(vector key)<\/strong>, d\u00e1ndose un \u2018match\u2019 cuando ambos sean compatibles. Para relacionar todas las palabras entre s\u00ed, se compara el vector query de una palabra con el vector key del resto de palabras, repitiendo este proceso por cada una de las palabras de la frase.<\/p>\n<p>Cada uno de los resultados obtenidos en las comparaciones se almacenan en una matriz de resultados, siguiendo el ejemplo anterior el sistema de la siguiente manera (X ser\u00e1 el valor de la correlaci\u00f3n entre la palabra representada por la fila y por la columna a la que pertenece).<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-7885 size-full\" src=\"https:\/\/www.teldat.com\/wp-content\/uploads\/2022\/05\/Imagen3.png\" alt=\"ai-artificial-intelligence-bert\" width=\"570\" height=\"359\" title=\"\" srcset=\"https:\/\/www.teldat.com\/wp-content\/uploads\/2022\/05\/Imagen3.png 570w, https:\/\/www.teldat.com\/wp-content\/uploads\/2022\/05\/Imagen3-480x302.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 570px, 100vw\" \/><\/p>\n<p>Con esta matriz de resultados podemos considerar la importancia que tiene cada palabra con respecto al resto, permitiendo el entendimiento por parte de la m\u00e1quina del contexto de la frase.<\/p>\n<p>Por lo tanto, de este <em>paper<\/em> surgen los nuevos grandes sistemas de Inteligencia Artificial para NLP, los Transformers.<\/p>\n<p>Fue cuesti\u00f3n de tiempo el desarrollo de<strong> Inteligencias Artificiales basadas en la tecnolog\u00eda Transformer,<\/strong> siendo BERT una de las m\u00e1s prometedoras.<\/p>\n<h2>BERT<\/h2>\n<p><strong>Bidirectional Encoder Representations from Transformers, por sus siglas en ingl\u00e9s, BERT,<\/strong> se basa en la tecnolog\u00eda Transformer para funcionar. Su gran poder es la versatilidad que tiene, ya que puede usarse para la soluci\u00f3n de muchas tareas, \u00bfa qu\u00e9 se debe esto?<\/p>\n<p>Esto se debe a su arquitectura interna. BERT contiene dos grandes bloques. El primero es un bloque pre-entrenado general basado en las redes Transformer, el cual permite el entendimiento b\u00e1sico del lenguaje, y el segundo bloque, concatenado al anterior, permite afinar el funcionamiento del sistema mediante Deep Learning, siendo dependiente de la necesidad final. Este segundo bloque es el que permite esa gran versatilidad, ya que es un bloque peque\u00f1o y con gran potencial que se apoya en un bloque ya entrenado que soporta el reconocimiento b\u00e1sico del lenguaje.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-20511 size-full\" src=\"https:\/\/www.teldat.com\/wp-content\/uploads\/2022\/06\/Imagen4.png\" alt=\"ai-artificial-intelligence-bert\" width=\"566\" height=\"425\" title=\"\" srcset=\"https:\/\/www.teldat.com\/wp-content\/uploads\/2022\/06\/Imagen4.png 566w, https:\/\/www.teldat.com\/wp-content\/uploads\/2022\/06\/Imagen4-480x360.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 566px, 100vw\" \/><\/p>\n<p>Para entender esto, nos podemos imaginar a un universitario en su primer a\u00f1o, el cual tiene que superar un examen de integraci\u00f3n. Este alumno debe aprender a integrar, pero esta finalidad va a ser infinitamente m\u00e1s sencilla si tiene una base de derivaci\u00f3n. En esta analog\u00eda el alumno es la Inteligencia Artificial, el aprendizaje de integraci\u00f3n es el segundo bloque de afinamiento y la base de derivaci\u00f3n corresponde con el bloque pre-entrenado base.<\/p>\n<p>Es importante entender como con la misma base de derivaci\u00f3n, ajustando el bloque de afinamiento podr\u00edamos hacer que el alumno aprendiese a calcular la aceleraci\u00f3n de un sistema de movimiento (ya que es la derivada de la velocidad con respecto al tiempo) o a calcular intensidades de corriente en circuitos complejos (siendo la intensidad la derivada de la carga el\u00e9ctrica respecto al tiempo).<\/p>\n<p>En conclusi\u00f3n, podemos ver como <strong>la Inteligencia Artificial no defrauda en su promesa de cambiar el mundo tal como lo conocemos.<\/strong> Especialmente en el \u00e1mbito del <strong>NLP<\/strong> hemos visto como su avance en los \u00faltimos a\u00f1os ha permitido el desarrollo de algoritmos, que gracias a los Transformers son realizables con la tecnolog\u00eda que tenemos hoy en d\u00eda.<\/p>\n<p>BERT ya es implementado en grandes proyectos, tanto acad\u00e9micos como industriales, y solo basta con una b\u00fasqueda r\u00e1pida por internet para entender la trascendencia de estos sistemas en nuestra sociedad, habilitando grandes comodidades y necesidades, desde permitir la comunicaci\u00f3n a personas que por motivos m\u00e9dicos no pueden hablar, al m\u00e1s puro estilo Stephen Hawking, a la comodidad de nuestra casa, entablando una discusi\u00f3n con nuestro asistente de voz sobre si deber\u00eda llevar hoy al trabajo ropa m\u00e1s o menos abrigada.<\/p>\n<p><em>[*] Desde Teldat hemos pensado que ser\u00eda interesante tener blogueros externos, y as\u00ed ampliar el espectro de informaci\u00f3n que se transmite desde Teldat Blog. Esta semana, Ivan Castro, estudiante de Universidad Alcal\u00e1 de Henares, nos escribe sobre BERT.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>No es ning\u00fan secreto que en un futuro cercano, la Inteligencia Artificial, se encontrar\u00e1 implementada en la mayor\u00eda de los dispositivos tecnol\u00f3gicos. Esto se debe a que los algoritmos de Inteligencia Artificial permiten predecir y tomar decisiones con un razonamiento similar al humano para tareas muy concretas, reduciendo considerablemente el error y el tiempo utilizado, [&hellip;]<\/p>\n","protected":false},"author":225,"featured_media":20501,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[1170],"tags":[],"class_list":["post-21153","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-teldat-es-categoria"],"acf":[],"wpml_current_locale":"es_ES","wpml_translations":[{"locale":"en_US","id":20491,"slug":"ai-artificial-intelligence-bert","post_title":"Transformers: BERT","href":"https:\/\/www.teldat.com\/ai-artificial-intelligence-bert\/"}],"_links":{"self":[{"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/posts\/21153","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/users\/225"}],"replies":[{"embeddable":true,"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/comments?post=21153"}],"version-history":[{"count":0,"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/posts\/21153\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/media\/20501"}],"wp:attachment":[{"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/media?parent=21153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/categories?post=21153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/tags?post=21153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}