Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1
- 00:00:00,000 --> 00:00:10,000
- hola a todos, muchas gracias por la presentación, es un placer estar aquí, es una gran oportunidad para compartir con ustedes
- 2
- 00:00:10,000 --> 00:00:20,000
- algunos de los últimos avances y esfuerzos, así que uno de nuestros temas principales es
- 3
- 00:00:20,000 --> 00:00:30,000
- mejores modelos abiertos, creemos en democratizar la inteligencia con modelos abiertos, se pueden desplegar en cualquier lugar, en sus propios servidores o en la nube
- 4
- 00:00:30,000 --> 00:00:40,000
- y se puede acceder a cada uno de los pesos del modelo en lugar de usar solo una caja negra, y esta es una de las diapositivas que
- 5
- 00:00:40,000 --> 00:00:50,000
- usé en una charla anterior de este año: como pueden ver, los modelos abiertos están cerrando rápidamente la brecha con
- 6
- 00:00:50,000 --> 00:01:00,000
- los modelos de frontera, y creemos que con mejores modelos abiertos vamos a hacer que la inteligencia sea más accesible para cualquier persona en
- 7
- 00:01:00,000 --> 00:01:10,000
- cualquier rincón del mundo, pero los modelos abiertos no solo tienen que ser abiertos, también tienen que ser excelentes
- 8
- 00:01:10,000 --> 00:01:20,000
- así que en esta charla vamos a hablar de cómo hacemos que los modelos sean excelentes, como sabemos, el escalado
- 9
- 00:01:20,000 --> 00:01:30,000
- ha sido el motor de gran parte del progreso, quizás de todos los grandes avances de IA que hemos visto en los últimos años, y vamos a
- 10
- 00:01:30,000 --> 00:01:40,000
- hablar de cómo escalamos nuestro modelo en distintas dimensiones. A la izquierda, la primera figura muestra la ley de escalado estándar:
- 11
- 00:01:40,000 --> 00:01:50,000
- en el eje x tenemos el logaritmo del número de tokens de entrenamiento y en el eje y el logaritmo de la pérdida, y a medida que se escala el número de
- 12
- 00:01:50,000 --> 00:02:00,000
- tokens se obtiene una pérdida menor, pero el punto aquí es que no solo vamos a escalar el número de tokens de entrenamiento, sino que también queremos mejorar la
- 13
- 00:02:00,000 --> 00:02:10,000
- eficiencia por token, es decir, queremos desplazar esta curva hacia la izquierda para lograr una pérdida menor, y mucho menor, usando el
- 14
- 00:02:10,000 --> 00:02:20,000
- mismo número de tokens de entrenamiento, y esto se puede lograr con mejores arquitecturas y optimizadores, algo que discutiremos
- 15
- 00:02:20,000 --> 00:02:30,000
- y la segunda dimensión de escalado que nos interesa mucho es escalar la longitud de contexto, como pueden ver en la segunda figura, si
- 16
- 00:02:30,000 --> 00:02:40,000
- aumentamos la longitud de contexto podemos tener una precisión mucho mayor a la hora de predecir el token
- 17
- 00:02:40,000 --> 00:02:50,000
- en una posición dada, y esto significa que podemos aumentar la capacidad del modelo para lograr tareas más complejas mediante
- 18
- 00:02:50,000 --> 00:03:00,000
- contextos más largos, así que esta es la segunda dimensión de escalado de la que hablaremos, y la tercera dimensión de escalado es el número de agentes, así que introdujimos
- 19
- 00:03:00,000 --> 00:03:10,000
- un nuevo paradigma de aprendizaje de enjambres de agentes, donde no dependemos solo de un único agente, sino que orquestamos un enjambre de
- 20
- 00:03:10,000 --> 00:03:20,000
- agentes que pueden completar subtareas en paralelo, de modo que podemos aumentar la capacidad de resolver tareas, y podemos traducir todo esto al lenguaje de los agentes:
- 21
- 00:03:20,000 --> 00:03:30,000
- la eficiencia por token se trata sobre todo de tener un prior más fuerte para que se pueda tener más eficiencia al hacer una
- 22
- 00:03:30,000 --> 00:03:40,000
- búsqueda de una mejor solución, y el contexto largo se trata sobre todo de aumentar la longitud de contexto para que se pueda tener un agente que funcione durante más tiempo, que pueda
- 23
- 00:03:40,000 --> 00:03:50,000
- operar durante días, semanas o incluso meses para lograr tareas más complejas, y en cuanto a los agentes,
- 24
- 00:03:50,000 --> 00:04:00,000
- la cantidad es otra dimensión relevante, y al final del día vamos a tener un enjambre de agentes donde cada uno tiene un contexto súper largo y cada uno tiene un
- 25
- 00:04:00,000 --> 00:04:10,000
- prior más fuerte para buscar dentro de todo este sistema de agentes. Muy bien, así que vamos a empezar por
- 26
- 00:04:10,000 --> 00:04:20,000
- esta es una de las figuras más clásicas en la historia del aprendizaje automático, la segunda de Kaplan et al.,
- 27
- 00:04:20,000 --> 00:04:30,000
- básicamente dice que si escalamos proporcionalmente el número de tokens de entrenamiento, los parámetros del modelo y también la cantidad de cómputo, podemos obtener una
- 28
- 00:04:30,000 --> 00:04:40,000
- pérdida menor, y este es uno de los grandes avances que toda la comunidad ha logrado en los últimos años para lograr una
- 29
- 00:04:40,000 --> 00:04:50,000
- mayor eficiencia, y aquí está la cuestión:
- 30
- 00:04:50,000 --> 00:05:00,000
- una cosa que me gustaría destacar es que la eficiencia por token no se trata solo de eficiencia, sino también de mejorar
- 31
- 00:05:00,000 --> 00:05:10,000
- el techo de la inteligencia, es decir, supongamos que se tienen 50 billones de tokens y
- 32
- 00:05:10,000 --> 00:05:20,000
- aplicamos este nuevo optimizador, y de repente se obtiene el doble de eficiencia por token, lo que significa que
- 33
- 00:05:20,000 --> 00:05:30,000
- es casi mágico, es como si se tuvieran el equivalente a 100 billones de tokens, y hoy en día nos estamos acercando al
- 34
- 00:05:30,000 --> 00:05:40,000
- muro de los datos, y la cantidad de datos de alta calidad es bastante limitada, y si suponemos que esa cantidad es constante, entonces aumentar
- 35
- 00:05:40,000 --> 00:05:50,000
- la eficiencia por token significa que vamos a obtener mejor inteligencia a partir de ello, no se trata solo de infraestructura y eficiencia, sino de una mejor
- 36
- 00:05:50,000 --> 00:06:00,000
- inteligencia en sí, por eso hemos dedicado mucho esfuerzo a este aspecto, porque va a impulsar la frontera de la inteligencia
- 37
- 00:06:00,000 --> 00:06:10,000
- Muon es uno de los optimizadores en los que hemos invertido mucho desde el año pasado, es un optimizador de segundo orden
- 38
- 00:06:10,000 --> 00:06:20,000
- y básicamente cada actualización de gradiente se transforma de manera que cada componente sea ortogonal entre sí, y esto es muy distinto
- 39
- 00:06:20,000 --> 00:06:30,000
- del optimizador Adam tradicional, y si se implementa correctamente, se puede obtener una mejora de eficiencia de aproximadamente el doble
- 40
- 00:06:30,000 --> 00:06:40,000
- así que fuimos el primer trabajo en demostrar que Muon en realidad es escalable
- 41
- 00:06:40,000 --> 00:06:50,000
- para el entrenamiento a gran escala, y estas son dos técnicas clave que empleamos para que fuera efectivo en entrenamientos a gran escala: una es el weight decay,
- 42
- 00:06:50,000 --> 00:07:00,000
- que es fundamental para escalar a modelos grandes, y la segunda es que queremos garantizar actualizaciones RMS consistentes en comparación con Adam, así que tenemos
- 43
- 00:07:00,000 --> 00:07:10,000
- coeficientes ajustables que se aplican a cada componente para que el RMS resultante sea comparable al
- 44
- 00:07:10,000 --> 00:07:20,000
- de Adam, y para que sea eficiente en memoria en todos estos clústeres de GPU de Nvidia también desarrollamos una implementación
- 45
- 00:07:20,000 --> 00:07:30,000
- distribuida que particiona los estados a través del grupo de paralelismo de datos, de modo que podemos tener una implementación muy eficiente para Muon
- 46
- 00:07:30,000 --> 00:07:40,000
- y estos son algunos de los resultados presentados en el artículo, como pueden ver, con el mismo número de parámetros y el mismo número de
- 47
- 00:07:40,000 --> 00:07:50,000
- tokens, reemplazar el optimizador Adam original por el nuevo optimizador Muon mejora el rendimiento en todos los aspectos
- 48
- 00:07:50,000 --> 00:08:00,000
- pero surgió un nuevo desafío cuando intentamos escalarlo, al intentar
- 49
- 00:08:00,000 --> 00:08:10,000
- escalar Muon a un modelo de 1 billón de parámetros nos encontramos con un nuevo problema de inestabilidad en el entrenamiento, como pueden ver a la izquierda
- 50
- 00:08:10,000 --> 00:08:20,000
- observamos que el logit máximo de atención explota rápidamente y supera fácilmente los 1000, cuando los valores típicos para
- 51
- 00:08:20,000 --> 00:08:30,000
- el entrenamiento de este logit máximo son alrededor de 50 o incluso menos de 100, pero con Muon rápidamente
- 52
- 00:08:30,000 --> 00:08:40,000
- excede los 1000, y al mismo tiempo observamos divergencia en el entrenamiento; a la izquierda, si miran la pérdida de entrenamiento, baja un poco pero al final
- 53
- 00:08:40,000 --> 00:08:50,000
- explota y no converge como se esperaba, así que este es uno de los desafíos técnicos que tuvimos que resolver, y la solución
- 54
- 00:08:50,000 --> 00:09:00,000
- fue introducir esta nueva técnica llamada QK-Clip: básicamente, para cada cabeza de atención en toda esta red neuronal
- 55
- 00:09:00,000 --> 00:09:10,000
- vamos a calcular el logit máximo y luego vamos a calcular un factor de división que se puede aplicar a cada
- 56
- 00:09:10,000 --> 00:09:20,000
- proyección, de modo que podamos limitar el valor máximo de las proyecciones de consulta (query) y clave (key)
- 57
- 00:09:20,000 --> 00:09:30,000
- en un rango dado, para que ya no se produzca la explosión. Estos son algunos de los resultados empíricos:
- 58
- 00:09:30,000 --> 00:09:40,000
- a la izquierda hay dos curvas, pero se superponen estrictamente entre sí, son las curvas de entrenamiento antes y después de aplicar la técnica de clipping
- 59
- 00:09:40,000 --> 00:09:50,000
- la técnica de clipping no afecta en absoluto la disminución de la pérdida de entrenamiento, pero a la derecha,
- 60
- 00:09:50,000 --> 00:10:00,000
- si se observa el logit máximo intermedio, se ve que efectivamente queda controlado: primero
- 61
- 00:10:00,000 --> 00:10:10,000
- explota como antes, pero en un valor de 100 se limita y se mantiene en ese valor constante durante mucho tiempo, y luego, tras cierto número de pasos, baja naturalmente
- 62
- 00:10:10,000 --> 00:10:20,000
- así que la red neuronal encuentra por sí misma una manera de restringir el valor máximo del logit máximo para
- 63
- 00:10:20,000 --> 00:10:30,000
- mantener un proceso de entrenamiento estable, y al mismo tiempo no afecta la convergencia del entrenamiento como se mostró en la diapositiva anterior, así que empleamos
- 64
- 00:10:30,000 --> 00:10:40,000
- esta técnica en el entrenamiento de nuestro modelo K2 y logramos escalarlo con éxito a 1 billón de parámetros, y este es
- 65
- 00:10:40,000 --> 00:10:50,000
- el mayor ejemplo de entrenamiento de un modelo Muon a gran escala en la historia del aprendizaje automático, y la segunda dimensión que nos interesa mucho
- 66
- 00:10:50,000 --> 00:11:00,000
- es el contexto largo, así que esta es otra figura, probablemente una de las joyas ocultas de este artículo
- 67
- 00:11:00,000 --> 00:11:10,000
- en lugar de simplemente reducir la pérdida de entrenamiento entrenando en más tokens, aporta información desde otra perspectiva, como podemos
- 68
- 00:11:10,000 --> 00:11:20,000
- ver, esta es una comparación entre Transformers y LSTMs: a la izquierda podemos ver que los Transformers logran una pérdida de entrenamiento menor con el mismo
- 69
- 00:11:20,000 --> 00:11:30,000
- número de parámetros y el mismo número de tokens de entrenamiento, como era de esperar, y por eso los Transformers se han convertido en la arquitectura de facto que la gente usa actualmente
- 70
- 00:11:30,000 --> 00:11:40,000
- pero a la derecha es realmente interesante ver que los Transformers son en realidad mejores porque pueden mejorar a lo largo de todo el contexto, así que
- 71
- 00:11:40,000 --> 00:11:50,000
- el eje x es el índice del token dentro del contexto, y si se aumenta el índice del token se puede ver que la pérdida de entrenamiento de los Transformers cae mucho
- 72
- 00:11:50,000 --> 00:12:00,000
- a medida que se sigue aumentando la longitud de contexto, la pérdida sigue disminuyendo de forma continua, pero si se observa la curva de las LSTM
- 73
- 00:12:00,000 --> 00:12:10,000
- se satura después de cierto número de tokens, lo que significa que los Transformers tienen mejor capacidad para capturar contextos más largos
- 74
- 00:12:10,000 --> 00:12:20,000
- y esto es lo que los hace mejores, porque si nos remontamos unos 10 años atrás, la gente usaba LSTM para tareas como la traducción automática
- 75
- 00:12:20,000 --> 00:12:30,000
- pero no son adecuadas, por ejemplo, para entender una base de código completa o para gestionar trayectorias de agentes muy largas y resolver, por ejemplo,
- 76
- 00:12:30,000 --> 00:12:40,000
- tareas como compilar kernels de Linux desde cero, eso no se puede lograr con LSTM, así que esta es una capacidad muy necesaria en
- 77
- 00:12:40,000 --> 00:12:50,000
- la era de los agentes, porque las tareas son cada vez más difíciles y requieren contextos cada vez más largos, así que la idea de investigación aquí es desarrollar una mejor
- 78
- 00:12:50,000 --> 00:13:00,000
- arquitectura para poder escalar eficientemente a una longitud de contexto mayor y al mismo tiempo lograr una pérdida menor
- 79
- 00:13:00,000 --> 00:13:10,000
- en índices de token más grandes, y esta es la motivación por la que introdujimos esta nueva arquitectura,
- 80
- 00:13:10,000 --> 00:13:20,000
- una nueva variante de atención lineal llamada Kimi Linear,
- 81
- 00:13:20,000 --> 00:13:30,000
- que mejora la Gated Delta Rule (GDR) original con una memoria de retorno mejorada; mostraré los detalles más adelante, y
- 82
- 00:13:30,000 --> 00:13:40,000
- vamos a mezclar capas de atención lineal con capas de atención completa en una proporción de 1:3, de modo que se pueda equilibrar entre esta
- 83
- 00:13:40,000 --> 00:13:50,000
- capacidad de contexto largo y al mismo tiempo tener una implementación más eficiente, así que esta es parte de la formulación:
- 84
- 00:13:50,000 --> 00:14:00,000
- la idea básica es simple, si se observa la atención lineal en su formulación original, la memoria es global, hay un
- 85
- 00:14:00,000 --> 00:14:10,000
- factor de decaimiento global que se aplica en todo momento, lo que significa que básicamente solo hay dos casos: en un caso
- 86
- 00:14:10,000 --> 00:14:20,000
- se olvida básicamente todo y no se devuelve ninguna información, y en el segundo caso se puede elegir devolver casi todo, pero
- 87
- 00:14:20,000 --> 00:14:30,000
- al mismo tiempo no se tiene la capacidad de descartar parte de la información innecesaria en este contexto largo, así que introdujimos esta idea clave de tener un
- 88
- 00:14:30,000 --> 00:14:40,000
- factor de decaimiento por canal, mostrado en este término alfa resaltado, así que en lugar de ser un escalar, va a ser una matriz
- 89
- 00:14:40,000 --> 00:14:50,000
- diagonal que controla la tasa de decaimiento para cada canal, de modo que tenemos dos posibilidades: para algunos canales podemos hacer que decaigan
- 90
- 00:14:50,000 --> 00:15:00,000
- muy lentamente, lo que significa que podemos retener esta información de contexto largo a lo largo de un rango muy amplio, y al mismo tiempo, para otros canales podemos
- 91
- 00:15:00,000 --> 00:15:10,000
- olvidar rápidamente la información de índices pasados para refrescarla y captar nueva información, y esto es
- 92
- 00:15:10,000 --> 00:15:20,000
- lo que aumenta la expresividad de este modelo, y por supuesto, para aprovechar mejor las GPU tenemos que usar esta formulación en
- 93
- 00:15:20,000 --> 00:15:30,000
- paralelo por bloques (chunk-wise), así que la primera ecuación aquí es la formulación de Kimi Linear en paralelo por bloques,
- 94
- 00:15:30,000 --> 00:15:40,000
- como pueden ver, esto plantea grandes desafíos de infraestructura debido a
- 95
- 00:15:40,000 --> 00:15:50,000
- este nuevo término alfa, porque ahora es una matriz en lugar de un escalar, se puede factorizar fácilmente, así que para lograr una
- 96
- 00:15:50,000 --> 00:16:00,000
- implementación eficiente reescribimos toda la ecuación en las tres ecuaciones de abajo, introdujimos esta inversión de matriz
- 97
- 00:16:00,000 --> 00:16:10,000
- y también introdujimos el factor de decaimiento acumulado, de modo que podemos implementar todo esto en paralelo sin
- 98
- 00:16:10,000 --> 00:16:20,000
- perder eficiencia, y lo más importante es que esto no es una aproximación, es una operación matemáticamente equivalente y exacta,
- 99
- 00:16:20,000 --> 00:16:30,000
- así que podemos lograr mucha más eficiencia sin sacrificar ninguna pérdida en cuanto al rendimiento, va a ser
- 100
- 00:16:30,000 --> 00:16:40,000
- tan eficiente como las variantes de atención lineal anteriores, pero al mismo tiempo mucho más expresiva; estos son algunos de los resultados
- 101
- 00:16:40,000 --> 00:16:50,000
- que obtuvimos usando una comparación justa, a la izquierda vemos el rendimiento en dos tipos distintos de tareas, Kimi Linear
- 102
- 00:16:50,000 --> 00:17:00,000
- logra un mejor rendimiento en comparación con MLA y GDN, y al
- 103
- 00:17:00,000 --> 00:17:10,000
- mismo tiempo, para pruebas de contexto largo como RULER, Kimi Linear también es mejor que las otras variantes,
- 104
- 00:17:10,000 --> 00:17:20,000
- siendo mucho más eficiente en comparación con MLA, y cuando escalamos la longitud de contexto aún más, por ejemplo a 1 millón de tokens o más,
- 105
- 00:17:20,000 --> 00:17:30,000
- es mucho más eficiente en comparación con la línea base, y esta es también la primera arquitectura que supera
- 106
- 00:17:30,000 --> 00:17:40,000
- en todos los aspectos, incluyendo pruebas de contexto corto, tareas de entrada larga y tareas de salida larga, así que esto es lo que
- 107
- 00:17:40,000 --> 00:17:50,000
- nos interesa, y la tercera dimensión son los enjambres de agentes, aquí hay un diagrama para mostrar
- 108
- 00:17:50,000 --> 00:18:00,000
- cómo diseñamos este paradigma de agentes para resolver algunas de las tareas más complejas en comparación con el paradigma de un solo agente
- 109
- 00:18:00,000 --> 00:18:10,000
- así que aquí tenemos un orquestador, o se le puede llamar agente principal, que es responsable de orquestar la tarea, tiene distintas opciones para
- 110
- 00:18:10,000 --> 00:18:20,000
- esto, podemos generar un grupo de subagentes y asignarles nuevas tareas, o podemos recopilar los resultados que devuelven estos
- 111
- 00:18:20,000 --> 00:18:30,000
- subagentes, y se puede realizar este proceso de manera iterativa, y al final del día se puede lograr una tarea más
- 112
- 00:18:30,000 --> 00:18:40,000
- compleja en comparación con usar un solo agente, y es análogo a la sociedad humana, por ejemplo, si formamos una empresa necesitaremos distintos roles, y
- 113
- 00:18:40,000 --> 00:18:50,000
- necesitamos, por ejemplo, un orquestador, o tal vez un CEO que descomponga la tarea en distintos roles, y luego el resto de
- 114
- 00:18:50,000 --> 00:19:00,000
- los miembros del equipo tienen que avanzar hacia la misma meta, y aquí, por ejemplo, en este caso podríamos tener investigadores,
- 115
- 00:19:00,000 --> 00:19:10,000
- desarrolladores web, investigadores que estudian distintos temas, y al final del día simplemente se recopilan los resultados y se genera un grupo de
- 116
- 00:19:10,000 --> 00:19:20,000
- verificadores, desarrolladores y descargadores de archivos para ensamblar los resultados en un solo informe
- 117
- 00:19:20,000 --> 00:19:30,000
- y esta es otra forma de ver este nuevo paradigma: el eje x es la complejidad de
- 118
- 00:19:30,000 --> 00:19:40,000
- la tarea, y el eje y es el tiempo de ejecución, y la complejidad de la tarea se mide por la precisión de
- 119
- 00:19:40,000 --> 00:19:50,000
- un grupo de modelos en dichas tareas, así que podemos ver que con los enjambres de agentes se reduce sustancialmente
- 120
- 00:19:50,000 --> 00:20:00,000
- el tiempo de ejecución en comparación con un solo agente, es mucho más efectivo, y esto significa que podemos escalar
- 121
- 00:20:00,000 --> 00:20:10,000
- esto, y es solo un paradigma: por ejemplo, si se ejecuta este enjambre de agentes con 100 o incluso 1000 agentes, se puede
- 122
- 00:20:10,000 --> 00:20:20,000
- completar una tarea compleja en un período de tiempo tolerable para producir valor económico real
- 123
- 00:20:20,000 --> 00:20:30,000
- y ciertamente podemos escalarlo en distintas dimensiones, podemos escalar las entradas, por ejemplo descargar y leer cientos de fuentes
- 124
- 00:20:30,000 --> 00:20:40,000
- o incluso miles en paralelo, o las salidas, escribir una revisión de literatura de 100 páginas en paralelo,
- 125
- 00:20:40,000 --> 00:20:50,000
- o se pueden tomar acciones a escala, por ejemplo realizar análisis de datos para 10 tareas distintas, y también está la orquestación a escala, hay que
- 126
- 00:20:50,000 --> 00:21:00,000
- diseñar las tareas y agregar los resultados, y técnicamente definimos algunas nuevas funciones objetivo para guiar
- 127
- 00:21:00,000 --> 00:21:10,000
- el proceso de nuestro sistema de enjambre de agentes, así que hay tres funciones de recompensa consideradas
- 128
- 00:21:10,000 --> 00:21:20,000
- en comparación con el aprendizaje convencional de un solo agente: el primer término es lo que llamamos la recompensa de instanciación,
- 129
- 00:21:20,000 --> 00:21:30,000
- que incentiva la instanciación de agentes para prevenir el fenómeno de colapso en serie
- 130
- 00:21:30,000 --> 00:21:40,000
- básicamente no queremos que se recurra por defecto a la ejecución de un solo agente, queremos fomentar las ejecuciones en paralelo,
- 131
- 00:21:40,000 --> 00:21:50,000
- especialmente en las etapas tempranas del entrenamiento, y por supuesto podemos ir reduciendo el peso de esta recompensa de instanciación
- 132
- 00:21:50,000 --> 00:22:00,000
- a lo largo del entrenamiento, porque una vez que el modelo aprende a ejecutar en paralelo podemos reducir ese peso, y el segundo término aquí es
- 133
- 00:22:00,000 --> 00:22:10,000
- la recompensa de finalización, y la usamos porque observamos que durante el entrenamiento algunos de estos
- 134
- 00:22:10,000 --> 00:22:20,000
- subagentes se creaban pero nunca terminaban su tarea, así que era casi como si el modelo hiciera trampa generando un montón de agentes de prueba que
- 135
- 00:22:20,000 --> 00:22:30,000
- no tenían ningún sentido, y aquí usamos esta recompensa de finalización básicamente para fomentar que cada subtarea tenga
- 136
- 00:22:30,000 --> 00:22:40,000
- una proporción relativamente alta de finalización, en lugar de simplemente generar un montón de tareas ficticias que deberían tener sentido real
- 137
- 00:22:40,000 --> 00:22:50,000
- esta es la segunda que usamos, y para la primera usamos la misma estrategia de decaimiento, donde el peso es alto al principio del entrenamiento y
- 138
- 00:22:50,000 --> 00:23:00,000
- relativamente bajo al final del entrenamiento, y por supuesto el tercer término es la recompensa estándar de resultado, que mide si
- 139
- 00:23:00,000 --> 00:23:10,000
- la tarea completa se ha logrado, y luego sumamos estos tres términos en nuestro sistema de aprendizaje por refuerzo, y por supuesto tuvimos que
- 140
- 00:23:10,000 --> 00:23:20,000
- adaptar toda la infraestructura, porque ahora hay que soportar la ejecución en paralelo y también hay que soportar distintas funciones de recompensa, y
- 141
- 00:23:20,000 --> 00:23:30,000
- maximizar la eficiencia de todo este sistema de enjambre de agentes, así que aquí hay tres cosas distintas que
- 142
- 00:23:30,000 --> 00:23:40,000
- intentamos escalar: el optimizador Muon Clip mejora la eficiencia por token, la atención Kimi Linear
- 143
- 00:23:40,000 --> 00:23:50,000
- con esta arquitectura lineal mejora el contexto largo, y también tenemos el paradigma de enjambres de agentes para crear una nueva dimensión de
- 144
- 00:23:50,000 --> 00:24:00,000
- escalado, y todo esto en conjunto dio lugar a Kimi K2.5, un nuevo modelo que acabamos de lanzar hace poco más de un mes,
- 145
- 00:24:00,000 --> 00:24:10,000
- un video corto para mostrar algunas de sus capacidades
- 146
- 00:25:00,000 --> 00:25:10,000
- así que sí, hay muchas
- 147
- 00:25:10,000 --> 00:25:20,000
- capacidades interesantes que descubrimos en el modelo, por ejemplo, fusiona las capacidades visuales con las de programación, y muchas
- 148
- 00:25:20,000 --> 00:25:30,000
- habilidades emergieron de eso, puede leer un video y luego producir un sitio web que replica o transfiere el estilo del
- 149
- 00:25:30,000 --> 00:25:40,000
- video original, y todo esto se debe a un entrenamiento exitoso y estable en la etapa de entrenamiento, así que esta es también una de las
- 150
- 00:25:40,000 --> 00:25:50,000
- curvas más hermosas que he visto en mi vida, esta es la curva de entrenamiento del modelo base K2.5,
- 151
- 00:25:50,000 --> 00:26:00,000
- como pueden ver, pasó por más de 15 billones de tokens en la primera etapa, y en K2.5 entrenamos otros 15 billones de tokens adicionales, y todo el
- 152
- 00:26:00,000 --> 00:26:10,000
- proceso de entrenamiento es simplemente muy estable, no hay picos de pérdida, especialmente cuando introdujimos este nuevo optimizador Muon no observamos ningún pico, y
- 153
- 00:26:10,000 --> 00:26:20,000
- un proceso de entrenamiento estable produce un resultado muy estable, un modelo base muy sólido sobre el cual podemos ajustar (fine-tune) para lograr
- 154
- 00:26:20,000 --> 00:26:30,000
- nuevas capacidades como las que mostramos en el video, y esto por supuesto también se entrenó en GPU Nvidia H800,
- 155
- 00:26:30,000 --> 00:26:40,000
- y este clúster de H800 contiene, este, tebibytes de RAM, y las GPU están conectadas mediante NVLink,
- 156
- 00:26:40,000 --> 00:26:50,000
- y otra de las innovaciones clave de Kimi K2.5 es que es el primer modelo abierto con capacidades
- 157
- 00:26:50,000 --> 00:27:00,000
- nativas de visión y texto: si se observan los modelos abiertos anteriores, normalmente sus capacidades visuales se añaden sobre una base de texto,
- 158
- 00:27:00,000 --> 00:27:10,000
- por ejemplo, se entrena un modelo de texto con 2 billones de tokens y luego, encima, se hace otro proceso de post-entrenamiento de 2 billones de tokens para
- 159
- 00:27:10,000 --> 00:27:20,000
- añadir capacidades visuales adicionales, pero K2.5 es diferente en el sentido de que fusionamos el proceso de entrenamiento de visión
- 160
- 00:27:20,000 --> 00:27:30,000
- y texto desde el primer día, esto se llama fusión temprana (early fusion): empezamos desde el 0% del progreso, así que desde el día uno
- 161
- 00:27:30,000 --> 00:27:40,000
- entrenamos visión y texto juntos, y los experimentos preliminares muestran que supera a la fusión tardía, y algunas de las nuevas capacidades que
- 162
- 00:27:40,000 --> 00:27:50,000
- obtuvimos con esta receta de entrenamiento, por ejemplo, si se quiere hacer generación de video a partir de visión, realmente hay que fusionar visión y texto
- 163
- 00:27:50,000 --> 00:28:00,000
- en una sola rama para lograrlo, si se separan las dos ramas no va a funcionar, hay que llevar estas dos modalidades a un espacio de representación
- 164
- 00:28:00,000 --> 00:28:10,000
- compartido, así se logra esto, y otra cosa interesante que observamos es que
- 165
- 00:28:10,000 --> 00:28:20,000
- estas dos modalidades en realidad pueden potenciarse mutuamente, algo que durante mucho tiempo fue un desafío, porque añadir capacidades visuales
- 166
- 00:28:20,000 --> 00:28:30,000
- a veces perjudicaba el rendimiento en texto, pero aquí descubrimos que si se entrena correctamente estas dos modalidades
- 167
- 00:28:30,000 --> 00:28:40,000
- se potencian mutuamente, este es uno de los hallazgos clave que observamos en nuestro entrenamiento: primero, la visión mejora el texto, esto es muy interesante,
- 168
- 00:28:40,000 --> 00:28:50,000
- el rendimiento antes de la fase de visión está en la primera columna, y luego tenemos el rendimiento después de la fase de visión, y aquí "solo visión" se refiere
- 169
- 00:28:50,000 --> 00:29:00,000
- a un proceso donde solo usamos datos de visión, sin ninguna tarea de texto involucrada, solo tenemos datos de prueba de visión, por ejemplo le enseñamos al modelo cómo
- 170
- 00:29:00,000 --> 00:29:10,000
- contar, cómo responder algunos de estos problemas de VQA (respuesta visual a preguntas), sin ningún problema de matemáticas o de código,
- 171
- 00:29:10,000 --> 00:29:20,000
- pero observamos que esto mejora el rendimiento incluso en tareas de razonamiento y texto, y por otro lado el texto también mejora la visión: si
- 172
- 00:29:20,000 --> 00:29:30,000
- se tiene una base de texto muy fuerte, en realidad no se necesitan datos de ajuste fino (SFT) de visión en el proceso de entrenamiento, y este es el enfoque que adoptamos,
- 173
- 00:29:30,000 --> 00:29:40,000
- básicamente cero SFT de visión, es decir, básicamente no tenemos datos de ajuste fino de visión, los únicos datos que tenemos son datos de evaluación de texto,
- 174
- 00:29:40,000 --> 00:29:50,000
- y luego hacemos un entrenamiento conjunto de texto y visión, y se puede ver que logramos un rendimiento casi de vanguardia en todos los aspectos de las pruebas de visión sin
- 175
- 00:29:50,000 --> 00:30:00,000
- ningún dato de visión adicional, así que está claro que si se tiene una base de texto fuerte, esto también va a mejorar la visión si se alinean
- 176
- 00:30:00,000 --> 00:30:10,000
- estas dos modalidades en un espacio de representación compartido, y aquí también hay algunos ejemplos que
- 177
- 00:30:10,000 --> 00:30:20,000
- demuestran las fuertes capacidades de
- 178
- 00:30:20,000 --> 00:30:30,000
- nuestro entrenamiento conjunto de visión y texto, así que después de todo esto,
- 179
- 00:30:30,000 --> 00:30:40,000
- esto es todo sobre Kimi K2.5, y probablemente ya sepan que lanzamos nuestra nueva arquitectura ayer en un
- 180
- 00:30:40,000 --> 00:30:50,000
- informe llamado "attention residual" (residuo de atención), así que aquí también voy a hablar brevemente de nuestro nuevo trabajo, que sirve como un adelanto de nuestra
- 181
- 00:30:50,000 --> 00:31:00,000
- próxima generación de modelos, algo que probablemente adoptaremos en nuestros modelos posteriores, así que la motivación aquí es bastante simple: ¿podemos aplicar
- 182
- 00:31:00,000 --> 00:31:10,000
- algunas de las técnicas que usamos en la dimensión temporal y tomar algunas de esas inspiraciones y aplicarlas a la
- 183
- 00:31:10,000 --> 00:31:20,000
- dimensión de profundidad? Y esto parte de las conexiones residuales, todavía recuerdo escuchar a
- 184
- 00:31:20,000 --> 00:31:30,000
- Kaiming [He] en el tutorial de ICML 2016, hace 10 años, fue una idea brillante: básicamente, antes de
- 185
- 00:31:30,000 --> 00:31:40,000
- ResNet, nadie era capaz de entrenar estas redes si se aumentaba la profundidad, si se aumentaba el número de capas de una red nueva, nadie
- 186
- 00:31:40,000 --> 00:31:50,000
- podía entrenarla porque se observaban problemas de explosión y desvanecimiento del gradiente, todos estos problemas de estabilidad, pero luego, tras la introducción de
- 187
- 00:31:50,000 --> 00:32:00,000
- las conexiones residuales, se puede entrenar un número arbitrariamente grande de capas, se pueden apilar tantas capas como se quiera y no hay que preocuparse por el
- 188
- 00:32:00,000 --> 00:32:10,000
- problema de entrenamiento, y como se discutió en la charla de Ilya [Sutskever] hace dos años, básicamente dice que la conexión residual es
- 189
- 00:32:10,000 --> 00:32:20,000
- una variante de la recurrencia rotada 90 grados. ¿Cómo se entiende esto? Si se observa un LSTM, es una variante de recurrencia que
- 190
- 00:32:20,000 --> 00:32:30,000
- procesa el modelo de forma recurrente: se toman los estados ocultos del paso anterior y luego
- 191
- 00:32:30,000 --> 00:32:40,000
- se aplica algún mecanismo de compuertas, alguna función, para producir el estado actual, y si se observa la conexión residual en la dimensión de profundidad,
- 192
- 00:32:40,000 --> 00:32:50,000
- se toman las salidas de la capa anterior y luego se aplica algún tipo de función encima para producir la
- 193
- 00:32:50,000 --> 00:33:00,000
- salida actual de la capa actual, la formulación es distinta, por ejemplo, para la conexión residual usamos una suma fija,
- 194
- 00:33:00,000 --> 00:33:10,000
- simplemente sumamos el estado oculto anterior con la salida actual, la formulación es distinta, pero
- 195
- 00:33:10,000 --> 00:33:20,000
- la esencia es la misma que una recurrencia aplicada en la dimensión de la profundidad, y por otro lado podemos pensar en
- 196
- 00:33:20,000 --> 00:33:30,000
- reformular esta función: en lugar de tener un LSTM, ¿podemos tener una atención en la dimensión de la profundidad? Y esto va a
- 197
- 00:33:30,000 --> 00:33:40,000
- abrir nuevas posibilidades, porque la atención ha demostrado ser tan exitosa en la era de los Transformers, así que lo que vamos a hacer no es
- 198
- 00:33:40,000 --> 00:33:50,000
- tomar solo el último estado oculto, vamos a considerar todos los estados anteriores y usar la operación de atención, el mecanismo de atención, para ensamblar y agregar
- 199
- 00:33:50,000 --> 00:34:00,000
- todos estos estados ocultos anteriores y calcular el estado actual, así que esto es exactamente atención rotada 90 grados,
- 200
- 00:34:00,000 --> 00:34:10,000
- que es una especie de generalización de las conexiones residuales bajo esta analogía con el LSTM. Bien,
- 201
- 00:34:10,000 --> 00:34:20,000
- aquí está la formulación detallada: a la izquierda está la conexión residual estándar, que como dije básicamente es un LSTM rotado 90 grados, y la segunda figura
- 202
- 00:34:20,000 --> 00:34:30,000
- es la atención rotada por los mismos grados, así que lo que hacemos es recopilar todos los estados intermedios anteriores y aplicar una operación de atención simple para
- 203
- 00:34:30,000 --> 00:34:40,000
- producir el resultado de la capa actual, y por supuesto, para aumentar la eficiencia y reducir la sobrecarga de infraestructura, por ejemplo la comunicación y la memoria,
- 204
- 00:34:40,000 --> 00:34:50,000
- también diseñamos una nueva variante llamada "block attention residual" (residuo de atención por bloques), a la derecha, básicamente la idea también es simple:
- 205
- 00:34:50,000 --> 00:35:00,000
- dividimos todas las capas de la red neuronal en varios bloques, por ejemplo cada bloque puede contener 16 capas, o puede contener
- 206
- 00:35:00,000 --> 00:35:10,000
- 4 capas, y luego para cada bloque aplicamos este residuo de atención solo en la salida de cada bloque, pero dentro del
- 207
- 00:35:10,000 --> 00:35:20,000
- bloque seguimos usando la conexión residual estándar, esto va a reducir mucho la sobrecarga mientras se mantiene casi la misma precisión de entrenamiento
- 208
- 00:35:20,000 --> 00:35:30,000
- y estos son algunos de los resultados impresionantes que logramos con esta nueva arquitectura: en la ley de escalado podemos
- 209
- 00:35:30,000 --> 00:35:40,000
- mejorar la eficiencia por token en un 24%, lo que significa que si se tienen 50 billones de tokens de alta calidad, ahora es como si se tuvieran
- 210
- 00:35:40,000 --> 00:35:50,000
- más de 60 billones de tokens, y en cuanto a la pérdida de validación también se puede observar que
- 211
- 00:35:50,000 --> 00:36:00,000
- es consistentemente menor que la curva original, lo que demuestra estabilidad en distintas optimizaciones, y también
- 212
- 00:36:00,000 --> 00:36:10,000
- muestra la mejor mejora en algunas de estas tareas de programación y razonamiento, como se ve en los resultados de referencia de GPQA
- 213
- 00:36:10,000 --> 00:36:20,000
- y esto demuestra que toda la comunidad sigue avanzando, y estamos contentos de poder contribuir
- 214
- 00:36:20,000 --> 00:36:30,000
- a la comunidad con nuevas tecnologías, y algunas de estas tecnologías se han convertido en el estándar de facto
- 215
- 00:36:30,000 --> 00:36:40,000
- durante mucho tiempo, pero como pueden ver, todavía vemos muchas oportunidades para mejorarlas, para tener diseños nuevos y revolucionarios
- 216
- 00:36:40,000 --> 00:36:50,000
- volviendo al rendimiento, si se multiplican todas estas mejoras juntas se puede tener un modelo mucho mejor: Adam se inventó en
- 217
- 00:36:50,000 --> 00:37:00,000
- tal año, y ahora escalamos y abrimos el código de Muon Clip, digamos, como sustituto de Adam, y estoy seguro de que si
- 218
- 00:37:00,000 --> 00:37:10,000
- se entrena un Transformer va a ser mucho mejor si se usa Muon Clip en lugar de Adam, y la atención se inventó hace más de 8 años,
- 219
- 00:37:10,000 --> 00:37:20,000
- ahora tenemos Kimi Linear, que es una versión lineal, no tenemos que usar atención completa en todas las capas, y podemos tener atención lineal que rinde mejor
- 220
- 00:37:20,000 --> 00:37:30,000
- en contextos largos, y al mismo tiempo, las conexiones residuales también están siendo cuestionadas ahora, escalamos y abrimos el código de
- 221
- 00:37:30,000 --> 00:37:40,000
- este residuo de atención, así que creo que una de las cosas interesantes de nuestra era es que adoptamos una mentalidad distinta
- 222
- 00:37:40,000 --> 00:37:50,000
- para hacer investigación: si nos remontamos a hace 10 años, se trataba sobre todo de publicar una idea nueva, pero creo que faltaba
- 223
- 00:37:50,000 --> 00:38:00,000
- la repetibilidad de los experimentos, era muy difícil producir resultados experimentales sólidos, pero ahora tenemos las leyes de escalado, tenemos
- 224
- 00:38:00,000 --> 00:38:10,000
- los recursos para entrenar el modelo y ejecutarlo a distintas escalas, podemos tener un conjunto completo de benchmarks para medir el progreso, así que es
- 225
- 00:38:10,000 --> 00:38:20,000
- más fácil llegar a conclusiones sólidas y confiables a partir de ello, y esta es una de las razones por las que estamos observando este nuevo progreso
- 226
- 00:38:20,000 --> 00:38:30,000
- en estas técnicas antiguas, y estoy seguro de que veremos cada vez más, especialmente en la comunidad de código abierto, creo que vamos a tener
- 227
- 00:38:30,000 --> 00:38:40,000
- mejoras aún mayores en arquitectura y optimización en los próximos años. Muy bien, para resumir, podemos
- 228
- 00:38:40,000 --> 00:38:50,000
- seguir escalando modelos abiertos en estas tres dimensiones, por ejemplo, vemos
- 229
- 00:38:50,000 --> 00:39:00,000
- arquitecturas y optimizadores que optimizan las tres dimensiones, y seguiremos viendo nuevas dimensiones para escalar, como los agentes,
- 230
- 00:39:00,000 --> 00:39:10,000
- esto no es el final, y estamos contentos de poder seguir avanzando junto con toda la comunidad de código abierto para lograr una inteligencia cada vez mejor,
- 231
- 00:39:10,000 --> 00:39:17,000
- muchas gracias
Advertisement
Add Comment
Please, Sign In to add comment