O WebAssembly torna rápido e fácil baixar e executar um LLM completo em sua máquina, sem qualquer configuração importante.
Traduzido de WebAssembly, Large Language Models e Kubernetes Matter , autor Torsten Volk.
O WebAssembly (WASM) torna incrivelmente fácil desenvolver, construir, executar e operar exatamente o mesmo código em qualquer hardware que você possa encontrar em sua mesa, no data center, em sua conta AWS ou na unidade de controle de um 30- colheitadeira de toneladas em um milharal.
Embora eu tenha discutido essa visão com Matt Butcher , CEO da Fermyon, na KubeCon 2022 em Detroit , agora existem casos de uso reais prontos para produção que agregam valor tangível.
LlamaEdge: Uma linha de código para executar o LLM em qualquer lugar
O projeto de código aberto Llama Edge promete que apenas colando uma linha de código em um terminal de basicamente qualquer máquina, um navegador irá aparecer em poucos segundos exibindo uma UI muito semelhante à que estamos acostumados a ver no ChatGPT . É claro que não temos hardware para executar o ChatGPT em nosso laptop, nem o OpenAI oferece essa opção do ponto de vista do licenciamento; no entanto, existem dezenas de variantes de código aberto que podemos executar. Por padrão, o LlamaEdge instala uma versão pequena do Gemma LLM do Google em sua máquina local para gratificação instantânea e funciona muito bem.
Mas como posso baixar e executar um LLM completo em minha máquina de forma tão rápida e fácil, sem nenhuma configuração importante? É aqui que entra o wasmEdge para salvar o dia. Llama Edge é executado como código pré-compilado (bytecode) no tempo de execução WasmEdge. Requer apenas 30 MB (não GB!) de espaço em disco mais o espaço necessário para baixar o LLM de sua escolha. Depois de baixado, o Llama Edge aproveita a capacidade do wasmEdge de provisionar continuamente recursos de CPU, GPU, RAM e disco sobre praticamente qualquer sistema operacional (Windows, Linux e derivados) e qualquer silício (Intel, AMD, Nvidia, etc.) sem qualquer configuração avançada. Agora abra um terminal em sua máquina e veja: Este único comando…
bash <(curl -sSfL '<a href="https://raw.githubusercontent.com/LlamaEdge/LlamaEdge/main/run-llm.sh">https://raw.githubusercontent.com/LlamaEdge/LlamaEdge/main/run-llm.sh</a>')
…produz uma UI sem qualquer configuração adicional.
Componentes são os novos contêineres
“Os componentes são os novos contêineres”, diz Liam Randall , CEO da Cosmonic , considerando que consegui configurar um LLM completo em menos de um minuto no mesmo MacBook em que estou escrevendo este artigo, incluindo sua interface de usuário semelhante ao ChatGPT, a de Randall. afirmação faz todo o sentido. Se eu fosse instalar o mesmo LLM sem WASM, teria que seguir uma série de etapas específicas do MacOS: 1) instalar o homebrew, 2) instalar os pacotes necessários, 3) encontrar e clonar o Llama LLM necessário, 4) instalar o Dependências do Python, 5) converter e quantificar os arquivos do modelo e 6) testar minha instalação. No entanto, como estou executando o WasmEdge, não preciso me preocupar com nenhuma dessas etapas, e o tempo de execução do Python nem precisa existir. O LlamaEdge requer apenas o wasmEdge para ser executado, nada mais.
Mas eu preciso aprender Rust?
Como desenvolvedor Python , prefiro fortemente poder usar o LLM sem ter que aprender Rust . Preciso apenas de uma linha de código de linha de comando para configurar o LLM e, em seguida, outra linha de código se quiser selecionar um LLM específico em vez do LLM padrão:
bash <(curl -sSfL 'https://raw.githubusercontent.com/LlamaEdge/LlamaEdge/main/run-llm.sh') --model llama-2-7b-chat
O comando acima leva o usuário à seleção LLM pronta para uso.
Ainda não escrevi uma única linha de código Rust real, mas copiei e colei os comandos necessários do site LlamaEdge GitHub e agora posso conversar com meu novo LLM. Voltando à declaração de Randall sobre os componentes serem o novo contêiner, agora posso simplesmente importar esse modelo como um componente para qualquer aplicativo Python futuro que eu tiver. Ao mesmo tempo, posso compartilhar esse componente com minha equipe ou clientes para que eles também possam incorporar meu LLM em suas próprias aplicações.
Isso me lembra de uma discussão que tive com Tim Enwall , da Fermyon, na AWS Re:Invent, sobre a possibilidade de oferecer componentes WASM como um serviço de assinatura. Como analista do setor, se você criar seu próprio LLM e ajustá-lo usando publicações anteriores, poderá compilá-lo em um WASM e vender assinaturas para seu gêmeo digital.
Outro caso de uso: gerenciamento de pipeline de dados para registro e outras áreas
A plataforma de gerenciamento de pipeline de dados de observabilidade FluentBit da Calyptia permite que os desenvolvedores escrevam plug-ins na forma de programas WASM. Os desenvolvedores podem usar Rust, TinyGo e Python para escrever funções para processar dados de pipeline.
Agora podemos conectar isso ao nosso exemplo LlamaEdge e fazer com que nosso pipeline WASM “converse” com o LlamaEdge, analise os logs em tempo real, extraia insights significativos e até mesmo automatize respostas com base no conteúdo dos logs. Imagine um cenário em que seu programa de pipeline WASM detecte uma anomalia nos dados de log, como um aumento incomum no tráfego ou uma possível violação de segurança. Ele pode então consultar o LlamaEdge LLM para entender melhor o contexto e sugerir ações imediatas ou encaminhar o problema para o membro apropriado da equipe.
Ao integrar o LLM ao pipeline de dados, o processo de monitoramento e resposta a incidentes torna-se mais inteligente e proativo. Isto poderá revolucionar a forma como processamos dados de registo, transformando processos reativos em processos dinâmicos e automatizados que não só geram alertas, mas também fornecem possíveis soluções. O processamento de dados de telemetria de forma descentralizada dentro de um pipeline de dados é particularmente interessante porque pode reduzir a quantidade de dados que devem ser ingeridos em uma ou mais plataformas corporativas de observabilidade. Como muitas plataformas de observabilidade cobram dos clientes empresariais com base no volume de dados recebidos, há economias de custos significativas.
Plataforma Fermyon para Kubernetes: maior densidade, menor custo
Fermyon lançou a estrutura SpinKube para Kubernetes, permitindo que aplicações WASM rodem em Kubernetes com maior densidade e, portanto, menor custo em comparação com contêineres. SpinKube aproveita a natureza leve do módulo WASM para empacotar mais aplicativos em cada nó do servidor, reduzindo os recursos computacionais necessários.
A estrutura SpinKube foi projetada para ser amigável ao desenvolvedor e fornecer integração perfeita com ambientes Kubernetes existentes. Os desenvolvedores podem implantar seus aplicativos WASM da mesma forma que os aplicativos em contêineres tradicionais, sem precisar aprender novas ferramentas ou fluxos de trabalho. Essa facilidade de uso acelera os ciclos de desenvolvimento e simplifica a implantação.
Além disso, o SpinKube garante segurança e isolamento no nível do aplicativo, um aspecto fundamental de um ambiente multilocatário. Cada aplicativo WASM é executado em sua própria sandbox isolada, fornecendo um ambiente de execução seguro que minimiza o risco de vulnerabilidades que afetam o sistema host ou outros aplicativos.
O compromisso da Fermyon com padrões abertos e desenvolvimento orientado para a comunidade reflete-se na arquitetura do SpinKube. A plataforma suporta uma ampla gama de linguagens e ferramentas de programação, tornando-a acessível a uma comunidade mais ampla de desenvolvedores. Esta inclusão promoverá a inovação e incentivará a adoção da tecnologia WASM em vários setores.
Em resumo, Fermyon for Kubernetes representa um grande avanço na computação nativa em nuvem. Ao aumentar a densidade e reduzir custos, mantendo a facilidade de uso, a segurança e os padrões abertos, o SpinKube se posiciona como um ator importante no futuro da implantação de aplicativos Kubernetes. É importante mencionar aqui que Fermyon doou SpinKube para o sandbox CNCF.
Conclusão: LLM, produtividade do desenvolvedor e pressão de custos operacionais, a força motriz para o sucesso do WASM
A capacidade inerente do WASM de sempre rodar onde quer que haja um tempo de execução do WebAssembly torna esta tecnologia destinada a "mover o LLM para onde os dados estão".
Isso é ótimo por motivos de conformidade, já que as empresas podem simplesmente “encaixar” o LLM necessário às suas fontes de dados relevantes sem precisar solicitar permissão para mover dados potencialmente confidenciais. Essa portabilidade, combinada com o pequeno tamanho do tempo de execução WASM e a capacidade de executar aplicativos WASM em Kubernetes (ao lado de contêineres tradicionais), pode tornar a execução de alguma inferência LLM ou treinamento de modelo em infraestrutura de servidor ocioso durante o fim de semana mais barata e, portanto, mais barata. mais fácil. Quando chegar segunda-feira, poderemos encerrar nossos aplicativos WASM-LLM ou movê-los para outro lugar. É claro que esse princípio não se aplica apenas ao LLM, mas pode ser aplicado a muitos outros casos de uso.
Se a Bytecode Alliance e o W3C WebAssembly Community Group puderem acelerar a implementação do modelo de componente WebAssembly para que o WASM possa ser comumente usado, esta tecnologia será uma verdadeira virada de jogo. WASI 0.2 é um bom avanço, mas ainda há muito trabalho de casa a ser feito para preparar a plataforma para o mercado de massa.
Um programador nascido na década de 1990 desenvolveu um software de portabilidade de vídeo e faturou mais de 7 milhões em menos de um ano. O final foi muito punitivo! Alunos do ensino médio criam sua própria linguagem de programação de código aberto como uma cerimônia de maioridade - comentários contundentes de internautas: Contando com RustDesk devido a fraude desenfreada, serviço doméstico Taobao (taobao.com) suspendeu serviços domésticos e reiniciou o trabalho de otimização de versão web Java 17 é a versão Java LTS mais comumente usada no mercado do Windows 10 Atingindo 70%, o Windows 11 continua a diminuir Open Source Daily | Google apoia Hongmeng para assumir o controle de telefones Android de código aberto apoiados pela ansiedade e ambição da Microsoft; Electric desliga a plataforma aberta Apple lança chip M4 Google exclui kernel universal do Android (ACK) Suporte para arquitetura RISC-V Yunfeng renunciou ao Alibaba e planeja produzir jogos independentes para plataformas Windows no futuroEste artigo foi publicado pela primeira vez em Yunyunzhongsheng ( https://yylives.cc/ ), todos são bem-vindos para visitar.