Progresso do Llamafile, quatro meses depois – Mozilla Hacks

PUBLICIDADE

Progresso do Llamafile, quatro meses depois - Mozilla Hacks

Quando o grupo de Inovação da Mozilla lançado pela primeira vez o projeto lhamafile no final do ano passado, ficamos entusiasmados com a resposta positiva imediata dos desenvolvedores de IA de código aberto. Tornou-se um dos três repositórios mais favoritos da Mozilla no GitHub, atraindo vários contribuidores, alguns PRs excelentes e uma comunidade crescente em nosso site. Servidor de discórdia.

Apesar de tudo isso, Justine Tunney, desenvolvedora líder e visionária do projeto, continuou trabalhando arduamente em uma ampla variedade de melhorias fundamentais para o projeto. Ontem à noite, Justine lançou a versão v0.8 do llamafile, que inclui não apenas suporte para os modelos abertos mais recentes, mas também uma série de grandes melhorias de desempenho para inferência de CPU.

Como resultado do trabalho de Justine, hoje o llamafile é o mais fácil e mais rápido maneira de executar uma ampla variedade de modelos abertos de linguagem grande em seu próprio hardware. Veja você mesmo: com o llamafile, você pode executar o recém-lançado modelo LLaMA 3 da Meta – que rivaliza com os melhores modelos disponíveis em sua classe de tamanho – em um Macbook comum.

Como fizemos isso? Para explicar isso, vamos dar um passo atrás e contar tudo o que mudou desde a v0.1.

tinyBLAS: democratizando o suporte de GPU para NVIDIA e AMD

llamafile é construído sobre o agora lendário ligar.cpp projeto. llama.cpp suporta inferência acelerada por GPU para processadores NVIDIA por meio da biblioteca de álgebra linear cuBLAS, mas isso exige que os usuários instalem o CUDA SDK da NVIDIA. Ficamos desconfortáveis ​​com esse fato, porque entra em conflito com o objetivo do nosso projeto de construir uma pilha de IA transparente e de código aberto que qualquer pessoa possa executar em hardware comum. Além disso, configurar o CUDA corretamente pode ser um problema para alguns sistemas. Tinha que haver uma maneira melhor.

Com a ajuda da comunidade (olhando para você, @ahgamut e @mrdomino!), criamos nossa própria solução: chama-se tinyBLAS e é a nova e altamente eficiente biblioteca de álgebra linear do llamafile. tinyBLAS torna a aceleração NVIDIA simples e perfeita para usuários de llamafile. No Windows, você nem precisa instalar o CUDA; tudo que você precisa é do driver de vídeo que provavelmente já instalou.

Mas o tinyBLAS é mais do que apenas NVIDIA: ele também oferece suporte a GPUs AMD. Isso não é pouca coisa. Embora a AMD comande respeitáveis ​​20% do mercado atual de GPU, o fraco suporte de software e driver historicamente a tornou um player secundário no espaço de aprendizado de máquina. É uma pena, visto que as GPUs da AMD oferecem alto desempenho, têm preços competitivos e estão amplamente disponíveis.

Um dos objetivos do llamafile é democratizar o acesso à tecnologia de IA de código aberto, e isso significa conseguir um lugar para a AMD na mesa. Foi exatamente isso que fizemos: com o tinyBLAS do llamafile, agora você pode usar facilmente sua GPU AMD para acelerar a inferência local. E, como acontece com CUDA, se você for usuário do Windows, nem precisa instalar o ROCm SDK da AMD.

Tudo isso significa que, para muitos usuários, o llamafile usará automaticamente sua GPU imediatamente, com pouco ou nenhum esforço de sua parte.

Ganhos de desempenho da CPU para IA local mais rápida

Aqui na Mozilla, estamos profundamente interessados ​​na promessa de “IA local”, na qual modelos e aplicações de IA são executados diretamente no hardware do usuário final, em vez de na nuvem. A IA local é interessante porque abre a possibilidade de maior controle do usuário sobre esses sistemas e maior privacidade e segurança para os usuários.

Mas muitos dispositivos de consumo não possuem GPUs de última geração, muitas vezes necessárias para tarefas de inferência. llama.cpp mudou o jogo nesse sentido porque torna a inferência local possível e com desempenho utilizável em CPUs, em vez de apenas em GPUs.

O trabalho recente de Justine no llamafile levou o estado da arte ainda mais longe. Conforme documentado em sua postagem detalhada no blog sobre o assunto, ao escrever 84 novos kernels de multiplicação de matrizes, ela conseguiu aumentar o desempenho de avaliação imediata do llamafile em surpreendentes 10x em comparação com nossa versão anterior. Este é um passo substancial e impactante na busca de tornar a IA local viável em hardware de consumo.

Este trabalho também é um grande exemplo do nosso compromisso com a comunidade de IA de código aberto. Depois de concluir este trabalho, imediatamente enviou um PR para enviar essas melhorias de desempenho para llama.cpp. Esta foi apenas a mais recente de uma série de melhorias que contribuímos para llama.cpp, uma prática que planejamos continuar.

Ganhos de desempenho do Raspberry Pi

Falando em hardware de consumo, existem poucos exemplos mais interessantes e mais humildes do que o amado Raspberry Pi. Por um preço baixo, você obtém um computador completo rodando Linux com bastante poder de computação para usos típicos de desktop. É um pacote impressionante, mas historicamente não tem sido considerado uma plataforma viável para aplicações de IA.

Não mais. llamafile agora foi otimizado para o modelo mais recente (o Raspberry Pi 5), e o resultado é que vários pequenos LLMs – como Rocket-3B (download), TinyLLaMA-1.5B (download) e Phi-2 (download) – executado em velocidades utilizáveis ​​em um dos computadores mais baratos disponíveis atualmente. Vimos velocidades imediatas de avaliação de até 80 tokens/s em alguns casos!

Acompanhando os modelos mais recentes

O ritmo do progresso no espaço do modelo aberto tem sido incrivelmente rápido. Nos últimos meses, centenas de modelos foram lançados ou atualizados por meio de ajustes finos. Ao longo do caminho, tem havido uma tendência clara de desempenho cada vez maior dos modelos e tamanhos de modelos cada vez menores.

O projeto llama.cpp tem feito um excelente trabalho ao acompanhar todos esses novos modelos, frequentemente lançando suporte para novas arquiteturas e recursos de modelo poucos dias após seu lançamento.

De nossa parte, temos mantido o llamafile sincronizado com o llama.cpp para que possamos oferecer suporte a todos os mesmos modelos. Dada a complexidade de ambos os projetos, isso não foi pouca coisa, por isso temos sorte de ter Justine no caso.

Hoje, você pode usar os modelos abertos mais recentes e capazes com llamafile graças ao seu trabalho árduo. Por exemplo, conseguimos lançar lhamafiles para os mais novos modelos LLaMA 3 da Meta–8B-Instruir e 70B-Instrução–dentro de um dia após seu lançamento. Com a versão 0.8 de ontem, o llamafile também pode executar Grok, Mixtral 8x22B e Command-R.

Criando seus próprios arquivos lhama

Desde o dia em que o llamafile foi lançado, as pessoas queriam criar seus próprios llamafiles. Anteriormente, isso exigia uma série de etapas, mas hoje você pode fazer isso com um único comando, por exemplo:

llamafile-convert [model.gguf]

Em poucos instantes, isso produzirá um arquivo “model.llamafile” que está pronto para uso imediato. Nossos agradecimentos ao membro da comunidade @chan1012 por contribuir com esta melhoria útil.

Em um desenvolvimento relacionado, Hugging Face adicionou recentemente suporte oficial para llamafile em seu hub de modelo. Isso significa que agora você pode pesquisar e filtrar Hugging Face especificamente para arquivos de lhama criados e distribuídos por outras pessoas na comunidade de código aberto.

Servidor API compatível com OpenAI

Como é construído sobre llama.cpp, llamafile herda o componente de servidor desse projeto, que fornece endpoints de API compatíveis com OpenAI. Isso permite que os desenvolvedores que estão construindo com base no OpenAI passem a usar modelos abertos. Na Mozilla queremos muito apoiar este tipo de futuro: um onde a IA de código aberto seja uma alternativa viável às ofertas comerciais centralizadas e fechadas.

Embora os modelos abertos ainda não rivalizem totalmente com as capacidades dos modelos fechados, estão a fazer progressos rápidos. Acreditamos que tornar mais fácil dinamizar o código existente para a execução em modelos abertos aumentará a demanda e alimentará ainda mais esse progresso.

Nos últimos meses, investimos esforços na extensão desses endpoints, tanto para aumentar a funcionalidade quanto para melhorar a compatibilidade. Hoje, o llamafile pode servir como um substituto imediato para o OpenAI em uma ampla variedade de casos de uso.

Queremos ampliar ainda mais os recursos do nosso servidor API e estamos ansiosos para ouvir o que os desenvolvedores desejam e precisam. O que está impedindo você de usar modelos abertos? De quais recursos, capacidades ou ferramentas você precisa? Deixe-nos saber!

Integrações com outros projetos de IA de código aberto

Por fim, foi um prazer ver o llamafile adotado por desenvolvedores independentes e integrado aos principais projetos de IA de código aberto (como Intérprete Aberto). Parabéns em particular aos nossos Kate Silverstein que conseguiu PRs que adicionam suporte ao llamafile LangChain e LhamaIndex (com AutoGPT em breve).

Se você é mantenedor ou contribuidor de um projeto de IA de código aberto e acha que se beneficiaria com a integração do llamafile, deixe-nos saber como podemos ajudar.

Junte-se a nós!

O projeto llamafile está apenas começando e é apenas o primeiro passo de uma nova e importante iniciativa da parte da Mozilla para contribuir e participar da comunidade de IA de código aberto. Teremos mais para compartilhar sobre isso em breve, mas por enquanto: convido você a se juntar a nós no projeto llamafile!

O melhor lugar para se conectar com a equipe llamafile da Mozilla e com a comunidade llamafile em geral é em nosso servidor Discord, que tem um canal dedicado apenas para llamafile. E, claro, suas solicitações de melhorias, problemas e PRs são sempre bem-vindos em nosso Repositório GitHub.

Espero que você se junte a nós. Os próximos meses serão ainda mais interessantes e inesperados que os anteriores, tanto para o llamafile quanto para a própria IA de código aberto.

Stephen lidera projetos de IA de código aberto (incluindo llamafile) no Mozilla Builders. Anteriormente, ele administrou o pioneiro de bookmarking social del.icio.us; cofundou Storium, Blockboard e FairSpin; e trabalhou no Yahoo Search e BEA WebLogic.

Mais artigos de Stephen Hood…



Fonte: Tecmundo, Olhar Digital, MeioBit

Mais recentes

PUBLICIDADE

WP Twitter Auto Publish Powered By : XYZScripts.com