Por um lado, não gosto da constante invenção de novos conceitos por Andrej Karpathy, mas, por outro lado, tenho que admitir que muitas de suas ideias são de fato valiosas. Por exemplo, a definição de Software 1.0/2.0 aqui é bastante boa: 1) Na era do software 1.0, o que era fácil de automatizar era aquilo que você podia dizer explicitamente ao computador como fazer. 2) Na era do Software 2.0, o que é fácil de automatizar é a capacidade de verificar automaticamente se o resultado é bom ou ruim. Então, o que significa automação neste contexto? 1. Software 1.0: Automação baseada em regras específicas. Nas últimas décadas, todo o software tradicional que usamos (como Excel, Word e sistemas de contabilidade) era "Software 1.0". Sua lógica principal é "Especificar". Você deve agir como um supervisor meticuloso, escrevendo claramente cada regra no código. Por exemplo, ao desenvolver um software de contabilidade, você deve instruí-lo da seguinte forma: "Se o número na coluna A for maior que o número na coluna B, então a coluna C será exibida em vermelho." "No final do mês, some todos os números da coluna D e coloque o resultado na coluna Z." Em que o software 1.0 se destaca? Na automação de tarefas com regras fixas e lógica clara. Qual problema o Software 1.0 resolveu? Ele resolveu o problema do "trabalho repetitivo e mecânico" realizado por humanos. Por exemplo, digitadores, escriturários e contadores. Desde que todo o processo de uma tarefa possa ser claramente descrito, o Software 1.0 pode assumi-la. 2. Software 2.0: Automação baseada em objetivos específicos. Agora, a IA chegou e foi atualizada para o software 2.0. Sua lógica mudou completamente. Não especificamos mais regras, mas definimos metas. Em vez de dizer à IA como executar cada etapa como um supervisor, agimos como um treinador, apenas informando quais são os critérios de aceitação. Por exemplo, ao treinar uma IA para jogar xadrez, não dizemos a ela: "Quando seu oponente fizer este movimento, você deve fazer aquele movimento". Damos a ela apenas um objetivo: "Encontrar uma maneira de vencer o jogo". Em seguida, a IA começa a procurar a jogada vencedora por conta própria. Ela busca a estratégia ideal por meio de uma enorme quantidade de autojogo (ou seja, descida de gradiente). Essa é a ideia central da AK: Software 1.0 é quando escrevemos programas manualmente, enquanto Software 2.0 é quando a IA busca e gera programas automaticamente. 3. Na era do software 1.0, o foco era na "especificabilidade", enquanto na era 2.0, o foco é na "verificabilidade". Se dissermos que o padrão para tarefas de automação de software 1.0 é se podemos especificar regras claras, por exemplo, se você quiser escrever um rastreador web automático, você só precisa especificar regras claras de rastreamento e regras de análise. O padrão para tarefas de automação de software 2.0 é se os resultados podem ser verificados automaticamente. "Verificabilidade" refere-se à capacidade da IA de realizar uma "prática deliberada" eficiente em uma tarefa. A AK estabelece três condições essenciais para a "verificabilidade": 1) Reiniciável A IA deve ser capaz de reiniciar um número ilimitado de vezes. Por exemplo, no xadrez, se você perder uma partida, não importa; assim que o tabuleiro estiver limpo, você pode começar imediatamente a próxima partida. 2) Alta eficiência A IA precisa praticar em uma velocidade muito superior à dos humanos. Ela consegue "assistir" a vídeos em uma hora que um humano jamais conseguiria assistir por toda a vida, e jogar milhões de partidas de xadrez em um único dia. 3) Recompensável Este é o ponto mais crucial. Deve haver um mecanismo de recompensa e punição automatizado, imediato e incontroverso. A automação é crucial. Se, a cada tarefa concluída pela IA, for necessário que um especialista humano gaste muito tempo revisando-a e emitindo uma avaliação ambígua (como "Hum, essa ideia é razoável"), então a IA não conseguirá aprender de forma eficiente. Em áreas como programação e matemática, é fácil atender às três condições acima, mas é difícil verificá-las em áreas não padronizadas como a escrita. No entanto, no caso de software, é muito difícil que sistemas de software um pouco mais complexos atendam a padrões verificáveis. Por exemplo, ao implementar a interface do usuário, eu tentaria inserir o rascunho do design da interface na IA e fornecer a ela uma ferramenta de captura de tela para que ela pudesse capturar imagens repetidamente e compará-las com o rascunho do design, encontrando as diferenças para otimizar. No entanto, com as capacidades atuais da IA, isso não é suficiente para corrigir essas diferenças, então, não importa quanto tempo você execute o processo, você nunca obterá um resultado ideal. Talvez seja por isso que eu não gosto muito dos novos conceitos inventados pela AK; eles sempre apresentam um conceito atrás do outro, mas não resolvem muitos problemas.
A ilustração está muito boa 👍
