No campo da inteligência artificial, a inferência eficiente de modelos é crucial. Os desenvolvedores continuam explorando maneiras de executar grandes modelos de linguagem em diferentes plataformas de hardware. Recentemente, o desenvolvedor Andrei David alcançou uma conquista atraente: ele transplantou com sucesso o modelo Llama 2 da Meta AI para um console de jogos Xbox 360 com quase vinte anos. a computação de ponta oferece novas possibilidades. Essa mudança supera muitos desafios, como arquitetura PowerPC, limitações de memória e conversão endian, e fornece uma experiência valiosa para a execução de grandes modelos de linguagem em ambientes com poucos recursos.
Hoje, com o rápido desenvolvimento da tecnologia de inteligência artificial, como implementar inferência de modelo eficiente em vários hardwares tornou-se um desafio importante para os desenvolvedores. Recentemente, o desenvolvedor Andrei David encontrou inspiração em um console de jogos Xbox 360 que tinha quase vinte anos. Ele transplantou com sucesso um modelo leve da série Llama LLM da Meta AI, llama2.c, para este console antigo.
David compartilhou sua conquista na plataforma de mídia social X, dizendo que os desafios que enfrentou foram enormes. A CPU PowerPC do Xbox 360 usa uma arquitetura big endian, o que significa que um grande número de conversões endian deve ser realizado quando o modelo é configurado e ponderado. Além disso, David precisava ajustar e otimizar profundamente o código original para funcionar perfeitamente em um hardware tão antigo.
O gerenciamento de memória também é um grande problema que ele deve resolver. O tamanho do modelo llama2 chega a 60 MB, e a arquitetura de memória do Xbox360 é de memória unificada, o que significa que a CPU e a GPU precisam compartilhar a mesma memória. Isso força David a ter muito cuidado ao projetar o uso da memória. Ele acredita que, apesar das limitações de memória do Xbox 360, sua arquitetura era muito voltada para o futuro na época, prenunciando a tecnologia padrão de gerenciamento de memória dos consoles de jogos e APUs modernos.
Após repetidas codificações e otimizações, David finalmente executou com sucesso o modelo llama2 no Xbox360 com apenas um simples prompt: "Sleepy Joe disse". Vale ressaltar que o modelo llama2 possui apenas 700 linhas de código C e não possui dependências externas, o que permite apresentar desempenho “surpreendentemente” poderoso quando customizado em áreas específicas.
Para outros desenvolvedores, o sucesso de David deu-lhes uma nova direção. Alguns usuários sugeriram que a memória de 512 MB do Xbox360 também pode suportar a implementação de outros pequenos LLMs, como o smolLM desenvolvido pela Hugging Face. David agradece isso e provavelmente veremos mais resultados experimentais do LLM no Xbox360 no futuro.
A história de sucesso de David fornece novas ideias e inspiração para desenvolvedores, provando que mesmo em dispositivos com recursos limitados, grandes modelos de linguagem podem ser executados por meio de otimização inteligente e ajustes de código. Isto não só promove o desenvolvimento da tecnologia de inteligência artificial no domínio da computação periférica, mas também proporciona possibilidades ilimitadas para aplicações mais inovadoras no futuro. No futuro, esperamos ver mais avanços semelhantes que levarão a tecnologia de inteligência artificial a uma gama mais ampla de cenários de aplicação.