Por un lado, no me gusta la constante invención de nuevos conceptos por parte de Andrej Karpathy, pero por otro lado, debo admitir que muchas de sus ideas son realmente valiosas. Por ejemplo, la definición de Software 1.0/2.0 que se ofrece aquí es bastante buena: 1) En la era del software 1.0, lo que era fácil de automatizar era aquello que se podía indicar explícitamente a la computadora cómo hacer. 2) En la era del Software 2.0, lo que es fácil de automatizar es la capacidad de verificar automáticamente si el resultado es bueno o malo. ¿Qué significa automatización en este contexto? 1. Software 1.0: Automatización basada en reglas específicas. Durante las últimas décadas, todo el software tradicional que hemos utilizado (como Excel, Word y los sistemas de contabilidad) ha sido "Software 1.0". Su lógica central es "Especificar". Debes actuar como un supervisor meticuloso, escribiendo claramente cada regla en el código. Por ejemplo, al desarrollar software de contabilidad, debes indicarle: Si el número de la columna A es mayor que el de la columna B, la columna C se mostrará en rojo. Al final del mes, sume todos los números de la columna D y colóquelos en la columna Z. ¿En qué destaca el software 1.0? En automatizar tareas con reglas fijas y una lógica clara. ¿Qué problema solucionó el Software 1.0? Solucionó el problema del trabajo repetitivo y mecánico para los humanos. Por ejemplo, el de mecanógrafos, contables y administrativos. Siempre que se pueda describir claramente todo el proceso de una tarea, el Software 1.0 puede automatizarla. 2. Software 2.0: Automatización basada en objetivos específicos. Ahora, la IA ha llegado y se ha actualizado a la versión 2.0 del software. Su lógica ha cambiado por completo. Ya no especificamos reglas, sino que establecemos objetivos. En lugar de indicarle a la IA cómo realizar cada paso como un supervisor, actuamos como un entrenador, limitándonos a indicarle cuáles son los criterios de aceptación. Por ejemplo, al entrenar a una IA para jugar al ajedrez, no le decimos: "Cuando tu oponente haga este movimiento, debes hacer aquel otro". Solo le damos un objetivo: "Encontrar la manera de ganar la partida". Luego, la IA comienza a buscar la jugada ganadora por sí misma. Busca la estrategia óptima a través de una gran cantidad de auto-juego (es decir, descenso de gradiente). Esta es la idea central de AK: el Software 1.0 es cuando escribimos programas manualmente, mientras que el Software 2.0 es cuando la IA busca y genera programas automáticamente. 3. En la era del software 1.0, el enfoque estaba en la "especificabilidad", mientras que en la era 2.0, el enfoque está en la "verificabilidad". Si decimos que el estándar para las tareas de automatización del software 1.0 es si podemos especificar reglas claras, por ejemplo, si se quiere escribir un rastreador web automático, solo es necesario especificar reglas de rastreo y reglas de análisis claras. El estándar para las tareas de automatización del software 2.0 es si los resultados pueden verificarse automáticamente. La "verificabilidad" se refiere a si la IA puede realizar una "práctica deliberada" eficiente en una tarea. AK establece tres condiciones clave para la "verificabilidad": 1) Reiniciable La IA debe poder reiniciar un número ilimitado de veces. Por ejemplo, en ajedrez, si pierdes una partida, no importa; una vez que el tablero se vacía, puedes comenzar la siguiente inmediatamente. 2) Alta eficiencia La IA debe practicar a una velocidad muy superior a la de los humanos. Puede «ver» vídeos en una hora que un humano jamás podría ver en toda su vida, y jugar millones de partidas de ajedrez al día. 3) Recompensable Este es el punto más crucial. Debe existir un mecanismo de recompensa y castigo automatizado, inmediato e indiscutible. La automatización es crucial. Si cada vez que la IA completa una tarea, requiere que un experto humano dedique mucho tiempo a revisarla y luego emita una evaluación ambigua (como "Mmm, esta idea está bien"), entonces la IA no podrá aprender de manera eficiente. En campos como la programación y las matemáticas, es fácil cumplir las tres condiciones anteriores, pero es difícil verificarlo en campos no estandarizados como la escritura. Sin embargo, en el caso del software, resulta muy difícil que los sistemas de software ligeramente más complejos cumplan con los estándares verificables. Por ejemplo, al implementar la interfaz de usuario, intentaría introducir el borrador del diseño en la IA y proporcionarle una herramienta de captura de pantalla para que pudiera tomar capturas repetidamente y compararlas con el borrador, y así encontrar las diferencias para optimizarlo. Sin embargo, con las capacidades actuales de la IA, no basta con corregir estas diferencias, por lo que, por mucho tiempo que se ejecute, no se obtendrá un resultado ideal. Quizás por eso no me gustan mucho los nuevos conceptos inventados por AK; siempre se les ocurre un concepto tras otro, pero no resuelven muchos problemas.
La ilustrax.com/zhengyaojiang/… 👍
