nerdemma

Kimi KeyNote Zhilin Yang

Jul 19th, 2026
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 38.30 KB | Movies | 0 0
  1. 1
  2. 00:00:00,000 --> 00:00:10,000
  3. hola a todos, muchas gracias por la presentación, es un placer estar aquí, es una gran oportunidad para compartir con ustedes
  4.  
  5. 2
  6. 00:00:10,000 --> 00:00:20,000
  7. algunos de los últimos avances y esfuerzos, así que uno de nuestros temas principales es
  8.  
  9. 3
  10. 00:00:20,000 --> 00:00:30,000
  11. 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
  12.  
  13. 4
  14. 00:00:30,000 --> 00:00:40,000
  15. 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
  16.  
  17. 5
  18. 00:00:40,000 --> 00:00:50,000
  19. usé en una charla anterior de este año: como pueden ver, los modelos abiertos están cerrando rápidamente la brecha con
  20.  
  21. 6
  22. 00:00:50,000 --> 00:01:00,000
  23. 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
  24.  
  25. 7
  26. 00:01:00,000 --> 00:01:10,000
  27. cualquier rincón del mundo, pero los modelos abiertos no solo tienen que ser abiertos, también tienen que ser excelentes
  28.  
  29. 8
  30. 00:01:10,000 --> 00:01:20,000
  31. así que en esta charla vamos a hablar de cómo hacemos que los modelos sean excelentes, como sabemos, el escalado
  32.  
  33. 9
  34. 00:01:20,000 --> 00:01:30,000
  35. 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
  36.  
  37. 10
  38. 00:01:30,000 --> 00:01:40,000
  39. hablar de cómo escalamos nuestro modelo en distintas dimensiones. A la izquierda, la primera figura muestra la ley de escalado estándar:
  40.  
  41. 11
  42. 00:01:40,000 --> 00:01:50,000
  43. 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
  44.  
  45. 12
  46. 00:01:50,000 --> 00:02:00,000
  47. 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
  48.  
  49. 13
  50. 00:02:00,000 --> 00:02:10,000
  51. eficiencia por token, es decir, queremos desplazar esta curva hacia la izquierda para lograr una pérdida menor, y mucho menor, usando el
  52.  
  53. 14
  54. 00:02:10,000 --> 00:02:20,000
  55. mismo número de tokens de entrenamiento, y esto se puede lograr con mejores arquitecturas y optimizadores, algo que discutiremos
  56.  
  57. 15
  58. 00:02:20,000 --> 00:02:30,000
  59. 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
  60.  
  61. 16
  62. 00:02:30,000 --> 00:02:40,000
  63. aumentamos la longitud de contexto podemos tener una precisión mucho mayor a la hora de predecir el token
  64.  
  65. 17
  66. 00:02:40,000 --> 00:02:50,000
  67. en una posición dada, y esto significa que podemos aumentar la capacidad del modelo para lograr tareas más complejas mediante
  68.  
  69. 18
  70. 00:02:50,000 --> 00:03:00,000
  71. 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
  72.  
  73. 19
  74. 00:03:00,000 --> 00:03:10,000
  75. un nuevo paradigma de aprendizaje de enjambres de agentes, donde no dependemos solo de un único agente, sino que orquestamos un enjambre de
  76.  
  77. 20
  78. 00:03:10,000 --> 00:03:20,000
  79. 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:
  80.  
  81. 21
  82. 00:03:20,000 --> 00:03:30,000
  83. 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
  84.  
  85. 22
  86. 00:03:30,000 --> 00:03:40,000
  87. 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
  88.  
  89. 23
  90. 00:03:40,000 --> 00:03:50,000
  91. operar durante días, semanas o incluso meses para lograr tareas más complejas, y en cuanto a los agentes,
  92.  
  93. 24
  94. 00:03:50,000 --> 00:04:00,000
  95. 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
  96.  
  97. 25
  98. 00:04:00,000 --> 00:04:10,000
  99. prior más fuerte para buscar dentro de todo este sistema de agentes. Muy bien, así que vamos a empezar por
  100.  
  101. 26
  102. 00:04:10,000 --> 00:04:20,000
  103. esta es una de las figuras más clásicas en la historia del aprendizaje automático, la segunda de Kaplan et al.,
  104.  
  105. 27
  106. 00:04:20,000 --> 00:04:30,000
  107. 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
  108.  
  109. 28
  110. 00:04:30,000 --> 00:04:40,000
  111. 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
  112.  
  113. 29
  114. 00:04:40,000 --> 00:04:50,000
  115. mayor eficiencia, y aquí está la cuestión:
  116.  
  117. 30
  118. 00:04:50,000 --> 00:05:00,000
  119. una cosa que me gustaría destacar es que la eficiencia por token no se trata solo de eficiencia, sino también de mejorar
  120.  
  121. 31
  122. 00:05:00,000 --> 00:05:10,000
  123. el techo de la inteligencia, es decir, supongamos que se tienen 50 billones de tokens y
  124.  
  125. 32
  126. 00:05:10,000 --> 00:05:20,000
  127. aplicamos este nuevo optimizador, y de repente se obtiene el doble de eficiencia por token, lo que significa que
  128.  
  129. 33
  130. 00:05:20,000 --> 00:05:30,000
  131. 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
  132.  
  133. 34
  134. 00:05:30,000 --> 00:05:40,000
  135. 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
  136.  
  137. 35
  138. 00:05:40,000 --> 00:05:50,000
  139. 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
  140.  
  141. 36
  142. 00:05:50,000 --> 00:06:00,000
  143. inteligencia en sí, por eso hemos dedicado mucho esfuerzo a este aspecto, porque va a impulsar la frontera de la inteligencia
  144.  
  145. 37
  146. 00:06:00,000 --> 00:06:10,000
  147. Muon es uno de los optimizadores en los que hemos invertido mucho desde el año pasado, es un optimizador de segundo orden
  148.  
  149. 38
  150. 00:06:10,000 --> 00:06:20,000
  151. y básicamente cada actualización de gradiente se transforma de manera que cada componente sea ortogonal entre sí, y esto es muy distinto
  152.  
  153. 39
  154. 00:06:20,000 --> 00:06:30,000
  155. del optimizador Adam tradicional, y si se implementa correctamente, se puede obtener una mejora de eficiencia de aproximadamente el doble
  156.  
  157. 40
  158. 00:06:30,000 --> 00:06:40,000
  159. así que fuimos el primer trabajo en demostrar que Muon en realidad es escalable
  160.  
  161. 41
  162. 00:06:40,000 --> 00:06:50,000
  163. 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,
  164.  
  165. 42
  166. 00:06:50,000 --> 00:07:00,000
  167. 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
  168.  
  169. 43
  170. 00:07:00,000 --> 00:07:10,000
  171. coeficientes ajustables que se aplican a cada componente para que el RMS resultante sea comparable al
  172.  
  173. 44
  174. 00:07:10,000 --> 00:07:20,000
  175. de Adam, y para que sea eficiente en memoria en todos estos clústeres de GPU de Nvidia también desarrollamos una implementación
  176.  
  177. 45
  178. 00:07:20,000 --> 00:07:30,000
  179. 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
  180.  
  181. 46
  182. 00:07:30,000 --> 00:07:40,000
  183. 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
  184.  
  185. 47
  186. 00:07:40,000 --> 00:07:50,000
  187. tokens, reemplazar el optimizador Adam original por el nuevo optimizador Muon mejora el rendimiento en todos los aspectos
  188.  
  189. 48
  190. 00:07:50,000 --> 00:08:00,000
  191. pero surgió un nuevo desafío cuando intentamos escalarlo, al intentar
  192.  
  193. 49
  194. 00:08:00,000 --> 00:08:10,000
  195. 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
  196.  
  197. 50
  198. 00:08:10,000 --> 00:08:20,000
  199. observamos que el logit máximo de atención explota rápidamente y supera fácilmente los 1000, cuando los valores típicos para
  200.  
  201. 51
  202. 00:08:20,000 --> 00:08:30,000
  203. el entrenamiento de este logit máximo son alrededor de 50 o incluso menos de 100, pero con Muon rápidamente
  204.  
  205. 52
  206. 00:08:30,000 --> 00:08:40,000
  207. 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
  208.  
  209. 53
  210. 00:08:40,000 --> 00:08:50,000
  211. 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
  212.  
  213. 54
  214. 00:08:50,000 --> 00:09:00,000
  215. fue introducir esta nueva técnica llamada QK-Clip: básicamente, para cada cabeza de atención en toda esta red neuronal
  216.  
  217. 55
  218. 00:09:00,000 --> 00:09:10,000
  219. vamos a calcular el logit máximo y luego vamos a calcular un factor de división que se puede aplicar a cada
  220.  
  221. 56
  222. 00:09:10,000 --> 00:09:20,000
  223. proyección, de modo que podamos limitar el valor máximo de las proyecciones de consulta (query) y clave (key)
  224.  
  225. 57
  226. 00:09:20,000 --> 00:09:30,000
  227. en un rango dado, para que ya no se produzca la explosión. Estos son algunos de los resultados empíricos:
  228.  
  229. 58
  230. 00:09:30,000 --> 00:09:40,000
  231. 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
  232.  
  233. 59
  234. 00:09:40,000 --> 00:09:50,000
  235. la técnica de clipping no afecta en absoluto la disminución de la pérdida de entrenamiento, pero a la derecha,
  236.  
  237. 60
  238. 00:09:50,000 --> 00:10:00,000
  239. si se observa el logit máximo intermedio, se ve que efectivamente queda controlado: primero
  240.  
  241. 61
  242. 00:10:00,000 --> 00:10:10,000
  243. 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
  244.  
  245. 62
  246. 00:10:10,000 --> 00:10:20,000
  247. así que la red neuronal encuentra por sí misma una manera de restringir el valor máximo del logit máximo para
  248.  
  249. 63
  250. 00:10:20,000 --> 00:10:30,000
  251. 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
  252.  
  253. 64
  254. 00:10:30,000 --> 00:10:40,000
  255. 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
  256.  
  257. 65
  258. 00:10:40,000 --> 00:10:50,000
  259. 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
  260.  
  261. 66
  262. 00:10:50,000 --> 00:11:00,000
  263. es el contexto largo, así que esta es otra figura, probablemente una de las joyas ocultas de este artículo
  264.  
  265. 67
  266. 00:11:00,000 --> 00:11:10,000
  267. en lugar de simplemente reducir la pérdida de entrenamiento entrenando en más tokens, aporta información desde otra perspectiva, como podemos
  268.  
  269. 68
  270. 00:11:10,000 --> 00:11:20,000
  271. 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
  272.  
  273. 69
  274. 00:11:20,000 --> 00:11:30,000
  275. 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
  276.  
  277. 70
  278. 00:11:30,000 --> 00:11:40,000
  279. 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
  280.  
  281. 71
  282. 00:11:40,000 --> 00:11:50,000
  283. 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
  284.  
  285. 72
  286. 00:11:50,000 --> 00:12:00,000
  287. 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
  288.  
  289. 73
  290. 00:12:00,000 --> 00:12:10,000
  291. 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
  292.  
  293. 74
  294. 00:12:10,000 --> 00:12:20,000
  295. 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
  296.  
  297. 75
  298. 00:12:20,000 --> 00:12:30,000
  299. 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,
  300.  
  301. 76
  302. 00:12:30,000 --> 00:12:40,000
  303. tareas como compilar kernels de Linux desde cero, eso no se puede lograr con LSTM, así que esta es una capacidad muy necesaria en
  304.  
  305. 77
  306. 00:12:40,000 --> 00:12:50,000
  307. 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
  308.  
  309. 78
  310. 00:12:50,000 --> 00:13:00,000
  311. arquitectura para poder escalar eficientemente a una longitud de contexto mayor y al mismo tiempo lograr una pérdida menor
  312.  
  313. 79
  314. 00:13:00,000 --> 00:13:10,000
  315. en índices de token más grandes, y esta es la motivación por la que introdujimos esta nueva arquitectura,
  316.  
  317. 80
  318. 00:13:10,000 --> 00:13:20,000
  319. una nueva variante de atención lineal llamada Kimi Linear,
  320.  
  321. 81
  322. 00:13:20,000 --> 00:13:30,000
  323. que mejora la Gated Delta Rule (GDR) original con una memoria de retorno mejorada; mostraré los detalles más adelante, y
  324.  
  325. 82
  326. 00:13:30,000 --> 00:13:40,000
  327. 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
  328.  
  329. 83
  330. 00:13:40,000 --> 00:13:50,000
  331. capacidad de contexto largo y al mismo tiempo tener una implementación más eficiente, así que esta es parte de la formulación:
  332.  
  333. 84
  334. 00:13:50,000 --> 00:14:00,000
  335. la idea básica es simple, si se observa la atención lineal en su formulación original, la memoria es global, hay un
  336.  
  337. 85
  338. 00:14:00,000 --> 00:14:10,000
  339. factor de decaimiento global que se aplica en todo momento, lo que significa que básicamente solo hay dos casos: en un caso
  340.  
  341. 86
  342. 00:14:10,000 --> 00:14:20,000
  343. se olvida básicamente todo y no se devuelve ninguna información, y en el segundo caso se puede elegir devolver casi todo, pero
  344.  
  345. 87
  346. 00:14:20,000 --> 00:14:30,000
  347. 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
  348.  
  349. 88
  350. 00:14:30,000 --> 00:14:40,000
  351. 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
  352.  
  353. 89
  354. 00:14:40,000 --> 00:14:50,000
  355. diagonal que controla la tasa de decaimiento para cada canal, de modo que tenemos dos posibilidades: para algunos canales podemos hacer que decaigan
  356.  
  357. 90
  358. 00:14:50,000 --> 00:15:00,000
  359. 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
  360.  
  361. 91
  362. 00:15:00,000 --> 00:15:10,000
  363. olvidar rápidamente la información de índices pasados para refrescarla y captar nueva información, y esto es
  364.  
  365. 92
  366. 00:15:10,000 --> 00:15:20,000
  367. lo que aumenta la expresividad de este modelo, y por supuesto, para aprovechar mejor las GPU tenemos que usar esta formulación en
  368.  
  369. 93
  370. 00:15:20,000 --> 00:15:30,000
  371. paralelo por bloques (chunk-wise), así que la primera ecuación aquí es la formulación de Kimi Linear en paralelo por bloques,
  372.  
  373. 94
  374. 00:15:30,000 --> 00:15:40,000
  375. como pueden ver, esto plantea grandes desafíos de infraestructura debido a
  376.  
  377. 95
  378. 00:15:40,000 --> 00:15:50,000
  379. 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
  380.  
  381. 96
  382. 00:15:50,000 --> 00:16:00,000
  383. implementación eficiente reescribimos toda la ecuación en las tres ecuaciones de abajo, introdujimos esta inversión de matriz
  384.  
  385. 97
  386. 00:16:00,000 --> 00:16:10,000
  387. y también introdujimos el factor de decaimiento acumulado, de modo que podemos implementar todo esto en paralelo sin
  388.  
  389. 98
  390. 00:16:10,000 --> 00:16:20,000
  391. perder eficiencia, y lo más importante es que esto no es una aproximación, es una operación matemáticamente equivalente y exacta,
  392.  
  393. 99
  394. 00:16:20,000 --> 00:16:30,000
  395. así que podemos lograr mucha más eficiencia sin sacrificar ninguna pérdida en cuanto al rendimiento, va a ser
  396.  
  397. 100
  398. 00:16:30,000 --> 00:16:40,000
  399. tan eficiente como las variantes de atención lineal anteriores, pero al mismo tiempo mucho más expresiva; estos son algunos de los resultados
  400.  
  401. 101
  402. 00:16:40,000 --> 00:16:50,000
  403. que obtuvimos usando una comparación justa, a la izquierda vemos el rendimiento en dos tipos distintos de tareas, Kimi Linear
  404.  
  405. 102
  406. 00:16:50,000 --> 00:17:00,000
  407. logra un mejor rendimiento en comparación con MLA y GDN, y al
  408.  
  409. 103
  410. 00:17:00,000 --> 00:17:10,000
  411. mismo tiempo, para pruebas de contexto largo como RULER, Kimi Linear también es mejor que las otras variantes,
  412.  
  413. 104
  414. 00:17:10,000 --> 00:17:20,000
  415. 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,
  416.  
  417. 105
  418. 00:17:20,000 --> 00:17:30,000
  419. es mucho más eficiente en comparación con la línea base, y esta es también la primera arquitectura que supera
  420.  
  421. 106
  422. 00:17:30,000 --> 00:17:40,000
  423. en todos los aspectos, incluyendo pruebas de contexto corto, tareas de entrada larga y tareas de salida larga, así que esto es lo que
  424.  
  425. 107
  426. 00:17:40,000 --> 00:17:50,000
  427. nos interesa, y la tercera dimensión son los enjambres de agentes, aquí hay un diagrama para mostrar
  428.  
  429. 108
  430. 00:17:50,000 --> 00:18:00,000
  431. 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
  432.  
  433. 109
  434. 00:18:00,000 --> 00:18:10,000
  435. así que aquí tenemos un orquestador, o se le puede llamar agente principal, que es responsable de orquestar la tarea, tiene distintas opciones para
  436.  
  437. 110
  438. 00:18:10,000 --> 00:18:20,000
  439. esto, podemos generar un grupo de subagentes y asignarles nuevas tareas, o podemos recopilar los resultados que devuelven estos
  440.  
  441. 111
  442. 00:18:20,000 --> 00:18:30,000
  443. subagentes, y se puede realizar este proceso de manera iterativa, y al final del día se puede lograr una tarea más
  444.  
  445. 112
  446. 00:18:30,000 --> 00:18:40,000
  447. 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
  448.  
  449. 113
  450. 00:18:40,000 --> 00:18:50,000
  451. necesitamos, por ejemplo, un orquestador, o tal vez un CEO que descomponga la tarea en distintos roles, y luego el resto de
  452.  
  453. 114
  454. 00:18:50,000 --> 00:19:00,000
  455. los miembros del equipo tienen que avanzar hacia la misma meta, y aquí, por ejemplo, en este caso podríamos tener investigadores,
  456.  
  457. 115
  458. 00:19:00,000 --> 00:19:10,000
  459. desarrolladores web, investigadores que estudian distintos temas, y al final del día simplemente se recopilan los resultados y se genera un grupo de
  460.  
  461. 116
  462. 00:19:10,000 --> 00:19:20,000
  463. verificadores, desarrolladores y descargadores de archivos para ensamblar los resultados en un solo informe
  464.  
  465. 117
  466. 00:19:20,000 --> 00:19:30,000
  467. y esta es otra forma de ver este nuevo paradigma: el eje x es la complejidad de
  468.  
  469. 118
  470. 00:19:30,000 --> 00:19:40,000
  471. 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
  472.  
  473. 119
  474. 00:19:40,000 --> 00:19:50,000
  475. un grupo de modelos en dichas tareas, así que podemos ver que con los enjambres de agentes se reduce sustancialmente
  476.  
  477. 120
  478. 00:19:50,000 --> 00:20:00,000
  479. el tiempo de ejecución en comparación con un solo agente, es mucho más efectivo, y esto significa que podemos escalar
  480.  
  481. 121
  482. 00:20:00,000 --> 00:20:10,000
  483. esto, y es solo un paradigma: por ejemplo, si se ejecuta este enjambre de agentes con 100 o incluso 1000 agentes, se puede
  484.  
  485. 122
  486. 00:20:10,000 --> 00:20:20,000
  487. completar una tarea compleja en un período de tiempo tolerable para producir valor económico real
  488.  
  489. 123
  490. 00:20:20,000 --> 00:20:30,000
  491. y ciertamente podemos escalarlo en distintas dimensiones, podemos escalar las entradas, por ejemplo descargar y leer cientos de fuentes
  492.  
  493. 124
  494. 00:20:30,000 --> 00:20:40,000
  495. o incluso miles en paralelo, o las salidas, escribir una revisión de literatura de 100 páginas en paralelo,
  496.  
  497. 125
  498. 00:20:40,000 --> 00:20:50,000
  499. 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
  500.  
  501. 126
  502. 00:20:50,000 --> 00:21:00,000
  503. diseñar las tareas y agregar los resultados, y técnicamente definimos algunas nuevas funciones objetivo para guiar
  504.  
  505. 127
  506. 00:21:00,000 --> 00:21:10,000
  507. el proceso de nuestro sistema de enjambre de agentes, así que hay tres funciones de recompensa consideradas
  508.  
  509. 128
  510. 00:21:10,000 --> 00:21:20,000
  511. en comparación con el aprendizaje convencional de un solo agente: el primer término es lo que llamamos la recompensa de instanciación,
  512.  
  513. 129
  514. 00:21:20,000 --> 00:21:30,000
  515. que incentiva la instanciación de agentes para prevenir el fenómeno de colapso en serie
  516.  
  517. 130
  518. 00:21:30,000 --> 00:21:40,000
  519. básicamente no queremos que se recurra por defecto a la ejecución de un solo agente, queremos fomentar las ejecuciones en paralelo,
  520.  
  521. 131
  522. 00:21:40,000 --> 00:21:50,000
  523. especialmente en las etapas tempranas del entrenamiento, y por supuesto podemos ir reduciendo el peso de esta recompensa de instanciación
  524.  
  525. 132
  526. 00:21:50,000 --> 00:22:00,000
  527. 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
  528.  
  529. 133
  530. 00:22:00,000 --> 00:22:10,000
  531. la recompensa de finalización, y la usamos porque observamos que durante el entrenamiento algunos de estos
  532.  
  533. 134
  534. 00:22:10,000 --> 00:22:20,000
  535. 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
  536.  
  537. 135
  538. 00:22:20,000 --> 00:22:30,000
  539. no tenían ningún sentido, y aquí usamos esta recompensa de finalización básicamente para fomentar que cada subtarea tenga
  540.  
  541. 136
  542. 00:22:30,000 --> 00:22:40,000
  543. 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
  544.  
  545. 137
  546. 00:22:40,000 --> 00:22:50,000
  547. 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
  548.  
  549. 138
  550. 00:22:50,000 --> 00:23:00,000
  551. relativamente bajo al final del entrenamiento, y por supuesto el tercer término es la recompensa estándar de resultado, que mide si
  552.  
  553. 139
  554. 00:23:00,000 --> 00:23:10,000
  555. 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
  556.  
  557. 140
  558. 00:23:10,000 --> 00:23:20,000
  559. 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
  560.  
  561. 141
  562. 00:23:20,000 --> 00:23:30,000
  563. maximizar la eficiencia de todo este sistema de enjambre de agentes, así que aquí hay tres cosas distintas que
  564.  
  565. 142
  566. 00:23:30,000 --> 00:23:40,000
  567. intentamos escalar: el optimizador Muon Clip mejora la eficiencia por token, la atención Kimi Linear
  568.  
  569. 143
  570. 00:23:40,000 --> 00:23:50,000
  571. 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
  572.  
  573. 144
  574. 00:23:50,000 --> 00:24:00,000
  575. 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,
  576.  
  577. 145
  578. 00:24:00,000 --> 00:24:10,000
  579. un video corto para mostrar algunas de sus capacidades
  580.  
  581. 146
  582. 00:25:00,000 --> 00:25:10,000
  583. así que sí, hay muchas
  584.  
  585. 147
  586. 00:25:10,000 --> 00:25:20,000
  587. capacidades interesantes que descubrimos en el modelo, por ejemplo, fusiona las capacidades visuales con las de programación, y muchas
  588.  
  589. 148
  590. 00:25:20,000 --> 00:25:30,000
  591. habilidades emergieron de eso, puede leer un video y luego producir un sitio web que replica o transfiere el estilo del
  592.  
  593. 149
  594. 00:25:30,000 --> 00:25:40,000
  595. 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
  596.  
  597. 150
  598. 00:25:40,000 --> 00:25:50,000
  599. curvas más hermosas que he visto en mi vida, esta es la curva de entrenamiento del modelo base K2.5,
  600.  
  601. 151
  602. 00:25:50,000 --> 00:26:00,000
  603. 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
  604.  
  605. 152
  606. 00:26:00,000 --> 00:26:10,000
  607. 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
  608.  
  609. 153
  610. 00:26:10,000 --> 00:26:20,000
  611. 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
  612.  
  613. 154
  614. 00:26:20,000 --> 00:26:30,000
  615. nuevas capacidades como las que mostramos en el video, y esto por supuesto también se entrenó en GPU Nvidia H800,
  616.  
  617. 155
  618. 00:26:30,000 --> 00:26:40,000
  619. y este clúster de H800 contiene, este, tebibytes de RAM, y las GPU están conectadas mediante NVLink,
  620.  
  621. 156
  622. 00:26:40,000 --> 00:26:50,000
  623. y otra de las innovaciones clave de Kimi K2.5 es que es el primer modelo abierto con capacidades
  624.  
  625. 157
  626. 00:26:50,000 --> 00:27:00,000
  627. 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,
  628.  
  629. 158
  630. 00:27:00,000 --> 00:27:10,000
  631. 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
  632.  
  633. 159
  634. 00:27:10,000 --> 00:27:20,000
  635. añadir capacidades visuales adicionales, pero K2.5 es diferente en el sentido de que fusionamos el proceso de entrenamiento de visión
  636.  
  637. 160
  638. 00:27:20,000 --> 00:27:30,000
  639. 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
  640.  
  641. 161
  642. 00:27:30,000 --> 00:27:40,000
  643. 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
  644.  
  645. 162
  646. 00:27:40,000 --> 00:27:50,000
  647. 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
  648.  
  649. 163
  650. 00:27:50,000 --> 00:28:00,000
  651. 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
  652.  
  653. 164
  654. 00:28:00,000 --> 00:28:10,000
  655. compartido, así se logra esto, y otra cosa interesante que observamos es que
  656.  
  657. 165
  658. 00:28:10,000 --> 00:28:20,000
  659. estas dos modalidades en realidad pueden potenciarse mutuamente, algo que durante mucho tiempo fue un desafío, porque añadir capacidades visuales
  660.  
  661. 166
  662. 00:28:20,000 --> 00:28:30,000
  663. a veces perjudicaba el rendimiento en texto, pero aquí descubrimos que si se entrena correctamente estas dos modalidades
  664.  
  665. 167
  666. 00:28:30,000 --> 00:28:40,000
  667. 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,
  668.  
  669. 168
  670. 00:28:40,000 --> 00:28:50,000
  671. 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
  672.  
  673. 169
  674. 00:28:50,000 --> 00:29:00,000
  675. 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
  676.  
  677. 170
  678. 00:29:00,000 --> 00:29:10,000
  679. 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,
  680.  
  681. 171
  682. 00:29:10,000 --> 00:29:20,000
  683. 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
  684.  
  685. 172
  686. 00:29:20,000 --> 00:29:30,000
  687. 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,
  688.  
  689. 173
  690. 00:29:30,000 --> 00:29:40,000
  691. 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,
  692.  
  693. 174
  694. 00:29:40,000 --> 00:29:50,000
  695. 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
  696.  
  697. 175
  698. 00:29:50,000 --> 00:30:00,000
  699. 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
  700.  
  701. 176
  702. 00:30:00,000 --> 00:30:10,000
  703. estas dos modalidades en un espacio de representación compartido, y aquí también hay algunos ejemplos que
  704.  
  705. 177
  706. 00:30:10,000 --> 00:30:20,000
  707. demuestran las fuertes capacidades de
  708.  
  709. 178
  710. 00:30:20,000 --> 00:30:30,000
  711. nuestro entrenamiento conjunto de visión y texto, así que después de todo esto,
  712.  
  713. 179
  714. 00:30:30,000 --> 00:30:40,000
  715. esto es todo sobre Kimi K2.5, y probablemente ya sepan que lanzamos nuestra nueva arquitectura ayer en un
  716.  
  717. 180
  718. 00:30:40,000 --> 00:30:50,000
  719. 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
  720.  
  721. 181
  722. 00:30:50,000 --> 00:31:00,000
  723. 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
  724.  
  725. 182
  726. 00:31:00,000 --> 00:31:10,000
  727. algunas de las técnicas que usamos en la dimensión temporal y tomar algunas de esas inspiraciones y aplicarlas a la
  728.  
  729. 183
  730. 00:31:10,000 --> 00:31:20,000
  731. dimensión de profundidad? Y esto parte de las conexiones residuales, todavía recuerdo escuchar a
  732.  
  733. 184
  734. 00:31:20,000 --> 00:31:30,000
  735. Kaiming [He] en el tutorial de ICML 2016, hace 10 años, fue una idea brillante: básicamente, antes de
  736.  
  737. 185
  738. 00:31:30,000 --> 00:31:40,000
  739. 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
  740.  
  741. 186
  742. 00:31:40,000 --> 00:31:50,000
  743. 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
  744.  
  745. 187
  746. 00:31:50,000 --> 00:32:00,000
  747. 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
  748.  
  749. 188
  750. 00:32:00,000 --> 00:32:10,000
  751. 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
  752.  
  753. 189
  754. 00:32:10,000 --> 00:32:20,000
  755. una variante de la recurrencia rotada 90 grados. ¿Cómo se entiende esto? Si se observa un LSTM, es una variante de recurrencia que
  756.  
  757. 190
  758. 00:32:20,000 --> 00:32:30,000
  759. procesa el modelo de forma recurrente: se toman los estados ocultos del paso anterior y luego
  760.  
  761. 191
  762. 00:32:30,000 --> 00:32:40,000
  763. 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,
  764.  
  765. 192
  766. 00:32:40,000 --> 00:32:50,000
  767. se toman las salidas de la capa anterior y luego se aplica algún tipo de función encima para producir la
  768.  
  769. 193
  770. 00:32:50,000 --> 00:33:00,000
  771. salida actual de la capa actual, la formulación es distinta, por ejemplo, para la conexión residual usamos una suma fija,
  772.  
  773. 194
  774. 00:33:00,000 --> 00:33:10,000
  775. simplemente sumamos el estado oculto anterior con la salida actual, la formulación es distinta, pero
  776.  
  777. 195
  778. 00:33:10,000 --> 00:33:20,000
  779. la esencia es la misma que una recurrencia aplicada en la dimensión de la profundidad, y por otro lado podemos pensar en
  780.  
  781. 196
  782. 00:33:20,000 --> 00:33:30,000
  783. 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
  784.  
  785. 197
  786. 00:33:30,000 --> 00:33:40,000
  787. 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
  788.  
  789. 198
  790. 00:33:40,000 --> 00:33:50,000
  791. 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
  792.  
  793. 199
  794. 00:33:50,000 --> 00:34:00,000
  795. todos estos estados ocultos anteriores y calcular el estado actual, así que esto es exactamente atención rotada 90 grados,
  796.  
  797. 200
  798. 00:34:00,000 --> 00:34:10,000
  799. que es una especie de generalización de las conexiones residuales bajo esta analogía con el LSTM. Bien,
  800.  
  801. 201
  802. 00:34:10,000 --> 00:34:20,000
  803. 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
  804.  
  805. 202
  806. 00:34:20,000 --> 00:34:30,000
  807. 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
  808.  
  809. 203
  810. 00:34:30,000 --> 00:34:40,000
  811. 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,
  812.  
  813. 204
  814. 00:34:40,000 --> 00:34:50,000
  815. 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:
  816.  
  817. 205
  818. 00:34:50,000 --> 00:35:00,000
  819. dividimos todas las capas de la red neuronal en varios bloques, por ejemplo cada bloque puede contener 16 capas, o puede contener
  820.  
  821. 206
  822. 00:35:00,000 --> 00:35:10,000
  823. 4 capas, y luego para cada bloque aplicamos este residuo de atención solo en la salida de cada bloque, pero dentro del
  824.  
  825. 207
  826. 00:35:10,000 --> 00:35:20,000
  827. 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
  828.  
  829. 208
  830. 00:35:20,000 --> 00:35:30,000
  831. y estos son algunos de los resultados impresionantes que logramos con esta nueva arquitectura: en la ley de escalado podemos
  832.  
  833. 209
  834. 00:35:30,000 --> 00:35:40,000
  835. 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
  836.  
  837. 210
  838. 00:35:40,000 --> 00:35:50,000
  839. más de 60 billones de tokens, y en cuanto a la pérdida de validación también se puede observar que
  840.  
  841. 211
  842. 00:35:50,000 --> 00:36:00,000
  843. es consistentemente menor que la curva original, lo que demuestra estabilidad en distintas optimizaciones, y también
  844.  
  845. 212
  846. 00:36:00,000 --> 00:36:10,000
  847. muestra la mejor mejora en algunas de estas tareas de programación y razonamiento, como se ve en los resultados de referencia de GPQA
  848.  
  849. 213
  850. 00:36:10,000 --> 00:36:20,000
  851. y esto demuestra que toda la comunidad sigue avanzando, y estamos contentos de poder contribuir
  852.  
  853. 214
  854. 00:36:20,000 --> 00:36:30,000
  855. a la comunidad con nuevas tecnologías, y algunas de estas tecnologías se han convertido en el estándar de facto
  856.  
  857. 215
  858. 00:36:30,000 --> 00:36:40,000
  859. durante mucho tiempo, pero como pueden ver, todavía vemos muchas oportunidades para mejorarlas, para tener diseños nuevos y revolucionarios
  860.  
  861. 216
  862. 00:36:40,000 --> 00:36:50,000
  863. volviendo al rendimiento, si se multiplican todas estas mejoras juntas se puede tener un modelo mucho mejor: Adam se inventó en
  864.  
  865. 217
  866. 00:36:50,000 --> 00:37:00,000
  867. 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
  868.  
  869. 218
  870. 00:37:00,000 --> 00:37:10,000
  871. 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,
  872.  
  873. 219
  874. 00:37:10,000 --> 00:37:20,000
  875. 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
  876.  
  877. 220
  878. 00:37:20,000 --> 00:37:30,000
  879. en contextos largos, y al mismo tiempo, las conexiones residuales también están siendo cuestionadas ahora, escalamos y abrimos el código de
  880.  
  881. 221
  882. 00:37:30,000 --> 00:37:40,000
  883. este residuo de atención, así que creo que una de las cosas interesantes de nuestra era es que adoptamos una mentalidad distinta
  884.  
  885. 222
  886. 00:37:40,000 --> 00:37:50,000
  887. 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
  888.  
  889. 223
  890. 00:37:50,000 --> 00:38:00,000
  891. la repetibilidad de los experimentos, era muy difícil producir resultados experimentales sólidos, pero ahora tenemos las leyes de escalado, tenemos
  892.  
  893. 224
  894. 00:38:00,000 --> 00:38:10,000
  895. 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
  896.  
  897. 225
  898. 00:38:10,000 --> 00:38:20,000
  899. 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
  900.  
  901. 226
  902. 00:38:20,000 --> 00:38:30,000
  903. 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
  904.  
  905. 227
  906. 00:38:30,000 --> 00:38:40,000
  907. mejoras aún mayores en arquitectura y optimización en los próximos años. Muy bien, para resumir, podemos
  908.  
  909. 228
  910. 00:38:40,000 --> 00:38:50,000
  911. seguir escalando modelos abiertos en estas tres dimensiones, por ejemplo, vemos
  912.  
  913. 229
  914. 00:38:50,000 --> 00:39:00,000
  915. arquitecturas y optimizadores que optimizan las tres dimensiones, y seguiremos viendo nuevas dimensiones para escalar, como los agentes,
  916.  
  917. 230
  918. 00:39:00,000 --> 00:39:10,000
  919. 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,
  920.  
  921. 231
  922. 00:39:10,000 --> 00:39:17,000
  923. muchas gracias
  924.  
  925.  
Tags: ai kimi keynotes
Advertisement
Add Comment
Please, Sign In to add comment