1 00:00:10,000 --> 00:00:13,813 Buenas, esto es BIMPRAXIS, el podcast donde el 2 00:00:13,813 --> 00:00:17,920 BIM se encuentra con la inteligencia artificial. 3 00:00:20,519 --> 00:00:23,364 Exploramos la ciencia, la tecnología y el futuro 4 00:00:23,364 --> 00:00:25,515 desde el enfoque de la arquitectura, 5 00:00:25,515 --> 00:00:27,179 ingeniería y construcción. 6 00:00:28,859 --> 00:00:38,700 ¡Empezamos! Hola y bienvenidos. 7 00:00:38,700 --> 00:00:41,535 Gracias por acompañarnos en este nuevo episodio del 8 00:00:41,535 --> 00:00:42,759 podcast de BIMPRAXIS. 9 00:00:43,140 --> 00:00:44,902 Hoy vamos a meternos en un tema que, 10 00:00:44,902 --> 00:00:47,272 hasta hace no mucho, sonaba a ciencia ficción, 11 00:00:47,272 --> 00:00:47,880 pura y dura. 12 00:00:48,780 --> 00:00:50,660 ¿Cómo es posible que una máquina entienda el 13 00:00:50,660 --> 00:00:51,880 significado de una palabra? 14 00:00:52,740 --> 00:00:54,485 No que la reconozca o la repita, 15 00:00:54,485 --> 00:00:56,164 sino que entienda su esencia, 16 00:00:56,164 --> 00:00:57,439 su relación con otras. 17 00:00:58,299 --> 00:01:00,399 Es una pregunta fascinante, la verdad. 18 00:01:27,519 --> 00:02:01,400 La distancia entre ellas representa la similitud de 19 00:02:01,400 --> 00:02:12,180 su significado. 20 00:02:12,180 --> 00:02:14,377 Entiendo. Es como un mapa conceptual, 21 00:02:14,377 --> 00:02:16,300 pero generado matemáticamente. 22 00:02:16,300 --> 00:02:17,539 Pero aquí me surge una duda. 23 00:02:17,539 --> 00:02:20,070 Un mapa normal tiene dos dimensiones, 24 00:02:20,070 --> 00:02:21,020 tres a lo sumo. 25 00:02:21,020 --> 00:02:23,649 Pero en las fuentes se habla de espacios 26 00:02:23,649 --> 00:02:26,199 de 100, 300 o incluso más dimensiones. 27 00:02:26,199 --> 00:02:27,939 ¿Cómo se mide la distancia ahí? 28 00:02:27,939 --> 00:02:29,520 No puedes usar una regla, ¿no? 29 00:02:29,580 --> 00:02:31,139 Esa es la pregunta clave. 30 00:02:31,139 --> 00:02:34,939 Y la respuesta es sorprendentemente elegante. 31 00:02:34,939 --> 00:02:37,360 En lugar de medir la distancia en línea 32 00:02:37,360 --> 00:02:40,765 recta, que puede ser engañosa en tantas dimensiones, 33 00:02:40,765 --> 00:02:42,732 lo que se mide es el ángulo entre 34 00:02:42,732 --> 00:02:43,640 los vectores. 35 00:02:43,639 --> 00:02:44,560 ¿El ángulo? 36 00:02:44,659 --> 00:02:47,503 Sí. El artículo de IBM lo detalla muy 37 00:02:47,503 --> 00:02:51,199 bien, con el concepto de similitud del coseno. 38 00:02:51,199 --> 00:02:54,079 Imagina dos flechas que parten del mismo punto, 39 00:02:54,079 --> 00:02:56,383 se apuntan casi en la misma dirección, 40 00:02:56,383 --> 00:02:58,615 el ángulo entre ellas es muy pequeño y 41 00:02:58,615 --> 00:03:00,919 su similitud del coseno es cercana a 1. 42 00:03:00,919 --> 00:03:03,819 Lo que significa que son semánticamente parecidas. 43 00:03:03,819 --> 00:03:05,300 Justo. Ah, claro. 44 00:03:05,300 --> 00:03:07,702 Así que océano y mar serían dos vectores 45 00:03:07,702 --> 00:03:09,960 con un ángulo minúsculo entre ellos. 46 00:03:09,960 --> 00:03:13,603 Precisamente. Si los vectores son perpendiculares, 47 00:03:13,603 --> 00:03:15,142 un ángulo de 90 grados, 48 00:03:15,142 --> 00:03:16,599 su similitud es cero. 49 00:03:16,599 --> 00:03:18,102 No tienen nada que ver, 50 00:03:18,102 --> 00:03:20,948 como democracia y tornillo, y se apuntan en 51 00:03:20,948 --> 00:03:24,348 direcciones opuestas, las similitudes menos uno, 52 00:03:24,348 --> 00:03:26,719 lo que indicaría que son antónimos. 53 00:03:26,719 --> 00:03:29,276 Vale, es una forma muy eficiente de capturar 54 00:03:29,276 --> 00:03:32,800 estas relaciones complejas, sin importar las dimensiones. 55 00:03:32,800 --> 00:03:35,825 Eso es. El modelo aprende a orientar los 56 00:03:35,825 --> 00:03:39,860 vectores según el significado que extrae del texto. 57 00:03:39,860 --> 00:03:41,900 Y ese es el siguiente paso. 58 00:03:41,900 --> 00:03:44,624 ¿Cómo aprende la máquina a crear este mapa, 59 00:03:44,624 --> 00:03:47,197 porque alguien no se sienta a colocar río 60 00:03:47,197 --> 00:03:48,560 cerca del agua a mano? 61 00:03:48,680 --> 00:03:50,646 Las fuentes dicen que el truco está en 62 00:03:50,646 --> 00:03:53,120 alimentarlo con cantidades masivas de texto. 63 00:03:53,139 --> 00:03:54,979 Con toda la Wikipedia, por ejemplo. 64 00:03:54,979 --> 00:03:57,270 Claro. Ahí entra en juego lo que se 65 00:03:57,270 --> 00:04:00,215 conoce como la hipótesis distribucional, 66 00:04:00,215 --> 00:04:02,178 una idea que es la base de todo 67 00:04:02,178 --> 00:04:04,387 esto, y que se resume en una frase 68 00:04:04,387 --> 00:04:04,959 famosa. 69 00:04:05,180 --> 00:04:07,329 Sabrás lo que es una palabra por las 70 00:04:07,329 --> 00:04:08,960 compañías que frecuenta. 71 00:04:08,840 --> 00:04:10,219 Me gusta esa frase. 72 00:04:10,060 --> 00:07:07,094 El modelo no aprende conceptos. Aprende relaciones. 73 00:07:07,094 --> 00:07:09,271 La relación entre hombre y mujer es un 74 00:07:09,271 --> 00:07:12,081 cierto vector, una dirección y una distancia en 75 00:07:12,081 --> 00:07:12,854 ese espacio. 76 00:07:12,914 --> 00:07:15,979 Y resulta que esa misma flecha vectorial es 77 00:07:15,979 --> 00:07:18,278 la que conecta rey con reina o tío 78 00:07:18,278 --> 00:07:18,874 con tía. 79 00:07:19,634 --> 00:07:23,329 El modelo captura la relación masculino-femenino como una 80 00:07:23,329 --> 00:07:24,734 dirección constante. 81 00:07:24,734 --> 00:07:27,280 Fascinante. Y lo que es más increíble, 82 00:07:27,280 --> 00:07:29,269 y esto lo detallan en el paper, 83 00:07:29,269 --> 00:07:32,134 es que no se limita a analogías semánticas. 84 00:07:32,114 --> 00:07:34,554 También captura relaciones sintácticas. 85 00:07:34,714 --> 00:07:38,135 Por ejemplo, la relación entre caminar y caminando 86 00:07:38,135 --> 00:07:40,203 es el mismo vector que la que hay 87 00:07:40,203 --> 00:07:41,954 entre correr y corriendo. 88 00:07:41,814 --> 00:07:44,334 O sea, captura el concepto de gerundio. 89 00:07:44,334 --> 00:07:47,155 Justo. Para probar esto, los autores crearon un 90 00:07:47,155 --> 00:07:50,047 conjunto de pruebas con miles de estas preguntas 91 00:07:50,047 --> 00:07:50,894 de analogías. 92 00:07:50,934 --> 00:07:54,066 Por primera vez, se podía medir objetivamente la 93 00:07:54,066 --> 00:07:57,274 calidad del conocimiento semántico de un modelo. 94 00:07:57,194 --> 00:07:59,334 Diendo lo de Word2Vec y su análisis del 95 00:07:59,334 --> 00:08:01,810 contexto cercano, pero me da la sensación de 96 00:08:01,810 --> 00:08:04,486 que se está perdiendo información al mirar solo 97 00:08:04,486 --> 00:08:06,626 una ventana de unas pocas palabras a la 98 00:08:06,626 --> 00:08:06,894 vez. 99 00:08:06,954 --> 00:08:13,488 Absolutamente. Y esa es precisamente la idea que 100 00:08:13,488 --> 00:08:19,864 el equipo de la Universidad de Stanford exploró 101 00:08:19,864 --> 00:08:24,964 con su modelo GLOBE, que son las siglas 102 00:08:24,964 --> 00:08:27,514 de Global Vectors. 103 00:08:27,834 --> 00:08:29,194 Vectores globales. Exacto. 104 00:08:29,194 --> 00:08:32,469 Mientras Word2Vec aprende de forma indirecta, 105 00:08:32,469 --> 00:08:35,580 prediciendo palabras en contextos locales, 106 00:08:35,580 --> 00:08:37,954 GLOBE ataca el problema de frente. 107 00:08:37,674 --> 00:08:43,029 Construye primero una matriz gigantesca de coocurrencias. Básicamente, 108 00:08:43,029 --> 00:08:46,599 cuenta cuántas veces aparece cada palabra junto a 109 00:08:46,599 --> 00:08:49,574 cualquier otra palabra en todo el corpus. 110 00:08:49,574 --> 00:08:52,901 Por ejemplo, contará que hielo y frío aparecen 111 00:08:52,901 --> 00:08:55,802 juntas muy a menudo, mientras que hielo y 112 00:08:55,802 --> 00:08:59,044 fuego aparecen juntas con menos frecuencia, 113 00:08:59,044 --> 00:09:01,774 aunque siguen teniendo una relación. 114 00:09:02,334 --> 00:09:05,541 Su objetivo es que los vectores generados reproduzcan 115 00:09:05,541 --> 00:09:09,028 las proporciones de esas probabilidades de coocurrencia. 116 00:09:09,028 --> 00:09:11,754 Le da una base estadística muy sólida y 117 00:09:11,754 --> 00:09:13,968 robusta. Muchísimo más, vale. 118 00:09:13,968 --> 00:09:16,801 Un enfoque diferente para llegar a un resultado 119 00:09:16,801 --> 00:09:17,368 similar. 120 00:09:17,368 --> 00:09:21,944 Y las fuentes mencionan un tercer modelo, FastText, 121 00:09:21,944 --> 00:09:23,088 de Facebook. 122 00:09:23,088 --> 00:09:25,717 Este parece que introduce una idea interesante, 123 00:09:25,717 --> 00:09:27,448 no mirar solo la palabra entera. 124 00:09:27,448 --> 00:09:45,036 Sí, esa fue su gran aportación. 125 00:09:45,036 --> 00:10:12,770 FastText descompone las palabras en sus partes, 126 00:10:12,770 --> 00:10:28,328 en n-gramas de caracteres. 127 00:10:28,328 --> 00:10:31,438 Por ejemplo, la palabra planeta la descompone en 128 00:10:31,438 --> 00:10:32,956 pla, lan, ane, net, eta, 129 00:10:32,956 --> 00:10:34,928 además de la palabra completa. 130 00:10:34,928 --> 00:10:37,068 Y esto tiene dos ventajas enormes. 131 00:10:37,068 --> 00:10:38,608 Así es. 132 00:10:38,608 --> 00:10:41,981 Sirve para palabras que no ha visto nunca. 133 00:10:41,981 --> 00:10:44,968 El topográfico no se queda en blanco. 134 00:10:44,968 --> 00:10:48,668 Puede inferir su significado a partir de las 135 00:10:48,668 --> 00:10:50,468 partes que sí conoce. 136 00:10:50,468 --> 00:12:03,940 Claro, como si aprendiera las letras de las 137 00:12:03,940 --> 00:12:22,308 palabras. 138 00:12:22,308 --> 00:12:24,499 Justo. Por eso, si se encuentra con una 139 00:12:24,499 --> 00:12:27,785 palabra inventada como caminanteando, aunque no la haya 140 00:12:27,785 --> 00:12:30,250 visto nunca, puede intuir que tiene que ver 141 00:12:30,250 --> 00:12:31,688 con caminar o caminante. 142 00:12:31,808 --> 00:12:33,771 Y la segunda ventaja, que mencionan los artículos, 143 00:12:33,771 --> 00:12:35,460 es especialmente útil para un idioma como el 144 00:12:35,460 --> 00:12:37,468 español, con tantas conjugaciones y derivaciones. 145 00:12:37,468 --> 00:12:40,094 Totalmente. Para un modelo como Word2Vec, correr, 146 00:12:40,094 --> 00:12:43,148 corría y corredor son tres palabras totalmente distintas. 147 00:12:43,148 --> 00:12:45,737 FastText, al compartir los n-gramas de caracteres, 148 00:12:45,737 --> 00:12:48,973 entiende que están intrínsecamente relacionadas y sus vectores 149 00:12:48,973 --> 00:12:50,208 estarán mucho más cerca. 150 00:12:50,208 --> 00:12:53,988 Es una forma de entender la morfología. 151 00:12:53,988 --> 00:12:56,498 Sin embargo, todos estos modelos, Word2Vec, Glove, FastText, 152 00:12:56,498 --> 00:12:58,108 comparten una limitación fundamental. 153 00:12:58,108 --> 00:13:11,018 Crean representaciones estáticas. Es decir, 154 00:13:11,018 --> 00:13:21,941 la palabra banco tiene un único vector, 155 00:13:21,941 --> 00:13:28,892 un único punto en el mapa, 156 00:13:28,892 --> 00:13:38,823 sin importar si hablo del banco de un 157 00:13:38,823 --> 00:13:47,429 parque, de un banco de peces o de 158 00:13:47,429 --> 00:13:55,042 un banco para sacar dinero. 159 00:13:55,042 --> 00:13:56,168 Y ese es el problema. 160 00:13:56,168 --> 00:13:59,147 El significado de una palabra depende totalmente del 161 00:13:59,147 --> 00:13:59,742 contexto. 162 00:13:59,742 --> 00:14:02,702 Necesitábamos modelos que generaran vectores dinámicos, contextuales. 163 00:14:02,702 --> 00:14:05,556 Exactamente. Ahí es donde entra en escena el 164 00:14:05,556 --> 00:14:07,483 nombre que cambió todo. BERT,n-gramas 165 00:14:07,483 --> 00:14:09,642 desarrollado por Google en 2018. 166 00:14:09,642 --> 00:14:12,034 El artículo original de BERT es denso, 167 00:14:12,034 --> 00:14:14,575 pero la idea central que lo diferencia de 168 00:14:14,575 --> 00:14:18,162 todo lo anterior es que es profundamente bidireccional. 169 00:14:18,162 --> 00:14:21,002 ¿Y qué significa eso en la práctica? 170 00:14:21,002 --> 00:16:29,528 Pues significa que lee como lo haría un 171 00:16:29,528 --> 00:16:57,642 humano. 172 00:16:57,642 --> 00:17:00,748 Los modelos anteriores, incluso los más avanzados de 173 00:17:00,748 --> 00:17:03,302 la época, como GPT, eran unidireccionales. 174 00:17:03,302 --> 00:17:06,320 Para entender una palabra, solo miraban el texto 175 00:17:06,320 --> 00:17:08,822 que venía antes, de izquierda a derecha. 176 00:17:08,822 --> 00:17:11,267 Claro, no podían esperar al final de la 177 00:17:11,267 --> 00:17:13,482 frase para entender el principio. 178 00:17:13,482 --> 00:17:20,749 Era un problema. Lo que hizo BERT, 179 00:17:20,749 --> 00:17:28,535 y esto es lo que su artículo describe 180 00:17:28,535 --> 00:17:33,985 como la clave de su éxito, 181 00:17:33,985 --> 00:17:41,771 fue forzar al modelo a mirar en ambas 182 00:17:41,771 --> 00:17:46,442 direcciones a la vez. 183 00:17:46,442 --> 00:17:46,998 Para ello, inventaron una tarea de entrenamiento muy 184 00:17:46,998 --> 00:17:47,442 ingeniosa llamada Masked Language Model.